diff --git a/BetterFluidColors_1.0.1/data.lua b/BetterFluidColors_1.0.2/data.lua similarity index 98% rename from BetterFluidColors_1.0.1/data.lua rename to BetterFluidColors_1.0.2/data.lua index f54b725..37e2330 100644 --- a/BetterFluidColors_1.0.1/data.lua +++ b/BetterFluidColors_1.0.2/data.lua @@ -1,12 +1,12 @@ -data.raw["fluid"]["water"]["base_color"] = {r=0.03, g=0.25, b=0.35} -data.raw["fluid"]["water"]["flow_color"] = {r=0.35, g=0.8, b=0.87} -data.raw["fluid"]["heavy-oil"]["base_color"] = {r=0.57, g=0.1, b=0} -data.raw["fluid"]["heavy-oil"]["flow_color"] = {r=1, g=0.51, b=0.07} -data.raw["fluid"]["light-oil"]["base_color"] = {r=0.57, g=0.33, b=0} -data.raw["fluid"]["light-oil"]["flow_color"] = {r=1, g=0.73, b=0.07} -data.raw["fluid"]["petroleum-gas"]["base_color"] = {r=0.42, g=0.38, b=0.44} -data.raw["fluid"]["petroleum-gas"]["flow_color"] = {r=1, g=1, b=1} -data.raw["fluid"]["lubricant"]["base_color"] = {r=0.1, g=0.24, b=0.02} -data.raw["fluid"]["lubricant"]["flow_color"] = {r=0.43, g=0.75, b=0.31} -data.raw["fluid"]["sulfuric-acid"]["base_color"] = {r=1, g=0.5, b=0} +data.raw["fluid"]["water"]["base_color"] = {r=0.03, g=0.25, b=0.35} +data.raw["fluid"]["water"]["flow_color"] = {r=0.35, g=0.8, b=0.87} +data.raw["fluid"]["heavy-oil"]["base_color"] = {r=0.57, g=0.1, b=0} +data.raw["fluid"]["heavy-oil"]["flow_color"] = {r=1, g=0.51, b=0.07} +data.raw["fluid"]["light-oil"]["base_color"] = {r=0.57, g=0.33, b=0} +data.raw["fluid"]["light-oil"]["flow_color"] = {r=1, g=0.73, b=0.07} +data.raw["fluid"]["petroleum-gas"]["base_color"] = {r=0.42, g=0.38, b=0.44} +data.raw["fluid"]["petroleum-gas"]["flow_color"] = {r=1, g=1, b=1} +data.raw["fluid"]["lubricant"]["base_color"] = {r=0.1, g=0.24, b=0.02} +data.raw["fluid"]["lubricant"]["flow_color"] = {r=0.43, g=0.75, b=0.31} +data.raw["fluid"]["sulfuric-acid"]["base_color"] = {r=1, g=0.5, b=0} data.raw["fluid"]["sulfuric-acid"]["flow_color"] = {r=1, g=1, b=0} \ No newline at end of file diff --git a/BetterFluidColors_1.0.1/info.json b/BetterFluidColors_1.0.2/info.json similarity index 76% rename from BetterFluidColors_1.0.1/info.json rename to BetterFluidColors_1.0.2/info.json index ec8d5fc..75bb1b1 100644 --- a/BetterFluidColors_1.0.1/info.json +++ b/BetterFluidColors_1.0.2/info.json @@ -1,11 +1,9 @@ -{ - "name": "BetterFluidColors", - "version": "1.0.1", - "title": "Better Fluid Colors", - "author": "Meppi", - "contact": "", - "homepage": "https://forums.factorio.com/viewtopic.php?f=144&t=23284", - "description": "This mod changes the colors of fluids in pipes", - "factorio_version": "0.14", - "dependencies": ["base >= 0.13"] +{ + "name": "BetterFluidColors", + "version": "1.0.2", + "factorio_version": "0.14", + "title": "Better Fluid Colors", + "author": "Meppi", + "homepage": "https://forums.factorio.com/viewtopic.php?f=144&t=23284", + "description": "This mod changes the colors of fluids in pipes" } \ No newline at end of file diff --git a/Bio_Industries_1.4.0/config.lua b/Bio_Industries_1.4.2/config.lua similarity index 96% rename from Bio_Industries_1.4.0/config.lua rename to Bio_Industries_1.4.2/config.lua index aaea221..6bb3353 100644 --- a/Bio_Industries_1.4.0/config.lua +++ b/Bio_Industries_1.4.2/config.lua @@ -1,90 +1,90 @@ -local BI = BI_Config ---[[--------------------------------------------------------------------------- -------------------------------------- Credits --------------------------------- -------------------------------------------------------------------------------- - -drs9999 - Treefarm Mod -SpeedDaemon - Greenhouse Mod -Simdezimon - Wood Floors -Klonan - Big Wooden Pole and Wooden Fence -LukeM212 - Tree Sapling Mod -Bobingabout - Bob's Mods - Learned a lot from looking at your amazing work. (and those wonderful functions) - -YuokiTani - Art - Amazing Work!! - - ---------------------------------------------------------------------------- ---------------------------------------------------------------------------- ------------------------- On / Off Toggles --------------------------------- ---------------------------------------------------------------------------- ---- true = On / Yes ---- false = Off / No --- NOTE -- When changing most of the below values, this will only affect new games, not existing games. ----------------------------------------------------------------------------]] - - - -BI.Bio_Garden = true -- Bio Farm must be true. It uses fertiliser... ---- Enable the Bio Garden ---- Helps clean up the pollution you're producing. - - -BI.Bio_Solar_Farm = true ---- Enable the Bio Solar Farm. ---- Tierd of having half your map covered with solar panels... Well, now you can condense them. - - -BI.Bio_Cannon = true ---- Enable the Bio Conno - Turrent that only fires at Spawners. Has a range of 75. - - -BI.Bio_Fuel = true -- Bio Farm must be true and you have to play with Natural Evolution Buildings mod. ---- Enable the Bio Fuel. Make fuel from plants and animals. (You'll need Natural Evolution Buildings mod for this to work.) ---- Enable Plastic - - -BI.Wood_Products = true ---- Enables wood products like: - -- Wood Fence - -- Big Wood Pole - -- Wood Flooring - -- Wood Rail (Uses wood. Vanilla rail now uses Concrete) - - - -BI.Recipe_Tweaks = true ---- Making some Vanilla recipe's more realistic. ---********************* ---- Recipe Changes might not take affect on existing games if you don't run: --- "/c game.player.force.reset_recipes()"" ---********************* - ---- Stone Wall: adds Iron Sticks (Rebarb) to recipe ---- Concrete: Uses Iron Sticks (Rebarb) and not Iron-Ore ---- Rail (Vanilla and Wood): Uses Crushed Stone and not Stone ---- Trees Give Random 1 - 6 Raw Wood ---- Tree Collision box made smaller ---- Steel Axe requires Iron Axe ---- Player running speed slightly increased from 0.15 to 0.25 ---- Loot Pickup distance doubled ---- Reach - BI.Reach = false - --- Double player Reach - - - - ------------------------------ END ------------------------------------------- - - -BI.Bio_Farm = true -- Just leave that as True! (Core Module) ---- Enable the Bio Farm ---- Base part of the mod. - - -BI.QCCode = false --- Used for QC --- Displays messages used for checking my code - - - +local BI = BI_Config +--[[--------------------------------------------------------------------------- +------------------------------------- Credits --------------------------------- +------------------------------------------------------------------------------- + +drs9999 - Treefarm Mod +SpeedDaemon - Greenhouse Mod +Simdezimon - Wood Floors +Klonan - Big Wooden Pole and Wooden Fence +LukeM212 - Tree Sapling Mod +Bobingabout - Bob's Mods - Learned a lot from looking at your amazing work. (and those wonderful functions) + +YuokiTani - Art - Amazing Work!! + + +--------------------------------------------------------------------------- +--------------------------------------------------------------------------- +------------------------ On / Off Toggles --------------------------------- +--------------------------------------------------------------------------- +--- true = On / Yes +--- false = Off / No +-- NOTE -- When changing most of the below values, this will only affect new games, not existing games. +---------------------------------------------------------------------------]] + + + +BI.Bio_Garden = true -- Bio Farm must be true. It uses fertiliser... +--- Enable the Bio Garden +--- Helps clean up the pollution you're producing. + + +BI.Bio_Solar_Farm = true +--- Enable the Bio Solar Farm. +--- Tierd of having half your map covered with solar panels... Well, now you can condense them. + + +BI.Bio_Cannon = true +--- Enable the Bio Conno - Turrent that only fires at Spawners. Has a range of 75. + + +BI.Bio_Fuel = true -- Bio Farm must be true and you have to play with Natural Evolution Buildings mod. +--- Enable the Bio Fuel. Make fuel from plants and animals. (You'll need Natural Evolution Buildings mod for this to work.) +--- Enable Plastic + + +BI.Wood_Products = true +--- Enables wood products like: + -- Wood Fence + -- Big Wood Pole + -- Wood Flooring + -- Wood Rail (Uses wood. Vanilla rail now uses Concrete) + + + +BI.Recipe_Tweaks = true +--- Making some Vanilla recipe's more realistic. +--********************* +--- Recipe Changes might not take affect on existing games if you don't run: +-- "/c game.player.force.reset_recipes()"" +--********************* + +--- Stone Wall: adds Iron Sticks (Rebarb) to recipe +--- Concrete: Uses Iron Sticks (Rebarb) and not Iron-Ore +--- Rail (Vanilla and Wood): Uses Crushed Stone and not Stone +--- Trees Give Random 1 - 6 Raw Wood +--- Tree Collision box made smaller +--- Steel Axe requires Iron Axe +--- Player running speed slightly increased from 0.15 to 0.25 +--- Loot Pickup distance doubled +--- Reach + BI.Reach = false + --- Double player Reach + + + + +----------------------------- END ------------------------------------------- + + +BI.Bio_Farm = true -- Just leave that as True! (Core Module) +--- Enable the Bio Farm +--- Base part of the mod. + + +BI.QCCode = false +-- Used for QC +-- Displays messages used for checking my code + + + diff --git a/Bio_Industries_1.4.0/control.lua b/Bio_Industries_1.4.2/control.lua similarity index 96% rename from Bio_Industries_1.4.0/control.lua rename to Bio_Industries_1.4.2/control.lua index 3bb324b..cd250b9 100644 --- a/Bio_Industries_1.4.0/control.lua +++ b/Bio_Industries_1.4.2/control.lua @@ -1,490 +1,490 @@ ----Bio Industries - v.1.4.0 - -require ("util") -require ("libs/util_ext") -require ("libs/event") - - - -if not BI_Config then BI_Config = {} end -require ("config") - -local max_grow_time = 5000 - - --------------------------------------------------------------------- -script.on_load(function() - - if global.Bio_Cannon_Table ~= nil then - Event.register(defines.events.on_tick, function(event) end) - end - -end) - -script.on_init(function() - - if global.bi == nil then - global.bi = {} - global.bi.tree_growing = {} - end - -end) - -script.on_configuration_changed(function() - - if global.Bio_Cannon_Table ~= nil then - Event.register(defines.events.on_tick, function(event) end) - end - - if global.bi == nil then - global.bi = {} - global.bi.tree_growing = {} - end - -end) ---------------------------------------------------------------------- - - - -script.on_event({defines.events.on_built_entity,}, function(event) On_Built(event) end) -script.on_event({defines.events.on_robot_built_entity,}, function(event) On_Built(event) end) -script.on_event({defines.events.on_preplayer_mined_item,}, function(event) On_Remove(event) end) -script.on_event({defines.events.on_robot_pre_mined,}, function(event) On_Remove(event) end) -script.on_event({defines.events.on_entity_died,}, function(event) On_Death(event) end) - ---------------------------------------------- -function On_Built(event) - local entity = event.created_entity - - - --- Seedling planted - if entity.name == "seedling" then - - table.insert(global.bi.tree_growing, {position = event.created_entity.position, time = event.tick + max_grow_time}) - table.sort(global.bi.tree_growing, function(a, b) return a.time < b.time end) - - end - - --- Bio Farm has been built - if entity and entity.name == "bi_bio_farm" then - writeDebug("Bio Farm has been built") - local surface = entity.surface - local force = entity.force - local position = entity.position - local b_farm = entity - local pole_name = "bi_medium-electric-pole_for_Bio_Farm" - local panel_name = "bi_solar-panel_for_Bio_Farm" - local lamp_name = "bi_light_for_Bio_Farm" - - local create_pole = surface.create_entity({name = pole_name, position = position, force = force}) - local create_panel = surface.create_entity({name = panel_name, position = position, force = force}) - local create_lamp = surface.create_entity({name = lamp_name, position = position, force = force}) - - create_pole.minable = false - create_pole.destructible = false - create_panel.minable = false - create_panel.destructible = false - create_lamp.minable = false - create_lamp.destructible = false - - group_entities(cantor(position.x,position.y), { b_farm, create_pole, create_panel, create_lamp }) - - end - - - --- Bio Solar Farm has been built - if entity and entity.name == "bi_bio_Solar_Farm" then - writeDebug("Bio Solar Farm has been built") - local surface = entity.surface - local force = entity.force - local position = entity.position - local solar_farm = entity - local pole_name = "bi_medium-electric-pole_for_Bio_Farm" - local sf_image = "bi_bio_Solar_Farm_Image" - - local create_sf_pole = surface.create_entity({name = pole_name, position = position, force = force}) - local create_sf_image = surface.create_entity({name = sf_image, position = position, force = force}) - - create_sf_pole.minable = false - create_sf_pole.destructible = false - create_sf_image.minable = false - create_sf_image.destructible = false - - group_entities(cantor(position.x,position.y), { solar_farm, create_sf_pole, create_sf_image }) - - end - - --- Bio Cannon has been built - if entity.name == "Bio_Cannon_Area" then - - local New_Bio_Cannon - local New_Bio_CannonI - local New_Bio_CannonR - - writeDebug("Bio Cannon has been built") - local surface = entity.surface - local force = entity.force - local position = entity.position - - New_Bio_Cannon = surface.create_entity({name = "Bio_Cannon", position = position, direction = event.created_entity.direction, force = force}) - New_Bio_CannonI = surface.create_entity({name = "Bio_Cannon".."i", position = position, direction = event.created_entity.direction, force = force}) - New_Bio_CannonR = surface.create_entity({name = "Bio_Cannon".."r", position = position, direction = event.created_entity.direction, force = force}) - - New_Bio_CannonI.health = event.created_entity.health - - event.created_entity.destroy() - - New_Bio_Cannon.destructible = false - New_Bio_Cannon.operable = false - New_Bio_Cannon.minable = false - - New_Bio_CannonI.operable = true - New_Bio_CannonI.minable = true - - New_Bio_CannonR.operable = false - New_Bio_CannonR.destructible = false - New_Bio_CannonR.minable = false - - if global.Bio_Cannon_Table == nil then - global.Bio_Cannon_Table = {} - Event.register(defines.events.on_tick, function(event) end) - end - - table.insert(global.Bio_Cannon_Table, {New_Bio_Cannon,New_Bio_CannonI,New_Bio_CannonR,0}) - - end - - - -end - ---------------------------------------------- -function On_Remove(event) - - - - --- Bio Farm has been removed - local entity = event.entity - if entity and entity.name == "bi_bio_farm" then - local pos_hash = cantor(entity.position.x,entity.position.y) - local entity_group = getGroup_entities(pos_hash) - if entity_group then - for ix, vx in ipairs(entity_group) do - if vx == entity then - --vx.destroy() - else - vx.destroy() - end - end - end - ungroup_entities(pos_hash) - end - - - --- Bio Solar Farm has been removed - local entity = event.entity - if entity and entity.name == "bi_bio_Solar_Farm" then - local pos_hash = cantor(entity.position.x,entity.position.y) - local entity_group = getGroup_entities(pos_hash) - if entity_group then - for ix, vx in ipairs(entity_group) do - if vx == entity then - --vx.destroy() - else - vx.destroy() - end - end - end - ungroup_entities(pos_hash) - end - - --- Seedling Removed - if event.entity.name == "seedling" then - - for k, v in pairs(global.bi.tree_growing) do - if v.position.x == event.entity.position.x and v.position.y == event.entity.position.y then - table.remove(global.bi.tree_growing, k) - return - end - end - - end - -end - ---------------------------------------------- -function On_Death(event) - - --- Bio Farm has been destroyed - local entity = event.entity - if entity and entity.name == "bi_bio_farm" then - local pos_hash = cantor(entity.position.x,entity.position.y) - local entity_group = getGroup_entities(pos_hash) - if entity_group then - for ix, vx in ipairs(entity_group) do - if vx == entity then - --vx.destroy() - else - --vx.die() - vx.destroy() - end - end - end - ungroup_entities(pos_hash) - end - - - --- Bio Solar Farm has been destroyed - local entity = event.entity - if entity and entity.name == "bi_bio_Solar_Farm" then - local pos_hash = cantor(entity.position.x,entity.position.y) - local entity_group = getGroup_entities(pos_hash) - if entity_group then - for ix, vx in ipairs(entity_group) do - if vx == entity then - --vx.destroy() - else - vx.destroy() - end - end - end - ungroup_entities(pos_hash) - end - - --- Seedling Removed - - if event.entity.name == "seedling" then - - for k, v in pairs(global.bi.tree_growing) do - if v.position.x == event.entity.position.x and v.position.y == event.entity.position.y then - table.remove(global.bi.tree_growing, k) - return - end - end - - end - -end - --------------------- - ----- Growing Tree -Event.register(defines.events.on_tick, function(event) - - while #global.bi.tree_growing > 0 do - if event.tick < global.bi.tree_growing[1].time then - break - end - Grow_tree(global.bi.tree_growing[1].position) - table.remove(global.bi.tree_growing, 1) - end - -end) - - -function Grow_tree(pos) - - local foundtree = false - local surface = game.surfaces['nauvis'] - local tree = surface.find_entity("seedling", pos) - local currentTilename = surface.get_tile(pos.x, pos.y).name - writeDebug("The current tile is: " .. currentTilename) - - if tree then - foundtree = true - tree.destroy() - - --- Depending on Terain, choose tree type & Convert seedling into a tree - local growth_chance = math.random(100) - if currentTilename == "grass" then - treetype = "tree-05" - if foundtree and surface.can_place_entity({ name=treetype, position=pos}) then - surface.create_entity({ name=treetype, amount=1, position=pos}) - end - - elseif currentTilename == "grass-medium" then - treetype = "tree-04" - if growth_chance > 15 and foundtree and surface.can_place_entity({ name=treetype, position=pos}) then - surface.create_entity({ name=treetype, amount=1, position=pos}) - end - - elseif currentTilename == "grass-dry" then - treetype = math.random(2) - treetype = "tree-0".. treetype - if growth_chance > 25 and foundtree and surface.can_place_entity({ name=treetype, position=pos}) then - surface.create_entity({ name=treetype, amount=1, position=pos}) - end - - elseif currentTilename == "dirt" or currentTilename == "dirt-dark" then - treetype = math.random(2) - treetype = treetype + 5 - treetype = "tree-0".. treetype - if growth_chance > 85 and foundtree and surface.can_place_entity({ name=treetype, position=pos}) then - surface.create_entity({ name=treetype, amount=1, position=pos}) - end - - else - treetype = math.random(3) - if treetype == 1 then - treetype = "tree-03" - elseif treetype == 2 then - treetype = "tree-08" - else - treetype = "tree-09" - end - if growth_chance > 70 and foundtree and surface.can_place_entity({ name=treetype, position=pos}) then - surface.create_entity({ name=treetype, amount=1, position=pos}) - end - - end - - end - -end - - - ------ Bio Cannon Stuff - Event.register(defines.events.on_tick, function(event) - - if global.Bio_Cannon_Table ~= nil then - if global.Bio_Cannon_Counter == 0 or global.Bio_Cannon_Counter == nil then - global.Bio_Cannon_Counter = 60 - for ix, vx in pairs(global.Bio_Cannon_Table) do - if vx[1].valid and vx[2].valid and vx[3].valid then - vx[4]=vx[4]-1 - if vx[4] <=0 then - Bio_Cannon_Check(vx) - end - else - if vx[1].valid then - vx[1].destroy() - end - if vx[2].valid then - vx[2].destroy() - end - if vx[3].valid then - vx[3].destroy() - end - end - - end - else - global.Bio_Cannon_Counter = global.Bio_Cannon_Counter - 1 - end - else - - -- Event.register(defines.events.on_tick, function() end) - - end - -end) - - - - -function Bio_Cannon_Check(Bio_Cannon_List) - - local Bio_Cannon=Bio_Cannon_List[1] - local Bio_Cannoni=Bio_Cannon_List[2] - local inventory = Bio_Cannoni.get_inventory(1) - local inventoryContent = inventory.get_contents() - local AmmoType - local ammo = 0 - local spawner - local target - local delay - - - if inventoryContent ~= nil then - for n,a in pairs(inventoryContent) do - AmmoType=n - ammo=a - end - end - - if ammo > 0 and Bio_Cannon_List[3].energy > 0 then - - local radius = 75 - local pos = Bio_Cannon.position - local area = {{pos.x - radius, pos.y - radius}, {pos.x + radius, pos.y + radius}} - - --- Look for spawners - spawner = Bio_Cannon.surface.find_entities_filtered({area = area, type = "unit-spawner", force= "enemy"}) - - writeDebug("The Number of Spawners are: " .. #spawner) - --Find Spawner Target - if #spawner > 0 and target == nil then - for _,enemy in pairs(spawner) do - local distance = math.sqrt(((Bio_Cannon.position.x - enemy.position.x)^2) +((Bio_Cannon.position.y - enemy.position.y)^2) ) - writeDebug("The Distance is: " .. distance) - if (distance > 10) and (distance < (radius+1)) then - - if target == nil then - target={enemy} - end - end - end - end - - - --Fire at Spawner - if target ~= nil then - - Bio_Cannon.surface.create_entity({name=AmmoType, position = {x = Bio_Cannon.position.x - 0.5, y = Bio_Cannon.position.y - 4.5}, force = Bio_Cannon.force, target = target[1], speed= 0.1}) - Bio_Cannon.surface.pollute(Bio_Cannon.position,100) -- The firing of the Hive Buster will causes Pollution - Bio_Cannon.surface.set_multi_command{command = {type=defines.command.attack, target=Bio_Cannon, distraction=defines.distraction.by_enemy},unit_count = math.floor(100 * game.evolution_factor), unit_search_distance = 500} - - --Reduce Ammo - ammo = ammo-1 - inventory.clear() - if ammo > 0 then - inventory.insert({name = AmmoType, count = ammo}) - end - - --Delay between shots - if AmmoType == "Bio_Cannon_Basic_Ammo" then - delay = 10 - elseif AmmoType == "Bio_Cannon_Poison_Ammo" then - delay = 15 - else - delay = 20 - end - - Bio_Cannon_List[4]=delay - - end - end -end - - ---- 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 - ---- DeBug Messages -function writeDebug(message) - if BI_Config.QCCode then - for i, player in pairs(game.players) do - player.print(tostring(message)) - end - end -end - +---Bio Industries - v.1.4.2 + +require ("util") +require ("libs/util_ext") +require ("libs/event") + + + +if not BI_Config then BI_Config = {} end +require ("config") + +local max_grow_time = 5000 + + +-------------------------------------------------------------------- +script.on_load(function() + + if global.Bio_Cannon_Table ~= nil then + Event.register(defines.events.on_tick, function(event) end) + end + +end) + +script.on_init(function() + + if global.bi == nil then + global.bi = {} + global.bi.tree_growing = {} + end + +end) + +script.on_configuration_changed(function() + + if global.Bio_Cannon_Table ~= nil then + Event.register(defines.events.on_tick, function(event) end) + end + + if global.bi == nil then + global.bi = {} + global.bi.tree_growing = {} + end + +end) +--------------------------------------------------------------------- + + + +script.on_event({defines.events.on_built_entity,}, function(event) On_Built(event) end) +script.on_event({defines.events.on_robot_built_entity,}, function(event) On_Built(event) end) +script.on_event({defines.events.on_preplayer_mined_item,}, function(event) On_Remove(event) end) +script.on_event({defines.events.on_robot_pre_mined,}, function(event) On_Remove(event) end) +script.on_event({defines.events.on_entity_died,}, function(event) On_Death(event) end) + +--------------------------------------------- +function On_Built(event) + local entity = event.created_entity + + + --- Seedling planted + if entity.name == "seedling" then + + table.insert(global.bi.tree_growing, {position = event.created_entity.position, time = event.tick + max_grow_time}) + table.sort(global.bi.tree_growing, function(a, b) return a.time < b.time end) + + end + + --- Bio Farm has been built + if entity and entity.name == "bi_bio_farm" then + writeDebug("Bio Farm has been built") + local surface = entity.surface + local force = entity.force + local position = entity.position + local b_farm = entity + local pole_name = "bi_medium-electric-pole_for_Bio_Farm" + local panel_name = "bi_solar-panel_for_Bio_Farm" + local lamp_name = "bi_light_for_Bio_Farm" + + local create_pole = surface.create_entity({name = pole_name, position = position, force = force}) + local create_panel = surface.create_entity({name = panel_name, position = position, force = force}) + local create_lamp = surface.create_entity({name = lamp_name, position = position, force = force}) + + create_pole.minable = false + create_pole.destructible = false + create_panel.minable = false + create_panel.destructible = false + create_lamp.minable = false + create_lamp.destructible = false + + group_entities(cantor(position.x,position.y), { b_farm, create_pole, create_panel, create_lamp }) + + end + + + --- Bio Solar Farm has been built + if entity and entity.name == "bi_bio_Solar_Farm" then + writeDebug("Bio Solar Farm has been built") + local surface = entity.surface + local force = entity.force + local position = entity.position + local solar_farm = entity + local pole_name = "bi_medium-electric-pole_for_Bio_Farm" + local sf_image = "bi_bio_Solar_Farm_Image" + + local create_sf_pole = surface.create_entity({name = pole_name, position = position, force = force}) + local create_sf_image = surface.create_entity({name = sf_image, position = position, force = force}) + + create_sf_pole.minable = false + create_sf_pole.destructible = false + create_sf_image.minable = false + create_sf_image.destructible = false + + group_entities(cantor(position.x,position.y), { solar_farm, create_sf_pole, create_sf_image }) + + end + + --- Bio Cannon has been built + if entity.name == "Bio_Cannon_Area" then + + local New_Bio_Cannon + local New_Bio_CannonI + local New_Bio_CannonR + + writeDebug("Bio Cannon has been built") + local surface = entity.surface + local force = entity.force + local position = entity.position + + New_Bio_Cannon = surface.create_entity({name = "Bio_Cannon", position = position, direction = event.created_entity.direction, force = force}) + New_Bio_CannonI = surface.create_entity({name = "Bio_Cannon".."i", position = position, direction = event.created_entity.direction, force = force}) + New_Bio_CannonR = surface.create_entity({name = "Bio_Cannon".."r", position = position, direction = event.created_entity.direction, force = force}) + + New_Bio_CannonI.health = event.created_entity.health + + event.created_entity.destroy() + + New_Bio_Cannon.destructible = false + New_Bio_Cannon.operable = false + New_Bio_Cannon.minable = false + + New_Bio_CannonI.operable = true + New_Bio_CannonI.minable = true + + New_Bio_CannonR.operable = false + New_Bio_CannonR.destructible = false + New_Bio_CannonR.minable = false + + if global.Bio_Cannon_Table == nil then + global.Bio_Cannon_Table = {} + Event.register(defines.events.on_tick, function(event) end) + end + + table.insert(global.Bio_Cannon_Table, {New_Bio_Cannon,New_Bio_CannonI,New_Bio_CannonR,0}) + + end + + + +end + +--------------------------------------------- +function On_Remove(event) + + + + --- Bio Farm has been removed + local entity = event.entity + if entity and entity.name == "bi_bio_farm" then + local pos_hash = cantor(entity.position.x,entity.position.y) + local entity_group = getGroup_entities(pos_hash) + if entity_group then + for ix, vx in ipairs(entity_group) do + if vx == entity then + --vx.destroy() + else + vx.destroy() + end + end + end + ungroup_entities(pos_hash) + end + + + --- Bio Solar Farm has been removed + local entity = event.entity + if entity and entity.name == "bi_bio_Solar_Farm" then + local pos_hash = cantor(entity.position.x,entity.position.y) + local entity_group = getGroup_entities(pos_hash) + if entity_group then + for ix, vx in ipairs(entity_group) do + if vx == entity then + --vx.destroy() + else + vx.destroy() + end + end + end + ungroup_entities(pos_hash) + end + + --- Seedling Removed + if event.entity.name == "seedling" then + + for k, v in pairs(global.bi.tree_growing) do + if v.position.x == event.entity.position.x and v.position.y == event.entity.position.y then + table.remove(global.bi.tree_growing, k) + return + end + end + + end + +end + +--------------------------------------------- +function On_Death(event) + + --- Bio Farm has been destroyed + local entity = event.entity + if entity and entity.name == "bi_bio_farm" then + local pos_hash = cantor(entity.position.x,entity.position.y) + local entity_group = getGroup_entities(pos_hash) + if entity_group then + for ix, vx in ipairs(entity_group) do + if vx == entity then + --vx.destroy() + else + --vx.die() + vx.destroy() + end + end + end + ungroup_entities(pos_hash) + end + + + --- Bio Solar Farm has been destroyed + local entity = event.entity + if entity and entity.name == "bi_bio_Solar_Farm" then + local pos_hash = cantor(entity.position.x,entity.position.y) + local entity_group = getGroup_entities(pos_hash) + if entity_group then + for ix, vx in ipairs(entity_group) do + if vx == entity then + --vx.destroy() + else + vx.destroy() + end + end + end + ungroup_entities(pos_hash) + end + + --- Seedling Removed + + if event.entity.name == "seedling" then + + for k, v in pairs(global.bi.tree_growing) do + if v.position.x == event.entity.position.x and v.position.y == event.entity.position.y then + table.remove(global.bi.tree_growing, k) + return + end + end + + end + +end + +-------------------- + +---- Growing Tree +Event.register(defines.events.on_tick, function(event) + + while #global.bi.tree_growing > 0 do + if event.tick < global.bi.tree_growing[1].time then + break + end + Grow_tree(global.bi.tree_growing[1].position) + table.remove(global.bi.tree_growing, 1) + end + +end) + + +function Grow_tree(pos) + + local foundtree = false + local surface = game.surfaces['nauvis'] + local tree = surface.find_entity("seedling", pos) + local currentTilename = surface.get_tile(pos.x, pos.y).name + writeDebug("The current tile is: " .. currentTilename) + + if tree then + foundtree = true + tree.destroy() + + --- Depending on Terain, choose tree type & Convert seedling into a tree + local growth_chance = math.random(100) + if currentTilename == "grass" then + treetype = "tree-05" + if foundtree and surface.can_place_entity({ name=treetype, position=pos}) then + surface.create_entity({ name=treetype, amount=1, position=pos}) + end + + elseif currentTilename == "grass-medium" then + treetype = "tree-04" + if growth_chance > 15 and foundtree and surface.can_place_entity({ name=treetype, position=pos}) then + surface.create_entity({ name=treetype, amount=1, position=pos}) + end + + elseif currentTilename == "grass-dry" then + treetype = math.random(2) + treetype = "tree-0".. treetype + if growth_chance > 25 and foundtree and surface.can_place_entity({ name=treetype, position=pos}) then + surface.create_entity({ name=treetype, amount=1, position=pos}) + end + + elseif currentTilename == "dirt" or currentTilename == "dirt-dark" then + treetype = math.random(2) + treetype = treetype + 5 + treetype = "tree-0".. treetype + if growth_chance > 85 and foundtree and surface.can_place_entity({ name=treetype, position=pos}) then + surface.create_entity({ name=treetype, amount=1, position=pos}) + end + + else + treetype = math.random(3) + if treetype == 1 then + treetype = "tree-03" + elseif treetype == 2 then + treetype = "tree-08" + else + treetype = "tree-09" + end + if growth_chance > 70 and foundtree and surface.can_place_entity({ name=treetype, position=pos}) then + surface.create_entity({ name=treetype, amount=1, position=pos}) + end + + end + + end + +end + + + +----- Bio Cannon Stuff + Event.register(defines.events.on_tick, function(event) + + if global.Bio_Cannon_Table ~= nil then + if global.Bio_Cannon_Counter == 0 or global.Bio_Cannon_Counter == nil then + global.Bio_Cannon_Counter = 60 + for ix, vx in pairs(global.Bio_Cannon_Table) do + if vx[1].valid and vx[2].valid and vx[3].valid then + vx[4]=vx[4]-1 + if vx[4] <=0 then + Bio_Cannon_Check(vx) + end + else + if vx[1].valid then + vx[1].destroy() + end + if vx[2].valid then + vx[2].destroy() + end + if vx[3].valid then + vx[3].destroy() + end + end + + end + else + global.Bio_Cannon_Counter = global.Bio_Cannon_Counter - 1 + end + else + + -- Event.register(defines.events.on_tick, function() end) + + end + +end) + + + + +function Bio_Cannon_Check(Bio_Cannon_List) + + local Bio_Cannon=Bio_Cannon_List[1] + local Bio_Cannoni=Bio_Cannon_List[2] + local inventory = Bio_Cannoni.get_inventory(1) + local inventoryContent = inventory.get_contents() + local AmmoType + local ammo = 0 + local spawner + local target + local delay + + + if inventoryContent ~= nil then + for n,a in pairs(inventoryContent) do + AmmoType=n + ammo=a + end + end + + if ammo > 0 and Bio_Cannon_List[3].energy > 0 then + + local radius = 75 + local pos = Bio_Cannon.position + local area = {{pos.x - radius, pos.y - radius}, {pos.x + radius, pos.y + radius}} + + --- Look for spawners + spawner = Bio_Cannon.surface.find_entities_filtered({area = area, type = "unit-spawner", force= "enemy"}) + + writeDebug("The Number of Spawners are: " .. #spawner) + --Find Spawner Target + if #spawner > 0 and target == nil then + for _,enemy in pairs(spawner) do + local distance = math.sqrt(((Bio_Cannon.position.x - enemy.position.x)^2) +((Bio_Cannon.position.y - enemy.position.y)^2) ) + writeDebug("The Distance is: " .. distance) + if (distance > 10) and (distance < (radius+1)) then + + if target == nil then + target={enemy} + end + end + end + end + + + --Fire at Spawner + if target ~= nil then + + Bio_Cannon.surface.create_entity({name=AmmoType, position = {x = Bio_Cannon.position.x - 0.5, y = Bio_Cannon.position.y - 4.5}, force = Bio_Cannon.force, target = target[1], speed= 0.1}) + Bio_Cannon.surface.pollute(Bio_Cannon.position,100) -- The firing of the Hive Buster will causes Pollution + Bio_Cannon.surface.set_multi_command{command = {type=defines.command.attack, target=Bio_Cannon, distraction=defines.distraction.by_enemy},unit_count = math.floor(100 * game.evolution_factor), unit_search_distance = 500} + + --Reduce Ammo + ammo = ammo-1 + inventory.clear() + if ammo > 0 then + inventory.insert({name = AmmoType, count = ammo}) + end + + --Delay between shots + if AmmoType == "Bio_Cannon_Basic_Ammo" then + delay = 10 + elseif AmmoType == "Bio_Cannon_Poison_Ammo" then + delay = 15 + else + delay = 20 + end + + Bio_Cannon_List[4]=delay + + end + end +end + + +--- 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 + +--- DeBug Messages +function writeDebug(message) + if BI_Config.QCCode then + for i, player in pairs(game.players) do + player.print(tostring(message)) + end + end +end + diff --git a/Bio_Industries_1.4.0/data-updates.lua b/Bio_Industries_1.4.2/data-updates.lua similarity index 97% rename from Bio_Industries_1.4.0/data-updates.lua rename to Bio_Industries_1.4.2/data-updates.lua index 29397ff..71e8525 100644 --- a/Bio_Industries_1.4.0/data-updates.lua +++ b/Bio_Industries_1.4.2/data-updates.lua @@ -1,279 +1,279 @@ - ---- Help Files -require ("libs.detectmod") --Detect supported Mods, currently DyTechWar and Bob's Enemies and others -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.legacy") -- From Bob's Libary -require ("config") - ----- Inrease Wood Stack Size -data.raw.item["raw-wood"].stack_size = 400 - ---- Move Stone Crusher up in tech tree -thxbob.lib.add_technology_recipe ("automation-2", "bi-stone-crusher") -thxbob.lib.add_technology_recipe ("automation-2", "bi-crushed-stone") - - - -if BI_Config.Recipe_Tweaks then - --- Concrete Recipe Tweak - thxbob.lib.remove_recipe_item ("concrete", "iron-ore") - thxbob.lib.add_new_recipe_item ("concrete", {type="item", name="iron-stick", amount=2}) - --- Stone Wall - thxbob.lib.add_new_recipe_item ("stone-wall", {type="item", name="iron-stick", amount=1}) - - --- Rail - if data.raw.item["stone-crushed"] and BI_Config.Wood_Products then - thxbob.lib.remove_recipe_item ("rail", "stone") - thxbob.lib.add_new_recipe_item ("rail", {type="item", name="stone-crushed", amount=6}) - thxbob.lib.remove_recipe_item ("bi-rail-wood", "stone") - thxbob.lib.add_new_recipe_item ("bi-rail-wood", {type="item", name="stone-crushed", amount=6}) - end - - --- Trees Give Random 1 - 6 Raw Wood. - for _,tree in pairs(data.raw["tree"]) do - tree.collision_box = {{-0.08, -0.08}, {0.08, 0.08}} - if not (tree.name =="dead-tree" or tree.name == "dry-tree" or tree.name == "green-coral" or tree.name == "dead-grey-trunk" or tree.name == "dry-hairy-tree" or tree.name == "dead-dry-hairy-tree") then - tree.minable = {mining_particle = "wooden-particle", mining_time = 1.5, results = {{type = "item", name = "raw-wood", amount_min = 1, amount_max = 6},}} - end - end - - - -- Make Steel Axe use Iron Axe as an upgrade - thxbob.lib.remove_recipe_item ("steel-axe", "iron-stick") - thxbob.lib.add_new_recipe_item ("steel-axe", {type="item", name="iron-axe", amount=1}) - - --- Loot Picup - if data.raw.player.player.loot_pickup_distance < 4 then - data.raw.player.player.loot_pickup_distance = 4 -- default 2 - end - - --- Run Speed - if data.raw.player.player.running_speed < 0.15 then - data.raw.player.player.running_speed = 0.25 -- default 0.15 - end - - --- Reach - if BI_Config.Reach and data.raw.player.player.build_distance < 24 then - data.raw.player.player.build_distance = 24 - data.raw.player.player.reach_distance = 20 - data.raw.player.player.reach_resource_distance = 20 - data.raw.player.player.drop_item_distance = 20 - end - - - --- Disassemble of Burner Miner Drill and Steel Furnace - require("prototypes.Bio_Tweaks.recipe") - thxbob.lib.add_technology_recipe ("advanced-material-processing", "bi-steel-furnace-disassemble") - -end - - -if BI_Config.Wood_Products then - --- Wood Floors - data.raw.item["wood"].place_as_tile = - { - result = "bi-wood-floor", - condition_size = 4, - condition = { "water-tile" } - } - thxbob.lib.add_technology_recipe ("logistics", "bi-big-wooden-pole") - - ---- Update Rails - require("prototypes.Wood_Products.demo-railpictures-concrete") - - -- vanilla rail recipe update - thxbob.lib.add_new_recipe_item ("rail", {type="item", name="concrete", amount=8}) - - -- vanilla rail icon & images update - data.raw["straight-rail"]["straight-rail"].pictures = railpictures_c() - data.raw["curved-rail"]["curved-rail"].pictures = railpictures_c() - data.raw["straight-rail"]["straight-rail"].icon = "__Bio_Industries__/graphics/icons/straight-rail-concrete.png" - data.raw["curved-rail"]["curved-rail"].icon = "__Bio_Industries__/graphics/icons/curved-rail-concrete.png" - data.raw["rail-planner"]["rail"].icon = "__Bio_Industries__/graphics/icons/rail-concrete.png" - - --- Wood Rail added to Tech - thxbob.lib.add_technology_recipe ("railway", "bi-rail-wood") - - - --- If Bob, move Vanilla Rail to Rail 2. - if data.raw.technology["bob-railway-2"] then - thxbob.lib.remove_technology_recipe ("railway", "rail") - thxbob.lib.add_technology_recipe ("bob-railway-2", "rail") - end - -end - - - ---- Adds Solar Farm to solar-energy Tech -if BI_Config.Bio_Solar_Farm then - if data.raw.technology["bob-solar-energy-2"] then - thxbob.lib.add_technology_recipe ("bob-solar-energy-2", "bi_bio_Solar_Farm") - thxbob.lib.replace_recipe_item("bi_bio_Solar_Farm", "solar-panel", "solar-panel-large") - - else - thxbob.lib.add_technology_recipe ("solar-energy", "bi_bio_Solar_Farm") - end -end - - -if BI_Config.Bio_Farm then - --- Changes fertiliser recipes if bob's - if data.raw.item["sodium-hydroxide"] then - thxbob.lib.add_new_recipe_item ("bi-fertiliser-2", {type="item", name="sodium-hydroxide", amount=10}) - thxbob.lib.add_technology_recipe ("bi-fertiliser", "bi-fertiliser-2") - - end - - if BI_Config.Bio_Fuel or BI_Config.mod.NEBuildings or BI_Config.Bio_Garden then - require("prototypes.Bio_Farm.technology2") - end - - --update crushed stone icon - data.raw.item["stone-crushed"].icon = "__Bio_Industries__/graphics/icons/crushed-stone.png" - - - --- Make Bio Farm use glass if Bob's - if data.raw.item.glass then - thxbob.lib.replace_recipe_item("bi_bio_farm", "copper-cable", "glass") - end - - - ---- Add Bio Fuel & Plastic - if BI_Config.Bio_Fuel then - require("prototypes.Bio_Fuel.item") - require("prototypes.Bio_Fuel.fluid") - require("prototypes.Bio_Fuel.recipe") - require("prototypes.Bio_Fuel.entities") - require("prototypes.Bio_Fuel.technology") - thxbob.lib.add_technology_recipe ("bi-advanced-biotechnology", "bi-bioreactor") - thxbob.lib.add_technology_recipe ("bi-advanced-biotechnology", "bi-liquid-co2") - thxbob.lib.add_technology_recipe ("bi-advanced-biotechnology", "bi-cellulose") - thxbob.lib.add_technology_recipe ("bi-advanced-biotechnology", "bi-biomass-0") - thxbob.lib.add_technology_recipe ("bi-advanced-biotechnology", "bi-Bio_Fuel") - thxbob.lib.add_technology_recipe ("bi-advanced-biotechnology", "bi-Fuel_Conversion") - - end - - ------- Adds a Mk3 recipe for wood if you're playing with Natural Evolution Buildings - if BI_Config.mod.NEBuildings then - - thxbob.lib.remove_recipe_item ("bi-adv-fertiliser", "alien-artifact") - thxbob.lib.add_new_recipe_item ("bi-adv-fertiliser", {type="fluid", name="NE_enhanced-nutrient-solution", amount=50}) - - --- Adds Clean Air 2 recipe - Using Advanced fertiliser - - - --- Change the recipe of Bio Fuel to use Revitalization Solution. - thxbob.lib.remove_recipe_item ("bi-Bio_Fuel", "alien-artifact") - thxbob.lib.add_new_recipe_item ("bi-Bio_Fuel", {type="fluid", name="NE_revitalization-solution", amount=10}) - - end - - - - - ------- DyTech Support - if BI_Config.mod.DyTechCore then - - require("prototypes.Bio_Farm.dytech_recipe") - - thxbob.lib.add_technology_recipe ("bi_bio_farming", "bi-resin") - thxbob.lib.add_technology_recipe ("bi-fertiliser", "bi-resin_Mk2") - thxbob.lib.add_technology_recipe ("bi_bio_farming", "bi-sulfur-wood") - thxbob.lib.add_technology_recipe ("bi-fertiliser", "bi-sulfur-wood_Mk2") - - - --- If you're using NE Buildings, add an advanced recipe - if BI_Config.mod.NEBuildings then - thxbob.lib.add_technology_recipe ("bi-advanced-biotechnology", "bi-resin_Mk3") - thxbob.lib.add_technology_recipe ("bi-advanced-biotechnology", "bi-sulfur-wood_Mk3") - thxbob.lib.add_new_recipe_item ("bi-resin_Mk3", {type="item", name="bi-adv-fertiliser", amount=5}) - thxbob.lib.add_new_recipe_item ("bi-sulfur-wood_Mk3", {type="item", name="bi-adv-fertiliser", amount=5}) - - end - - end - -end - - - -if BI_Config.Bio_Cannon then - ------- Adds a Biological Hive Buster Ammo - if BI_Config.mod.NEBuildings then - - -- Add Bio Projectile - require("prototypes.Bio_Cannon.damage-type") - require("prototypes.Bio_Cannon.bio-projectile") - thxbob.lib.add_technology_recipe ("Bio_Cannon", "Bio_Cannon_Bio_Ammo") - data.raw.recipe["Bio_Cannon_Bio_Ammo"].category = "crafting-with-fluid" - thxbob.lib.remove_recipe_item ("Bio_Cannon_Bio_Ammo", "alien-artifact") - thxbob.lib.add_new_recipe_item ("Bio_Cannon_Bio_Ammo", {type="fluid", name="NE_alien_toxin", amount=50}) - - - ------- Changes Hive Buster Recipe - - - thxbob.lib.remove_recipe_item ("Bio_Cannon", "advanced-circuit") - thxbob.lib.remove_recipe_item ("Bio_Cannon", "steel-plate") - thxbob.lib.add_new_recipe_item ("Bio_Cannon", {type="item", name="Building_Materials", amount=30}) - - end -end - ------------- Changing order/sorting/groups -if data.raw["item"]["solar-panel-large-3"] then - if BI_Config.Bio_Solar_Farm then - data.raw["item"]["bi_bio_Solar_Farm"].subgroup = "bob-energy-solar-panel" - data.raw["item"]["bi_bio_Solar_Farm"].order="d[solar-panel]-x[bi_bio_Solar_Farm]" - data.raw["item"]["bi_bio_Solar_Farm_Image"].subgroup = "bob-energy-solar-panel" - data.raw["item"]["bi_bio_Solar_Farm_Image"].order="d[solar-panel]-x[bi_bio_Solar_Farm]" - end -end - - -if data.raw["item-subgroup"]["bob-fluid"] then - if BI_Config.Bio_Fuel then - if BI_Config.mod.NEBuildings then - data.raw["recipe"]["bi-Bio_Fuel"].subgroup = "bob-fluid" - data.raw["recipe"]["bi-Bio_Fuel"].order = "b[fluid-chemistry]-a[coal-cracking]-z[bi-Bio_Fuel]" - data.raw["recipe"]["bi-Fuel_Conversion"].subgroup = "bob-fluid" - data.raw["recipe"]["bi-Fuel_Conversion"].order = "b[fluid-chemistry]-a[coal-cracking]-y[bi-Fuel_Conversion]" - data.raw["recipe"]["bi-plastic"].subgroup = "bob-resource-chemical" - data.raw["recipe"]["bi-plastic"].order = "g[plastic-bar]" - data.raw["recipe"]["bi-cellulose"].subgroup = "bob-resource-chemical" - data.raw["recipe"]["bi-cellulose"].order = "g[plastic-bar]" - end - end -end - -if data.raw["item-subgroup"]["bob-material"] then - if BI_Config.Bio_Farm then - data.raw["recipe"]["bi-charcoal"].subgroup = "bob-material" - data.raw["recipe"]["bi-charcoal-2"].subgroup = "bob-material" - data.raw["recipe"]["bi-coal"].subgroup = "bob-material" - data.raw["recipe"]["bi-coal-2"].subgroup = "bob-material" - data.raw["recipe"]["bi-coke-coal"].subgroup = "bob-material" - data.raw["recipe"]["bi-ash"].subgroup = "bob-material" - data.raw["recipe"]["bi-ash-2"].subgroup = "bob-material" - data.raw["recipe"]["bi-crushed-stone"].subgroup = "bob-material" - end -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 = "__Bio_Industries__/graphics/icons/Seedling.png" - data.raw["item"]["fertiliser"].place_as_tile = {result = "grass", condition_size = 1, condition = { "water-tile" }} - data.raw["item"]["fertiliser"].icon = "__Bio_Industries__/graphics/icons/fertiliser_32.png" - -end - - - - - + +--- Help Files +require ("libs.detectmod") --Detect supported Mods, currently DyTechWar and Bob's Enemies and others +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.legacy") -- From Bob's Libary +require ("config") + +---- Inrease Wood Stack Size +data.raw.item["raw-wood"].stack_size = 400 + +--- Move Stone Crusher up in tech tree +thxbob.lib.add_technology_recipe ("automation-2", "bi-stone-crusher") +thxbob.lib.add_technology_recipe ("automation-2", "bi-crushed-stone") + + + +if BI_Config.Recipe_Tweaks then + --- Concrete Recipe Tweak + thxbob.lib.remove_recipe_item ("concrete", "iron-ore") + thxbob.lib.add_new_recipe_item ("concrete", {type="item", name="iron-stick", amount=2}) + --- Stone Wall + thxbob.lib.add_new_recipe_item ("stone-wall", {type="item", name="iron-stick", amount=1}) + + --- Rail + if data.raw.item["stone-crushed"] and BI_Config.Wood_Products then + thxbob.lib.remove_recipe_item ("rail", "stone") + thxbob.lib.add_new_recipe_item ("rail", {type="item", name="stone-crushed", amount=6}) + thxbob.lib.remove_recipe_item ("bi-rail-wood", "stone") + thxbob.lib.add_new_recipe_item ("bi-rail-wood", {type="item", name="stone-crushed", amount=6}) + end + + --- Trees Give Random 1 - 6 Raw Wood. + for _,tree in pairs(data.raw["tree"]) do + tree.collision_box = {{-0.08, -0.08}, {0.08, 0.08}} + if not (tree.name =="dead-tree" or tree.name == "dry-tree" or tree.name == "green-coral" or tree.name == "dead-grey-trunk" or tree.name == "dry-hairy-tree" or tree.name == "dead-dry-hairy-tree") then + tree.minable = {mining_particle = "wooden-particle", mining_time = 1.5, results = {{type = "item", name = "raw-wood", amount_min = 1, amount_max = 6},}} + end + end + + + -- Make Steel Axe use Iron Axe as an upgrade + thxbob.lib.remove_recipe_item ("steel-axe", "iron-stick") + thxbob.lib.add_new_recipe_item ("steel-axe", {type="item", name="iron-axe", amount=1}) + + --- Loot Picup + if data.raw.player.player.loot_pickup_distance < 4 then + data.raw.player.player.loot_pickup_distance = 4 -- default 2 + end + + --- Run Speed + if data.raw.player.player.running_speed < 0.15 then + data.raw.player.player.running_speed = 0.25 -- default 0.15 + end + + --- Reach + if BI_Config.Reach and data.raw.player.player.build_distance < 24 then + data.raw.player.player.build_distance = 24 + data.raw.player.player.reach_distance = 20 + data.raw.player.player.reach_resource_distance = 20 + data.raw.player.player.drop_item_distance = 20 + end + + + --- Disassemble of Burner Miner Drill and Steel Furnace + require("prototypes.Bio_Tweaks.recipe") + thxbob.lib.add_technology_recipe ("advanced-material-processing", "bi-steel-furnace-disassemble") + +end + + +if BI_Config.Wood_Products then + --- Wood Floors + data.raw.item["wood"].place_as_tile = + { + result = "bi-wood-floor", + condition_size = 4, + condition = { "water-tile" } + } + thxbob.lib.add_technology_recipe ("logistics", "bi-big-wooden-pole") + + ---- Update Rails + require("prototypes.Wood_Products.demo-railpictures-concrete") + + -- vanilla rail recipe update + thxbob.lib.add_new_recipe_item ("rail", {type="item", name="concrete", amount=8}) + + -- vanilla rail icon & images update + data.raw["straight-rail"]["straight-rail"].pictures = railpictures_c() + data.raw["curved-rail"]["curved-rail"].pictures = railpictures_c() + data.raw["straight-rail"]["straight-rail"].icon = "__Bio_Industries__/graphics/icons/straight-rail-concrete.png" + data.raw["curved-rail"]["curved-rail"].icon = "__Bio_Industries__/graphics/icons/curved-rail-concrete.png" + data.raw["rail-planner"]["rail"].icon = "__Bio_Industries__/graphics/icons/rail-concrete.png" + + --- Wood Rail added to Tech + thxbob.lib.add_technology_recipe ("railway", "bi-rail-wood") + + + --- If Bob, move Vanilla Rail to Rail 2. + if data.raw.technology["bob-railway-2"] then + thxbob.lib.remove_technology_recipe ("railway", "rail") + thxbob.lib.add_technology_recipe ("bob-railway-2", "rail") + end + +end + + + +--- Adds Solar Farm to solar-energy Tech +if BI_Config.Bio_Solar_Farm then + if data.raw.technology["bob-solar-energy-2"] then + thxbob.lib.add_technology_recipe ("bob-solar-energy-2", "bi_bio_Solar_Farm") + thxbob.lib.replace_recipe_item("bi_bio_Solar_Farm", "solar-panel", "solar-panel-large") + + else + thxbob.lib.add_technology_recipe ("solar-energy", "bi_bio_Solar_Farm") + end +end + + +if BI_Config.Bio_Farm then + --- Changes fertiliser recipes if bob's + if data.raw.item["sodium-hydroxide"] then + thxbob.lib.add_new_recipe_item ("bi-fertiliser-2", {type="item", name="sodium-hydroxide", amount=10}) + thxbob.lib.add_technology_recipe ("bi-fertiliser", "bi-fertiliser-2") + + end + + if BI_Config.Bio_Fuel or BI_Config.mod.NEBuildings or BI_Config.Bio_Garden then + require("prototypes.Bio_Farm.technology2") + end + + --update crushed stone icon + data.raw.item["stone-crushed"].icon = "__Bio_Industries__/graphics/icons/crushed-stone.png" + + + --- Make Bio Farm use glass if Bob's + if data.raw.item.glass then + thxbob.lib.replace_recipe_item("bi_bio_farm", "copper-cable", "glass") + end + + + ---- Add Bio Fuel & Plastic + if BI_Config.Bio_Fuel then + require("prototypes.Bio_Fuel.item") + require("prototypes.Bio_Fuel.fluid") + require("prototypes.Bio_Fuel.recipe") + require("prototypes.Bio_Fuel.entities") + require("prototypes.Bio_Fuel.technology") + thxbob.lib.add_technology_recipe ("bi-advanced-biotechnology", "bi-bioreactor") + thxbob.lib.add_technology_recipe ("bi-advanced-biotechnology", "bi-liquid-co2") + thxbob.lib.add_technology_recipe ("bi-advanced-biotechnology", "bi-cellulose") + thxbob.lib.add_technology_recipe ("bi-advanced-biotechnology", "bi-biomass-0") + thxbob.lib.add_technology_recipe ("bi-advanced-biotechnology", "bi-Bio_Fuel") + thxbob.lib.add_technology_recipe ("bi-advanced-biotechnology", "bi-Fuel_Conversion") + + end + + ------- Adds a Mk3 recipe for wood if you're playing with Natural Evolution Buildings + if BI_Config.mod.NEBuildings then + + thxbob.lib.remove_recipe_item ("bi-adv-fertiliser", "alien-artifact") + thxbob.lib.add_new_recipe_item ("bi-adv-fertiliser", {type="fluid", name="NE_enhanced-nutrient-solution", amount=50}) + + --- Adds Clean Air 2 recipe - Using Advanced fertiliser + + + --- Change the recipe of Bio Fuel to use Revitalization Solution. + thxbob.lib.remove_recipe_item ("bi-Bio_Fuel", "alien-artifact") + thxbob.lib.add_new_recipe_item ("bi-Bio_Fuel", {type="fluid", name="NE_revitalization-solution", amount=10}) + + end + + + + + ------- DyTech Support + if BI_Config.mod.DyTechCore then + + require("prototypes.Bio_Farm.dytech_recipe") + + thxbob.lib.add_technology_recipe ("bi_bio_farming", "bi-resin") + thxbob.lib.add_technology_recipe ("bi-fertiliser", "bi-resin_Mk2") + thxbob.lib.add_technology_recipe ("bi_bio_farming", "bi-sulfur-wood") + thxbob.lib.add_technology_recipe ("bi-fertiliser", "bi-sulfur-wood_Mk2") + + + --- If you're using NE Buildings, add an advanced recipe + if BI_Config.mod.NEBuildings then + thxbob.lib.add_technology_recipe ("bi-advanced-biotechnology", "bi-resin_Mk3") + thxbob.lib.add_technology_recipe ("bi-advanced-biotechnology", "bi-sulfur-wood_Mk3") + thxbob.lib.add_new_recipe_item ("bi-resin_Mk3", {type="item", name="bi-adv-fertiliser", amount=5}) + thxbob.lib.add_new_recipe_item ("bi-sulfur-wood_Mk3", {type="item", name="bi-adv-fertiliser", amount=5}) + + end + + end + +end + + + +if BI_Config.Bio_Cannon then + ------- Adds a Biological Hive Buster Ammo + if BI_Config.mod.NEBuildings then + + -- Add Bio Projectile + require("prototypes.Bio_Cannon.damage-type") + require("prototypes.Bio_Cannon.bio-projectile") + thxbob.lib.add_technology_recipe ("Bio_Cannon", "Bio_Cannon_Bio_Ammo") + data.raw.recipe["Bio_Cannon_Bio_Ammo"].category = "crafting-with-fluid" + thxbob.lib.remove_recipe_item ("Bio_Cannon_Bio_Ammo", "alien-artifact") + thxbob.lib.add_new_recipe_item ("Bio_Cannon_Bio_Ammo", {type="fluid", name="NE_alien_toxin", amount=50}) + + + ------- Changes Hive Buster Recipe + + + thxbob.lib.remove_recipe_item ("Bio_Cannon", "advanced-circuit") + thxbob.lib.remove_recipe_item ("Bio_Cannon", "steel-plate") + thxbob.lib.add_new_recipe_item ("Bio_Cannon", {type="item", name="Building_Materials", amount=30}) + + end +end + +------------ Changing order/sorting/groups +if data.raw["item"]["solar-panel-large-3"] then + if BI_Config.Bio_Solar_Farm then + data.raw["item"]["bi_bio_Solar_Farm"].subgroup = "bob-energy-solar-panel" + data.raw["item"]["bi_bio_Solar_Farm"].order="d[solar-panel]-x[bi_bio_Solar_Farm]" + data.raw["item"]["bi_bio_Solar_Farm_Image"].subgroup = "bob-energy-solar-panel" + data.raw["item"]["bi_bio_Solar_Farm_Image"].order="d[solar-panel]-x[bi_bio_Solar_Farm]" + end +end + + +if data.raw["item-subgroup"]["bob-fluid"] then + if BI_Config.Bio_Fuel then + if BI_Config.mod.NEBuildings then + data.raw["recipe"]["bi-Bio_Fuel"].subgroup = "bob-fluid" + data.raw["recipe"]["bi-Bio_Fuel"].order = "b[fluid-chemistry]-a[coal-cracking]-z[bi-Bio_Fuel]" + data.raw["recipe"]["bi-Fuel_Conversion"].subgroup = "bob-fluid" + data.raw["recipe"]["bi-Fuel_Conversion"].order = "b[fluid-chemistry]-a[coal-cracking]-y[bi-Fuel_Conversion]" + data.raw["recipe"]["bi-plastic"].subgroup = "bob-resource-chemical" + data.raw["recipe"]["bi-plastic"].order = "g[plastic-bar]" + data.raw["recipe"]["bi-cellulose"].subgroup = "bob-resource-chemical" + data.raw["recipe"]["bi-cellulose"].order = "g[plastic-bar]" + end + end +end + +if data.raw["item-subgroup"]["bob-material"] then + if BI_Config.Bio_Farm then + data.raw["recipe"]["bi-charcoal"].subgroup = "bob-material" + data.raw["recipe"]["bi-charcoal-2"].subgroup = "bob-material" + data.raw["recipe"]["bi-coal"].subgroup = "bob-material" + data.raw["recipe"]["bi-coal-2"].subgroup = "bob-material" + data.raw["recipe"]["bi-coke-coal"].subgroup = "bob-material" + data.raw["recipe"]["bi-ash"].subgroup = "bob-material" + data.raw["recipe"]["bi-ash-2"].subgroup = "bob-material" + data.raw["recipe"]["bi-crushed-stone"].subgroup = "bob-material" + end +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 = "__Bio_Industries__/graphics/icons/Seedling.png" + data.raw["item"]["fertiliser"].place_as_tile = {result = "grass", condition_size = 1, condition = { "water-tile" }} + data.raw["item"]["fertiliser"].icon = "__Bio_Industries__/graphics/icons/fertiliser_32.png" + +end + + + + + \ No newline at end of file diff --git a/Bio_Industries_1.4.0/data.lua b/Bio_Industries_1.4.2/data.lua similarity index 96% rename from Bio_Industries_1.4.0/data.lua rename to Bio_Industries_1.4.2/data.lua index 2f485a5..f884322 100644 --- a/Bio_Industries_1.4.0/data.lua +++ b/Bio_Industries_1.4.2/data.lua @@ -1,81 +1,81 @@ - -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 thxbob then thxbob = {} end -if not thxbob.lib then thxbob.lib = {} end - - ---- Help Files -require ("libs.detectmod") --Detect supported Mods, currently DyTechWar and Bob's Enemies and others -require ("libs.legacy") -- From Bob's Libary -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 ("config") - ---- Bio Farm -if BI_Config.Bio_Farm then - - 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") - -end - - ---- Bio Solar Farm -if BI_Config.Bio_Solar_Farm then - - require("prototypes.Bio_Solar_Farm.entities") - require("prototypes.Bio_Solar_Farm.item") - require("prototypes.Bio_Solar_Farm.recipe") - -end - --- Bio Garden -if BI_Config.Bio_Garden then - - require("prototypes.Bio_Garden.entities") - require("prototypes.Bio_Garden.item") - require("prototypes.Bio_Garden.recipe") - require("prototypes.Bio_Garden.recipe-categories") - thxbob.lib.add_technology_recipe ("bi-fertiliser", "bi-Bio_Garden") - thxbob.lib.add_technology_recipe ("bi-fertiliser", "bi-Clean_Air") - -end - -if BI_Config.Bio_Cannon then - -- 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 - ---- Wood Products -if BI_Config.Wood_Products then - - require("prototypes.Wood_Products.entities") - require("prototypes.Wood_Products.item") - require("prototypes.Wood_Products.recipe") - - -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 thxbob then thxbob = {} end +if not thxbob.lib then thxbob.lib = {} end + + +--- Help Files +require ("libs.detectmod") --Detect supported Mods, currently DyTechWar and Bob's Enemies and others +require ("libs.legacy") -- From Bob's Libary +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 ("config") + +--- Bio Farm +if BI_Config.Bio_Farm then + + 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") + +end + + +--- Bio Solar Farm +if BI_Config.Bio_Solar_Farm then + + require("prototypes.Bio_Solar_Farm.entities") + require("prototypes.Bio_Solar_Farm.item") + require("prototypes.Bio_Solar_Farm.recipe") + +end + +-- Bio Garden +if BI_Config.Bio_Garden then + + require("prototypes.Bio_Garden.entities") + require("prototypes.Bio_Garden.item") + require("prototypes.Bio_Garden.recipe") + require("prototypes.Bio_Garden.recipe-categories") + thxbob.lib.add_technology_recipe ("bi-fertiliser", "bi-Bio_Garden") + thxbob.lib.add_technology_recipe ("bi-fertiliser", "bi-Clean_Air") + +end + +if BI_Config.Bio_Cannon then + -- 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 + +--- Wood Products +if BI_Config.Wood_Products then + + require("prototypes.Wood_Products.entities") + require("prototypes.Wood_Products.item") + require("prototypes.Wood_Products.recipe") + + +end + + diff --git a/Bio_Industries_1.4.0/graphics/entities/bio_solar_farm/Bio_Solar_Farm_Off.png b/Bio_Industries_1.4.2/graphics/entities/bio_solar_farm/Bio_Solar_Farm_Off.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/entities/bio_solar_farm/Bio_Solar_Farm_Off.png rename to Bio_Industries_1.4.2/graphics/entities/bio_solar_farm/Bio_Solar_Farm_Off.png diff --git a/Bio_Industries_1.4.0/graphics/entities/bio_solar_farm/Bio_Solar_Farm_On.png b/Bio_Industries_1.4.2/graphics/entities/bio_solar_farm/Bio_Solar_Farm_On.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/entities/bio_solar_farm/Bio_Solar_Farm_On.png rename to Bio_Industries_1.4.2/graphics/entities/bio_solar_farm/Bio_Solar_Farm_On.png diff --git a/Bio_Industries_1.4.0/graphics/entities/biocannon/bio_cannon_closed.png b/Bio_Industries_1.4.2/graphics/entities/biocannon/bio_cannon_closed.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/entities/biocannon/bio_cannon_closed.png rename to Bio_Industries_1.4.2/graphics/entities/biocannon/bio_cannon_closed.png diff --git a/Bio_Industries_1.4.0/graphics/entities/biocannon/bio_cannon_open.png b/Bio_Industries_1.4.2/graphics/entities/biocannon/bio_cannon_open.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/entities/biocannon/bio_cannon_open.png rename to Bio_Industries_1.4.2/graphics/entities/biocannon/bio_cannon_open.png diff --git a/Bio_Industries_1.4.0/graphics/entities/biocannon/projectiles/Bio_Cannon_Ammo-shadow.png b/Bio_Industries_1.4.2/graphics/entities/biocannon/projectiles/Bio_Cannon_Ammo-shadow.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/entities/biocannon/projectiles/Bio_Cannon_Ammo-shadow.png rename to Bio_Industries_1.4.2/graphics/entities/biocannon/projectiles/Bio_Cannon_Ammo-shadow.png diff --git a/Bio_Industries_1.4.0/graphics/entities/biocannon/projectiles/Bio_Cannon_Basic_Ammo.png b/Bio_Industries_1.4.2/graphics/entities/biocannon/projectiles/Bio_Cannon_Basic_Ammo.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/entities/biocannon/projectiles/Bio_Cannon_Basic_Ammo.png rename to Bio_Industries_1.4.2/graphics/entities/biocannon/projectiles/Bio_Cannon_Basic_Ammo.png diff --git a/Bio_Industries_1.4.0/graphics/entities/biocannon/projectiles/Bio_Cannon_Basic_Ammo_Icon.png b/Bio_Industries_1.4.2/graphics/entities/biocannon/projectiles/Bio_Cannon_Basic_Ammo_Icon.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/entities/biocannon/projectiles/Bio_Cannon_Basic_Ammo_Icon.png rename to Bio_Industries_1.4.2/graphics/entities/biocannon/projectiles/Bio_Cannon_Basic_Ammo_Icon.png diff --git a/Bio_Industries_1.4.0/graphics/entities/biocannon/projectiles/Bio_Cannon_Bio_Ammo.png b/Bio_Industries_1.4.2/graphics/entities/biocannon/projectiles/Bio_Cannon_Bio_Ammo.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/entities/biocannon/projectiles/Bio_Cannon_Bio_Ammo.png rename to Bio_Industries_1.4.2/graphics/entities/biocannon/projectiles/Bio_Cannon_Bio_Ammo.png diff --git a/Bio_Industries_1.4.0/graphics/entities/biocannon/projectiles/Bio_Cannon_Bio_Ammo_Icon.png b/Bio_Industries_1.4.2/graphics/entities/biocannon/projectiles/Bio_Cannon_Bio_Ammo_Icon.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/entities/biocannon/projectiles/Bio_Cannon_Bio_Ammo_Icon.png rename to Bio_Industries_1.4.2/graphics/entities/biocannon/projectiles/Bio_Cannon_Bio_Ammo_Icon.png diff --git a/Bio_Industries_1.4.0/graphics/entities/biocannon/projectiles/Bio_Cannon_Poison_Ammo.png b/Bio_Industries_1.4.2/graphics/entities/biocannon/projectiles/Bio_Cannon_Poison_Ammo.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/entities/biocannon/projectiles/Bio_Cannon_Poison_Ammo.png rename to Bio_Industries_1.4.2/graphics/entities/biocannon/projectiles/Bio_Cannon_Poison_Ammo.png diff --git a/Bio_Industries_1.4.0/graphics/entities/biocannon/projectiles/Bio_Cannon_Poison_Ammo_Icon.png b/Bio_Industries_1.4.2/graphics/entities/biocannon/projectiles/Bio_Cannon_Poison_Ammo_Icon.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/entities/biocannon/projectiles/Bio_Cannon_Poison_Ammo_Icon.png rename to Bio_Industries_1.4.2/graphics/entities/biocannon/projectiles/Bio_Cannon_Poison_Ammo_Icon.png diff --git a/Bio_Industries_1.4.0/graphics/entities/biocannon/projectiles/fire.png b/Bio_Industries_1.4.2/graphics/entities/biocannon/projectiles/fire.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/entities/biocannon/projectiles/fire.png rename to Bio_Industries_1.4.2/graphics/entities/biocannon/projectiles/fire.png diff --git a/Bio_Industries_1.4.0/graphics/entities/biofarm/Bio_Farm_Idle.png b/Bio_Industries_1.4.2/graphics/entities/biofarm/Bio_Farm_Idle.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/entities/biofarm/Bio_Farm_Idle.png rename to Bio_Industries_1.4.2/graphics/entities/biofarm/Bio_Farm_Idle.png diff --git a/Bio_Industries_1.4.0/graphics/entities/biofarm/Bio_Farm_Working.png b/Bio_Industries_1.4.2/graphics/entities/biofarm/Bio_Farm_Working.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/entities/biofarm/Bio_Farm_Working.png rename to Bio_Industries_1.4.2/graphics/entities/biofarm/Bio_Farm_Working.png diff --git a/Bio_Industries_1.4.0/graphics/entities/biogarden/bio_garden_x.png b/Bio_Industries_1.4.2/graphics/entities/biogarden/bio_garden_x.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/entities/biogarden/bio_garden_x.png rename to Bio_Industries_1.4.2/graphics/entities/biogarden/bio_garden_x.png diff --git a/Bio_Industries_1.4.0/graphics/entities/bioreactor/bioreactor.png b/Bio_Industries_1.4.2/graphics/entities/bioreactor/bioreactor.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/entities/bioreactor/bioreactor.png rename to Bio_Industries_1.4.2/graphics/entities/bioreactor/bioreactor.png diff --git a/Bio_Industries_1.4.0/graphics/entities/bioreactor/pipe-east.png b/Bio_Industries_1.4.2/graphics/entities/bioreactor/pipe-east.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/entities/bioreactor/pipe-east.png rename to Bio_Industries_1.4.2/graphics/entities/bioreactor/pipe-east.png diff --git a/Bio_Industries_1.4.0/graphics/entities/bioreactor/pipe-south.png b/Bio_Industries_1.4.2/graphics/entities/bioreactor/pipe-south.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/entities/bioreactor/pipe-south.png rename to Bio_Industries_1.4.2/graphics/entities/bioreactor/pipe-south.png diff --git a/Bio_Industries_1.4.0/graphics/entities/bioreactor/pipe-west.png b/Bio_Industries_1.4.2/graphics/entities/bioreactor/pipe-west.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/entities/bioreactor/pipe-west.png rename to Bio_Industries_1.4.2/graphics/entities/bioreactor/pipe-west.png diff --git a/Bio_Industries_1.4.0/graphics/entities/cokery/cokery-idle.png b/Bio_Industries_1.4.2/graphics/entities/cokery/cokery-idle.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/entities/cokery/cokery-idle.png rename to Bio_Industries_1.4.2/graphics/entities/cokery/cokery-idle.png diff --git a/Bio_Industries_1.4.0/graphics/entities/cokery/cokery_sheet.png b/Bio_Industries_1.4.2/graphics/entities/cokery/cokery_sheet.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/entities/cokery/cokery_sheet.png rename to Bio_Industries_1.4.2/graphics/entities/cokery/cokery_sheet.png diff --git a/Bio_Industries_1.4.0/graphics/entities/stone-crusher/stone-crusher-anim.png b/Bio_Industries_1.4.2/graphics/entities/stone-crusher/stone-crusher-anim.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/entities/stone-crusher/stone-crusher-anim.png rename to Bio_Industries_1.4.2/graphics/entities/stone-crusher/stone-crusher-anim.png diff --git a/Bio_Industries_1.4.0/graphics/entities/stone-crusher/stone-crusher-off-anim.png b/Bio_Industries_1.4.2/graphics/entities/stone-crusher/stone-crusher-off-anim.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/entities/stone-crusher/stone-crusher-off-anim.png rename to Bio_Industries_1.4.2/graphics/entities/stone-crusher/stone-crusher-off-anim.png diff --git a/Bio_Industries_1.4.0/graphics/entities/stone-crusher/stone-crusher.png b/Bio_Industries_1.4.2/graphics/entities/stone-crusher/stone-crusher.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/entities/stone-crusher/stone-crusher.png rename to Bio_Industries_1.4.2/graphics/entities/stone-crusher/stone-crusher.png diff --git a/Bio_Industries_1.4.0/graphics/entities/stone-crusher/stone_crusher_anim.png b/Bio_Industries_1.4.2/graphics/entities/stone-crusher/stone_crusher_anim.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/entities/stone-crusher/stone_crusher_anim.png rename to Bio_Industries_1.4.2/graphics/entities/stone-crusher/stone_crusher_anim.png diff --git a/Bio_Industries_1.4.0/graphics/entities/wood_products/big-wooden-pole-01.png b/Bio_Industries_1.4.2/graphics/entities/wood_products/big-wooden-pole-01.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/entities/wood_products/big-wooden-pole-01.png rename to Bio_Industries_1.4.2/graphics/entities/wood_products/big-wooden-pole-01.png diff --git a/Bio_Industries_1.4.0/graphics/entities/wood_products/curved-rail-concrete/curved-rail-horizontal-backplates.png b/Bio_Industries_1.4.2/graphics/entities/wood_products/curved-rail-concrete/curved-rail-horizontal-backplates.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/entities/wood_products/curved-rail-concrete/curved-rail-horizontal-backplates.png rename to Bio_Industries_1.4.2/graphics/entities/wood_products/curved-rail-concrete/curved-rail-horizontal-backplates.png diff --git a/Bio_Industries_1.4.0/graphics/entities/wood_products/curved-rail-concrete/curved-rail-horizontal-metals-remnants.png b/Bio_Industries_1.4.2/graphics/entities/wood_products/curved-rail-concrete/curved-rail-horizontal-metals-remnants.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/entities/wood_products/curved-rail-concrete/curved-rail-horizontal-metals-remnants.png rename to Bio_Industries_1.4.2/graphics/entities/wood_products/curved-rail-concrete/curved-rail-horizontal-metals-remnants.png diff --git a/Bio_Industries_1.4.0/graphics/entities/wood_products/curved-rail-concrete/curved-rail-horizontal-metals.png b/Bio_Industries_1.4.2/graphics/entities/wood_products/curved-rail-concrete/curved-rail-horizontal-metals.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/entities/wood_products/curved-rail-concrete/curved-rail-horizontal-metals.png rename to Bio_Industries_1.4.2/graphics/entities/wood_products/curved-rail-concrete/curved-rail-horizontal-metals.png diff --git a/Bio_Industries_1.4.0/graphics/entities/wood_products/curved-rail-concrete/curved-rail-horizontal-stone-path.png b/Bio_Industries_1.4.2/graphics/entities/wood_products/curved-rail-concrete/curved-rail-horizontal-stone-path.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/entities/wood_products/curved-rail-concrete/curved-rail-horizontal-stone-path.png rename to Bio_Industries_1.4.2/graphics/entities/wood_products/curved-rail-concrete/curved-rail-horizontal-stone-path.png diff --git a/Bio_Industries_1.4.0/graphics/entities/wood_products/curved-rail-concrete/curved-rail-horizontal-ties-remnants.png b/Bio_Industries_1.4.2/graphics/entities/wood_products/curved-rail-concrete/curved-rail-horizontal-ties-remnants.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/entities/wood_products/curved-rail-concrete/curved-rail-horizontal-ties-remnants.png rename to Bio_Industries_1.4.2/graphics/entities/wood_products/curved-rail-concrete/curved-rail-horizontal-ties-remnants.png diff --git a/Bio_Industries_1.4.0/graphics/entities/wood_products/curved-rail-concrete/curved-rail-horizontal-ties.png b/Bio_Industries_1.4.2/graphics/entities/wood_products/curved-rail-concrete/curved-rail-horizontal-ties.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/entities/wood_products/curved-rail-concrete/curved-rail-horizontal-ties.png rename to Bio_Industries_1.4.2/graphics/entities/wood_products/curved-rail-concrete/curved-rail-horizontal-ties.png diff --git a/Bio_Industries_1.4.0/graphics/entities/wood_products/curved-rail-concrete/curved-rail-vertical-backplates.png b/Bio_Industries_1.4.2/graphics/entities/wood_products/curved-rail-concrete/curved-rail-vertical-backplates.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/entities/wood_products/curved-rail-concrete/curved-rail-vertical-backplates.png rename to Bio_Industries_1.4.2/graphics/entities/wood_products/curved-rail-concrete/curved-rail-vertical-backplates.png diff --git a/Bio_Industries_1.4.0/graphics/entities/wood_products/curved-rail-concrete/curved-rail-vertical-metals-remnants.png b/Bio_Industries_1.4.2/graphics/entities/wood_products/curved-rail-concrete/curved-rail-vertical-metals-remnants.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/entities/wood_products/curved-rail-concrete/curved-rail-vertical-metals-remnants.png rename to Bio_Industries_1.4.2/graphics/entities/wood_products/curved-rail-concrete/curved-rail-vertical-metals-remnants.png diff --git a/Bio_Industries_1.4.0/graphics/entities/wood_products/curved-rail-concrete/curved-rail-vertical-metals.png b/Bio_Industries_1.4.2/graphics/entities/wood_products/curved-rail-concrete/curved-rail-vertical-metals.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/entities/wood_products/curved-rail-concrete/curved-rail-vertical-metals.png rename to Bio_Industries_1.4.2/graphics/entities/wood_products/curved-rail-concrete/curved-rail-vertical-metals.png diff --git a/Bio_Industries_1.4.0/graphics/entities/wood_products/curved-rail-concrete/curved-rail-vertical-stone-path.png b/Bio_Industries_1.4.2/graphics/entities/wood_products/curved-rail-concrete/curved-rail-vertical-stone-path.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/entities/wood_products/curved-rail-concrete/curved-rail-vertical-stone-path.png rename to Bio_Industries_1.4.2/graphics/entities/wood_products/curved-rail-concrete/curved-rail-vertical-stone-path.png diff --git a/Bio_Industries_1.4.0/graphics/entities/wood_products/curved-rail-concrete/curved-rail-vertical-ties-remnants.png b/Bio_Industries_1.4.2/graphics/entities/wood_products/curved-rail-concrete/curved-rail-vertical-ties-remnants.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/entities/wood_products/curved-rail-concrete/curved-rail-vertical-ties-remnants.png rename to Bio_Industries_1.4.2/graphics/entities/wood_products/curved-rail-concrete/curved-rail-vertical-ties-remnants.png diff --git a/Bio_Industries_1.4.0/graphics/entities/wood_products/curved-rail-concrete/curved-rail-vertical-ties.png b/Bio_Industries_1.4.2/graphics/entities/wood_products/curved-rail-concrete/curved-rail-vertical-ties.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/entities/wood_products/curved-rail-concrete/curved-rail-vertical-ties.png rename to Bio_Industries_1.4.2/graphics/entities/wood_products/curved-rail-concrete/curved-rail-vertical-ties.png diff --git a/Bio_Industries_1.4.0/graphics/entities/wood_products/curved-rail-wood/curved-rail-horizontal-backplates.png b/Bio_Industries_1.4.2/graphics/entities/wood_products/curved-rail-wood/curved-rail-horizontal-backplates.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/entities/wood_products/curved-rail-wood/curved-rail-horizontal-backplates.png rename to Bio_Industries_1.4.2/graphics/entities/wood_products/curved-rail-wood/curved-rail-horizontal-backplates.png diff --git a/Bio_Industries_1.4.0/graphics/entities/wood_products/curved-rail-wood/curved-rail-horizontal-metals-remnants.png b/Bio_Industries_1.4.2/graphics/entities/wood_products/curved-rail-wood/curved-rail-horizontal-metals-remnants.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/entities/wood_products/curved-rail-wood/curved-rail-horizontal-metals-remnants.png rename to Bio_Industries_1.4.2/graphics/entities/wood_products/curved-rail-wood/curved-rail-horizontal-metals-remnants.png diff --git a/Bio_Industries_1.4.0/graphics/entities/wood_products/curved-rail-wood/curved-rail-horizontal-metals.png b/Bio_Industries_1.4.2/graphics/entities/wood_products/curved-rail-wood/curved-rail-horizontal-metals.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/entities/wood_products/curved-rail-wood/curved-rail-horizontal-metals.png rename to Bio_Industries_1.4.2/graphics/entities/wood_products/curved-rail-wood/curved-rail-horizontal-metals.png diff --git a/Bio_Industries_1.4.0/graphics/entities/wood_products/curved-rail-wood/curved-rail-horizontal-stone-path.png b/Bio_Industries_1.4.2/graphics/entities/wood_products/curved-rail-wood/curved-rail-horizontal-stone-path.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/entities/wood_products/curved-rail-wood/curved-rail-horizontal-stone-path.png rename to Bio_Industries_1.4.2/graphics/entities/wood_products/curved-rail-wood/curved-rail-horizontal-stone-path.png diff --git a/Bio_Industries_1.4.0/graphics/entities/wood_products/curved-rail-wood/curved-rail-horizontal-ties-remnants.png b/Bio_Industries_1.4.2/graphics/entities/wood_products/curved-rail-wood/curved-rail-horizontal-ties-remnants.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/entities/wood_products/curved-rail-wood/curved-rail-horizontal-ties-remnants.png rename to Bio_Industries_1.4.2/graphics/entities/wood_products/curved-rail-wood/curved-rail-horizontal-ties-remnants.png diff --git a/Bio_Industries_1.4.0/graphics/entities/wood_products/curved-rail-wood/curved-rail-horizontal-ties.png b/Bio_Industries_1.4.2/graphics/entities/wood_products/curved-rail-wood/curved-rail-horizontal-ties.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/entities/wood_products/curved-rail-wood/curved-rail-horizontal-ties.png rename to Bio_Industries_1.4.2/graphics/entities/wood_products/curved-rail-wood/curved-rail-horizontal-ties.png diff --git a/Bio_Industries_1.4.0/graphics/entities/wood_products/curved-rail-wood/curved-rail-vertical-backplates.png b/Bio_Industries_1.4.2/graphics/entities/wood_products/curved-rail-wood/curved-rail-vertical-backplates.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/entities/wood_products/curved-rail-wood/curved-rail-vertical-backplates.png rename to Bio_Industries_1.4.2/graphics/entities/wood_products/curved-rail-wood/curved-rail-vertical-backplates.png diff --git a/Bio_Industries_1.4.0/graphics/entities/wood_products/curved-rail-wood/curved-rail-vertical-metals-remnants.png b/Bio_Industries_1.4.2/graphics/entities/wood_products/curved-rail-wood/curved-rail-vertical-metals-remnants.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/entities/wood_products/curved-rail-wood/curved-rail-vertical-metals-remnants.png rename to Bio_Industries_1.4.2/graphics/entities/wood_products/curved-rail-wood/curved-rail-vertical-metals-remnants.png diff --git a/Bio_Industries_1.4.0/graphics/entities/wood_products/curved-rail-wood/curved-rail-vertical-metals.png b/Bio_Industries_1.4.2/graphics/entities/wood_products/curved-rail-wood/curved-rail-vertical-metals.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/entities/wood_products/curved-rail-wood/curved-rail-vertical-metals.png rename to Bio_Industries_1.4.2/graphics/entities/wood_products/curved-rail-wood/curved-rail-vertical-metals.png diff --git a/Bio_Industries_1.4.0/graphics/entities/wood_products/curved-rail-wood/curved-rail-vertical-stone-path.png b/Bio_Industries_1.4.2/graphics/entities/wood_products/curved-rail-wood/curved-rail-vertical-stone-path.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/entities/wood_products/curved-rail-wood/curved-rail-vertical-stone-path.png rename to Bio_Industries_1.4.2/graphics/entities/wood_products/curved-rail-wood/curved-rail-vertical-stone-path.png diff --git a/Bio_Industries_1.4.0/graphics/entities/wood_products/curved-rail-wood/curved-rail-vertical-ties-remnants.png b/Bio_Industries_1.4.2/graphics/entities/wood_products/curved-rail-wood/curved-rail-vertical-ties-remnants.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/entities/wood_products/curved-rail-wood/curved-rail-vertical-ties-remnants.png rename to Bio_Industries_1.4.2/graphics/entities/wood_products/curved-rail-wood/curved-rail-vertical-ties-remnants.png diff --git a/Bio_Industries_1.4.0/graphics/entities/wood_products/curved-rail-wood/curved-rail-vertical-ties.png b/Bio_Industries_1.4.2/graphics/entities/wood_products/curved-rail-wood/curved-rail-vertical-ties.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/entities/wood_products/curved-rail-wood/curved-rail-vertical-ties.png rename to Bio_Industries_1.4.2/graphics/entities/wood_products/curved-rail-wood/curved-rail-vertical-ties.png diff --git a/Bio_Industries_1.4.0/graphics/entities/wood_products/fence-corner-left-down-shadow.png b/Bio_Industries_1.4.2/graphics/entities/wood_products/fence-corner-left-down-shadow.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/entities/wood_products/fence-corner-left-down-shadow.png rename to Bio_Industries_1.4.2/graphics/entities/wood_products/fence-corner-left-down-shadow.png diff --git a/Bio_Industries_1.4.0/graphics/entities/wood_products/fence-corner-left-down.png b/Bio_Industries_1.4.2/graphics/entities/wood_products/fence-corner-left-down.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/entities/wood_products/fence-corner-left-down.png rename to Bio_Industries_1.4.2/graphics/entities/wood_products/fence-corner-left-down.png diff --git a/Bio_Industries_1.4.0/graphics/entities/wood_products/fence-corner-right-down-shadow.png b/Bio_Industries_1.4.2/graphics/entities/wood_products/fence-corner-right-down-shadow.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/entities/wood_products/fence-corner-right-down-shadow.png rename to Bio_Industries_1.4.2/graphics/entities/wood_products/fence-corner-right-down-shadow.png diff --git a/Bio_Industries_1.4.0/graphics/entities/wood_products/fence-corner-right-down.png b/Bio_Industries_1.4.2/graphics/entities/wood_products/fence-corner-right-down.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/entities/wood_products/fence-corner-right-down.png rename to Bio_Industries_1.4.2/graphics/entities/wood_products/fence-corner-right-down.png diff --git a/Bio_Industries_1.4.0/graphics/entities/wood_products/fence-ending-left-shadow.png b/Bio_Industries_1.4.2/graphics/entities/wood_products/fence-ending-left-shadow.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/entities/wood_products/fence-ending-left-shadow.png rename to Bio_Industries_1.4.2/graphics/entities/wood_products/fence-ending-left-shadow.png diff --git a/Bio_Industries_1.4.0/graphics/entities/wood_products/fence-ending-left.png b/Bio_Industries_1.4.2/graphics/entities/wood_products/fence-ending-left.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/entities/wood_products/fence-ending-left.png rename to Bio_Industries_1.4.2/graphics/entities/wood_products/fence-ending-left.png diff --git a/Bio_Industries_1.4.0/graphics/entities/wood_products/fence-ending-right-shadow.png b/Bio_Industries_1.4.2/graphics/entities/wood_products/fence-ending-right-shadow.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/entities/wood_products/fence-ending-right-shadow.png rename to Bio_Industries_1.4.2/graphics/entities/wood_products/fence-ending-right-shadow.png diff --git a/Bio_Industries_1.4.0/graphics/entities/wood_products/fence-ending-right.png b/Bio_Industries_1.4.2/graphics/entities/wood_products/fence-ending-right.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/entities/wood_products/fence-ending-right.png rename to Bio_Industries_1.4.2/graphics/entities/wood_products/fence-ending-right.png diff --git a/Bio_Industries_1.4.0/graphics/entities/wood_products/fence-single-1.png b/Bio_Industries_1.4.2/graphics/entities/wood_products/fence-single-1.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/entities/wood_products/fence-single-1.png rename to Bio_Industries_1.4.2/graphics/entities/wood_products/fence-single-1.png diff --git a/Bio_Industries_1.4.0/graphics/entities/wood_products/fence-single-shadow.png b/Bio_Industries_1.4.2/graphics/entities/wood_products/fence-single-shadow.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/entities/wood_products/fence-single-shadow.png rename to Bio_Industries_1.4.2/graphics/entities/wood_products/fence-single-shadow.png diff --git a/Bio_Industries_1.4.0/graphics/entities/wood_products/fence-straight-horizontal-1.png b/Bio_Industries_1.4.2/graphics/entities/wood_products/fence-straight-horizontal-1.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/entities/wood_products/fence-straight-horizontal-1.png rename to Bio_Industries_1.4.2/graphics/entities/wood_products/fence-straight-horizontal-1.png diff --git a/Bio_Industries_1.4.0/graphics/entities/wood_products/fence-straight-horizontal-2.png b/Bio_Industries_1.4.2/graphics/entities/wood_products/fence-straight-horizontal-2.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/entities/wood_products/fence-straight-horizontal-2.png rename to Bio_Industries_1.4.2/graphics/entities/wood_products/fence-straight-horizontal-2.png diff --git a/Bio_Industries_1.4.0/graphics/entities/wood_products/fence-straight-horizontal-3.png b/Bio_Industries_1.4.2/graphics/entities/wood_products/fence-straight-horizontal-3.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/entities/wood_products/fence-straight-horizontal-3.png rename to Bio_Industries_1.4.2/graphics/entities/wood_products/fence-straight-horizontal-3.png diff --git a/Bio_Industries_1.4.0/graphics/entities/wood_products/fence-straight-horizontal-shadow.png b/Bio_Industries_1.4.2/graphics/entities/wood_products/fence-straight-horizontal-shadow.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/entities/wood_products/fence-straight-horizontal-shadow.png rename to Bio_Industries_1.4.2/graphics/entities/wood_products/fence-straight-horizontal-shadow.png diff --git a/Bio_Industries_1.4.0/graphics/entities/wood_products/fence-straight-vertical-1.png b/Bio_Industries_1.4.2/graphics/entities/wood_products/fence-straight-vertical-1.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/entities/wood_products/fence-straight-vertical-1.png rename to Bio_Industries_1.4.2/graphics/entities/wood_products/fence-straight-vertical-1.png diff --git a/Bio_Industries_1.4.0/graphics/entities/wood_products/fence-straight-vertical-shadow.png b/Bio_Industries_1.4.2/graphics/entities/wood_products/fence-straight-vertical-shadow.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/entities/wood_products/fence-straight-vertical-shadow.png rename to Bio_Industries_1.4.2/graphics/entities/wood_products/fence-straight-vertical-shadow.png diff --git a/Bio_Industries_1.4.0/graphics/entities/wood_products/fence-t-down-shadow.png b/Bio_Industries_1.4.2/graphics/entities/wood_products/fence-t-down-shadow.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/entities/wood_products/fence-t-down-shadow.png rename to Bio_Industries_1.4.2/graphics/entities/wood_products/fence-t-down-shadow.png diff --git a/Bio_Industries_1.4.0/graphics/entities/wood_products/fence-t-down.png b/Bio_Industries_1.4.2/graphics/entities/wood_products/fence-t-down.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/entities/wood_products/fence-t-down.png rename to Bio_Industries_1.4.2/graphics/entities/wood_products/fence-t-down.png diff --git a/Bio_Industries_1.4.0/graphics/entities/wood_products/rail-endings/rail-endings-concrete.png b/Bio_Industries_1.4.2/graphics/entities/wood_products/rail-endings/rail-endings-concrete.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/entities/wood_products/rail-endings/rail-endings-concrete.png rename to Bio_Industries_1.4.2/graphics/entities/wood_products/rail-endings/rail-endings-concrete.png diff --git a/Bio_Industries_1.4.0/graphics/entities/wood_products/rail-endings/rail-endings-wood.png b/Bio_Industries_1.4.2/graphics/entities/wood_products/rail-endings/rail-endings-wood.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/entities/wood_products/rail-endings/rail-endings-wood.png rename to Bio_Industries_1.4.2/graphics/entities/wood_products/rail-endings/rail-endings-wood.png diff --git a/Bio_Industries_1.4.0/graphics/entities/wood_products/rail-endings/rail-endings-wood_x.png b/Bio_Industries_1.4.2/graphics/entities/wood_products/rail-endings/rail-endings-wood_x.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/entities/wood_products/rail-endings/rail-endings-wood_x.png rename to Bio_Industries_1.4.2/graphics/entities/wood_products/rail-endings/rail-endings-wood_x.png diff --git a/Bio_Industries_1.4.0/graphics/entities/wood_products/rail-endings/rail-endings.png b/Bio_Industries_1.4.2/graphics/entities/wood_products/rail-endings/rail-endings.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/entities/wood_products/rail-endings/rail-endings.png rename to Bio_Industries_1.4.2/graphics/entities/wood_products/rail-endings/rail-endings.png diff --git a/Bio_Industries_1.4.0/graphics/entities/wood_products/straight-rail-concrete/straight-rail-diagonal-backplates.png b/Bio_Industries_1.4.2/graphics/entities/wood_products/straight-rail-concrete/straight-rail-diagonal-backplates.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/entities/wood_products/straight-rail-concrete/straight-rail-diagonal-backplates.png rename to Bio_Industries_1.4.2/graphics/entities/wood_products/straight-rail-concrete/straight-rail-diagonal-backplates.png diff --git a/Bio_Industries_1.4.0/graphics/entities/wood_products/straight-rail-concrete/straight-rail-diagonal-metals-remnants.png b/Bio_Industries_1.4.2/graphics/entities/wood_products/straight-rail-concrete/straight-rail-diagonal-metals-remnants.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/entities/wood_products/straight-rail-concrete/straight-rail-diagonal-metals-remnants.png rename to Bio_Industries_1.4.2/graphics/entities/wood_products/straight-rail-concrete/straight-rail-diagonal-metals-remnants.png diff --git a/Bio_Industries_1.4.0/graphics/entities/wood_products/straight-rail-concrete/straight-rail-diagonal-metals.png b/Bio_Industries_1.4.2/graphics/entities/wood_products/straight-rail-concrete/straight-rail-diagonal-metals.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/entities/wood_products/straight-rail-concrete/straight-rail-diagonal-metals.png rename to Bio_Industries_1.4.2/graphics/entities/wood_products/straight-rail-concrete/straight-rail-diagonal-metals.png diff --git a/Bio_Industries_1.4.0/graphics/entities/wood_products/straight-rail-concrete/straight-rail-diagonal-stone-path.png b/Bio_Industries_1.4.2/graphics/entities/wood_products/straight-rail-concrete/straight-rail-diagonal-stone-path.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/entities/wood_products/straight-rail-concrete/straight-rail-diagonal-stone-path.png rename to Bio_Industries_1.4.2/graphics/entities/wood_products/straight-rail-concrete/straight-rail-diagonal-stone-path.png diff --git a/Bio_Industries_1.4.0/graphics/entities/wood_products/straight-rail-concrete/straight-rail-diagonal-ties-remnants.png b/Bio_Industries_1.4.2/graphics/entities/wood_products/straight-rail-concrete/straight-rail-diagonal-ties-remnants.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/entities/wood_products/straight-rail-concrete/straight-rail-diagonal-ties-remnants.png rename to Bio_Industries_1.4.2/graphics/entities/wood_products/straight-rail-concrete/straight-rail-diagonal-ties-remnants.png diff --git a/Bio_Industries_1.4.0/graphics/entities/wood_products/straight-rail-concrete/straight-rail-diagonal-ties.png b/Bio_Industries_1.4.2/graphics/entities/wood_products/straight-rail-concrete/straight-rail-diagonal-ties.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/entities/wood_products/straight-rail-concrete/straight-rail-diagonal-ties.png rename to Bio_Industries_1.4.2/graphics/entities/wood_products/straight-rail-concrete/straight-rail-diagonal-ties.png diff --git a/Bio_Industries_1.4.0/graphics/entities/wood_products/straight-rail-concrete/straight-rail-horizontal-backplates.png b/Bio_Industries_1.4.2/graphics/entities/wood_products/straight-rail-concrete/straight-rail-horizontal-backplates.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/entities/wood_products/straight-rail-concrete/straight-rail-horizontal-backplates.png rename to Bio_Industries_1.4.2/graphics/entities/wood_products/straight-rail-concrete/straight-rail-horizontal-backplates.png diff --git a/Bio_Industries_1.4.0/graphics/entities/wood_products/straight-rail-concrete/straight-rail-horizontal-metals-remnants.png b/Bio_Industries_1.4.2/graphics/entities/wood_products/straight-rail-concrete/straight-rail-horizontal-metals-remnants.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/entities/wood_products/straight-rail-concrete/straight-rail-horizontal-metals-remnants.png rename to Bio_Industries_1.4.2/graphics/entities/wood_products/straight-rail-concrete/straight-rail-horizontal-metals-remnants.png diff --git a/Bio_Industries_1.4.0/graphics/entities/wood_products/straight-rail-concrete/straight-rail-horizontal-metals.png b/Bio_Industries_1.4.2/graphics/entities/wood_products/straight-rail-concrete/straight-rail-horizontal-metals.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/entities/wood_products/straight-rail-concrete/straight-rail-horizontal-metals.png rename to Bio_Industries_1.4.2/graphics/entities/wood_products/straight-rail-concrete/straight-rail-horizontal-metals.png diff --git a/Bio_Industries_1.4.0/graphics/entities/wood_products/straight-rail-concrete/straight-rail-horizontal-stone-path.png b/Bio_Industries_1.4.2/graphics/entities/wood_products/straight-rail-concrete/straight-rail-horizontal-stone-path.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/entities/wood_products/straight-rail-concrete/straight-rail-horizontal-stone-path.png rename to Bio_Industries_1.4.2/graphics/entities/wood_products/straight-rail-concrete/straight-rail-horizontal-stone-path.png diff --git a/Bio_Industries_1.4.0/graphics/entities/wood_products/straight-rail-concrete/straight-rail-horizontal-ties-remnants.png b/Bio_Industries_1.4.2/graphics/entities/wood_products/straight-rail-concrete/straight-rail-horizontal-ties-remnants.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/entities/wood_products/straight-rail-concrete/straight-rail-horizontal-ties-remnants.png rename to Bio_Industries_1.4.2/graphics/entities/wood_products/straight-rail-concrete/straight-rail-horizontal-ties-remnants.png diff --git a/Bio_Industries_1.4.0/graphics/entities/wood_products/straight-rail-concrete/straight-rail-horizontal-ties.png b/Bio_Industries_1.4.2/graphics/entities/wood_products/straight-rail-concrete/straight-rail-horizontal-ties.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/entities/wood_products/straight-rail-concrete/straight-rail-horizontal-ties.png rename to Bio_Industries_1.4.2/graphics/entities/wood_products/straight-rail-concrete/straight-rail-horizontal-ties.png diff --git a/Bio_Industries_1.4.0/graphics/entities/wood_products/straight-rail-concrete/straight-rail-vertical-backplates.png b/Bio_Industries_1.4.2/graphics/entities/wood_products/straight-rail-concrete/straight-rail-vertical-backplates.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/entities/wood_products/straight-rail-concrete/straight-rail-vertical-backplates.png rename to Bio_Industries_1.4.2/graphics/entities/wood_products/straight-rail-concrete/straight-rail-vertical-backplates.png diff --git a/Bio_Industries_1.4.0/graphics/entities/wood_products/straight-rail-concrete/straight-rail-vertical-metals-remnants.png b/Bio_Industries_1.4.2/graphics/entities/wood_products/straight-rail-concrete/straight-rail-vertical-metals-remnants.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/entities/wood_products/straight-rail-concrete/straight-rail-vertical-metals-remnants.png rename to Bio_Industries_1.4.2/graphics/entities/wood_products/straight-rail-concrete/straight-rail-vertical-metals-remnants.png diff --git a/Bio_Industries_1.4.0/graphics/entities/wood_products/straight-rail-concrete/straight-rail-vertical-metals.png b/Bio_Industries_1.4.2/graphics/entities/wood_products/straight-rail-concrete/straight-rail-vertical-metals.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/entities/wood_products/straight-rail-concrete/straight-rail-vertical-metals.png rename to Bio_Industries_1.4.2/graphics/entities/wood_products/straight-rail-concrete/straight-rail-vertical-metals.png diff --git a/Bio_Industries_1.4.0/graphics/entities/wood_products/straight-rail-concrete/straight-rail-vertical-stone-path.png b/Bio_Industries_1.4.2/graphics/entities/wood_products/straight-rail-concrete/straight-rail-vertical-stone-path.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/entities/wood_products/straight-rail-concrete/straight-rail-vertical-stone-path.png rename to Bio_Industries_1.4.2/graphics/entities/wood_products/straight-rail-concrete/straight-rail-vertical-stone-path.png diff --git a/Bio_Industries_1.4.0/graphics/entities/wood_products/straight-rail-concrete/straight-rail-vertical-ties-remnants.png b/Bio_Industries_1.4.2/graphics/entities/wood_products/straight-rail-concrete/straight-rail-vertical-ties-remnants.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/entities/wood_products/straight-rail-concrete/straight-rail-vertical-ties-remnants.png rename to Bio_Industries_1.4.2/graphics/entities/wood_products/straight-rail-concrete/straight-rail-vertical-ties-remnants.png diff --git a/Bio_Industries_1.4.0/graphics/entities/wood_products/straight-rail-concrete/straight-rail-vertical-ties.png b/Bio_Industries_1.4.2/graphics/entities/wood_products/straight-rail-concrete/straight-rail-vertical-ties.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/entities/wood_products/straight-rail-concrete/straight-rail-vertical-ties.png rename to Bio_Industries_1.4.2/graphics/entities/wood_products/straight-rail-concrete/straight-rail-vertical-ties.png diff --git a/Bio_Industries_1.4.0/graphics/entities/wood_products/straight-rail-wood/straight-rail-diagonal-backplates.png b/Bio_Industries_1.4.2/graphics/entities/wood_products/straight-rail-wood/straight-rail-diagonal-backplates.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/entities/wood_products/straight-rail-wood/straight-rail-diagonal-backplates.png rename to Bio_Industries_1.4.2/graphics/entities/wood_products/straight-rail-wood/straight-rail-diagonal-backplates.png diff --git a/Bio_Industries_1.4.0/graphics/entities/wood_products/straight-rail-wood/straight-rail-diagonal-metals-remnants.png b/Bio_Industries_1.4.2/graphics/entities/wood_products/straight-rail-wood/straight-rail-diagonal-metals-remnants.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/entities/wood_products/straight-rail-wood/straight-rail-diagonal-metals-remnants.png rename to Bio_Industries_1.4.2/graphics/entities/wood_products/straight-rail-wood/straight-rail-diagonal-metals-remnants.png diff --git a/Bio_Industries_1.4.0/graphics/entities/wood_products/straight-rail-wood/straight-rail-diagonal-metals.png b/Bio_Industries_1.4.2/graphics/entities/wood_products/straight-rail-wood/straight-rail-diagonal-metals.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/entities/wood_products/straight-rail-wood/straight-rail-diagonal-metals.png rename to Bio_Industries_1.4.2/graphics/entities/wood_products/straight-rail-wood/straight-rail-diagonal-metals.png diff --git a/Bio_Industries_1.4.0/graphics/entities/wood_products/straight-rail-wood/straight-rail-diagonal-stone-path.png b/Bio_Industries_1.4.2/graphics/entities/wood_products/straight-rail-wood/straight-rail-diagonal-stone-path.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/entities/wood_products/straight-rail-wood/straight-rail-diagonal-stone-path.png rename to Bio_Industries_1.4.2/graphics/entities/wood_products/straight-rail-wood/straight-rail-diagonal-stone-path.png diff --git a/Bio_Industries_1.4.0/graphics/entities/wood_products/straight-rail-wood/straight-rail-diagonal-ties-remnants.png b/Bio_Industries_1.4.2/graphics/entities/wood_products/straight-rail-wood/straight-rail-diagonal-ties-remnants.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/entities/wood_products/straight-rail-wood/straight-rail-diagonal-ties-remnants.png rename to Bio_Industries_1.4.2/graphics/entities/wood_products/straight-rail-wood/straight-rail-diagonal-ties-remnants.png diff --git a/Bio_Industries_1.4.0/graphics/entities/wood_products/straight-rail-wood/straight-rail-diagonal-ties.png b/Bio_Industries_1.4.2/graphics/entities/wood_products/straight-rail-wood/straight-rail-diagonal-ties.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/entities/wood_products/straight-rail-wood/straight-rail-diagonal-ties.png rename to Bio_Industries_1.4.2/graphics/entities/wood_products/straight-rail-wood/straight-rail-diagonal-ties.png diff --git a/Bio_Industries_1.4.0/graphics/entities/wood_products/straight-rail-wood/straight-rail-horizontal-backplates.png b/Bio_Industries_1.4.2/graphics/entities/wood_products/straight-rail-wood/straight-rail-horizontal-backplates.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/entities/wood_products/straight-rail-wood/straight-rail-horizontal-backplates.png rename to Bio_Industries_1.4.2/graphics/entities/wood_products/straight-rail-wood/straight-rail-horizontal-backplates.png diff --git a/Bio_Industries_1.4.0/graphics/entities/wood_products/straight-rail-wood/straight-rail-horizontal-metals-remnants.png b/Bio_Industries_1.4.2/graphics/entities/wood_products/straight-rail-wood/straight-rail-horizontal-metals-remnants.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/entities/wood_products/straight-rail-wood/straight-rail-horizontal-metals-remnants.png rename to Bio_Industries_1.4.2/graphics/entities/wood_products/straight-rail-wood/straight-rail-horizontal-metals-remnants.png diff --git a/Bio_Industries_1.4.0/graphics/entities/wood_products/straight-rail-wood/straight-rail-horizontal-metals.png b/Bio_Industries_1.4.2/graphics/entities/wood_products/straight-rail-wood/straight-rail-horizontal-metals.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/entities/wood_products/straight-rail-wood/straight-rail-horizontal-metals.png rename to Bio_Industries_1.4.2/graphics/entities/wood_products/straight-rail-wood/straight-rail-horizontal-metals.png diff --git a/Bio_Industries_1.4.0/graphics/entities/wood_products/straight-rail-wood/straight-rail-horizontal-stone-path.png b/Bio_Industries_1.4.2/graphics/entities/wood_products/straight-rail-wood/straight-rail-horizontal-stone-path.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/entities/wood_products/straight-rail-wood/straight-rail-horizontal-stone-path.png rename to Bio_Industries_1.4.2/graphics/entities/wood_products/straight-rail-wood/straight-rail-horizontal-stone-path.png diff --git a/Bio_Industries_1.4.0/graphics/entities/wood_products/straight-rail-wood/straight-rail-horizontal-ties-remnants.png b/Bio_Industries_1.4.2/graphics/entities/wood_products/straight-rail-wood/straight-rail-horizontal-ties-remnants.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/entities/wood_products/straight-rail-wood/straight-rail-horizontal-ties-remnants.png rename to Bio_Industries_1.4.2/graphics/entities/wood_products/straight-rail-wood/straight-rail-horizontal-ties-remnants.png diff --git a/Bio_Industries_1.4.0/graphics/entities/wood_products/straight-rail-wood/straight-rail-horizontal-ties.png b/Bio_Industries_1.4.2/graphics/entities/wood_products/straight-rail-wood/straight-rail-horizontal-ties.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/entities/wood_products/straight-rail-wood/straight-rail-horizontal-ties.png rename to Bio_Industries_1.4.2/graphics/entities/wood_products/straight-rail-wood/straight-rail-horizontal-ties.png diff --git a/Bio_Industries_1.4.0/graphics/entities/wood_products/straight-rail-wood/straight-rail-vertical-backplates.png b/Bio_Industries_1.4.2/graphics/entities/wood_products/straight-rail-wood/straight-rail-vertical-backplates.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/entities/wood_products/straight-rail-wood/straight-rail-vertical-backplates.png rename to Bio_Industries_1.4.2/graphics/entities/wood_products/straight-rail-wood/straight-rail-vertical-backplates.png diff --git a/Bio_Industries_1.4.0/graphics/entities/wood_products/straight-rail-wood/straight-rail-vertical-metals-remnants.png b/Bio_Industries_1.4.2/graphics/entities/wood_products/straight-rail-wood/straight-rail-vertical-metals-remnants.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/entities/wood_products/straight-rail-wood/straight-rail-vertical-metals-remnants.png rename to Bio_Industries_1.4.2/graphics/entities/wood_products/straight-rail-wood/straight-rail-vertical-metals-remnants.png diff --git a/Bio_Industries_1.4.0/graphics/entities/wood_products/straight-rail-wood/straight-rail-vertical-metals.png b/Bio_Industries_1.4.2/graphics/entities/wood_products/straight-rail-wood/straight-rail-vertical-metals.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/entities/wood_products/straight-rail-wood/straight-rail-vertical-metals.png rename to Bio_Industries_1.4.2/graphics/entities/wood_products/straight-rail-wood/straight-rail-vertical-metals.png diff --git a/Bio_Industries_1.4.0/graphics/entities/wood_products/straight-rail-wood/straight-rail-vertical-stone-path.png b/Bio_Industries_1.4.2/graphics/entities/wood_products/straight-rail-wood/straight-rail-vertical-stone-path.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/entities/wood_products/straight-rail-wood/straight-rail-vertical-stone-path.png rename to Bio_Industries_1.4.2/graphics/entities/wood_products/straight-rail-wood/straight-rail-vertical-stone-path.png diff --git a/Bio_Industries_1.4.0/graphics/entities/wood_products/straight-rail-wood/straight-rail-vertical-ties-remnants.png b/Bio_Industries_1.4.2/graphics/entities/wood_products/straight-rail-wood/straight-rail-vertical-ties-remnants.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/entities/wood_products/straight-rail-wood/straight-rail-vertical-ties-remnants.png rename to Bio_Industries_1.4.2/graphics/entities/wood_products/straight-rail-wood/straight-rail-vertical-ties-remnants.png diff --git a/Bio_Industries_1.4.0/graphics/entities/wood_products/straight-rail-wood/straight-rail-vertical-ties.png b/Bio_Industries_1.4.2/graphics/entities/wood_products/straight-rail-wood/straight-rail-vertical-ties.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/entities/wood_products/straight-rail-wood/straight-rail-vertical-ties.png rename to Bio_Industries_1.4.2/graphics/entities/wood_products/straight-rail-wood/straight-rail-vertical-ties.png diff --git a/Bio_Industries_1.4.0/graphics/entities/wood_products/wood-inner-corner.png b/Bio_Industries_1.4.2/graphics/entities/wood_products/wood-inner-corner.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/entities/wood_products/wood-inner-corner.png rename to Bio_Industries_1.4.2/graphics/entities/wood_products/wood-inner-corner.png diff --git a/Bio_Industries_1.4.0/graphics/entities/wood_products/wood-o.png b/Bio_Industries_1.4.2/graphics/entities/wood_products/wood-o.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/entities/wood_products/wood-o.png rename to Bio_Industries_1.4.2/graphics/entities/wood_products/wood-o.png diff --git a/Bio_Industries_1.4.0/graphics/entities/wood_products/wood-outer-corner.png b/Bio_Industries_1.4.2/graphics/entities/wood_products/wood-outer-corner.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/entities/wood_products/wood-outer-corner.png rename to Bio_Industries_1.4.2/graphics/entities/wood_products/wood-outer-corner.png diff --git a/Bio_Industries_1.4.0/graphics/entities/wood_products/wood-side.png b/Bio_Industries_1.4.2/graphics/entities/wood_products/wood-side.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/entities/wood_products/wood-side.png rename to Bio_Industries_1.4.2/graphics/entities/wood_products/wood-side.png diff --git a/Bio_Industries_1.4.0/graphics/entities/wood_products/wood-u.png b/Bio_Industries_1.4.2/graphics/entities/wood_products/wood-u.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/entities/wood_products/wood-u.png rename to Bio_Industries_1.4.2/graphics/entities/wood_products/wood-u.png diff --git a/Bio_Industries_1.4.0/graphics/entities/wood_products/wood1.png b/Bio_Industries_1.4.2/graphics/entities/wood_products/wood1.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/entities/wood_products/wood1.png rename to Bio_Industries_1.4.2/graphics/entities/wood_products/wood1.png diff --git a/Bio_Industries_1.4.0/graphics/entities/wood_products/wood2.png b/Bio_Industries_1.4.2/graphics/entities/wood_products/wood2.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/entities/wood_products/wood2.png rename to Bio_Industries_1.4.2/graphics/entities/wood_products/wood2.png diff --git a/Bio_Industries_1.4.0/graphics/entities/wood_products/wooden-fence.png b/Bio_Industries_1.4.2/graphics/entities/wood_products/wooden-fence.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/entities/wood_products/wooden-fence.png rename to Bio_Industries_1.4.2/graphics/entities/wood_products/wooden-fence.png diff --git a/Bio_Industries_1.4.0/graphics/icons/Bio_Farm_Cabeling.png b/Bio_Industries_1.4.2/graphics/icons/Bio_Farm_Cabeling.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/icons/Bio_Farm_Cabeling.png rename to Bio_Industries_1.4.2/graphics/icons/Bio_Farm_Cabeling.png diff --git a/Bio_Industries_1.4.0/graphics/icons/Bio_Farm_Icon.png b/Bio_Industries_1.4.2/graphics/icons/Bio_Farm_Icon.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/icons/Bio_Farm_Icon.png rename to Bio_Industries_1.4.2/graphics/icons/Bio_Farm_Icon.png diff --git a/Bio_Industries_1.4.0/graphics/icons/Bio_Farm_Lamp.png b/Bio_Industries_1.4.2/graphics/icons/Bio_Farm_Lamp.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/icons/Bio_Farm_Lamp.png rename to Bio_Industries_1.4.2/graphics/icons/Bio_Farm_Lamp.png diff --git a/Bio_Industries_1.4.0/graphics/icons/Bio_Farm_Solar.png b/Bio_Industries_1.4.2/graphics/icons/Bio_Farm_Solar.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/icons/Bio_Farm_Solar.png rename to Bio_Industries_1.4.2/graphics/icons/Bio_Farm_Solar.png diff --git a/Bio_Industries_1.4.0/graphics/icons/Bio_Solar_Farm_Icon.png b/Bio_Industries_1.4.2/graphics/icons/Bio_Solar_Farm_Icon.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/icons/Bio_Solar_Farm_Icon.png rename to Bio_Industries_1.4.2/graphics/icons/Bio_Solar_Farm_Icon.png diff --git a/Bio_Industries_1.4.0/graphics/icons/Clean_Air2.png b/Bio_Industries_1.4.2/graphics/icons/Clean_Air2.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/icons/Clean_Air2.png rename to Bio_Industries_1.4.2/graphics/icons/Clean_Air2.png diff --git a/Bio_Industries_1.4.0/graphics/icons/Seedling.png b/Bio_Industries_1.4.2/graphics/icons/Seedling.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/icons/Seedling.png rename to Bio_Industries_1.4.2/graphics/icons/Seedling.png diff --git a/Bio_Industries_1.4.0/graphics/icons/Seedling_a.png b/Bio_Industries_1.4.2/graphics/icons/Seedling_a.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/icons/Seedling_a.png rename to Bio_Industries_1.4.2/graphics/icons/Seedling_a.png diff --git a/Bio_Industries_1.4.0/graphics/icons/Seedling_b.png b/Bio_Industries_1.4.2/graphics/icons/Seedling_b.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/icons/Seedling_b.png rename to Bio_Industries_1.4.2/graphics/icons/Seedling_b.png diff --git a/Bio_Industries_1.4.0/graphics/icons/Woodpulp_32.png b/Bio_Industries_1.4.2/graphics/icons/Woodpulp_32.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/icons/Woodpulp_32.png rename to Bio_Industries_1.4.2/graphics/icons/Woodpulp_32.png diff --git a/Bio_Industries_1.4.0/graphics/icons/advanced_fertiliser_32.png b/Bio_Industries_1.4.2/graphics/icons/advanced_fertiliser_32.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/icons/advanced_fertiliser_32.png rename to Bio_Industries_1.4.2/graphics/icons/advanced_fertiliser_32.png diff --git a/Bio_Industries_1.4.0/graphics/icons/ash.png b/Bio_Industries_1.4.2/graphics/icons/ash.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/icons/ash.png rename to Bio_Industries_1.4.2/graphics/icons/ash.png diff --git a/Bio_Industries_1.4.0/graphics/icons/ash_raw-wood.png b/Bio_Industries_1.4.2/graphics/icons/ash_raw-wood.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/icons/ash_raw-wood.png rename to Bio_Industries_1.4.2/graphics/icons/ash_raw-wood.png diff --git a/Bio_Industries_1.4.0/graphics/icons/ash_woodpulp.png b/Bio_Industries_1.4.2/graphics/icons/ash_woodpulp.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/icons/ash_woodpulp.png rename to Bio_Industries_1.4.2/graphics/icons/ash_woodpulp.png diff --git a/Bio_Industries_1.4.0/graphics/icons/big-wooden-pole.png b/Bio_Industries_1.4.2/graphics/icons/big-wooden-pole.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/icons/big-wooden-pole.png rename to Bio_Industries_1.4.2/graphics/icons/big-wooden-pole.png diff --git a/Bio_Industries_1.4.0/graphics/icons/bio-fuel.png b/Bio_Industries_1.4.2/graphics/icons/bio-fuel.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/icons/bio-fuel.png rename to Bio_Industries_1.4.2/graphics/icons/bio-fuel.png diff --git a/Bio_Industries_1.4.0/graphics/icons/bio_conversion.png b/Bio_Industries_1.4.2/graphics/icons/bio_conversion.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/icons/bio_conversion.png rename to Bio_Industries_1.4.2/graphics/icons/bio_conversion.png diff --git a/Bio_Industries_1.4.0/graphics/icons/bio_garden_icon.png b/Bio_Industries_1.4.2/graphics/icons/bio_garden_icon.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/icons/bio_garden_icon.png rename to Bio_Industries_1.4.2/graphics/icons/bio_garden_icon.png diff --git a/Bio_Industries_1.4.0/graphics/icons/biocannon_icon.png b/Bio_Industries_1.4.2/graphics/icons/biocannon_icon.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/icons/biocannon_icon.png rename to Bio_Industries_1.4.2/graphics/icons/biocannon_icon.png diff --git a/Bio_Industries_1.4.0/graphics/icons/biomass.png b/Bio_Industries_1.4.2/graphics/icons/biomass.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/icons/biomass.png rename to Bio_Industries_1.4.2/graphics/icons/biomass.png diff --git a/Bio_Industries_1.4.0/graphics/icons/bioreactor.png b/Bio_Industries_1.4.2/graphics/icons/bioreactor.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/icons/bioreactor.png rename to Bio_Industries_1.4.2/graphics/icons/bioreactor.png diff --git a/Bio_Industries_1.4.0/graphics/icons/burner-mining-drill_disassemble.png b/Bio_Industries_1.4.2/graphics/icons/burner-mining-drill_disassemble.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/icons/burner-mining-drill_disassemble.png rename to Bio_Industries_1.4.2/graphics/icons/burner-mining-drill_disassemble.png diff --git a/Bio_Industries_1.4.0/graphics/icons/cellulose.png b/Bio_Industries_1.4.2/graphics/icons/cellulose.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/icons/cellulose.png rename to Bio_Industries_1.4.2/graphics/icons/cellulose.png diff --git a/Bio_Industries_1.4.0/graphics/icons/charcoal.png b/Bio_Industries_1.4.2/graphics/icons/charcoal.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/icons/charcoal.png rename to Bio_Industries_1.4.2/graphics/icons/charcoal.png diff --git a/Bio_Industries_1.4.0/graphics/icons/charcoal_raw-wood.png b/Bio_Industries_1.4.2/graphics/icons/charcoal_raw-wood.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/icons/charcoal_raw-wood.png rename to Bio_Industries_1.4.2/graphics/icons/charcoal_raw-wood.png diff --git a/Bio_Industries_1.4.0/graphics/icons/charcoal_woodpulp.png b/Bio_Industries_1.4.2/graphics/icons/charcoal_woodpulp.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/icons/charcoal_woodpulp.png rename to Bio_Industries_1.4.2/graphics/icons/charcoal_woodpulp.png diff --git a/Bio_Industries_1.4.0/graphics/icons/clean-air.png b/Bio_Industries_1.4.2/graphics/icons/clean-air.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/icons/clean-air.png rename to Bio_Industries_1.4.2/graphics/icons/clean-air.png diff --git a/Bio_Industries_1.4.0/graphics/icons/clean-air_mk1.png b/Bio_Industries_1.4.2/graphics/icons/clean-air_mk1.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/icons/clean-air_mk1.png rename to Bio_Industries_1.4.2/graphics/icons/clean-air_mk1.png diff --git a/Bio_Industries_1.4.0/graphics/icons/clean-air_mk2.png b/Bio_Industries_1.4.2/graphics/icons/clean-air_mk2.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/icons/clean-air_mk2.png rename to Bio_Industries_1.4.2/graphics/icons/clean-air_mk2.png diff --git a/Bio_Industries_1.4.0/graphics/icons/coal_mk1.png b/Bio_Industries_1.4.2/graphics/icons/coal_mk1.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/icons/coal_mk1.png rename to Bio_Industries_1.4.2/graphics/icons/coal_mk1.png diff --git a/Bio_Industries_1.4.0/graphics/icons/coal_mk2.png b/Bio_Industries_1.4.2/graphics/icons/coal_mk2.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/icons/coal_mk2.png rename to Bio_Industries_1.4.2/graphics/icons/coal_mk2.png diff --git a/Bio_Industries_1.4.0/graphics/icons/coke-coal.png b/Bio_Industries_1.4.2/graphics/icons/coke-coal.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/icons/coke-coal.png rename to Bio_Industries_1.4.2/graphics/icons/coke-coal.png diff --git a/Bio_Industries_1.4.0/graphics/icons/cokery.png b/Bio_Industries_1.4.2/graphics/icons/cokery.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/icons/cokery.png rename to Bio_Industries_1.4.2/graphics/icons/cokery.png diff --git a/Bio_Industries_1.4.0/graphics/icons/crushed-stone.png b/Bio_Industries_1.4.2/graphics/icons/crushed-stone.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/icons/crushed-stone.png rename to Bio_Industries_1.4.2/graphics/icons/crushed-stone.png diff --git a/Bio_Industries_1.4.0/graphics/icons/curved-rail-concrete.png b/Bio_Industries_1.4.2/graphics/icons/curved-rail-concrete.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/icons/curved-rail-concrete.png rename to Bio_Industries_1.4.2/graphics/icons/curved-rail-concrete.png diff --git a/Bio_Industries_1.4.0/graphics/icons/curved-rail-wood.png b/Bio_Industries_1.4.2/graphics/icons/curved-rail-wood.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/icons/curved-rail-wood.png rename to Bio_Industries_1.4.2/graphics/icons/curved-rail-wood.png diff --git a/Bio_Industries_1.4.0/graphics/icons/empty.png b/Bio_Industries_1.4.2/graphics/icons/empty.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/icons/empty.png rename to Bio_Industries_1.4.2/graphics/icons/empty.png diff --git a/Bio_Industries_1.4.0/graphics/icons/fertiliser_32.png b/Bio_Industries_1.4.2/graphics/icons/fertiliser_32.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/icons/fertiliser_32.png rename to Bio_Industries_1.4.2/graphics/icons/fertiliser_32.png diff --git a/Bio_Industries_1.4.0/graphics/icons/fertiliser_sodium-hydroxide.png b/Bio_Industries_1.4.2/graphics/icons/fertiliser_sodium-hydroxide.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/icons/fertiliser_sodium-hydroxide.png rename to Bio_Industries_1.4.2/graphics/icons/fertiliser_sodium-hydroxide.png diff --git a/Bio_Industries_1.4.0/graphics/icons/fertiliser_sulfur.png b/Bio_Industries_1.4.2/graphics/icons/fertiliser_sulfur.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/icons/fertiliser_sulfur.png rename to Bio_Industries_1.4.2/graphics/icons/fertiliser_sulfur.png diff --git a/Bio_Industries_1.4.0/graphics/icons/liquid-air.png b/Bio_Industries_1.4.2/graphics/icons/liquid-air.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/icons/liquid-air.png rename to Bio_Industries_1.4.2/graphics/icons/liquid-air.png diff --git a/Bio_Industries_1.4.0/graphics/icons/liquid-air_alt.png b/Bio_Industries_1.4.2/graphics/icons/liquid-air_alt.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/icons/liquid-air_alt.png rename to Bio_Industries_1.4.2/graphics/icons/liquid-air_alt.png diff --git a/Bio_Industries_1.4.0/graphics/icons/liquid-co2.png b/Bio_Industries_1.4.2/graphics/icons/liquid-co2.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/icons/liquid-co2.png rename to Bio_Industries_1.4.2/graphics/icons/liquid-co2.png diff --git a/Bio_Industries_1.4.0/graphics/icons/liquid-nitrogen.png b/Bio_Industries_1.4.2/graphics/icons/liquid-nitrogen.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/icons/liquid-nitrogen.png rename to Bio_Industries_1.4.2/graphics/icons/liquid-nitrogen.png diff --git a/Bio_Industries_1.4.0/graphics/icons/nitrogen.png b/Bio_Industries_1.4.2/graphics/icons/nitrogen.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/icons/nitrogen.png rename to Bio_Industries_1.4.2/graphics/icons/nitrogen.png diff --git a/Bio_Industries_1.4.0/graphics/icons/phosphate.png b/Bio_Industries_1.4.2/graphics/icons/phosphate.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/icons/phosphate.png rename to Bio_Industries_1.4.2/graphics/icons/phosphate.png diff --git a/Bio_Industries_1.4.0/graphics/icons/potassium.png b/Bio_Industries_1.4.2/graphics/icons/potassium.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/icons/potassium.png rename to Bio_Industries_1.4.2/graphics/icons/potassium.png diff --git a/Bio_Industries_1.4.0/graphics/icons/rail-concrete.png b/Bio_Industries_1.4.2/graphics/icons/rail-concrete.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/icons/rail-concrete.png rename to Bio_Industries_1.4.2/graphics/icons/rail-concrete.png diff --git a/Bio_Industries_1.4.0/graphics/icons/rail-wood.png b/Bio_Industries_1.4.2/graphics/icons/rail-wood.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/icons/rail-wood.png rename to Bio_Industries_1.4.2/graphics/icons/rail-wood.png diff --git a/Bio_Industries_1.4.0/graphics/icons/raw-wood-mk1.png b/Bio_Industries_1.4.2/graphics/icons/raw-wood-mk1.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/icons/raw-wood-mk1.png rename to Bio_Industries_1.4.2/graphics/icons/raw-wood-mk1.png diff --git a/Bio_Industries_1.4.0/graphics/icons/raw-wood-mk2.png b/Bio_Industries_1.4.2/graphics/icons/raw-wood-mk2.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/icons/raw-wood-mk2.png rename to Bio_Industries_1.4.2/graphics/icons/raw-wood-mk2.png diff --git a/Bio_Industries_1.4.0/graphics/icons/raw-wood-mk3.png b/Bio_Industries_1.4.2/graphics/icons/raw-wood-mk3.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/icons/raw-wood-mk3.png rename to Bio_Industries_1.4.2/graphics/icons/raw-wood-mk3.png diff --git a/Bio_Industries_1.4.0/graphics/icons/raw-wood.png b/Bio_Industries_1.4.2/graphics/icons/raw-wood.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/icons/raw-wood.png rename to Bio_Industries_1.4.2/graphics/icons/raw-wood.png diff --git a/Bio_Industries_1.4.0/graphics/icons/solar-panel.png b/Bio_Industries_1.4.2/graphics/icons/solar-panel.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/icons/solar-panel.png rename to Bio_Industries_1.4.2/graphics/icons/solar-panel.png diff --git a/Bio_Industries_1.4.0/graphics/icons/steel-furnace_disassemble.png b/Bio_Industries_1.4.2/graphics/icons/steel-furnace_disassemble.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/icons/steel-furnace_disassemble.png rename to Bio_Industries_1.4.2/graphics/icons/steel-furnace_disassemble.png diff --git a/Bio_Industries_1.4.0/graphics/icons/stone-crusher.png b/Bio_Industries_1.4.2/graphics/icons/stone-crusher.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/icons/stone-crusher.png rename to Bio_Industries_1.4.2/graphics/icons/stone-crusher.png diff --git a/Bio_Industries_1.4.0/graphics/icons/straight-rail-concrete.png b/Bio_Industries_1.4.2/graphics/icons/straight-rail-concrete.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/icons/straight-rail-concrete.png rename to Bio_Industries_1.4.2/graphics/icons/straight-rail-concrete.png diff --git a/Bio_Industries_1.4.0/graphics/icons/straight-rail-wood.png b/Bio_Industries_1.4.2/graphics/icons/straight-rail-wood.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/icons/straight-rail-wood.png rename to Bio_Industries_1.4.2/graphics/icons/straight-rail-wood.png diff --git a/Bio_Industries_1.4.0/graphics/icons/wooden-fence.png b/Bio_Industries_1.4.2/graphics/icons/wooden-fence.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/icons/wooden-fence.png rename to Bio_Industries_1.4.2/graphics/icons/wooden-fence.png diff --git a/Bio_Industries_1.4.0/graphics/technology/Bio_Cannon.png b/Bio_Industries_1.4.2/graphics/technology/Bio_Cannon.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/technology/Bio_Cannon.png rename to Bio_Industries_1.4.2/graphics/technology/Bio_Cannon.png diff --git a/Bio_Industries_1.4.0/graphics/technology/Bio_Farm_Tech_128.png b/Bio_Industries_1.4.2/graphics/technology/Bio_Farm_Tech_128.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/technology/Bio_Farm_Tech_128.png rename to Bio_Industries_1.4.2/graphics/technology/Bio_Farm_Tech_128.png diff --git a/Bio_Industries_1.4.0/graphics/technology/Biomass_128.png b/Bio_Industries_1.4.2/graphics/technology/Biomass_128.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/technology/Biomass_128.png rename to Bio_Industries_1.4.2/graphics/technology/Biomass_128.png diff --git a/Bio_Industries_1.4.0/graphics/technology/Cellulose_128.png b/Bio_Industries_1.4.2/graphics/technology/Cellulose_128.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/technology/Cellulose_128.png rename to Bio_Industries_1.4.2/graphics/technology/Cellulose_128.png diff --git a/Bio_Industries_1.4.0/graphics/technology/Coal_128.png b/Bio_Industries_1.4.2/graphics/technology/Coal_128.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/technology/Coal_128.png rename to Bio_Industries_1.4.2/graphics/technology/Coal_128.png diff --git a/Bio_Industries_1.4.0/graphics/technology/Fertiliser_128.png b/Bio_Industries_1.4.2/graphics/technology/Fertiliser_128.png similarity index 100% rename from Bio_Industries_1.4.0/graphics/technology/Fertiliser_128.png rename to Bio_Industries_1.4.2/graphics/technology/Fertiliser_128.png diff --git a/Bio_Industries_1.4.0/info.json b/Bio_Industries_1.4.2/info.json similarity index 95% rename from Bio_Industries_1.4.0/info.json rename to Bio_Industries_1.4.2/info.json index 43edcb3..488a3b5 100644 --- a/Bio_Industries_1.4.0/info.json +++ b/Bio_Industries_1.4.2/info.json @@ -1,11 +1,11 @@ -{ - "name": "Bio_Industries", - "version": "1.4.0", - "title": "Bio Industries", - "author": "TheSAguy", - "contact": "vvwmisc@hotmail.com", - "homepage": "https://forums.factorio.com/viewtopic.php?f=93&t=17548", - "description": "Bio Industries provides some useful buildings and items to the game. Bio Farm for growing trees. Bio-Garden to reduce pollution. New Wood Products. Bio Cannon to help with expansion. planting trees. fertilize terrain to help trees grow and more. You get additional functionality when you play with Natural Evolution Buildings. Please visit the homepage on the forums for more information and feedback.", - "dependencies": ["base >= 0.14", "? bobgreenhouse"], - "factorio_version": "0.14" +{ + "name": "Bio_Industries", + "version": "1.4.2", + "title": "Bio Industries", + "author": "TheSAguy", + "contact": "vvwmisc@hotmail.com", + "homepage": "https://forums.factorio.com/viewtopic.php?f=93&t=17548", + "description": "Bio Industries provides some useful buildings and items to the game. Bio Farm for growing trees. Bio-Garden to reduce pollution. New Wood Products. Bio Cannon to help with expansion. planting trees. fertilize terrain to help trees grow and more. You get additional functionality when you play with Natural Evolution Buildings. Please visit the homepage on the forums for more information and feedback.", + "dependencies": ["base >= 0.14", "? bobgreenhouse"], + "factorio_version": "0.14" } \ No newline at end of file diff --git a/Natural_Evolution_Expansion_6.3.0/libs/core.lua b/Bio_Industries_1.4.2/libs/core.lua similarity index 95% rename from Natural_Evolution_Expansion_6.3.0/libs/core.lua rename to Bio_Industries_1.4.2/libs/core.lua index c2e784d..815db47 100644 --- a/Natural_Evolution_Expansion_6.3.0/libs/core.lua +++ b/Bio_Industries_1.4.2/libs/core.lua @@ -1,16 +1,16 @@ ---- Core module --- @module core - ---- Errors if the variable evaluates to false, with an optional msg --- @param var variable to evaluate --- @param msg (optional) message -function fail_if_missing(var, msg) - if not var then - if msg then - error(msg, 3) - else - error("Missing value", 3) - end - end - return false -end +--- Core module +-- @module core + +--- Errors if the variable evaluates to false, with an optional msg +-- @param var variable to evaluate +-- @param msg (optional) message +function fail_if_missing(var, msg) + if not var then + if msg then + error(msg, 3) + else + error("Missing value", 3) + end + end + return false +end diff --git a/Bio_Industries_1.4.0/libs/detectmod.lua b/Bio_Industries_1.4.2/libs/detectmod.lua similarity index 96% rename from Bio_Industries_1.4.0/libs/detectmod.lua rename to Bio_Industries_1.4.2/libs/detectmod.lua index eb206d2..fa62897 100644 --- a/Bio_Industries_1.4.0/libs/detectmod.lua +++ b/Bio_Industries_1.4.2/libs/detectmod.lua @@ -1,52 +1,52 @@ -------------------------- --- Cross Mod Detection -- -------------------------- - -if not BI_Config then BI_Config = {} end -if not BI_Config.mod then BI_Config.mod = {} end - - ---------------------------- - ---Detect N.E. Buildings -if data.raw["radar"]["AlienControlStation"] ~= nil and data.raw["assembling-machine"]["Alien_Hatchery"] ~= nil then - BI_Config.mod.NEBuildings=true -else - BI_Config.mod.NEBuildings=false -end - ---Detect DyTechWar -if data.raw["unit"]["young-berserk-biter"] ~= nil and data.raw["unit"]["young-berserk-spitter"] ~= nil then - BI_Config.mod.DyTechWar=true -else - BI_Config.mod.DyTechWar=false -end - ---Detect DyTech Core -if data.raw["item"]["stone-gear-wheel"] ~= nil then - BI_Config.mod.DyTechCore=true -else - BI_Config.mod.DyTechCore=false -end - ---Detect Bob's Enemies -if data.raw["unit"]["bob-big-piercing-biter"] ~= nil and data.raw["unit"]["bob-big-electric-spitter"] ~= nil then - BI_Config.mod.BobEnemies=true -else - BI_Config.mod.BobEnemies=false -end - ---Detect Supreme Warfare -if data.raw["technology"]["artillery"] ~= nil and data.raw["technology"]["advanced-artillery"] ~= nil then - BI_Config.mod.SupremeWarfare=true -else - BI_Config.mod.SupremeWarfare=false -end - - ---Detect N.E. Enemies -if data.raw["unit"]["small-biter-Mk2"] ~= nil or data.raw["unit"]["small-spitter-Mk2"] ~= nil or data.raw["logistic-container"]["Artifact-collector-area"] ~= nil then - BI_Config.mod.NEEnemies=true -else - BI_Config.mod.NEEnemies=false -end +------------------------- +-- Cross Mod Detection -- +------------------------- + +if not BI_Config then BI_Config = {} end +if not BI_Config.mod then BI_Config.mod = {} end + + +--------------------------- + +--Detect N.E. Buildings +if data.raw["radar"]["AlienControlStation"] ~= nil and data.raw["assembling-machine"]["Alien_Hatchery"] ~= nil then + BI_Config.mod.NEBuildings=true +else + BI_Config.mod.NEBuildings=false +end + +--Detect DyTechWar +if data.raw["unit"]["young-berserk-biter"] ~= nil and data.raw["unit"]["young-berserk-spitter"] ~= nil then + BI_Config.mod.DyTechWar=true +else + BI_Config.mod.DyTechWar=false +end + +--Detect DyTech Core +if data.raw["item"]["stone-gear-wheel"] ~= nil then + BI_Config.mod.DyTechCore=true +else + BI_Config.mod.DyTechCore=false +end + +--Detect Bob's Enemies +if data.raw["unit"]["bob-big-piercing-biter"] ~= nil and data.raw["unit"]["bob-big-electric-spitter"] ~= nil then + BI_Config.mod.BobEnemies=true +else + BI_Config.mod.BobEnemies=false +end + +--Detect Supreme Warfare +if data.raw["technology"]["artillery"] ~= nil and data.raw["technology"]["advanced-artillery"] ~= nil then + BI_Config.mod.SupremeWarfare=true +else + BI_Config.mod.SupremeWarfare=false +end + + +--Detect N.E. Enemies +if data.raw["unit"]["small-biter-Mk2"] ~= nil or data.raw["unit"]["small-spitter-Mk2"] ~= nil or data.raw["logistic-container"]["Artifact-collector-area"] ~= nil then + BI_Config.mod.NEEnemies=true +else + BI_Config.mod.NEEnemies=false +end diff --git a/Natural_Evolution_Expansion_6.3.0/libs/event.lua b/Bio_Industries_1.4.2/libs/event.lua similarity index 96% rename from Natural_Evolution_Expansion_6.3.0/libs/event.lua rename to Bio_Industries_1.4.2/libs/event.lua index bd2a4de..1a985d7 100644 --- a/Natural_Evolution_Expansion_6.3.0/libs/event.lua +++ b/Bio_Industries_1.4.2/libs/event.lua @@ -1,129 +1,129 @@ ---- Event module --- @module Event - - -require ("libs/core") -require ("libs/game") - - -Event = { - _registry = {}, - core_events = { - init = -1, - load = -2, - configuration_changed = -3, - _lookup_name = function(lookup_id) - for name, id in pairs(Event.core_events) do - if lookup_id == id then - return name - end - end - return lookup_id - end, - _register = function(id) - if id == Event.core_events.init then - script.on_init(function() - Event.dispatch({name = Event.core_events.init, tick = game.tick}) - end) - elseif id == Event.core_events.load then - script.on_load(function() - Event.dispatch({name = Event.core_events.load, tick = -1}) - end) - elseif id == Event.core_events.configuration_changed then - script.on_configuration_changed(function(data) - Event.dispatch({name = Event.core_events.configuration_changed, tick = game.tick, data = data}) - end) - end - end - } -} - ---- Registers a function for a given event --- @param event or array containing events to register --- @param handler Function to call when event is triggered --- @return #Event -function Event.register(event, handler) - fail_if_missing(event, "missing event argument") - - if type(event) == "number" then - event = {event} - end - - for _, event_id in pairs(event) do - fail_if_missing(event_id, "missing event id") - if handler == nil then - Event._registry[event_id] = nil - script.on_event(event_id, nil) - else - if not Event._registry[event_id] then - Event._registry[event_id] = {} - - if event_id >= 0 then - script.on_event(event_id, Event.dispatch) - else - Event.core_events._register(event_id) - end - end - table.insert(Event._registry[event_id], handler) - end - end - return Event -end - ---- Calls the registerd handlers --- @param event LuaEvent as created by game.raise_event -function Event.dispatch(event) - fail_if_missing(event, "missing event argument") - - if Event._registry[event.name] then - for _, handler in pairs(Event._registry[event.name]) do - local metatbl = { __index = function(tbl, key) if key == '_handler' then return handler else return rawget(tbl, key) end end } - setmetatable(event, metatbl) - local success, err = pcall(handler, event) - if not success then - -- may be nil in on_load - if _G.game then - Game.print_all(err) - else - -- no way to handle errors cleanly when the game is not up - error(err) - end - return - end - if err then - return - end - end - end -end - ---- Removes the handler from the event --- @param event event or array containing events to remove the handler --- @param handler to remove --- @return #Event -function Event.remove(event, handler) - fail_if_missing(event, "missing event argument") - fail_if_missing(handler, "missing handler argument") - - if type(event) == "number" then - event = {event} - end - - for _, event_id in pairs(event) do - fail_if_missing(event_id, "missing event id") - if Event._registry[event_id] then - for i=#Event._registry[event_id], 1, -1 do - if Event._registry[event_id][i] == handler then - table.remove(Event._registry[event_id], i) - end - end - if #Event._registry[event_id] == 0 then - Event._registry[event_id] = nil - script.on_event(event_id, nil) - end - end - end - return Event -end - -return Event +--- Event module +-- @module Event + + +require ("libs/core") +require ("libs/game") + + +Event = { + _registry = {}, + core_events = { + init = -1, + load = -2, + configuration_changed = -3, + _lookup_name = function(lookup_id) + for name, id in pairs(Event.core_events) do + if lookup_id == id then + return name + end + end + return lookup_id + end, + _register = function(id) + if id == Event.core_events.init then + script.on_init(function() + Event.dispatch({name = Event.core_events.init, tick = game.tick}) + end) + elseif id == Event.core_events.load then + script.on_load(function() + Event.dispatch({name = Event.core_events.load, tick = -1}) + end) + elseif id == Event.core_events.configuration_changed then + script.on_configuration_changed(function(data) + Event.dispatch({name = Event.core_events.configuration_changed, tick = game.tick, data = data}) + end) + end + end + } +} + +--- Registers a function for a given event +-- @param event or array containing events to register +-- @param handler Function to call when event is triggered +-- @return #Event +function Event.register(event, handler) + fail_if_missing(event, "missing event argument") + + if type(event) == "number" then + event = {event} + end + + for _, event_id in pairs(event) do + fail_if_missing(event_id, "missing event id") + if handler == nil then + Event._registry[event_id] = nil + script.on_event(event_id, nil) + else + if not Event._registry[event_id] then + Event._registry[event_id] = {} + + if event_id >= 0 then + script.on_event(event_id, Event.dispatch) + else + Event.core_events._register(event_id) + end + end + table.insert(Event._registry[event_id], handler) + end + end + return Event +end + +--- Calls the registerd handlers +-- @param event LuaEvent as created by game.raise_event +function Event.dispatch(event) + fail_if_missing(event, "missing event argument") + + if Event._registry[event.name] then + for _, handler in pairs(Event._registry[event.name]) do + local metatbl = { __index = function(tbl, key) if key == '_handler' then return handler else return rawget(tbl, key) end end } + setmetatable(event, metatbl) + local success, err = pcall(handler, event) + if not success then + -- may be nil in on_load + if _G.game then + Game.print_all(err) + else + -- no way to handle errors cleanly when the game is not up + error(err) + end + return + end + if err then + return + end + end + end +end + +--- Removes the handler from the event +-- @param event event or array containing events to remove the handler +-- @param handler to remove +-- @return #Event +function Event.remove(event, handler) + fail_if_missing(event, "missing event argument") + fail_if_missing(handler, "missing handler argument") + + if type(event) == "number" then + event = {event} + end + + for _, event_id in pairs(event) do + fail_if_missing(event_id, "missing event id") + if Event._registry[event_id] then + for i=#Event._registry[event_id], 1, -1 do + if Event._registry[event_id][i] == handler then + table.remove(Event._registry[event_id], i) + end + end + if #Event._registry[event_id] == 0 then + Event._registry[event_id] = nil + script.on_event(event_id, nil) + end + end + end + return Event +end + +return Event diff --git a/Natural_Evolution_Expansion_6.3.0/libs/functions.lua b/Bio_Industries_1.4.2/libs/functions.lua similarity index 97% rename from Natural_Evolution_Expansion_6.3.0/libs/functions.lua rename to Bio_Industries_1.4.2/libs/functions.lua index 56bdcb1..e87a40a 100644 --- a/Natural_Evolution_Expansion_6.3.0/libs/functions.lua +++ b/Bio_Industries_1.4.2/libs/functions.lua @@ -1,51 +1,51 @@ --- 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 - thxbob.lib.table_merge(table1[index], table2[index]) - else - table1[index] = value - end - end -end - - -function thxbob.lib.result_check(object) - if object then - if object.results == nil then - object.results = {} - end - - if object.result then - local item = thxbob.lib.item.basic_item({name = object.result}) - if object.result_count then - item.amount = object.result_count - object.result_count = nil - end - thxbob.lib.item.add_new(object.results, item) - - 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 - if not object.icon and data.raw[item.type][object.result].icon then - object.icon = data.raw[item.type][object.result].icon - end - if not object.subgroup 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].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 - log(object .. " does not exist.") - end -end - +-- 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 + thxbob.lib.table_merge(table1[index], table2[index]) + else + table1[index] = value + end + end +end + + +function thxbob.lib.result_check(object) + if object then + if object.results == nil then + object.results = {} + end + + if object.result then + local item = thxbob.lib.item.basic_item({name = object.result}) + if object.result_count then + item.amount = object.result_count + object.result_count = nil + end + thxbob.lib.item.add_new(object.results, item) + + 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 + if not object.icon and data.raw[item.type][object.result].icon then + object.icon = data.raw[item.type][object.result].icon + end + if not object.subgroup 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].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 + log(object .. " does not exist.") + end +end + diff --git a/Natural_Evolution_Expansion_6.3.0/libs/game.lua b/Bio_Industries_1.4.2/libs/game.lua similarity index 96% rename from Natural_Evolution_Expansion_6.3.0/libs/game.lua rename to Bio_Industries_1.4.2/libs/game.lua index 99c9ec5..c68ece6 100644 --- a/Natural_Evolution_Expansion_6.3.0/libs/game.lua +++ b/Bio_Industries_1.4.2/libs/game.lua @@ -1,58 +1,58 @@ ---- Game module --- @module game - -Game = {} -Game.VALID_FILTER = function(v) - return v.valid -end - ---- Messages all players currently connected to the game --- @param msg message to send to players --- @param condition (optional) optional condition to be true for the player to be messaged --- @return the number of players who received the message -function Game.print_all(msg, condition) - local num = 0 - for _, player in pairs(game.players) do - if player.valid and player.connected then - if condition == nil or select(2, pcall(condition, player)) then - player.print(msg) - num = num + 1 - end - end - end - return num -end - ---- Messages all players with the given force connected to the game --- @param force (may be force name string, or force object) the players with the given force to message --- @param msg message to send to players --- @return the number of players who received the message -function Game.print_force(force, msg) - local force_name - if type(force) == "string" then - force_name = force - else - force_name = force.name - end - return Game.print_all(msg, function(player) - return player.force.name == force_name - end) -end - ---- Messages all players with the given surface connected to the game --- @param surface the players with the given surface to message --- @param msg message to send to players --- @return the number of players who received the message -function Game.print_surface(surface, msg) - local surface_name - if type(surface) == "string" then - surface_name = surface - else - surface_name = surface.name - end - return Game.print_all(msg, function(player) - return player.surface.name == surface_name - end) -end - -return Game +--- Game module +-- @module game + +Game = {} +Game.VALID_FILTER = function(v) + return v.valid +end + +--- Messages all players currently connected to the game +-- @param msg message to send to players +-- @param condition (optional) optional condition to be true for the player to be messaged +-- @return the number of players who received the message +function Game.print_all(msg, condition) + local num = 0 + for _, player in pairs(game.players) do + if player.valid and player.connected then + if condition == nil or select(2, pcall(condition, player)) then + player.print(msg) + num = num + 1 + end + end + end + return num +end + +--- Messages all players with the given force connected to the game +-- @param force (may be force name string, or force object) the players with the given force to message +-- @param msg message to send to players +-- @return the number of players who received the message +function Game.print_force(force, msg) + local force_name + if type(force) == "string" then + force_name = force + else + force_name = force.name + end + return Game.print_all(msg, function(player) + return player.force.name == force_name + end) +end + +--- Messages all players with the given surface connected to the game +-- @param surface the players with the given surface to message +-- @param msg message to send to players +-- @return the number of players who received the message +function Game.print_surface(surface, msg) + local surface_name + if type(surface) == "string" then + surface_name = surface + else + surface_name = surface.name + end + return Game.print_all(msg, function(player) + return player.surface.name == surface_name + end) +end + +return Game diff --git a/Natural_Evolution_Enemies_6.3.0/libs/item-functions.lua b/Bio_Industries_1.4.2/libs/item-functions.lua similarity index 96% rename from Natural_Evolution_Enemies_6.3.0/libs/item-functions.lua rename to Bio_Industries_1.4.2/libs/item-functions.lua index c25b191..fb1db4d 100644 --- a/Natural_Evolution_Enemies_6.3.0/libs/item-functions.lua +++ b/Bio_Industries_1.4.2/libs/item-functions.lua @@ -1,149 +1,149 @@ -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"} - 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 - - 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 - object = 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 - - +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"} + 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 + + 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 + object = 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 + + diff --git a/Natural_Evolution_Buildings_6.3.0/libs/legacy.lua b/Bio_Industries_1.4.2/libs/legacy.lua similarity index 96% rename from Natural_Evolution_Buildings_6.3.0/libs/legacy.lua rename to Bio_Industries_1.4.2/libs/legacy.lua index 9c1fc8b..68d9c73 100644 --- a/Natural_Evolution_Buildings_6.3.0/libs/legacy.lua +++ b/Bio_Industries_1.4.2/libs/legacy.lua @@ -1,186 +1,186 @@ -function thxbob.lib.basic_item(inputs) - return thxbob.lib.item.basic_item(inputs) -end - ---[[ Cannot be used in legacy, due to new group conflict. -function thxbob.lib.item(inputs) - return thxbob.lib.item.item(inputs) -end -]]-- - -function thxbob.lib.get_item_type(name) - return thxbob.lib.item.get_type(name) -end - -function thxbob.lib.get_basic_item_type(name) - return thxbob.lib.item.get_basic_type(name) -end - -function thxbob.lib.combine_items(item1_in, item2_in) - return thxbob.lib.item.combine(item1_in, item2_in) -end - -function thxbob.lib.add_item(list, item_in) - thxbob.lib.item.add(list, item_in) --increments amount if exists -end - -function thxbob.lib.add_new_item(list, item_in) - thxbob.lib.item.add_new(list, item_in) --ignores if exists -end - -function thxbob.lib.remove_item(list, item) - thxbob.lib.item.remove(list, item) -end - - - -function thxbob.lib.replace_science_pack (technology, old, new) - thxbob.lib.tech.replace_science_pack (technology, old, new) -end - -function thxbob.lib.add_new_science_pack (technology, pack, amount) - thxbob.lib.tech.add_new_science_pack (technology, pack, amount) -end - -function thxbob.lib.add_science_pack (technology, pack, amount) - thxbob.lib.tech.add_science_pack (technology, pack, amount) -end - -function thxbob.lib.remove_science_pack (technology, pack) - thxbob.lib.tech.remove_science_pack (technology, pack) -end - -function thxbob.lib.add_technology_recipe (technology, recipe) - thxbob.lib.tech.add_recipe_unlock (technology, recipe) -end - -function thxbob.lib.remove_technology_recipe (technology, recipe) - thxbob.lib.tech.remove_recipe_unlock (technology, recipe) -end - -function thxbob.lib.replace_technology_prerequisite (technology, old, new) - thxbob.lib.tech.replace_prerequisite (technology, old, new) -end - -function thxbob.lib.add_technology_prerequisite (technology, prerequisite) - thxbob.lib.tech.add_prerequisite (technology, prerequisite) -end - -function thxbob.lib.remove_technology_prerequisite (technology, prerequisite) - thxbob.lib.tech.remove_prerequisite (technology, prerequisite) -end - - - -function thxbob.lib.add_productivity_limitation(intermediate) - thxbob.lib.module.add_productivity_limitation(intermediate) -end - -function thxbob.lib.add_productivity_limitations(intermediates) - thxbob.lib.module.add_productivity_limitations(intermediates) -end - - - -function thxbob.lib.replace_recipe_item (recipe, old, new) - thxbob.lib.recipe.replace_ingredient(recipe, old, new) -end - -function thxbob.lib.replace_recipe_item_crude (recipe, old, new) - thxbob.lib.recipe.replace_ingredient_crude(recipe, old, new) -end - -function thxbob.lib.replace_item_all_recipes (old, new) - thxbob.lib.recipe.replace_ingredient_in_all(old, new) -end - -function thxbob.lib.remove_recipe_item (recipe, item) - thxbob.lib.recipe.remove_ingredient(recipe, item) -end - -function thxbob.lib.add_new_recipe_item (recipe, item) - thxbob.lib.recipe.add_new_ingredient(recipe, item) -end - -function thxbob.lib.add_recipe_item (recipe, item) - thxbob.lib.recipe.add_ingredient(recipe, item) -end - -function thxbob.lib.add_recipe_result(recipe, item) - thxbob.lib.recipe.add_result(recipe, item) -end - -function thxbob.lib.remove_recipe_result(recipe, item) - thxbob.lib.recipe.remove_result(recipe, item) -end - - - -function thxbob.lib.create_autoplace(inputs) - return thxbob.lib.resource.create_autoplace(inputs) -end - -function thxbob.lib.autoplace_peak(inputs) - return thxbob.lib.resource.autoplace_peak(inputs) -end - -function thxbob.lib.add_autoplace_peak(inputs) - thxbob.lib.resource.add_autoplace_peak(inputs) -end - -function thxbob.lib.add_item_to_resource(resource, item) - thxbob.lib.resource.add_result(resource, item) -end - -function thxbob.lib.remove_item_from_resource(resource, item) - thxbob.lib.resource.remove_result(resource, item) -end - -function thxbob.lib.stage_counts(stages, mult) - return thxbob.lib.resource.stage_counts(stages, mult) -end - -function thxbob.lib.ore_sprite(inputs) - return thxbob.lib.resource.sprite(inputs) -end - -function thxbob.lib.create_ore_item(inputs) - thxbob.lib.resource.create_item(inputs) -end - -function thxbob.lib.create_ore_resource(inputs) - thxbob.lib.resource.create(inputs) -end - -function thxbob.lib.create_ore_particle(inputs) - thxbob.lib.resource.create_particle(inputs) -end - -function thxbob.lib.generate_ore_data_stage(inputs) - thxbob.lib.resource.generate_data_stage(inputs) -end - -function thxbob.lib.generate_ore_updates_stage(inputs) - thxbob.lib.resource.generate_updates_stage(inputs) -end - -function thxbob.lib.generate_ore(inputs) - thxbob.lib.resource.generate(inputs) -end - - - -function thxbob.lib.machine_has_category(machine, category_in) - return thxbob.lib.machine.has_category(machine, category_in) -end - -function thxbob.lib.machine_add_category(machine, category) - thxbob.lib.machine.add_category(machine, category) -end - -function thxbob.lib.machine_type_if_category_add_category(machine_type, category, category_to_add) - thxbob.lib.machine.type_if_add_category(machine_type, category, category_to_add) -end - - - +function thxbob.lib.basic_item(inputs) + return thxbob.lib.item.basic_item(inputs) +end + +--[[ Cannot be used in legacy, due to new group conflict. +function thxbob.lib.item(inputs) + return thxbob.lib.item.item(inputs) +end +]]-- + +function thxbob.lib.get_item_type(name) + return thxbob.lib.item.get_type(name) +end + +function thxbob.lib.get_basic_item_type(name) + return thxbob.lib.item.get_basic_type(name) +end + +function thxbob.lib.combine_items(item1_in, item2_in) + return thxbob.lib.item.combine(item1_in, item2_in) +end + +function thxbob.lib.add_item(list, item_in) + thxbob.lib.item.add(list, item_in) --increments amount if exists +end + +function thxbob.lib.add_new_item(list, item_in) + thxbob.lib.item.add_new(list, item_in) --ignores if exists +end + +function thxbob.lib.remove_item(list, item) + thxbob.lib.item.remove(list, item) +end + + + +function thxbob.lib.replace_science_pack (technology, old, new) + thxbob.lib.tech.replace_science_pack (technology, old, new) +end + +function thxbob.lib.add_new_science_pack (technology, pack, amount) + thxbob.lib.tech.add_new_science_pack (technology, pack, amount) +end + +function thxbob.lib.add_science_pack (technology, pack, amount) + thxbob.lib.tech.add_science_pack (technology, pack, amount) +end + +function thxbob.lib.remove_science_pack (technology, pack) + thxbob.lib.tech.remove_science_pack (technology, pack) +end + +function thxbob.lib.add_technology_recipe (technology, recipe) + thxbob.lib.tech.add_recipe_unlock (technology, recipe) +end + +function thxbob.lib.remove_technology_recipe (technology, recipe) + thxbob.lib.tech.remove_recipe_unlock (technology, recipe) +end + +function thxbob.lib.replace_technology_prerequisite (technology, old, new) + thxbob.lib.tech.replace_prerequisite (technology, old, new) +end + +function thxbob.lib.add_technology_prerequisite (technology, prerequisite) + thxbob.lib.tech.add_prerequisite (technology, prerequisite) +end + +function thxbob.lib.remove_technology_prerequisite (technology, prerequisite) + thxbob.lib.tech.remove_prerequisite (technology, prerequisite) +end + + + +function thxbob.lib.add_productivity_limitation(intermediate) + thxbob.lib.module.add_productivity_limitation(intermediate) +end + +function thxbob.lib.add_productivity_limitations(intermediates) + thxbob.lib.module.add_productivity_limitations(intermediates) +end + + + +function thxbob.lib.replace_recipe_item (recipe, old, new) + thxbob.lib.recipe.replace_ingredient(recipe, old, new) +end + +function thxbob.lib.replace_recipe_item_crude (recipe, old, new) + thxbob.lib.recipe.replace_ingredient_crude(recipe, old, new) +end + +function thxbob.lib.replace_item_all_recipes (old, new) + thxbob.lib.recipe.replace_ingredient_in_all(old, new) +end + +function thxbob.lib.remove_recipe_item (recipe, item) + thxbob.lib.recipe.remove_ingredient(recipe, item) +end + +function thxbob.lib.add_new_recipe_item (recipe, item) + thxbob.lib.recipe.add_new_ingredient(recipe, item) +end + +function thxbob.lib.add_recipe_item (recipe, item) + thxbob.lib.recipe.add_ingredient(recipe, item) +end + +function thxbob.lib.add_recipe_result(recipe, item) + thxbob.lib.recipe.add_result(recipe, item) +end + +function thxbob.lib.remove_recipe_result(recipe, item) + thxbob.lib.recipe.remove_result(recipe, item) +end + + + +function thxbob.lib.create_autoplace(inputs) + return thxbob.lib.resource.create_autoplace(inputs) +end + +function thxbob.lib.autoplace_peak(inputs) + return thxbob.lib.resource.autoplace_peak(inputs) +end + +function thxbob.lib.add_autoplace_peak(inputs) + thxbob.lib.resource.add_autoplace_peak(inputs) +end + +function thxbob.lib.add_item_to_resource(resource, item) + thxbob.lib.resource.add_result(resource, item) +end + +function thxbob.lib.remove_item_from_resource(resource, item) + thxbob.lib.resource.remove_result(resource, item) +end + +function thxbob.lib.stage_counts(stages, mult) + return thxbob.lib.resource.stage_counts(stages, mult) +end + +function thxbob.lib.ore_sprite(inputs) + return thxbob.lib.resource.sprite(inputs) +end + +function thxbob.lib.create_ore_item(inputs) + thxbob.lib.resource.create_item(inputs) +end + +function thxbob.lib.create_ore_resource(inputs) + thxbob.lib.resource.create(inputs) +end + +function thxbob.lib.create_ore_particle(inputs) + thxbob.lib.resource.create_particle(inputs) +end + +function thxbob.lib.generate_ore_data_stage(inputs) + thxbob.lib.resource.generate_data_stage(inputs) +end + +function thxbob.lib.generate_ore_updates_stage(inputs) + thxbob.lib.resource.generate_updates_stage(inputs) +end + +function thxbob.lib.generate_ore(inputs) + thxbob.lib.resource.generate(inputs) +end + + + +function thxbob.lib.machine_has_category(machine, category_in) + return thxbob.lib.machine.has_category(machine, category_in) +end + +function thxbob.lib.machine_add_category(machine, category) + thxbob.lib.machine.add_category(machine, category) +end + +function thxbob.lib.machine_type_if_category_add_category(machine_type, category, category_to_add) + thxbob.lib.machine.type_if_add_category(machine_type, category, category_to_add) +end + + + diff --git a/Natural_Evolution_Enemies_6.3.0/libs/recipe-functions.lua b/Bio_Industries_1.4.2/libs/recipe-functions.lua similarity index 97% rename from Natural_Evolution_Enemies_6.3.0/libs/recipe-functions.lua rename to Bio_Industries_1.4.2/libs/recipe-functions.lua index 2d85652..6484e13 100644 --- a/Natural_Evolution_Enemies_6.3.0/libs/recipe-functions.lua +++ b/Bio_Industries_1.4.2/libs/recipe-functions.lua @@ -1,118 +1,118 @@ -if not thxbob.lib.recipe then thxbob.lib.recipe = {} end - - -function thxbob.lib.recipe.replace_ingredient(recipe, old, new) - if data.raw.recipe[recipe] and thxbob.lib.item.get_type(new) then - local amount = 0 - for i, ingredient in pairs(data.raw.recipe[recipe].ingredients) do - if ingredient[1] == old then - amount = ingredient[2] + amount - end - if ingredient.name == old then - amount = ingredient.amount + amount - end - end - if amount > 0 then - thxbob.lib.recipe.remove_ingredient(recipe, old) - thxbob.lib.recipe.add_ingredient(recipe, {new, amount}) - end - else - if not data.raw.recipe[recipe] then - log("Recipe " .. recipe .. " does not exist.") - end - if not thxbob.lib.item.get_type(new) then - log("Ingredient " .. new .. " does not exist.") - end - end -end - -function thxbob.lib.recipe.replace_ingredient_crude(recipe, old, new) - if data.raw.recipe[recipe] and thxbob.lib.item.get_basic_type(new) then - for i, ingredient in pairs(data.raw.recipe[recipe].ingredients) do - if ingredient[1] == old or ingredient.name == old then - local item = thxbob.lib.item.basic_item(ingredient) - item.name = new - item.type = thxbob.lib.item.get_basic_type(new) - ingredient = item - end - end - else - if not data.raw.recipe[recipe] then - log("Recipe " .. recipe .. " does not exist.") - end - if not thxbob.lib.item.get_type(new) then - log("Ingredient " .. new .. " does not exist.") - end - end -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 - log("Ingredient " .. new .. " does not exist.") - end -end - -function thxbob.lib.recipe.remove_ingredient(recipe, item) - if data.raw.recipe[recipe] then - thxbob.lib.item.remove(data.raw.recipe[recipe].ingredients, item) - else - log("Recipe " .. recipe .. " does not exist.") - 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 - thxbob.lib.item.add_new(data.raw.recipe[recipe].ingredients, thxbob.lib.item.basic_item(item)) - else - if not data.raw.recipe[recipe] then - log("Recipe " .. recipe .. " does not exist.") - end - if not thxbob.lib.item.get_type(item) then - log("Ingredient " .. thxbob.lib.item.basic_item(item).name .. " does not exist.") - 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 - thxbob.lib.item.add(data.raw.recipe[recipe].ingredients, thxbob.lib.item.basic_item(item)) - else - if not data.raw.recipe[recipe] then - log("Recipe " .. recipe .. " does not exist.") - end - if not thxbob.lib.item.get_basic_type(thxbob.lib.item.basic_item(item).name) then - log("Ingredient " .. thxbob.lib.item.basic_item(item).name .. " does not exist.") - 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 - thxbob.lib.result_check(data.raw.recipe[recipe]) - thxbob.lib.item.add(data.raw.recipe[recipe].results, item) - else - if not data.raw.recipe[recipe] then - log("Recipe " .. recipe .. " does not exist.") - end - if not thxbob.lib.item.get_basic_type(thxbob.lib.item.basic_item(item).name) then - log("Item " .. thxbob.lib.item.basic_item(item).name .. " does not exist.") - end - end -end - -function thxbob.lib.recipe.remove_result(recipe, item) - if data.raw.recipe[recipe] then - thxbob.lib.result_check(data.raw.recipe[recipe]) - thxbob.lib.item.remove(data.raw.recipe[recipe].results, item) - else - log("Recipe " .. recipe .. " does not exist.") - end -end - - - +if not thxbob.lib.recipe then thxbob.lib.recipe = {} end + + +function thxbob.lib.recipe.replace_ingredient(recipe, old, new) + if data.raw.recipe[recipe] and thxbob.lib.item.get_type(new) then + local amount = 0 + for i, ingredient in pairs(data.raw.recipe[recipe].ingredients) do + if ingredient[1] == old then + amount = ingredient[2] + amount + end + if ingredient.name == old then + amount = ingredient.amount + amount + end + end + if amount > 0 then + thxbob.lib.recipe.remove_ingredient(recipe, old) + thxbob.lib.recipe.add_ingredient(recipe, {new, amount}) + end + else + if not data.raw.recipe[recipe] then + log("Recipe " .. recipe .. " does not exist.") + end + if not thxbob.lib.item.get_type(new) then + log("Ingredient " .. new .. " does not exist.") + end + end +end + +function thxbob.lib.recipe.replace_ingredient_crude(recipe, old, new) + if data.raw.recipe[recipe] and thxbob.lib.item.get_basic_type(new) then + for i, ingredient in pairs(data.raw.recipe[recipe].ingredients) do + if ingredient[1] == old or ingredient.name == old then + local item = thxbob.lib.item.basic_item(ingredient) + item.name = new + item.type = thxbob.lib.item.get_basic_type(new) + ingredient = item + end + end + else + if not data.raw.recipe[recipe] then + log("Recipe " .. recipe .. " does not exist.") + end + if not thxbob.lib.item.get_type(new) then + log("Ingredient " .. new .. " does not exist.") + end + end +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 + log("Ingredient " .. new .. " does not exist.") + end +end + +function thxbob.lib.recipe.remove_ingredient(recipe, item) + if data.raw.recipe[recipe] then + thxbob.lib.item.remove(data.raw.recipe[recipe].ingredients, item) + else + log("Recipe " .. recipe .. " does not exist.") + 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 + thxbob.lib.item.add_new(data.raw.recipe[recipe].ingredients, thxbob.lib.item.basic_item(item)) + else + if not data.raw.recipe[recipe] then + log("Recipe " .. recipe .. " does not exist.") + end + if not thxbob.lib.item.get_type(item) then + log("Ingredient " .. thxbob.lib.item.basic_item(item).name .. " does not exist.") + 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 + thxbob.lib.item.add(data.raw.recipe[recipe].ingredients, thxbob.lib.item.basic_item(item)) + else + if not data.raw.recipe[recipe] then + log("Recipe " .. recipe .. " does not exist.") + end + if not thxbob.lib.item.get_basic_type(thxbob.lib.item.basic_item(item).name) then + log("Ingredient " .. thxbob.lib.item.basic_item(item).name .. " does not exist.") + 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 + thxbob.lib.result_check(data.raw.recipe[recipe]) + thxbob.lib.item.add(data.raw.recipe[recipe].results, item) + else + if not data.raw.recipe[recipe] then + log("Recipe " .. recipe .. " does not exist.") + end + if not thxbob.lib.item.get_basic_type(thxbob.lib.item.basic_item(item).name) then + log("Item " .. thxbob.lib.item.basic_item(item).name .. " does not exist.") + end + end +end + +function thxbob.lib.recipe.remove_result(recipe, item) + if data.raw.recipe[recipe] then + thxbob.lib.result_check(data.raw.recipe[recipe]) + thxbob.lib.item.remove(data.raw.recipe[recipe].results, item) + else + log("Recipe " .. recipe .. " does not exist.") + end +end + + + diff --git a/Bio_Industries_1.4.0/libs/technology-functions.lua b/Bio_Industries_1.4.2/libs/technology-functions.lua similarity index 97% rename from Bio_Industries_1.4.0/libs/technology-functions.lua rename to Bio_Industries_1.4.2/libs/technology-functions.lua index ad90d3f..2fe45d5 100644 --- a/Bio_Industries_1.4.0/libs/technology-functions.lua +++ b/Bio_Industries_1.4.2/libs/technology-functions.lua @@ -1,172 +1,172 @@ -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 - log("Technology " .. technology .. " does not exist.") - end - if not data.raw.tool[new] then - log("Science pack " .. new .. " does not exist.") - 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 - log("Technology " .. technology .. " does not exist.") - end - if not data.raw.tool[pack] then - log("Science pack " .. new .. " does not exist.") - 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 - log("Technology " .. technology .. " does not exist.") - end - if not data.raw.tool[pack] then - log("Science pack " .. new .. " does not exist.") - 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 - log("Technology " .. technology .. " does not exist.") - 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 - log("Technology " .. technology .. " does not exist.") - end - if not data.raw.recipe[recipe] then - log("Recipe " .. recipe .. " does not exist.") - 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 - log("Technology " .. technology .. " does not exist.") - 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 - log("Technology " .. technology .. " does not exist.") - end - if not data.raw.technology[new] then - log("Technology " .. new .. " does not exist.") - 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 - log("Technology " .. technology .. " does not exist.") - end - if not data.raw.technology[prerequisite] then - log("Technology " .. prerequisite .. " does not exist.") - 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 - log("Technology " .. technology .. " does not exist.") - end -end - - +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 + log("Technology " .. technology .. " does not exist.") + end + if not data.raw.tool[new] then + log("Science pack " .. new .. " does not exist.") + 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 + log("Technology " .. technology .. " does not exist.") + end + if not data.raw.tool[pack] then + log("Science pack " .. new .. " does not exist.") + 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 + log("Technology " .. technology .. " does not exist.") + end + if not data.raw.tool[pack] then + log("Science pack " .. new .. " does not exist.") + 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 + log("Technology " .. technology .. " does not exist.") + 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 + log("Technology " .. technology .. " does not exist.") + end + if not data.raw.recipe[recipe] then + log("Recipe " .. recipe .. " does not exist.") + 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 + log("Technology " .. technology .. " does not exist.") + 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 + log("Technology " .. technology .. " does not exist.") + end + if not data.raw.technology[new] then + log("Technology " .. new .. " does not exist.") + 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 + log("Technology " .. technology .. " does not exist.") + end + if not data.raw.technology[prerequisite] then + log("Technology " .. prerequisite .. " does not exist.") + 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 + log("Technology " .. technology .. " does not exist.") + end +end + + diff --git a/Bio_Industries_1.4.0/libs/util_ext.lua b/Bio_Industries_1.4.2/libs/util_ext.lua similarity index 95% rename from Bio_Industries_1.4.0/libs/util_ext.lua rename to Bio_Industries_1.4.2/libs/util_ext.lua index 2ed76e4..544202d 100644 --- a/Bio_Industries_1.4.0/libs/util_ext.lua +++ b/Bio_Industries_1.4.2/libs/util_ext.lua @@ -1,144 +1,144 @@ ---require("defines") - -------------------------------------------------------------------- --- A-sync Action Queue --- -function aaq_init() - if not global.aaq then - global.aaq = {} - - script.on_event(defines.events.on_tick, aaq_tick) - end -end - -function aaq_queue(action) - table.insert(global.aaq, action) -end - -function aaq_tick() - while #global.aaq > 0 do - local aaq_action = table.remove(global.aaq,1) - aaq_action() - end -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 -------------------------------------------------------------------- +--require("defines") + +------------------------------------------------------------------- +-- A-sync Action Queue +-- +function aaq_init() + if not global.aaq then + global.aaq = {} + + script.on_event(defines.events.on_tick, aaq_tick) + end +end + +function aaq_queue(action) + table.insert(global.aaq, action) +end + +function aaq_tick() + while #global.aaq > 0 do + local aaq_action = table.remove(global.aaq,1) + aaq_action() + end +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_1.4.0/locale/en/locale.cfg b/Bio_Industries_1.4.2/locale/en/locale.cfg similarity index 96% rename from Bio_Industries_1.4.0/locale/en/locale.cfg rename to Bio_Industries_1.4.2/locale/en/locale.cfg index 3b37278..5a41baf 100644 --- a/Bio_Industries_1.4.0/locale/en/locale.cfg +++ b/Bio_Industries_1.4.2/locale/en/locale.cfg @@ -1,179 +1,179 @@ -[entity-name] -bi_bio_farm = Bio-Farm -bi_light_for_Bio_Farm = Bio-Farm Heat Lamps -bi_medium-electric-pole_for_Bio_Farm = Bio-Farm Cabling -bi_solar-panel_for_Bio_Farm = Bio-Farm Solar -bi-cokery=Cokery -bi-cokery-dummy=Cokery -bi-stone-crusher=Stone Crusher -bi-bioreactor=Bioreactor -bi-biolab=Biolab -bi-Bio_Garden = Bio Garden -bi_light_for_Bio_Garden = Bio Garden Light -bi_bio_Solar_Farm = Bio Solar Farm -bi_bio_Solar_Farm_Image = Bio Solar Farm Image -Bio_Cannon = Bio Cannon -Bio_Cannoni = Can ONLY fire at Spawners! - Range 75 -Bio_Cannon_Area = Bio Cannon -bi-big-wooden-pole = Big Wooden Pole -bi-wooden-fence = Wooden Fence -bi-pinetree = Pine Tree -seedling = Seedling -bi-curved-rail-wood = Wooden Curved Rail -bi-straight-rail-wood = Wooden Straight Rail - - -[entity-description] -bi_bio_farm = Bio-Farm -bi_light_for_Bio_Farm = Bio-Farm Heat Lamps, so trees can grow at night (Hidden) -bi_medium-electric-pole_for_Bio_Farm = Bio-Farm Cabling (Hidden) -bi_solar-panel_for_Bio_Farm = Bio-Farm Solar (Hidden) -bi-Bio_Garden = The Bio Garden scrubs air, removing pollution. (-20 PU) -bi_light_for_Bio_Garden = The Garden also acts as a lamp at night. (Hidden) -bi_bio_Solar_Farm = Create a lot of power! -Bio_Cannon = Can ONLY fire at Spawners! - Range 75 -bi-big-wooden-pole = Big Wooden Power Pole -bi-wooden-fence = A defenseive wall made from wood -bi-pinetree = Great for pollution absorption -seedling = A young tree, perfect for planting. -bi-curved-rail-wood = Wooden Curved Rail -bi-straight-rail-wood = Wooden Straight Rail - - -[item-name] -seedling = Seedling -bi_bio_farm = Bio-Farm -bi-charcoal=Charcoal -bi-coke-coal=Cokecoal -bi-ash=Ash -stone-crushed=Crushed Stone -fertiliser = fertiliser -bi-adv-fertiliser = Advanced fertiliser -bi-cellulose=Cellulose -bi-nutrients=Nutrients -bi-medicine=Medicine -bi-cokery=Cokery -bi-stone-crusher=Stone Crusher -bi-bioreactor=Bioreactor -bi-biolab=Biolab -bi-woodpulp = Wood Pulp -bi-Purified_Air = Purified Air -bi_bio_Solar_Farm = Bio Solar Farm -Bio_Cannon = Bio Cannon -Bio_Cannon_Basic_Ammo = Bio Cannon Basic Ammo -Bio_Cannon_Poison_Ammo = Bio Cannon Poison Ammo -Bio_Cannon_Bio_Ammo = Bio Cannon Bio Ammo -bi-big-wooden-pole = Big Wooden Pole -bi-wooden-fence = Wooden Fence -bi-pinetree = Pine Tree -bi-rail-wood = Wooden Rail - - -[item-description] -seedling = A young tree, perfect for planting. -bi_bio_farm = A greenhouse with powerful artificial lighting for growing trees. -bi-Purified_Air = Clean Air, Pollution removed! -bi_bio_Solar_Farm = Bio Solar Farm -Bio_Cannon = Can ONLY fire at Spawners! - Range 75 -Bio_Cannon_Basic_Ammo = Low Physical Damage -Bio_Cannon_Poison_Ammo = Medium Poison Damage -Bio_Cannon_Bio_Ammo = High Biological Damage -bi-big-wooden-pole = Big Wooden Power Pole -bi-wooden-fence = A defenseive wall made from wood -bi-pinetree = Great for pollution absorption -bi-rail-wood = Rail made with wood - - - -[technology-name] -bi_bio_farming = Bio-Farm -bi-fertiliser = Fertiliser -bi-coal-processing = Coal Processing -bi-coal-processing-2 = Coal Processing 2 -bi-coal-processing-3 = Coal Processing 3 -bi-organic-plastic = Organic Plastic -bi-advanced-biotechnology = Advanced Biotechnology -Bio_Cannon = Bio Cannon Turret - -[technology-description] -bi_bio_farming = Learn how to grow trees - indoors! -Bio_Cannon = Your enemies won't know what hit them! - -[fluid-name] -liquid-air=Liquid Air -nitrogen=Nitrogen -bi-biomass=Biomass -bi-liquid-co2=Liquid CO² -bi-Bio_Fuel = Bio Fuel -bi-Fuel_Conversion = Fuel Conversion - - -[recipe-name] -bi-biomass-0=Biomass -bi-seedling = Seedling -bi_bio_farm = Bio-Farm -bi-Logs_Mk1 = Basic Wood Production -bi-Logs_Mk2 = Wood Production Mk2 -bi-Logs_Mk3 = Advanced Wood Production -bi-resin = Basic Resin Production -bi-resin_Mk2 = Resin Production Mk2 -bi-resins_Mk3 = Advanced Resin Production -bi-sulfur-wood = Basic Sulfur Wood Production -bi-sulfur-wood_Mk2 = Sulfur Wood Production Mk2 -bi-sulfur-wood_Mk3 = Advanced Sulfur Wood Production -bi-fertiliser = fertiliser -bi-fertiliser-2 = fertiliser -bi-adv-fertiliser = Advanced fertiliser -bi-charcoal = Charcoal -bi-charcoal-2 = Charcoal -bi-coal = Basic Coal Production -bi-coal-2 = Advanced Coal Production -bi-coke-coal = Coke Coal -bi-ash = Ash -bi-ash-2 = Ash -bi-stone-crushed = Crushed Stone -bi-liquid-air = Liquid Air -bi-nitrogen = Nitrogen -bi-liquid-co2 = Liquid CO² -bi-cellulose = Cellulose -bi-plastic = Plastic -bi-Bio_Garden = Bio Garden -bi-Clean_Air = Clean Air -bi-Clean_Air2 = Clean Air Mk2 -bi_bio_Solar_Farm = Bio Solar Farm -bi-Bio_Fuel = Bio Fuel -bi-Fuel_Conversion = Fuel Conversion -Bio_Cannon = "Bio Cannon" -Bio_Cannon_Basic_Ammo = Bio Cannon Basic Ammo -Bio_Cannon_Poison_Ammo = Bio Cannon Poison Ammo -Bio_Cannon_Bio_Ammo = Bio Cannon Bio Ammo -bi-burner-mining-drill-disassemble = Dissassemble Burner Miner -bi-steel-furnace-disassemble = Dissassemble Steel Furnace - - -[recipe-description] -bi-seedling = A young tree, perfect for planting. -bi-Logs_Mk1 = Produces 40 Wood -bi-Logs_Mk2 = Produces 60 Wood -bi-Logs_Mk3 = Produces 100 Wood -bi-coal = Produces 8 Coal -bi-coal-2 = Produces 10 Coal -bi-fertiliser = Let's stuff grow faster -bi-fertiliser-2 = Let's stuff grow faster (sodium-hydroxide) -bi-adv-fertiliser = Advanced fertiliser - Super Food! -bi-resin = Produces 60 Resin -bi-resin_Mk2 = Produces 90 Resin -bi-resins_Mk3 = Produces 150 Resin -bi-sulfur-wood = Produces 80 Sulfur Wood -bi-sulfur-wood_Mk2 = Produces 120 Sulfur Wood -bi-sulfur-wood_Mk3 = Produces 200 Sulfur Wood -bi-Clean_Air = Clean Air -bi-Clean_Air2 = Clean Air Mk2 -bi-Bio_Fuel = Bio Fuel from plant and animal -bi-Fuel_Conversion = Bio Fuel to Light and Heavy oils -bi-burner-mining-drill-disassemble = At a small loss of materials -bi-steel-furnace-disassemble = At a small loss of materials - - -[tile-name] +[entity-name] +bi_bio_farm = Bio-Farm +bi_light_for_Bio_Farm = Bio-Farm Heat Lamps +bi_medium-electric-pole_for_Bio_Farm = Bio-Farm Cabling +bi_solar-panel_for_Bio_Farm = Bio-Farm Solar +bi-cokery=Cokery +bi-cokery-dummy=Cokery +bi-stone-crusher=Stone Crusher +bi-bioreactor=Bioreactor +bi-biolab=Biolab +bi-Bio_Garden = Bio Garden +bi_light_for_Bio_Garden = Bio Garden Light +bi_bio_Solar_Farm = Bio Solar Farm +bi_bio_Solar_Farm_Image = Bio Solar Farm Image +Bio_Cannon = Bio Cannon +Bio_Cannoni = Can ONLY fire at Spawners! - Range 75 +Bio_Cannon_Area = Bio Cannon +bi-big-wooden-pole = Big Wooden Pole +bi-wooden-fence = Wooden Fence +bi-pinetree = Pine Tree +seedling = Seedling +bi-curved-rail-wood = Wooden Curved Rail +bi-straight-rail-wood = Wooden Straight Rail + + +[entity-description] +bi_bio_farm = Bio-Farm +bi_light_for_Bio_Farm = Bio-Farm Heat Lamps, so trees can grow at night (Hidden) +bi_medium-electric-pole_for_Bio_Farm = Bio-Farm Cabling (Hidden) +bi_solar-panel_for_Bio_Farm = Bio-Farm Solar (Hidden) +bi-Bio_Garden = The Bio Garden scrubs air, removing pollution. (-20 PU) +bi_light_for_Bio_Garden = The Garden also acts as a lamp at night. (Hidden) +bi_bio_Solar_Farm = Create a lot of power! +Bio_Cannon = Can ONLY fire at Spawners! - Range 75 +bi-big-wooden-pole = Big Wooden Power Pole +bi-wooden-fence = A defenseive wall made from wood +bi-pinetree = Great for pollution absorption +seedling = A young tree, perfect for planting. +bi-curved-rail-wood = Wooden Curved Rail +bi-straight-rail-wood = Wooden Straight Rail + + +[item-name] +seedling = Seedling +bi_bio_farm = Bio-Farm +bi-charcoal=Charcoal +bi-coke-coal=Cokecoal +bi-ash=Ash +stone-crushed=Crushed Stone +fertiliser = fertiliser +bi-adv-fertiliser = Advanced fertiliser +bi-cellulose=Cellulose +bi-nutrients=Nutrients +bi-medicine=Medicine +bi-cokery=Cokery +bi-stone-crusher=Stone Crusher +bi-bioreactor=Bioreactor +bi-biolab=Biolab +bi-woodpulp = Wood Pulp +bi-Purified_Air = Purified Air +bi_bio_Solar_Farm = Bio Solar Farm +Bio_Cannon = Bio Cannon +Bio_Cannon_Basic_Ammo = Bio Cannon Basic Ammo +Bio_Cannon_Poison_Ammo = Bio Cannon Poison Ammo +Bio_Cannon_Bio_Ammo = Bio Cannon Bio Ammo +bi-big-wooden-pole = Big Wooden Pole +bi-wooden-fence = Wooden Fence +bi-pinetree = Pine Tree +bi-rail-wood = Wooden Rail + + +[item-description] +seedling = A young tree, perfect for planting. +bi_bio_farm = A greenhouse with powerful artificial lighting for growing trees. +bi-Purified_Air = Clean Air, Pollution removed! +bi_bio_Solar_Farm = Bio Solar Farm +Bio_Cannon = Can ONLY fire at Spawners! - Range 75 +Bio_Cannon_Basic_Ammo = Low Physical Damage +Bio_Cannon_Poison_Ammo = Medium Poison Damage +Bio_Cannon_Bio_Ammo = High Biological Damage +bi-big-wooden-pole = Big Wooden Power Pole +bi-wooden-fence = A defenseive wall made from wood +bi-pinetree = Great for pollution absorption +bi-rail-wood = Rail made with wood + + + +[technology-name] +bi_bio_farming = Bio-Farm +bi-fertiliser = Fertiliser +bi-coal-processing = Coal Processing +bi-coal-processing-2 = Coal Processing 2 +bi-coal-processing-3 = Coal Processing 3 +bi-organic-plastic = Organic Plastic +bi-advanced-biotechnology = Advanced Biotechnology +Bio_Cannon = Bio Cannon Turret + +[technology-description] +bi_bio_farming = Learn how to grow trees - indoors! +Bio_Cannon = Your enemies won't know what hit them! + +[fluid-name] +liquid-air=Liquid Air +nitrogen=Nitrogen +bi-biomass=Biomass +bi-liquid-co2=Liquid CO² +bi-Bio_Fuel = Bio Fuel +bi-Fuel_Conversion = Fuel Conversion + + +[recipe-name] +bi-biomass-0=Biomass +bi-seedling = Seedling +bi_bio_farm = Bio-Farm +bi-Logs_Mk1 = Basic Wood Production +bi-Logs_Mk2 = Wood Production Mk2 +bi-Logs_Mk3 = Advanced Wood Production +bi-resin = Basic Resin Production +bi-resin_Mk2 = Resin Production Mk2 +bi-resins_Mk3 = Advanced Resin Production +bi-sulfur-wood = Basic Sulfur Wood Production +bi-sulfur-wood_Mk2 = Sulfur Wood Production Mk2 +bi-sulfur-wood_Mk3 = Advanced Sulfur Wood Production +bi-fertiliser = fertiliser +bi-fertiliser-2 = fertiliser +bi-adv-fertiliser = Advanced fertiliser +bi-charcoal = Charcoal +bi-charcoal-2 = Charcoal +bi-coal = Basic Coal Production +bi-coal-2 = Advanced Coal Production +bi-coke-coal = Coke Coal +bi-ash = Ash +bi-ash-2 = Ash +bi-stone-crushed = Crushed Stone +bi-liquid-air = Liquid Air +bi-nitrogen = Nitrogen +bi-liquid-co2 = Liquid CO² +bi-cellulose = Cellulose +bi-plastic = Plastic +bi-Bio_Garden = Bio Garden +bi-Clean_Air = Clean Air +bi-Clean_Air2 = Clean Air Mk2 +bi_bio_Solar_Farm = Bio Solar Farm +bi-Bio_Fuel = Bio Fuel +bi-Fuel_Conversion = Fuel Conversion +Bio_Cannon = "Bio Cannon" +Bio_Cannon_Basic_Ammo = Bio Cannon Basic Ammo +Bio_Cannon_Poison_Ammo = Bio Cannon Poison Ammo +Bio_Cannon_Bio_Ammo = Bio Cannon Bio Ammo +bi-burner-mining-drill-disassemble = Dissassemble Burner Miner +bi-steel-furnace-disassemble = Dissassemble Steel Furnace + + +[recipe-description] +bi-seedling = A young tree, perfect for planting. +bi-Logs_Mk1 = Produces 40 Wood +bi-Logs_Mk2 = Produces 60 Wood +bi-Logs_Mk3 = Produces 100 Wood +bi-coal = Produces 8 Coal +bi-coal-2 = Produces 10 Coal +bi-fertiliser = Let's stuff grow faster +bi-fertiliser-2 = Let's stuff grow faster (sodium-hydroxide) +bi-adv-fertiliser = Advanced fertiliser - Super Food! +bi-resin = Produces 60 Resin +bi-resin_Mk2 = Produces 90 Resin +bi-resins_Mk3 = Produces 150 Resin +bi-sulfur-wood = Produces 80 Sulfur Wood +bi-sulfur-wood_Mk2 = Produces 120 Sulfur Wood +bi-sulfur-wood_Mk3 = Produces 200 Sulfur Wood +bi-Clean_Air = Clean Air +bi-Clean_Air2 = Clean Air Mk2 +bi-Bio_Fuel = Bio Fuel from plant and animal +bi-Fuel_Conversion = Bio Fuel to Light and Heavy oils +bi-burner-mining-drill-disassemble = At a small loss of materials +bi-steel-furnace-disassemble = At a small loss of materials + + +[tile-name] bi-wood-floor=Wood floor \ No newline at end of file diff --git a/Bio_Industries_1.4.0/locale/ru/locale.cfg b/Bio_Industries_1.4.2/locale/ru/locale.cfg similarity index 98% rename from Bio_Industries_1.4.0/locale/ru/locale.cfg rename to Bio_Industries_1.4.2/locale/ru/locale.cfg index 52d0b63..fdebcff 100644 --- a/Bio_Industries_1.4.0/locale/ru/locale.cfg +++ b/Bio_Industries_1.4.2/locale/ru/locale.cfg @@ -1,179 +1,179 @@ -[entity-name] -bi_bio_farm=Био-ферма -bi_light_for_Bio_Farm=ÐÐ°Ð³Ñ€ÐµÐ²Ð°Ñ‚ÐµÐ»ÑŒÐ½Ð°Ñ Ð»Ð°Ð¼Ð¿Ð° Ð´Ð»Ñ Ð‘Ð¸Ð¾-фермы -bi_medium-electric-pole_for_Bio_Farm=Кабель Ð´Ð»Ñ Ð‘Ð¸Ð¾-фермы -bi_solar-panel_for_Bio_Farm=Ð¡Ð¾Ð»Ð½ÐµÑ‡Ð½Ð°Ñ Ð¿Ð°Ð½ÐµÐ»ÑŒ Ð´Ð»Ñ Ð‘Ð¸Ð¾-фермы -bi-cokery=КокÑохимичеÑкий завод -bi-cokery-dummy=КокÑохимичеÑкий завод -bi-stone-crusher=ÐšÐ°Ð¼ÐµÐ½Ð½Ð°Ñ Ð´Ñ€Ð¾Ð±Ð¸Ð»ÐºÐ° -bi-bioreactor=Биореактор -bi-biolab=Ð‘Ð¸Ð¾Ð»Ð°Ð±Ð¾Ñ€Ð°Ñ‚Ð¾Ñ€Ð¸Ñ -bi-Bio_Garden=БиоÑад -bi_light_for_Bio_Garden=Лампы биоÑада (?) -bi_bio_Solar_Farm=Био-ÑÐ¾Ð»Ð½ÐµÑ‡Ð½Ð°Ñ Ñ„ÐµÑ€Ð¼Ð° -bi_bio_Solar_Farm_Image=Bio Solar Farm Image -Bio_Cannon=Био-пушка -Bio_Cannoni=СтреллÑет ТОЛЬКО по ульÑм! - ДиÑÑ‚Ð°Ð½Ñ†Ð¸Ñ 75 -Bio_Cannon_Area=Био-пушка -bi-big-wooden-pole=Большщой деревÑный Ñтолб ЛЭП -bi-wooden-fence=ДеревÑный забор -bi-pinetree=СоÑна -seedling=Сажанец -bi-curved-rail-wood=Изогнутые деревÑÐ½Ð°Ñ Ñ€ÐµÐ»ÑŒÑÑ‹ -bi-straight-rail-wood=ДеревÑные рельÑÑ‹ - - -[entity-description] -bi_bio_farm=Био-ферма -bi_light_for_Bio_Farm=ÐÐ°Ð³Ñ€ÐµÐ²Ð°Ñ‚ÐµÐ»ÑŒÐ½Ð°Ñ Ð»Ð°Ð¼Ð¿Ð° Ð´Ð»Ñ Ð‘Ð¸Ð¾-фермы (ÐедоÑтупно) -bi_medium-electric-pole_for_Bio_Farm=Кабель Ð´Ð»Ñ Ð‘Ð¸Ð¾-фермы (ÐедоÑтупно) -bi_solar-panel_for_Bio_Farm=Ð¡Ð¾Ð»Ð½ÐµÑ‡Ð½Ð°Ñ Ð¿Ð°Ð½ÐµÐ»ÑŒ Ð´Ð»Ñ Ð‘Ð¸Ð¾-фермы (ÐедоÑтупно) -bi-Bio_Garden=БиоÑад очищает воздух, удалÑÑ Ð·Ð°Ð³Ñ€Ñзнение. (-20 PU) -bi_light_for_Bio_Garden=Лампы Ð´Ð»Ñ Ð±Ð¸Ð¾Ñада, также нужны Ð´Ð»Ñ Ð¸ÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð½Ð¾Ñ‡ÑŒÑŽ. (ÐедоÑтупно) -bi_bio_Solar_Farm=Концентрирует много Ñолнечной Ñнергии! -Bio_Cannon=СтреллÑет ТОЛЬКО по ульÑм! - ДиÑÑ‚Ð°Ð½Ñ†Ð¸Ñ 75 -bi-big-wooden-pole=Большщой деревÑный Ñтолб ЛЭП -bi-wooden-fence=Защитное ограждение Ñделанное из дерева -bi-pinetree=СадитÑÑ Ð´Ð»Ñ Ð¿Ð¾Ð³Ð»Ð¾Ñ‰ÐµÐ½Ð¸Ñ Ð·Ð°Ð³Ñ€ÑÐ·Ð½ÐµÐ½Ð¸Ñ -seedling=Молодое дерево, идеально подходит Ð´Ð»Ñ Ð¿Ð¾Ñадки. -bi-curved-rail-wood=Изогнутые деревÑÐ½Ð°Ñ Ñ€ÐµÐ»ÑŒÑÑ‹ -bi-straight-rail-wood=ДеревÑные рельÑÑ‹ - - -[item-name] -seedling=Сажанец -bi_bio_farm=Био-ферма -bi-charcoal=ДревеÑный уголь -bi-coke-coal=КокÑированный уголь -bi-ash=Зола -stone-crushed=Дробленый камень -fertiliser=Ð£Ð´Ð¾Ð±Ñ€ÐµÐ½Ð¸Ñ -bi-adv-fertiliser=Улучшенные ÑƒÐ´Ð¾Ð±Ñ€ÐµÐ½Ð¸Ñ -bi-cellulose=Целлюлоза -bi-nutrients=Питательные вещеÑтва -bi-medicine=Медицина -bi-cokery=КокÑохимичеÑкий завод -bi-stone-crusher=ÐšÐ°Ð¼ÐµÐ½Ð½Ð°Ñ Ð´Ñ€Ð¾Ð±Ð¸Ð»ÐºÐ° -bi-bioreactor=Биореактор -bi-biolab=Ð‘Ð¸Ð¾Ð»Ð°Ð±Ð¾Ñ€Ð°Ñ‚Ð¾Ñ€Ð¸Ñ -bi-woodpulp=ДревеÑные опилки -bi-Purified_Air=Очищенный воздух -bi_bio_Solar_Farm=Био-ÑÐ¾Ð»Ð½ÐµÑ‡Ð½Ð°Ñ Ñ„ÐµÑ€Ð¼Ð° -Bio_Cannon=Био-пушка -Bio_Cannon_Basic_Ammo=СнарÑды Ð´Ð»Ñ Ð±Ð¸Ð¾-пушки -Bio_Cannon_Poison_Ammo=Ядовитые ÑнарÑды Ð´Ð»Ñ Ð±Ð¸Ð¾-пушки -Bio_Cannon_Bio_Ammo=Био-ÑнарÑды Ð´Ð»Ñ Ð±Ð¸Ð¾-пушки -bi-big-wooden-pole=Большщой деревÑный Ñтолб ЛЭП -bi-wooden-fence=ДеревÑный забор -bi-pinetree=СоÑна -bi-rail-wood=ДеревÑные рельÑÑ‹ - - -[item-description] -seedling=Молодое дерево, идеально подходит Ð´Ð»Ñ Ð¿Ð¾Ñадки. -bi_bio_farm=Здание Ñ Ñ…Ð¾Ñ€Ð¾ÑˆÐ¸Ð¼ оÑвещением и Ñредой Ð´Ð»Ñ Ð²Ñ‹Ñ€Ð°Ñ‰Ð¸Ð²Ð°Ð½Ð¸Ñ Ð´ÐµÑ€ÐµÐ²ÑŒÐµÐ². -bi-Purified_Air=ЧиÑтый воздух, никаких загрÑзнений! -bi_bio_Solar_Farm=Био-ÑÐ¾Ð»Ð½ÐµÑ‡Ð½Ð°Ñ Ñ„ÐµÑ€Ð¼Ð° -Bio_Cannon=СтреллÑет ТОЛЬКО по ульÑм! - ДиÑÑ‚Ð°Ð½Ñ†Ð¸Ñ 75 -Bio_Cannon_Basic_Ammo=Ðизкие Ð¿Ð¾Ð²Ñ€ÐµÐ¶Ð´ÐµÐ½Ð¸Ñ -Bio_Cannon_Poison_Ammo=Средние Ð¿Ð¾Ð²Ñ€ÐµÐ¶Ð´ÐµÐ½Ð¸Ñ Ñдом -Bio_Cannon_Bio_Ammo=Большие биологичеÑкие Ð¿Ð¾Ð²Ñ€ÐµÐ¶Ð´ÐµÐ½Ð¸Ñ -bi-big-wooden-pole=Большщой деревÑный Ñтолб ЛЭП -bi-wooden-fence=Защитное ограждение Ñделанное из дерева -bi-pinetree=СадитÑÑ Ð´Ð»Ñ Ð¿Ð¾Ð³Ð»Ð¾Ñ‰ÐµÐ½Ð¸Ñ Ð·Ð°Ð³Ñ€ÑÐ·Ð½ÐµÐ½Ð¸Ñ -bi-rail-wood=РельÑÑ‹ Ñделанные из дерева - - - -[technology-name] -bi_bio_farming=Био-фермы -bi-fertiliser=Ð£Ð´Ð¾Ð±Ñ€ÐµÐ½Ð¸Ñ -bi-coal-processing=Переработка ÑƒÐ³Ð»Ñ -bi-coal-processing-2=Переработка ÑƒÐ³Ð»Ñ 2 -bi-coal-processing-3=Переработка ÑƒÐ³Ð»Ñ 3 -bi-organic-plastic=ОрганичеÑÐºÐ°Ñ Ð¿Ð»Ð°ÑтмаÑÑа -bi-advanced-biotechnology=Продвинутые биотехнологии -Bio_Cannon=Био-пушки - -[technology-description] -bi_bio_farming=Узнайте, как раÑтут Ð´ÐµÑ€ÐµÐ²ÑŒÑ - в закрытом проÑтранÑтве! -Bio_Cannon=Ваши враги не будут знать кто по ним ÑтреллÑет! - -[fluid-name] -liquid-air=Сжатый воздух -nitrogen=Жидкий азот -bi-biomass=БиомаÑÑа -bi-liquid-co2=Сжиженный CO² -bi-Bio_Fuel=Био-топливо -bi-Fuel_Conversion=ÐšÐ¾Ð½Ð²ÐµÑ€Ñ‚Ð°Ñ†Ð¸Ñ Ñ‚Ð¾Ð¿Ð»Ð¸Ð²Ð° - - -[recipe-name] -bi-biomass-0=БиомаÑÑа -bi-seedling=Сажанец -bi_bio_farm=Био-ферма -bi-Logs_Mk1=ПроизводÑтво древеÑины -bi-Logs_Mk2=ПроизводÑтво древеÑины MK2 -bi-Logs_Mk3=ПроизводÑтво древеÑины MK3 -bi-resin=ПроизводÑтво резины -bi-resin_Mk2=ПроизводÑтво резины MK2 -bi-resins_Mk3=ПроизводÑтво резины MK3 -bi-sulfur-wood=ПроизводÑтво Ñерной древеÑины -bi-sulfur-wood_Mk2=ПроизводÑтво Ñерной древеÑины MK2 -bi-sulfur-wood_Mk3=ПроизводÑтво Ñерной древеÑины MK3 -bi-fertiliser=Ð£Ð´Ð¾Ð±Ñ€ÐµÐ½Ð¸Ñ -bi-fertiliser-2=Ð£Ð´Ð¾Ð±Ñ€ÐµÐ½Ð¸Ñ -bi-adv-fertiliser=Улучшенные ÑƒÐ´Ð¾Ð±Ñ€ÐµÐ½Ð¸Ñ -bi-charcoal=ДревеÑный уголь -bi-charcoal-2=ДревеÑный уголь -bi-coal=Базовое производÑтво ÑƒÐ³Ð»Ñ -bi-coal-2=Продвинутое производÑтво ÑƒÐ³Ð»Ñ -bi-coke-coal=Получение кокÑированного ÑƒÐ³Ð»Ñ -bi-ash=Зола -bi-ash-2=Зола -bi-stone-crushed=Дробленый камень -bi-liquid-air=Сжатый воздух -bi-nitrogen=Жидкий азот -bi-liquid-co2=Сжиженный CO² -bi-cellulose=Целлюлоза -bi-plastic=ПлаÑтмаÑÑа -bi-Bio_Garden=БиоÑад -bi-Clean_Air=ОчиÑтка воздуха -bi-Clean_Air2=ОчиÑтка воздуха MK2 -bi_bio_Solar_Farm=Био-ÑÐ¾Ð»Ð½ÐµÑ‡Ð½Ð°Ñ Ñ„ÐµÑ€Ð¼Ð° -bi-Bio_Fuel=Био-топливо -bi-Fuel_Conversion=ÐšÐ¾Ð½Ð²ÐµÑ€Ñ‚Ð°Ñ†Ð¸Ñ Ñ‚Ð¾Ð¿Ð»Ð¸Ð²Ð° -Bio_Cannon=Био-пушка -Bio_Cannon_Basic_Ammo=СнарÑды Ð´Ð»Ñ Ð±Ð¸Ð¾-пушки -Bio_Cannon_Poison_Ammo=Ядовитые ÑнарÑды Ð´Ð»Ñ Ð±Ð¸Ð¾-пушки -Bio_Cannon_Bio_Ammo=Био-ÑнарÑды Ð´Ð»Ñ Ð±Ð¸Ð¾-пушки -bi-burner-mining-drill-disassemble=Разобрать твердотопливные бур -bi-steel-furnace-disassemble=Разобрать Ñтальную печь - - -[recipe-description] -bi-seedling=Молодое дерево, идеально подходит Ð´Ð»Ñ Ð¿Ð¾Ñадки. -bi-Logs_Mk1=Производит 40 древеÑины -bi-Logs_Mk2=Производит 60 древеÑины -bi-Logs_Mk3=Производит 100 древеÑины -bi-coal=Производит 8 ÑƒÐ³Ð»Ñ -bi-coal-2=Производит 10 ÑƒÐ³Ð»Ñ -bi-fertiliser=ПозвольÑет раÑтениÑм произраÑтать быÑтрее -bi-fertiliser-2=ПозвольÑет раÑтениÑм произраÑтать еще быÑтрее (гидроокÑид Ñоды) -bi-adv-fertiliser=Улучшенные ÑƒÐ´Ð¾Ð±Ñ€ÐµÐ½Ð¸Ñ - очень Ð¿Ð¸Ñ‚Ð°Ñ‚ÐµÐ»ÑŒÐ½Ð°Ñ Ñреда Ð´Ð»Ñ Ñ€Ð°Ñтений! -bi-resin=Производит 60 резины -bi-resin_Mk2=Производит 90 резины -bi-resins_Mk3=Производит 150 резины -bi-sulfur-wood=ПроизвеÑти 80 Ñерной древеÑины -bi-sulfur-wood_Mk2=ПроизвеÑти 120 Ñерной древеÑины -bi-sulfur-wood_Mk3=ПроизвеÑти 200 Ñерной древеÑины -bi-Clean_Air=ОчиÑтка воздуха -bi-Clean_Air2=ОчиÑтка воздуха MK2 -bi-Bio_Fuel=Био-топливо из раÑтений и отходов животных -bi-Fuel_Conversion=ÐšÐ¾Ð½Ð²ÐµÑ€Ñ‚Ð°Ñ†Ð¸Ñ Ð±Ð¸Ð¾-топлива в легкую и Ñ‚Ñжелую нефть -bi-burner-mining-drill-disassemble=Ðебольшой возврат затраченных материалов -bi-steel-furnace-disassemble=Ðебольшой возврат затраченных материалов - - -[tile-name] -bi-wood-floor=ДеревÑный пол +[entity-name] +bi_bio_farm=Био-ферма +bi_light_for_Bio_Farm=ÐÐ°Ð³Ñ€ÐµÐ²Ð°Ñ‚ÐµÐ»ÑŒÐ½Ð°Ñ Ð»Ð°Ð¼Ð¿Ð° Ð´Ð»Ñ Ð‘Ð¸Ð¾-фермы +bi_medium-electric-pole_for_Bio_Farm=Кабель Ð´Ð»Ñ Ð‘Ð¸Ð¾-фермы +bi_solar-panel_for_Bio_Farm=Ð¡Ð¾Ð»Ð½ÐµÑ‡Ð½Ð°Ñ Ð¿Ð°Ð½ÐµÐ»ÑŒ Ð´Ð»Ñ Ð‘Ð¸Ð¾-фермы +bi-cokery=КокÑохимичеÑкий завод +bi-cokery-dummy=КокÑохимичеÑкий завод +bi-stone-crusher=ÐšÐ°Ð¼ÐµÐ½Ð½Ð°Ñ Ð´Ñ€Ð¾Ð±Ð¸Ð»ÐºÐ° +bi-bioreactor=Биореактор +bi-biolab=Ð‘Ð¸Ð¾Ð»Ð°Ð±Ð¾Ñ€Ð°Ñ‚Ð¾Ñ€Ð¸Ñ +bi-Bio_Garden=БиоÑад +bi_light_for_Bio_Garden=Лампы биоÑада (?) +bi_bio_Solar_Farm=Био-ÑÐ¾Ð»Ð½ÐµÑ‡Ð½Ð°Ñ Ñ„ÐµÑ€Ð¼Ð° +bi_bio_Solar_Farm_Image=Bio Solar Farm Image +Bio_Cannon=Био-пушка +Bio_Cannoni=СтреллÑет ТОЛЬКО по ульÑм! - ДиÑÑ‚Ð°Ð½Ñ†Ð¸Ñ 75 +Bio_Cannon_Area=Био-пушка +bi-big-wooden-pole=Большщой деревÑный Ñтолб ЛЭП +bi-wooden-fence=ДеревÑный забор +bi-pinetree=СоÑна +seedling=Сажанец +bi-curved-rail-wood=Изогнутые деревÑÐ½Ð°Ñ Ñ€ÐµÐ»ÑŒÑÑ‹ +bi-straight-rail-wood=ДеревÑные рельÑÑ‹ + + +[entity-description] +bi_bio_farm=Био-ферма +bi_light_for_Bio_Farm=ÐÐ°Ð³Ñ€ÐµÐ²Ð°Ñ‚ÐµÐ»ÑŒÐ½Ð°Ñ Ð»Ð°Ð¼Ð¿Ð° Ð´Ð»Ñ Ð‘Ð¸Ð¾-фермы (ÐедоÑтупно) +bi_medium-electric-pole_for_Bio_Farm=Кабель Ð´Ð»Ñ Ð‘Ð¸Ð¾-фермы (ÐедоÑтупно) +bi_solar-panel_for_Bio_Farm=Ð¡Ð¾Ð»Ð½ÐµÑ‡Ð½Ð°Ñ Ð¿Ð°Ð½ÐµÐ»ÑŒ Ð´Ð»Ñ Ð‘Ð¸Ð¾-фермы (ÐедоÑтупно) +bi-Bio_Garden=БиоÑад очищает воздух, удалÑÑ Ð·Ð°Ð³Ñ€Ñзнение. (-20 PU) +bi_light_for_Bio_Garden=Лампы Ð´Ð»Ñ Ð±Ð¸Ð¾Ñада, также нужны Ð´Ð»Ñ Ð¸ÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð½Ð¾Ñ‡ÑŒÑŽ. (ÐедоÑтупно) +bi_bio_Solar_Farm=Концентрирует много Ñолнечной Ñнергии! +Bio_Cannon=СтреллÑет ТОЛЬКО по ульÑм! - ДиÑÑ‚Ð°Ð½Ñ†Ð¸Ñ 75 +bi-big-wooden-pole=Большщой деревÑный Ñтолб ЛЭП +bi-wooden-fence=Защитное ограждение Ñделанное из дерева +bi-pinetree=СадитÑÑ Ð´Ð»Ñ Ð¿Ð¾Ð³Ð»Ð¾Ñ‰ÐµÐ½Ð¸Ñ Ð·Ð°Ð³Ñ€ÑÐ·Ð½ÐµÐ½Ð¸Ñ +seedling=Молодое дерево, идеально подходит Ð´Ð»Ñ Ð¿Ð¾Ñадки. +bi-curved-rail-wood=Изогнутые деревÑÐ½Ð°Ñ Ñ€ÐµÐ»ÑŒÑÑ‹ +bi-straight-rail-wood=ДеревÑные рельÑÑ‹ + + +[item-name] +seedling=Сажанец +bi_bio_farm=Био-ферма +bi-charcoal=ДревеÑный уголь +bi-coke-coal=КокÑированный уголь +bi-ash=Зола +stone-crushed=Дробленый камень +fertiliser=Ð£Ð´Ð¾Ð±Ñ€ÐµÐ½Ð¸Ñ +bi-adv-fertiliser=Улучшенные ÑƒÐ´Ð¾Ð±Ñ€ÐµÐ½Ð¸Ñ +bi-cellulose=Целлюлоза +bi-nutrients=Питательные вещеÑтва +bi-medicine=Медицина +bi-cokery=КокÑохимичеÑкий завод +bi-stone-crusher=ÐšÐ°Ð¼ÐµÐ½Ð½Ð°Ñ Ð´Ñ€Ð¾Ð±Ð¸Ð»ÐºÐ° +bi-bioreactor=Биореактор +bi-biolab=Ð‘Ð¸Ð¾Ð»Ð°Ð±Ð¾Ñ€Ð°Ñ‚Ð¾Ñ€Ð¸Ñ +bi-woodpulp=ДревеÑные опилки +bi-Purified_Air=Очищенный воздух +bi_bio_Solar_Farm=Био-ÑÐ¾Ð»Ð½ÐµÑ‡Ð½Ð°Ñ Ñ„ÐµÑ€Ð¼Ð° +Bio_Cannon=Био-пушка +Bio_Cannon_Basic_Ammo=СнарÑды Ð´Ð»Ñ Ð±Ð¸Ð¾-пушки +Bio_Cannon_Poison_Ammo=Ядовитые ÑнарÑды Ð´Ð»Ñ Ð±Ð¸Ð¾-пушки +Bio_Cannon_Bio_Ammo=Био-ÑнарÑды Ð´Ð»Ñ Ð±Ð¸Ð¾-пушки +bi-big-wooden-pole=Большщой деревÑный Ñтолб ЛЭП +bi-wooden-fence=ДеревÑный забор +bi-pinetree=СоÑна +bi-rail-wood=ДеревÑные рельÑÑ‹ + + +[item-description] +seedling=Молодое дерево, идеально подходит Ð´Ð»Ñ Ð¿Ð¾Ñадки. +bi_bio_farm=Здание Ñ Ñ…Ð¾Ñ€Ð¾ÑˆÐ¸Ð¼ оÑвещением и Ñредой Ð´Ð»Ñ Ð²Ñ‹Ñ€Ð°Ñ‰Ð¸Ð²Ð°Ð½Ð¸Ñ Ð´ÐµÑ€ÐµÐ²ÑŒÐµÐ². +bi-Purified_Air=ЧиÑтый воздух, никаких загрÑзнений! +bi_bio_Solar_Farm=Био-ÑÐ¾Ð»Ð½ÐµÑ‡Ð½Ð°Ñ Ñ„ÐµÑ€Ð¼Ð° +Bio_Cannon=СтреллÑет ТОЛЬКО по ульÑм! - ДиÑÑ‚Ð°Ð½Ñ†Ð¸Ñ 75 +Bio_Cannon_Basic_Ammo=Ðизкие Ð¿Ð¾Ð²Ñ€ÐµÐ¶Ð´ÐµÐ½Ð¸Ñ +Bio_Cannon_Poison_Ammo=Средние Ð¿Ð¾Ð²Ñ€ÐµÐ¶Ð´ÐµÐ½Ð¸Ñ Ñдом +Bio_Cannon_Bio_Ammo=Большие биологичеÑкие Ð¿Ð¾Ð²Ñ€ÐµÐ¶Ð´ÐµÐ½Ð¸Ñ +bi-big-wooden-pole=Большщой деревÑный Ñтолб ЛЭП +bi-wooden-fence=Защитное ограждение Ñделанное из дерева +bi-pinetree=СадитÑÑ Ð´Ð»Ñ Ð¿Ð¾Ð³Ð»Ð¾Ñ‰ÐµÐ½Ð¸Ñ Ð·Ð°Ð³Ñ€ÑÐ·Ð½ÐµÐ½Ð¸Ñ +bi-rail-wood=РельÑÑ‹ Ñделанные из дерева + + + +[technology-name] +bi_bio_farming=Био-фермы +bi-fertiliser=Ð£Ð´Ð¾Ð±Ñ€ÐµÐ½Ð¸Ñ +bi-coal-processing=Переработка ÑƒÐ³Ð»Ñ +bi-coal-processing-2=Переработка ÑƒÐ³Ð»Ñ 2 +bi-coal-processing-3=Переработка ÑƒÐ³Ð»Ñ 3 +bi-organic-plastic=ОрганичеÑÐºÐ°Ñ Ð¿Ð»Ð°ÑтмаÑÑа +bi-advanced-biotechnology=Продвинутые биотехнологии +Bio_Cannon=Био-пушки + +[technology-description] +bi_bio_farming=Узнайте, как раÑтут Ð´ÐµÑ€ÐµÐ²ÑŒÑ - в закрытом проÑтранÑтве! +Bio_Cannon=Ваши враги не будут знать кто по ним ÑтреллÑет! + +[fluid-name] +liquid-air=Сжатый воздух +nitrogen=Жидкий азот +bi-biomass=БиомаÑÑа +bi-liquid-co2=Сжиженный CO² +bi-Bio_Fuel=Био-топливо +bi-Fuel_Conversion=ÐšÐ¾Ð½Ð²ÐµÑ€Ñ‚Ð°Ñ†Ð¸Ñ Ñ‚Ð¾Ð¿Ð»Ð¸Ð²Ð° + + +[recipe-name] +bi-biomass-0=БиомаÑÑа +bi-seedling=Сажанец +bi_bio_farm=Био-ферма +bi-Logs_Mk1=ПроизводÑтво древеÑины +bi-Logs_Mk2=ПроизводÑтво древеÑины MK2 +bi-Logs_Mk3=ПроизводÑтво древеÑины MK3 +bi-resin=ПроизводÑтво резины +bi-resin_Mk2=ПроизводÑтво резины MK2 +bi-resins_Mk3=ПроизводÑтво резины MK3 +bi-sulfur-wood=ПроизводÑтво Ñерной древеÑины +bi-sulfur-wood_Mk2=ПроизводÑтво Ñерной древеÑины MK2 +bi-sulfur-wood_Mk3=ПроизводÑтво Ñерной древеÑины MK3 +bi-fertiliser=Ð£Ð´Ð¾Ð±Ñ€ÐµÐ½Ð¸Ñ +bi-fertiliser-2=Ð£Ð´Ð¾Ð±Ñ€ÐµÐ½Ð¸Ñ +bi-adv-fertiliser=Улучшенные ÑƒÐ´Ð¾Ð±Ñ€ÐµÐ½Ð¸Ñ +bi-charcoal=ДревеÑный уголь +bi-charcoal-2=ДревеÑный уголь +bi-coal=Базовое производÑтво ÑƒÐ³Ð»Ñ +bi-coal-2=Продвинутое производÑтво ÑƒÐ³Ð»Ñ +bi-coke-coal=Получение кокÑированного ÑƒÐ³Ð»Ñ +bi-ash=Зола +bi-ash-2=Зола +bi-stone-crushed=Дробленый камень +bi-liquid-air=Сжатый воздух +bi-nitrogen=Жидкий азот +bi-liquid-co2=Сжиженный CO² +bi-cellulose=Целлюлоза +bi-plastic=ПлаÑтмаÑÑа +bi-Bio_Garden=БиоÑад +bi-Clean_Air=ОчиÑтка воздуха +bi-Clean_Air2=ОчиÑтка воздуха MK2 +bi_bio_Solar_Farm=Био-ÑÐ¾Ð»Ð½ÐµÑ‡Ð½Ð°Ñ Ñ„ÐµÑ€Ð¼Ð° +bi-Bio_Fuel=Био-топливо +bi-Fuel_Conversion=ÐšÐ¾Ð½Ð²ÐµÑ€Ñ‚Ð°Ñ†Ð¸Ñ Ñ‚Ð¾Ð¿Ð»Ð¸Ð²Ð° +Bio_Cannon=Био-пушка +Bio_Cannon_Basic_Ammo=СнарÑды Ð´Ð»Ñ Ð±Ð¸Ð¾-пушки +Bio_Cannon_Poison_Ammo=Ядовитые ÑнарÑды Ð´Ð»Ñ Ð±Ð¸Ð¾-пушки +Bio_Cannon_Bio_Ammo=Био-ÑнарÑды Ð´Ð»Ñ Ð±Ð¸Ð¾-пушки +bi-burner-mining-drill-disassemble=Разобрать твердотопливные бур +bi-steel-furnace-disassemble=Разобрать Ñтальную печь + + +[recipe-description] +bi-seedling=Молодое дерево, идеально подходит Ð´Ð»Ñ Ð¿Ð¾Ñадки. +bi-Logs_Mk1=Производит 40 древеÑины +bi-Logs_Mk2=Производит 60 древеÑины +bi-Logs_Mk3=Производит 100 древеÑины +bi-coal=Производит 8 ÑƒÐ³Ð»Ñ +bi-coal-2=Производит 10 ÑƒÐ³Ð»Ñ +bi-fertiliser=ПозвольÑет раÑтениÑм произраÑтать быÑтрее +bi-fertiliser-2=ПозвольÑет раÑтениÑм произраÑтать еще быÑтрее (гидроокÑид Ñоды) +bi-adv-fertiliser=Улучшенные ÑƒÐ´Ð¾Ð±Ñ€ÐµÐ½Ð¸Ñ - очень Ð¿Ð¸Ñ‚Ð°Ñ‚ÐµÐ»ÑŒÐ½Ð°Ñ Ñреда Ð´Ð»Ñ Ñ€Ð°Ñтений! +bi-resin=Производит 60 резины +bi-resin_Mk2=Производит 90 резины +bi-resins_Mk3=Производит 150 резины +bi-sulfur-wood=ПроизвеÑти 80 Ñерной древеÑины +bi-sulfur-wood_Mk2=ПроизвеÑти 120 Ñерной древеÑины +bi-sulfur-wood_Mk3=ПроизвеÑти 200 Ñерной древеÑины +bi-Clean_Air=ОчиÑтка воздуха +bi-Clean_Air2=ОчиÑтка воздуха MK2 +bi-Bio_Fuel=Био-топливо из раÑтений и отходов животных +bi-Fuel_Conversion=ÐšÐ¾Ð½Ð²ÐµÑ€Ñ‚Ð°Ñ†Ð¸Ñ Ð±Ð¸Ð¾-топлива в легкую и Ñ‚Ñжелую нефть +bi-burner-mining-drill-disassemble=Ðебольшой возврат затраченных материалов +bi-steel-furnace-disassemble=Ðебольшой возврат затраченных материалов + + +[tile-name] +bi-wood-floor=ДеревÑный пол diff --git a/Bio_Industries_1.4.0/migrations/Bio_Industries_0.0.1.lua b/Bio_Industries_1.4.2/migrations/Bio_Industries_0.0.1.lua similarity index 94% rename from Bio_Industries_1.4.0/migrations/Bio_Industries_0.0.1.lua rename to Bio_Industries_1.4.2/migrations/Bio_Industries_0.0.1.lua index 49ea67e..feeee74 100644 --- a/Bio_Industries_1.4.0/migrations/Bio_Industries_0.0.1.lua +++ b/Bio_Industries_1.4.2/migrations/Bio_Industries_0.0.1.lua @@ -1,12 +1,12 @@ - -game.reload_script() - - -for index, force in pairs(game.forces) do - local technologies = force.technologies; - local recipes = force.recipes; - - force.reset_recipes() - force.reset_technologies() - -end + +game.reload_script() + + +for index, force in pairs(game.forces) do + local technologies = force.technologies; + local recipes = force.recipes; + + force.reset_recipes() + force.reset_technologies() + +end diff --git a/Bio_Industries_1.4.0/migrations/Bio_Industries_1.0.6.json b/Bio_Industries_1.4.2/migrations/Bio_Industries_1.0.6.json similarity index 89% rename from Bio_Industries_1.4.0/migrations/Bio_Industries_1.0.6.json rename to Bio_Industries_1.4.2/migrations/Bio_Industries_1.0.6.json index 3277cab..6f2882d 100644 --- a/Bio_Industries_1.4.0/migrations/Bio_Industries_1.0.6.json +++ b/Bio_Industries_1.4.2/migrations/Bio_Industries_1.0.6.json @@ -1,8 +1,8 @@ -{ - "item": - [ - ["bi-crushed-stone", "stone-crushed"] - ] - -} - +{ + "item": + [ + ["bi-crushed-stone", "stone-crushed"] + ] + +} + diff --git a/Bio_Industries_1.4.0/migrations/Bio_Industries_1.0.9.lua b/Bio_Industries_1.4.2/migrations/Bio_Industries_1.0.9.lua similarity index 96% rename from Bio_Industries_1.4.0/migrations/Bio_Industries_1.0.9.lua rename to Bio_Industries_1.4.2/migrations/Bio_Industries_1.0.9.lua index 722a9ce..eea9e19 100644 --- a/Bio_Industries_1.4.0/migrations/Bio_Industries_1.0.9.lua +++ b/Bio_Industries_1.4.2/migrations/Bio_Industries_1.0.9.lua @@ -1,78 +1,78 @@ - -game.reload_script() - - -for index, force in pairs(game.forces) do - local technologies = force.technologies; - local recipes = force.recipes; - - force.reset_recipes() - force.reset_technologies() - - if game.entity_prototypes["bi_bio_farm"] then - if technologies["bi_bio_farming"].researched then - recipes["bi-seedling"].enabled = true - recipes["bi-seedling"].reload() - recipes["bi-Logs_Mk1"].enabled = true - recipes["bi-Logs_Mk1"].reload() - recipes["bi_bio_farm"].enabled = true - recipes["bi_bio_farm"].reload() - end - - if technologies["bi-fertiliser"].researched then - recipes["bi-Logs_Mk2"].enabled = true - recipes["bi-Logs_Mk2"].reload() - recipes["bi-fertiliser"].enabled = true - recipes["bi-fertiliser"].reload() - recipes["bi-nitrogen"].enabled = true - recipes["bi-nitrogen"].reload() - recipes["bi-liquid-air"].enabled = true - recipes["bi-liquid-air"].reload() - if game.entity_prototypes["bi-Bio_Garden"] then - recipes["bi-Bio_Garden"].enabled = true - recipes["bi-Bio_Garden"].reload() - recipes["bi-Clean_Air"].enabled = true - recipes["bi-Clean_Air"].reload() - end - end - - end - - if game.entity_prototypes["bi-stone-crusher"] then - if technologies["automation-2"].researched then - recipes["bi-stone-crusher"].enabled = true - recipes["bi-stone-crusher"].reload() - recipes["bi-crushed-stone"].enabled = true - recipes["bi-crushed-stone"].reload() - end - end - - if game.entity_prototypes["bi-big-wooden-pole"] then - if technologies["logistics"].researched then - recipes["bi-big-wooden-pole"].enabled = true - recipes["bi-big-wooden-pole"].reload() - end - - if technologies["railway"].researched then - recipes["bi-rail-wood"].enabled = true - recipes["bi-rail-wood"].reload() - end - end - - - - if game.entity_prototypes["bi_bio_Solar_Farm"] then - if game.entity_prototypes["solar-panel-large"] then - if technologies["bob-solar-energy-2"].researched then - recipes["bi_bio_Solar_Farm"].enabled = true - recipes["bi_bio_Solar_Farm"].reload() - else - if technologies["solar-energy"].researched then - recipes["bi_bio_Solar_Farm"].enabled = true - recipes["bi_bio_Solar_Farm"].reload() - end - end - end - end - -end + +game.reload_script() + + +for index, force in pairs(game.forces) do + local technologies = force.technologies; + local recipes = force.recipes; + + force.reset_recipes() + force.reset_technologies() + + if game.entity_prototypes["bi_bio_farm"] then + if technologies["bi_bio_farming"].researched then + recipes["bi-seedling"].enabled = true + recipes["bi-seedling"].reload() + recipes["bi-Logs_Mk1"].enabled = true + recipes["bi-Logs_Mk1"].reload() + recipes["bi_bio_farm"].enabled = true + recipes["bi_bio_farm"].reload() + end + + if technologies["bi-fertiliser"].researched then + recipes["bi-Logs_Mk2"].enabled = true + recipes["bi-Logs_Mk2"].reload() + recipes["bi-fertiliser"].enabled = true + recipes["bi-fertiliser"].reload() + recipes["bi-nitrogen"].enabled = true + recipes["bi-nitrogen"].reload() + recipes["bi-liquid-air"].enabled = true + recipes["bi-liquid-air"].reload() + if game.entity_prototypes["bi-Bio_Garden"] then + recipes["bi-Bio_Garden"].enabled = true + recipes["bi-Bio_Garden"].reload() + recipes["bi-Clean_Air"].enabled = true + recipes["bi-Clean_Air"].reload() + end + end + + end + + if game.entity_prototypes["bi-stone-crusher"] then + if technologies["automation-2"].researched then + recipes["bi-stone-crusher"].enabled = true + recipes["bi-stone-crusher"].reload() + recipes["bi-crushed-stone"].enabled = true + recipes["bi-crushed-stone"].reload() + end + end + + if game.entity_prototypes["bi-big-wooden-pole"] then + if technologies["logistics"].researched then + recipes["bi-big-wooden-pole"].enabled = true + recipes["bi-big-wooden-pole"].reload() + end + + if technologies["railway"].researched then + recipes["bi-rail-wood"].enabled = true + recipes["bi-rail-wood"].reload() + end + end + + + + if game.entity_prototypes["bi_bio_Solar_Farm"] then + if game.entity_prototypes["solar-panel-large"] then + if technologies["bob-solar-energy-2"].researched then + recipes["bi_bio_Solar_Farm"].enabled = true + recipes["bi_bio_Solar_Farm"].reload() + else + if technologies["solar-energy"].researched then + recipes["bi_bio_Solar_Farm"].enabled = true + recipes["bi_bio_Solar_Farm"].reload() + end + end + end + end + +end diff --git a/Bio_Industries_1.4.0/migrations/Bio_Industries_1.1.3.lua b/Bio_Industries_1.4.2/migrations/Bio_Industries_1.1.3.lua similarity index 94% rename from Bio_Industries_1.4.0/migrations/Bio_Industries_1.1.3.lua rename to Bio_Industries_1.4.2/migrations/Bio_Industries_1.1.3.lua index 49ea67e..feeee74 100644 --- a/Bio_Industries_1.4.0/migrations/Bio_Industries_1.1.3.lua +++ b/Bio_Industries_1.4.2/migrations/Bio_Industries_1.1.3.lua @@ -1,12 +1,12 @@ - -game.reload_script() - - -for index, force in pairs(game.forces) do - local technologies = force.technologies; - local recipes = force.recipes; - - force.reset_recipes() - force.reset_technologies() - -end + +game.reload_script() + + +for index, force in pairs(game.forces) do + local technologies = force.technologies; + local recipes = force.recipes; + + force.reset_recipes() + force.reset_technologies() + +end diff --git a/Bio_Industries_1.4.0/migrations/Bio_Industries_1.2.0.lua b/Bio_Industries_1.4.2/migrations/Bio_Industries_1.2.0.lua similarity index 94% rename from Bio_Industries_1.4.0/migrations/Bio_Industries_1.2.0.lua rename to Bio_Industries_1.4.2/migrations/Bio_Industries_1.2.0.lua index 49ea67e..feeee74 100644 --- a/Bio_Industries_1.4.0/migrations/Bio_Industries_1.2.0.lua +++ b/Bio_Industries_1.4.2/migrations/Bio_Industries_1.2.0.lua @@ -1,12 +1,12 @@ - -game.reload_script() - - -for index, force in pairs(game.forces) do - local technologies = force.technologies; - local recipes = force.recipes; - - force.reset_recipes() - force.reset_technologies() - -end + +game.reload_script() + + +for index, force in pairs(game.forces) do + local technologies = force.technologies; + local recipes = force.recipes; + + force.reset_recipes() + force.reset_technologies() + +end diff --git a/Bio_Industries_1.4.0/migrations/Bio_Industries_1.2.5.json b/Bio_Industries_1.4.2/migrations/Bio_Industries_1.2.5.json similarity index 87% rename from Bio_Industries_1.4.0/migrations/Bio_Industries_1.2.5.json rename to Bio_Industries_1.4.2/migrations/Bio_Industries_1.2.5.json index 4e78b7a..d7c9eae 100644 --- a/Bio_Industries_1.4.0/migrations/Bio_Industries_1.2.5.json +++ b/Bio_Industries_1.4.2/migrations/Bio_Industries_1.2.5.json @@ -1,8 +1,8 @@ -{ - "item": - [ - ["bi-seedling", "seedling"] - ] - -} - +{ + "item": + [ + ["bi-seedling", "seedling"] + ] + +} + diff --git a/Bio_Industries_1.4.0/migrations/Bio_Industries_1.2.5.lua b/Bio_Industries_1.4.2/migrations/Bio_Industries_1.2.5.lua similarity index 95% rename from Bio_Industries_1.4.0/migrations/Bio_Industries_1.2.5.lua rename to Bio_Industries_1.4.2/migrations/Bio_Industries_1.2.5.lua index eb7e9f0..56774e4 100644 --- a/Bio_Industries_1.4.0/migrations/Bio_Industries_1.2.5.lua +++ b/Bio_Industries_1.4.2/migrations/Bio_Industries_1.2.5.lua @@ -1,19 +1,19 @@ - -game.reload_script() - - -for index, force in pairs(game.forces) do - local technologies = force.technologies; - local recipes = force.recipes; - - force.reset_recipes() - force.reset_technologies() - - - if technologies["advanced-material-processing"].researched and force.recipes["bi-steel-furnace-disassemble"] then - recipes["bi-steel-furnace-disassemble"].enabled = true - recipes["bi-steel-furnace-disassemble"].reload() - end - - -end + +game.reload_script() + + +for index, force in pairs(game.forces) do + local technologies = force.technologies; + local recipes = force.recipes; + + force.reset_recipes() + force.reset_technologies() + + + if technologies["advanced-material-processing"].researched and force.recipes["bi-steel-furnace-disassemble"] then + recipes["bi-steel-furnace-disassemble"].enabled = true + recipes["bi-steel-furnace-disassemble"].reload() + end + + +end diff --git a/Bio_Industries_1.4.0/migrations/Bio_Industries_1.3.1.lua b/Bio_Industries_1.4.2/migrations/Bio_Industries_1.3.1.lua similarity index 93% rename from Bio_Industries_1.4.0/migrations/Bio_Industries_1.3.1.lua rename to Bio_Industries_1.4.2/migrations/Bio_Industries_1.3.1.lua index 7999cc9..3601b5a 100644 --- a/Bio_Industries_1.4.0/migrations/Bio_Industries_1.3.1.lua +++ b/Bio_Industries_1.4.2/migrations/Bio_Industries_1.3.1.lua @@ -1,13 +1,13 @@ - -game.reload_script() - - -for index, force in pairs(game.forces) do - local technologies = force.technologies; - local recipes = force.recipes; - - force.reset_recipes() - force.reset_technologies() - - -end + +game.reload_script() + + +for index, force in pairs(game.forces) do + local technologies = force.technologies; + local recipes = force.recipes; + + force.reset_recipes() + force.reset_technologies() + + +end diff --git a/Bio_Industries_1.4.0/migrations/Bio_Industries_1.3.3.lua b/Bio_Industries_1.4.2/migrations/Bio_Industries_1.3.3.lua similarity index 95% rename from Bio_Industries_1.4.0/migrations/Bio_Industries_1.3.3.lua rename to Bio_Industries_1.4.2/migrations/Bio_Industries_1.3.3.lua index 149c33a..e310392 100644 --- a/Bio_Industries_1.4.0/migrations/Bio_Industries_1.3.3.lua +++ b/Bio_Industries_1.4.2/migrations/Bio_Industries_1.3.3.lua @@ -1,18 +1,18 @@ - -game.reload_script() - - -for index, force in pairs(game.forces) do - local technologies = force.technologies; - local recipes = force.recipes; - - force.reset_recipes() - force.reset_technologies() - - if game.item_prototypes["bi-cellulose"] then - if technologies["bi-organic-plastic"].researched then - recipes["bi-plastic"].enabled = true - recipes["bi-plastic"].reload() - end - end -end + +game.reload_script() + + +for index, force in pairs(game.forces) do + local technologies = force.technologies; + local recipes = force.recipes; + + force.reset_recipes() + force.reset_technologies() + + if game.item_prototypes["bi-cellulose"] then + if technologies["bi-organic-plastic"].researched then + recipes["bi-plastic"].enabled = true + recipes["bi-plastic"].reload() + end + end +end diff --git a/Bio_Industries_1.4.0/migrations/Bio_Industries_1.4.0.lua b/Bio_Industries_1.4.2/migrations/Bio_Industries_1.4.0.lua similarity index 93% rename from Bio_Industries_1.4.0/migrations/Bio_Industries_1.4.0.lua rename to Bio_Industries_1.4.2/migrations/Bio_Industries_1.4.0.lua index 4084ae6..172d753 100644 --- a/Bio_Industries_1.4.0/migrations/Bio_Industries_1.4.0.lua +++ b/Bio_Industries_1.4.2/migrations/Bio_Industries_1.4.0.lua @@ -1,13 +1,13 @@ - -game.reload_script() - - -for index, force in pairs(game.forces) do - local technologies = force.technologies; - local recipes = force.recipes; - - force.reset_recipes() - force.reset_technologies() - - -end + +game.reload_script() + + +for index, force in pairs(game.forces) do + local technologies = force.technologies; + local recipes = force.recipes; + + force.reset_recipes() + force.reset_technologies() + + +end diff --git a/bobwarfare_0.14.0/migrations/bobwarfare_0.12.10.lua b/Bio_Industries_1.4.2/migrations/Bio_Industries_1.4.2.lua similarity index 50% rename from bobwarfare_0.14.0/migrations/bobwarfare_0.12.10.lua rename to Bio_Industries_1.4.2/migrations/Bio_Industries_1.4.2.lua index 62e1629..172d753 100644 --- a/bobwarfare_0.14.0/migrations/bobwarfare_0.12.10.lua +++ b/Bio_Industries_1.4.2/migrations/Bio_Industries_1.4.2.lua @@ -1,11 +1,13 @@ -game.reload_script() - -for index, force in pairs(game.forces) do - force.reset_recipes() - force.reset_technologies() - - if force.technologies["tanks-3"].researched then - force.recipes["distractor-artillery-shell"].enabled = true - end -end - + +game.reload_script() + + +for index, force in pairs(game.forces) do + local technologies = force.technologies; + local recipes = force.recipes; + + force.reset_recipes() + force.reset_technologies() + + +end diff --git a/Bio_Industries_1.4.0/prototypes/Bio_Cannon/bio-projectile.lua b/Bio_Industries_1.4.2/prototypes/Bio_Cannon/bio-projectile.lua similarity index 94% rename from Bio_Industries_1.4.0/prototypes/Bio_Cannon/bio-projectile.lua rename to Bio_Industries_1.4.2/prototypes/Bio_Cannon/bio-projectile.lua index 123d909..4fdcc00 100644 --- a/Bio_Industries_1.4.0/prototypes/Bio_Cannon/bio-projectile.lua +++ b/Bio_Industries_1.4.2/prototypes/Bio_Cannon/bio-projectile.lua @@ -1,155 +1,155 @@ -require "util" - ----- Doubles damage if you're playing with NE Enemies -local NE_Damage = 1 - -if data.raw["unit"]["small-biter-Mk2"] ~= nil and data.raw["unit"]["small-spitter-Mk2"] ~= nil then - - NE_Damage = 2 - -end - - - -data:extend({ - --Projectile - - -- Have Buster Ammo - --- Bio - { - type = "projectile", - name = "Bio_Cannon_Bio_Ammo", - flags = {"not-on-map"}, - acceleration = 0.0005, - action = - { - { - type = "area", - perimeter = 15, - action_delivery = - { - type = "instant", - target_effects = - { - { - type = "damage", - damage = {amount = 100 * NE_Damage, type = "physical"} - }, - { - type = "damage", - damage = {amount = 100 * NE_Damage, type = "explosion"} - }, - { - type = "damage", - damage = {amount = 350 * NE_Damage, type = "Biological"} - }, - } - } - }, - { - type = "direct", - action_delivery = - { - type = "instant", - target_effects = - { - { - type = "create-entity", - entity_name = "big-fire-cloud", - check_buildability = true - }, - } - } - }, - { - type = "direct", - action_delivery = - { - type = "instant", - target_effects = - { - { - type = "create-entity", - entity_name = "small-scorchmark", - check_buildability = true - }, - } - } - } - }, - light = {intensity = 0.8, size = 6}, - animation = - { - filename = "__Bio_Industries__/graphics/entities/biocannon/projectiles/Bio_Cannon_Bio_Ammo.png", - priority = "extra-high", - width = 18, - height = 47, - frame_count = 1 - }, - shadow = - { - filename = "__Bio_Industries__/graphics/entities/biocannon/projectiles/Bio_Cannon_Ammo-shadow.png", - priority = "extra-high", - width = 18, - height = 47, - frame_count = 1 - } - }, - -}) - - -data:extend({ - - -- Hive Buster Bio Ammo - { - type = "ammo", - name = "Bio_Cannon_Bio_Ammo", - icon = "__Bio_Industries__/graphics/entities/biocannon/projectiles/Bio_Cannon_Bio_Ammo_Icon.png", - flags = { "goes-to-main-inventory" }, - ammo_type = - { - category = "Bio_Cannon_Ammo", - target_type = "direction", - action = - { - { - type = "direct", - action_delivery = - { - type = "projectile", - projectile = "Bio_Cannon_Bio_Ammo", - starting_speed = 1, - direction_deviation = 0.8, - range_deviation = 0.8, - max_range = 75 - } - } - } - }, - subgroup = "ammo", - order = "a[Bio_Cannon_Ammo]-c[Bio]", - stack_size = 50, - }, - - -}) - - ---- Recipe -data:extend({ - - -- Hive Buster Ammo - -- Bio - - { - type= "recipe", - name= "Bio_Cannon_Bio_Ammo", - enabled = false, - energy_required = 8, - ingredients = {{"Bio_Cannon_Basic_Ammo", 1},{"alien-artifact", 2}, {"explosive-rocket", 10}}, - result = "Bio_Cannon_Bio_Ammo", - result_count = 2, - }, - - }) +require "util" + +---- Doubles damage if you're playing with NE Enemies +local NE_Damage = 1 + +if data.raw["unit"]["small-biter-Mk2"] ~= nil and data.raw["unit"]["small-spitter-Mk2"] ~= nil then + + NE_Damage = 2 + +end + + + +data:extend({ + --Projectile + + -- Have Buster Ammo + --- Bio + { + type = "projectile", + name = "Bio_Cannon_Bio_Ammo", + flags = {"not-on-map"}, + acceleration = 0.0005, + action = + { + { + type = "area", + perimeter = 15, + action_delivery = + { + type = "instant", + target_effects = + { + { + type = "damage", + damage = {amount = 100 * NE_Damage, type = "physical"} + }, + { + type = "damage", + damage = {amount = 100 * NE_Damage, type = "explosion"} + }, + { + type = "damage", + damage = {amount = 350 * NE_Damage, type = "Biological"} + }, + } + } + }, + { + type = "direct", + action_delivery = + { + type = "instant", + target_effects = + { + { + type = "create-entity", + entity_name = "big-fire-cloud", + check_buildability = true + }, + } + } + }, + { + type = "direct", + action_delivery = + { + type = "instant", + target_effects = + { + { + type = "create-entity", + entity_name = "small-scorchmark", + check_buildability = true + }, + } + } + } + }, + light = {intensity = 0.8, size = 6}, + animation = + { + filename = "__Bio_Industries__/graphics/entities/biocannon/projectiles/Bio_Cannon_Bio_Ammo.png", + priority = "extra-high", + width = 18, + height = 47, + frame_count = 1 + }, + shadow = + { + filename = "__Bio_Industries__/graphics/entities/biocannon/projectiles/Bio_Cannon_Ammo-shadow.png", + priority = "extra-high", + width = 18, + height = 47, + frame_count = 1 + } + }, + +}) + + +data:extend({ + + -- Hive Buster Bio Ammo + { + type = "ammo", + name = "Bio_Cannon_Bio_Ammo", + icon = "__Bio_Industries__/graphics/entities/biocannon/projectiles/Bio_Cannon_Bio_Ammo_Icon.png", + flags = { "goes-to-main-inventory" }, + ammo_type = + { + category = "Bio_Cannon_Ammo", + target_type = "direction", + action = + { + { + type = "direct", + action_delivery = + { + type = "projectile", + projectile = "Bio_Cannon_Bio_Ammo", + starting_speed = 1, + direction_deviation = 0.8, + range_deviation = 0.8, + max_range = 75 + } + } + } + }, + subgroup = "ammo", + order = "a[Bio_Cannon_Ammo]-c[Bio]", + stack_size = 50, + }, + + +}) + + +--- Recipe +data:extend({ + + -- Hive Buster Ammo + -- Bio + + { + type= "recipe", + name= "Bio_Cannon_Bio_Ammo", + enabled = false, + energy_required = 8, + ingredients = {{"Bio_Cannon_Basic_Ammo", 1},{"alien-artifact", 2}, {"explosive-rocket", 10}}, + result = "Bio_Cannon_Bio_Ammo", + result_count = 2, + }, + + }) diff --git a/Bio_Industries_1.4.0/prototypes/Bio_Cannon/damage-type.lua b/Bio_Industries_1.4.2/prototypes/Bio_Cannon/damage-type.lua similarity index 92% rename from Bio_Industries_1.4.0/prototypes/Bio_Cannon/damage-type.lua rename to Bio_Industries_1.4.2/prototypes/Bio_Cannon/damage-type.lua index c3331bb..23295ac 100644 --- a/Bio_Industries_1.4.0/prototypes/Bio_Cannon/damage-type.lua +++ b/Bio_Industries_1.4.2/prototypes/Bio_Cannon/damage-type.lua @@ -1,9 +1,9 @@ -data:extend({ - ---- Bio Damage for new Ammo - { - type = "damage-type", - name = "Biological" - }, - -}) +data:extend({ + +--- Bio Damage for new Ammo + { + type = "damage-type", + name = "Biological" + }, + +}) diff --git a/Bio_Industries_1.4.0/prototypes/Bio_Cannon/entity.lua b/Bio_Industries_1.4.2/prototypes/Bio_Cannon/entity.lua similarity index 96% rename from Bio_Industries_1.4.0/prototypes/Bio_Cannon/entity.lua rename to Bio_Industries_1.4.2/prototypes/Bio_Cannon/entity.lua index 2ece5c0..0c67e6c 100644 --- a/Bio_Industries_1.4.0/prototypes/Bio_Cannon/entity.lua +++ b/Bio_Industries_1.4.2/prototypes/Bio_Cannon/entity.lua @@ -1,191 +1,191 @@ -require "util" - -inv_extension = -{ - filename = "__Bio_Industries__/graphics/icons/biocannon_icon.png", - priority = "medium", - width = 1, - height = 1, - direction_count = 1, - frame_count = 1, - axially_symmetrical = false, - shift = {0, 0} -} - -inv_extension2 = -{ - filename = "__Bio_Industries__/graphics/entities/biocannon/bio_cannon_closed.png", - priority = "extra-high", - scale = 1, - width = 384, - height = 384, - direction_count = 1, - frame_count = 1, - axially_symmetrical = false, - shift = {1.125, -1.625} -} - - -data:extend({ - - -- Bio Cannon Artillery Range Overlay - { - type = "ammo-turret", - name = "Bio_Cannon_Area", - icon = "__Bio_Industries__/graphics/icons/biocannon_icon.png", - flags = {"placeable-neutral", "placeable-player", "player-creation"}, - 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 = "Bio_Cannon_Area"}, - max_health = 450, - corpse = "big-remnants", - dying_explosion = "massive-explosion", - automated_ammo_count = 10, - resistances = {}, - collision_box = {{-4.25, -4.25}, {4.25, 4.25}}, - selection_box = {{-4.5, -4.5}, {4.5, 4.5}}, - order = "i[items][Bio_Cannon]", - inventory_size = 1, - attack_parameters = - { - type = "projectile", - ammo_category = "Bio_Cannon_Ammo", - cooldown = 2, - range = 75, - projectile_creation_distance = 1.8, - 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 = 40 - - }, - - -- Bio Cannon Artillery - { - type = "container", - name = "Bio_Cannon", - icon = "__Bio_Industries__/graphics/icons/biocannon_icon.png", - --flags = {"placeable-neutral", "placeable-player", "player-creation"}, - flags = {"placeable-neutral", "player-creation", "placeable-off-grid", "not-repairable"}, - selectable_in_game = false, - 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 = "Bio_Cannon_Area"}, - max_health = 450, - corpse = "big-remnants", - dying_explosion = "massive-explosion", - resistances = {}, - collision_box = {{0, 0}, {0, 0}}, - selection_box = {{0, 0}, {0, 0}}, - order = "i[items][Bio_Cannon]", - inventory_size = 1, - picture = - { - filename = "__Bio_Industries__/graphics/entities/biocannon/bio_cannon_open.png", - priority = "extra-high", - scale = 1, - width = 384, - height = 384, - shift = {1.125, -1.625} - } - }, - --Inventory - - { - type = "ammo-turret", - name = "Bio_Cannoni", - icon = "__Bio_Industries__/graphics/icons/biocannon_icon.png", - flags = {"placeable-neutral", "placeable-player", "player-creation"}, - 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 = "Bio_Cannon_Area"}, - max_health = 450, - corpse = "big-remnants", - dying_explosion = "massive-explosion", - automated_ammo_count = 10, - resistances = {}, - collision_box = {{-4.25, -4.25}, {4.25, 4.25}}, - selection_box = {{-4.5, -4.5}, {4.5, 4.5}}, - order = "i[items][Bio_Cannon]", - inventory_size = 1, - attack_parameters = - { - type = "projectile", - ammo_category = "Bio_Cannon_Ammo", - cooldown = 2, - range = 0, - projectile_creation_distance = 1.8, - action ={} - }, - folding_speed = 0.08, - folded_animation = (function() - local res = util.table.deepcopy(inv_extension) - res.frame_count = 1 - res.line_length = 1 - return res - end)(), - folding_animation = (function() - local res = util.table.deepcopy(inv_extension) - res.run_mode = "backward" - return res - end)(), - call_for_help_radius = 40 - - }, - ---- Radar - { - type = "radar", - name = "Bio_Cannonr", - icon = "__Bio_Industries__/graphics/icons/biocannon_icon.png", - flags = {"placeable-neutral", "player-creation", "placeable-off-grid", "not-repairable"}, - selectable_in_game = false, - minable = {mining_time = 5, result = "Bio_Cannon_Area"}, - max_health = 450, - corpse = "big-remnants", - dying_explosion = "massive-explosion", - resistances = {}, - collision_box = {{-4.0, -4.0}, {4.0, 4.0}}, - selection_box = {{-4.25, -4.25}, {4.25, 4.25}}, - order = "i[items][Bio_Cannon]", - energy_per_sector = "22MJ", - max_distance_of_nearby_sector_revealed = 5, - max_distance_of_sector_revealed = 5, - energy_per_nearby_scan = "400kW", - energy_source = - { - type = "electric", - usage_priority = "secondary-input" - }, - energy_usage = "6kW", - pictures = - - { - filename = "__Bio_Industries__/graphics/icons/biocannon_icon.png", - priority = "low", - width = 1, - height = 1, - axially_symmetrical = false, - apply_projection = false, - direction_count = 1, - line_length = 1, - shift = {0, -0} - }, - - }, - - - - +require "util" + +inv_extension = +{ + filename = "__Bio_Industries__/graphics/icons/biocannon_icon.png", + priority = "medium", + width = 1, + height = 1, + direction_count = 1, + frame_count = 1, + axially_symmetrical = false, + shift = {0, 0} +} + +inv_extension2 = +{ + filename = "__Bio_Industries__/graphics/entities/biocannon/bio_cannon_closed.png", + priority = "extra-high", + scale = 1, + width = 384, + height = 384, + direction_count = 1, + frame_count = 1, + axially_symmetrical = false, + shift = {1.125, -1.625} +} + + +data:extend({ + + -- Bio Cannon Artillery Range Overlay + { + type = "ammo-turret", + name = "Bio_Cannon_Area", + icon = "__Bio_Industries__/graphics/icons/biocannon_icon.png", + flags = {"placeable-neutral", "placeable-player", "player-creation"}, + 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 = "Bio_Cannon_Area"}, + max_health = 450, + corpse = "big-remnants", + dying_explosion = "massive-explosion", + automated_ammo_count = 10, + resistances = {}, + collision_box = {{-4.25, -4.25}, {4.25, 4.25}}, + selection_box = {{-4.5, -4.5}, {4.5, 4.5}}, + order = "i[items][Bio_Cannon]", + inventory_size = 1, + attack_parameters = + { + type = "projectile", + ammo_category = "Bio_Cannon_Ammo", + cooldown = 2, + range = 75, + projectile_creation_distance = 1.8, + 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 = 40 + + }, + + -- Bio Cannon Artillery + { + type = "container", + name = "Bio_Cannon", + icon = "__Bio_Industries__/graphics/icons/biocannon_icon.png", + --flags = {"placeable-neutral", "placeable-player", "player-creation"}, + flags = {"placeable-neutral", "player-creation", "placeable-off-grid", "not-repairable"}, + selectable_in_game = false, + 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 = "Bio_Cannon_Area"}, + max_health = 450, + corpse = "big-remnants", + dying_explosion = "massive-explosion", + resistances = {}, + collision_box = {{0, 0}, {0, 0}}, + selection_box = {{0, 0}, {0, 0}}, + order = "i[items][Bio_Cannon]", + inventory_size = 1, + picture = + { + filename = "__Bio_Industries__/graphics/entities/biocannon/bio_cannon_open.png", + priority = "extra-high", + scale = 1, + width = 384, + height = 384, + shift = {1.125, -1.625} + } + }, + --Inventory + + { + type = "ammo-turret", + name = "Bio_Cannoni", + icon = "__Bio_Industries__/graphics/icons/biocannon_icon.png", + flags = {"placeable-neutral", "placeable-player", "player-creation"}, + 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 = "Bio_Cannon_Area"}, + max_health = 450, + corpse = "big-remnants", + dying_explosion = "massive-explosion", + automated_ammo_count = 10, + resistances = {}, + collision_box = {{-4.25, -4.25}, {4.25, 4.25}}, + selection_box = {{-4.5, -4.5}, {4.5, 4.5}}, + order = "i[items][Bio_Cannon]", + inventory_size = 1, + attack_parameters = + { + type = "projectile", + ammo_category = "Bio_Cannon_Ammo", + cooldown = 2, + range = 0, + projectile_creation_distance = 1.8, + action ={} + }, + folding_speed = 0.08, + folded_animation = (function() + local res = util.table.deepcopy(inv_extension) + res.frame_count = 1 + res.line_length = 1 + return res + end)(), + folding_animation = (function() + local res = util.table.deepcopy(inv_extension) + res.run_mode = "backward" + return res + end)(), + call_for_help_radius = 40 + + }, + ---- Radar + { + type = "radar", + name = "Bio_Cannonr", + icon = "__Bio_Industries__/graphics/icons/biocannon_icon.png", + flags = {"placeable-neutral", "player-creation", "placeable-off-grid", "not-repairable"}, + selectable_in_game = false, + minable = {mining_time = 5, result = "Bio_Cannon_Area"}, + max_health = 450, + corpse = "big-remnants", + dying_explosion = "massive-explosion", + resistances = {}, + collision_box = {{-4.0, -4.0}, {4.0, 4.0}}, + selection_box = {{-4.25, -4.25}, {4.25, 4.25}}, + order = "i[items][Bio_Cannon]", + energy_per_sector = "22MJ", + max_distance_of_nearby_sector_revealed = 5, + max_distance_of_sector_revealed = 5, + energy_per_nearby_scan = "400kW", + energy_source = + { + type = "electric", + usage_priority = "secondary-input" + }, + energy_usage = "6kW", + pictures = + + { + filename = "__Bio_Industries__/graphics/icons/biocannon_icon.png", + priority = "low", + width = 1, + height = 1, + axially_symmetrical = false, + apply_projection = false, + direction_count = 1, + line_length = 1, + shift = {0, -0} + }, + + }, + + + + }) \ No newline at end of file diff --git a/Bio_Industries_1.4.0/prototypes/Bio_Cannon/item-group.lua b/Bio_Industries_1.4.2/prototypes/Bio_Cannon/item-group.lua similarity index 91% rename from Bio_Industries_1.4.0/prototypes/Bio_Cannon/item-group.lua rename to Bio_Industries_1.4.2/prototypes/Bio_Cannon/item-group.lua index 1d583b9..a56e818 100644 --- a/Bio_Industries_1.4.0/prototypes/Bio_Cannon/item-group.lua +++ b/Bio_Industries_1.4.2/prototypes/Bio_Cannon/item-group.lua @@ -1,10 +1,10 @@ - -data:extend( -{ - { - type = "ammo-category", - name = "Bio_Cannon_Ammo", - order = "1" - }, -} -) + +data:extend( +{ + { + type = "ammo-category", + name = "Bio_Cannon_Ammo", + order = "1" + }, +} +) diff --git a/Bio_Industries_1.4.0/prototypes/Bio_Cannon/item.lua b/Bio_Industries_1.4.2/prototypes/Bio_Cannon/item.lua similarity index 94% rename from Bio_Industries_1.4.0/prototypes/Bio_Cannon/item.lua rename to Bio_Industries_1.4.2/prototypes/Bio_Cannon/item.lua index 3f61535..cc5aee3 100644 --- a/Bio_Industries_1.4.0/prototypes/Bio_Cannon/item.lua +++ b/Bio_Industries_1.4.2/prototypes/Bio_Cannon/item.lua @@ -1,17 +1,17 @@ -data:extend({ - - - -- Hive Buster Turret - - { - type = "item", - name = "Bio_Cannon_Area", - icon = "__Bio_Industries__/graphics/icons/biocannon_icon.png", - flags = { "goes-to-quickbar" }, - subgroup = "defensive-structure", - order = "b-b", - place_result = "Bio_Cannon_Area", - stack_size = 1, - }, - +data:extend({ + + + -- Hive Buster Turret + + { + type = "item", + name = "Bio_Cannon_Area", + icon = "__Bio_Industries__/graphics/icons/biocannon_icon.png", + flags = { "goes-to-quickbar" }, + subgroup = "defensive-structure", + order = "b-b", + place_result = "Bio_Cannon_Area", + stack_size = 1, + }, + }) \ No newline at end of file diff --git a/Bio_Industries_1.4.0/prototypes/Bio_Cannon/projectiles-entity.lua b/Bio_Industries_1.4.2/prototypes/Bio_Cannon/projectiles-entity.lua similarity index 95% rename from Bio_Industries_1.4.0/prototypes/Bio_Cannon/projectiles-entity.lua rename to Bio_Industries_1.4.2/prototypes/Bio_Cannon/projectiles-entity.lua index 93d05c5..b8ccdf7 100644 --- a/Bio_Industries_1.4.0/prototypes/Bio_Cannon/projectiles-entity.lua +++ b/Bio_Industries_1.4.2/prototypes/Bio_Cannon/projectiles-entity.lua @@ -1,335 +1,335 @@ -require "util" - - -local NE_Damage = 1 -if data.raw["unit"]["small-biter-Mk2"] ~= nil and data.raw["unit"]["small-spitter-Mk2"] ~= nil then - - NE_Damage = 2 - -end - - - -data:extend({ - --Projectile - - -- Have Buster Ammo - -- Basic - { - type = "projectile", - name = "Bio_Cannon_Basic_Ammo", - flags = {"not-on-map"}, - acceleration = 0.0005, - action = - { - { - type = "area", - perimeter = 8, - action_delivery = - { - type = "instant", - target_effects = - { - { - type = "damage", - damage = {amount = 100 * NE_Damage, type = "physical"} - }, - { - type = "damage", - damage = {amount = 150 * NE_Damage, type = "explosion"} - }, - - } - } - }, - { - type = "direct", - action_delivery = - { - type = "instant", - target_effects = - { - { - type = "create-entity", - entity_name = "small-fire-cloud", - check_buildability = true - }, - } - } - }, - { - type = "direct", - action_delivery = - { - type = "instant", - target_effects = - { - { - type = "create-entity", - entity_name = "small-scorchmark", - check_buildability = true - }, - } - } - } - }, - light = {intensity = 0.8, size = 6}, - animation = - { - filename = "__Bio_Industries__/graphics/entities/biocannon/projectiles/Bio_Cannon_Basic_Ammo.png", - priority = "extra-high", - width = 18, - height = 47, - frame_count = 1 - }, - shadow = - { - filename = "__Bio_Industries__/graphics/entities/biocannon/projectiles/Bio_Cannon_Ammo-shadow.png", - priority = "extra-high", - width = 18, - height = 47, - frame_count = 1 - } - }, - - --- Poison - { - type = "projectile", - name = "Bio_Cannon_Poison_Ammo", - flags = {"not-on-map"}, - acceleration = 0.0005, - action = - { - { - type = "area", - perimeter = 12, - action_delivery = - { - type = "instant", - target_effects = - { - { - type = "damage", - damage = {amount = 100 * NE_Damage, type = "physical"} - }, - { - type = "damage", - damage = {amount = 150 * NE_Damage, type = "explosion"} - }, - { - type = "damage", - damage = {amount = 250 * NE_Damage, type = "poison"} - }, - } - } - }, - { - type = "direct", - action_delivery = - { - type = "instant", - target_effects = - { - { - type = "create-entity", - entity_name = "medium-fire-cloud", - check_buildability = true - }, - } - } - }, - { - type = "direct", - action_delivery = - { - type = "instant", - target_effects = - { - { - type = "create-entity", - entity_name = "small-scorchmark", - check_buildability = true - }, - } - } - } - }, - light = {intensity = 0.8, size = 6}, - animation = - { - filename = "__Bio_Industries__/graphics/entities/biocannon/projectiles/Bio_Cannon_Poison_Ammo.png", - priority = "extra-high", - width = 18, - height = 47, - frame_count = 1 - }, - shadow = - { - filename = "__Bio_Industries__/graphics/entities/biocannon/projectiles/Bio_Cannon_Ammo-shadow.png", - priority = "extra-high", - width = 18, - height = 47, - frame_count = 1 - } - }, - - - ----- Fire Clouds. - ---- Small Fire Cloud - { - type = "smoke-with-trigger", - name = "small-fire-cloud", - flags = {"not-on-map"}, - show_when_smoke_off = true, - animation = - { - filename = "__Bio_Industries__/graphics/entities/biocannon/projectiles/fire.png", - priority = "low", - width = 30, - height = 50, - frame_count = 30, - animation_speed = 1, - line_length = 30, - scale = 3, - }, - slow_down_factor = 0, - affected_by_wind = false, - cyclic = true, - duration = 60 * 8, - fade_away_duration = 2 * 60, - spread_duration = 8, - action = - { - type = "direct", - action_delivery = - { - type = "instant", - target_effects = - { - type = "nested-result", - action = - { - type = "area", - perimeter = 3, - action_delivery = - { - type = "instant", - target_effects = - { - type = "damage", - damage = { amount = 3, type = "fire"} - } - } - } - } - } - }, - action_frequency = 30 - }, - - --- medium File Cloud - { - type = "smoke-with-trigger", - name = "medium-fire-cloud", - flags = {"not-on-map"}, - show_when_smoke_off = true, - animation = - { - filename = "__Bio_Industries__/graphics/entities/biocannon/projectiles/fire.png", - priority = "low", - width = 30, - height = 50, - frame_count = 30, - animation_speed = 1, - line_length = 30, - scale = 3, - }, - slow_down_factor = 0, - affected_by_wind = false, - cyclic = true, - duration = 60 * 10, - fade_away_duration = 2 * 60, - spread_duration = 10, - action = - { - type = "direct", - action_delivery = - { - type = "instant", - target_effects = - { - type = "nested-result", - action = - { - type = "area", - perimeter = 4, - action_delivery = - { - type = "instant", - target_effects = - { - type = "damage", - damage = { amount = 4, type = "fire"} - } - } - } - } - } - }, - action_frequency = 30 - }, - - --- big File Cloud - { - type = "smoke-with-trigger", - name = "big-fire-cloud", - flags = {"not-on-map"}, - show_when_smoke_off = true, - animation = - { - filename = "__Bio_Industries__/graphics/entities/biocannon/projectiles/fire.png", - priority = "low", - width = 30, - height = 50, - frame_count = 30, - animation_speed = 1, - line_length = 30, - scale = 3, - }, - slow_down_factor = 0, - affected_by_wind = false, - cyclic = true, - duration = 60 * 12, - fade_away_duration = 2 * 60, - spread_duration = 12, - action = - { - type = "direct", - action_delivery = - { - type = "instant", - target_effects = - { - type = "nested-result", - action = - { - type = "area", - perimeter = 5, - action_delivery = - { - type = "instant", - target_effects = - { - type = "damage", - damage = { amount = 5, type = "fire"} - } - } - } - } - } - }, - action_frequency = 30 - }, - - +require "util" + + +local NE_Damage = 1 +if data.raw["unit"]["small-biter-Mk2"] ~= nil and data.raw["unit"]["small-spitter-Mk2"] ~= nil then + + NE_Damage = 2 + +end + + + +data:extend({ + --Projectile + + -- Have Buster Ammo + -- Basic + { + type = "projectile", + name = "Bio_Cannon_Basic_Ammo", + flags = {"not-on-map"}, + acceleration = 0.0005, + action = + { + { + type = "area", + perimeter = 8, + action_delivery = + { + type = "instant", + target_effects = + { + { + type = "damage", + damage = {amount = 100 * NE_Damage, type = "physical"} + }, + { + type = "damage", + damage = {amount = 150 * NE_Damage, type = "explosion"} + }, + + } + } + }, + { + type = "direct", + action_delivery = + { + type = "instant", + target_effects = + { + { + type = "create-entity", + entity_name = "small-fire-cloud", + check_buildability = true + }, + } + } + }, + { + type = "direct", + action_delivery = + { + type = "instant", + target_effects = + { + { + type = "create-entity", + entity_name = "small-scorchmark", + check_buildability = true + }, + } + } + } + }, + light = {intensity = 0.8, size = 6}, + animation = + { + filename = "__Bio_Industries__/graphics/entities/biocannon/projectiles/Bio_Cannon_Basic_Ammo.png", + priority = "extra-high", + width = 18, + height = 47, + frame_count = 1 + }, + shadow = + { + filename = "__Bio_Industries__/graphics/entities/biocannon/projectiles/Bio_Cannon_Ammo-shadow.png", + priority = "extra-high", + width = 18, + height = 47, + frame_count = 1 + } + }, + + --- Poison + { + type = "projectile", + name = "Bio_Cannon_Poison_Ammo", + flags = {"not-on-map"}, + acceleration = 0.0005, + action = + { + { + type = "area", + perimeter = 12, + action_delivery = + { + type = "instant", + target_effects = + { + { + type = "damage", + damage = {amount = 100 * NE_Damage, type = "physical"} + }, + { + type = "damage", + damage = {amount = 150 * NE_Damage, type = "explosion"} + }, + { + type = "damage", + damage = {amount = 250 * NE_Damage, type = "poison"} + }, + } + } + }, + { + type = "direct", + action_delivery = + { + type = "instant", + target_effects = + { + { + type = "create-entity", + entity_name = "medium-fire-cloud", + check_buildability = true + }, + } + } + }, + { + type = "direct", + action_delivery = + { + type = "instant", + target_effects = + { + { + type = "create-entity", + entity_name = "small-scorchmark", + check_buildability = true + }, + } + } + } + }, + light = {intensity = 0.8, size = 6}, + animation = + { + filename = "__Bio_Industries__/graphics/entities/biocannon/projectiles/Bio_Cannon_Poison_Ammo.png", + priority = "extra-high", + width = 18, + height = 47, + frame_count = 1 + }, + shadow = + { + filename = "__Bio_Industries__/graphics/entities/biocannon/projectiles/Bio_Cannon_Ammo-shadow.png", + priority = "extra-high", + width = 18, + height = 47, + frame_count = 1 + } + }, + + + ----- Fire Clouds. + ---- Small Fire Cloud + { + type = "smoke-with-trigger", + name = "small-fire-cloud", + flags = {"not-on-map"}, + show_when_smoke_off = true, + animation = + { + filename = "__Bio_Industries__/graphics/entities/biocannon/projectiles/fire.png", + priority = "low", + width = 30, + height = 50, + frame_count = 30, + animation_speed = 1, + line_length = 30, + scale = 3, + }, + slow_down_factor = 0, + affected_by_wind = false, + cyclic = true, + duration = 60 * 8, + fade_away_duration = 2 * 60, + spread_duration = 8, + action = + { + type = "direct", + action_delivery = + { + type = "instant", + target_effects = + { + type = "nested-result", + action = + { + type = "area", + perimeter = 3, + action_delivery = + { + type = "instant", + target_effects = + { + type = "damage", + damage = { amount = 3, type = "fire"} + } + } + } + } + } + }, + action_frequency = 30 + }, + + --- medium File Cloud + { + type = "smoke-with-trigger", + name = "medium-fire-cloud", + flags = {"not-on-map"}, + show_when_smoke_off = true, + animation = + { + filename = "__Bio_Industries__/graphics/entities/biocannon/projectiles/fire.png", + priority = "low", + width = 30, + height = 50, + frame_count = 30, + animation_speed = 1, + line_length = 30, + scale = 3, + }, + slow_down_factor = 0, + affected_by_wind = false, + cyclic = true, + duration = 60 * 10, + fade_away_duration = 2 * 60, + spread_duration = 10, + action = + { + type = "direct", + action_delivery = + { + type = "instant", + target_effects = + { + type = "nested-result", + action = + { + type = "area", + perimeter = 4, + action_delivery = + { + type = "instant", + target_effects = + { + type = "damage", + damage = { amount = 4, type = "fire"} + } + } + } + } + } + }, + action_frequency = 30 + }, + + --- big File Cloud + { + type = "smoke-with-trigger", + name = "big-fire-cloud", + flags = {"not-on-map"}, + show_when_smoke_off = true, + animation = + { + filename = "__Bio_Industries__/graphics/entities/biocannon/projectiles/fire.png", + priority = "low", + width = 30, + height = 50, + frame_count = 30, + animation_speed = 1, + line_length = 30, + scale = 3, + }, + slow_down_factor = 0, + affected_by_wind = false, + cyclic = true, + duration = 60 * 12, + fade_away_duration = 2 * 60, + spread_duration = 12, + action = + { + type = "direct", + action_delivery = + { + type = "instant", + target_effects = + { + type = "nested-result", + action = + { + type = "area", + perimeter = 5, + action_delivery = + { + type = "instant", + target_effects = + { + type = "damage", + damage = { amount = 5, type = "fire"} + } + } + } + } + } + }, + action_frequency = 30 + }, + + }) \ No newline at end of file diff --git a/Bio_Industries_1.4.0/prototypes/Bio_Cannon/projectiles-item.lua b/Bio_Industries_1.4.2/prototypes/Bio_Cannon/projectiles-item.lua similarity index 95% rename from Bio_Industries_1.4.0/prototypes/Bio_Cannon/projectiles-item.lua rename to Bio_Industries_1.4.2/prototypes/Bio_Cannon/projectiles-item.lua index b5e0925..cb08e98 100644 --- a/Bio_Industries_1.4.0/prototypes/Bio_Cannon/projectiles-item.lua +++ b/Bio_Industries_1.4.2/prototypes/Bio_Cannon/projectiles-item.lua @@ -1,66 +1,66 @@ -data:extend({ - - -- Hive Buster Basic Ammo - { - type = "ammo", - name = "Bio_Cannon_Basic_Ammo", - icon = "__Bio_Industries__/graphics/entities/biocannon/projectiles/Bio_Cannon_Basic_Ammo_Icon.png", - flags = { "goes-to-main-inventory" }, - ammo_type = - { - category = "Bio_Cannon_Ammo", - target_type = "direction", - action = - { - { - type = "direct", - action_delivery = - { - type = "projectile", - projectile = "Bio_Cannon_Basic_Ammo", - starting_speed = 1, - direction_deviation = 0.8, - range_deviation = 0.8, - max_range = 75 - } - } - } - }, - subgroup = "ammo", - order = "a[Bio_Cannon_Ammo]-a[Basic]", - stack_size = 50, - }, - - -- Poison Ammo - { - type = "ammo", - name = "Bio_Cannon_Poison_Ammo", - icon = "__Bio_Industries__/graphics/entities/biocannon/projectiles/Bio_Cannon_Poison_Ammo_Icon.png", - flags = { "goes-to-main-inventory" }, - ammo_type = - { - category = "Bio_Cannon_Ammo", - target_type = "direction", - action = - { - { - type = "direct", - action_delivery = - { - type = "projectile", - projectile = "Bio_Cannon_Poison_Ammo", - starting_speed = 1, - direction_deviation = 0.8, - range_deviation = 0.8, - max_range = 75 - } - } - } - }, - subgroup = "ammo", - order = "a[Bio_Cannon_Ammo]-b[Poison]", - stack_size = 50, - }, - - +data:extend({ + + -- Hive Buster Basic Ammo + { + type = "ammo", + name = "Bio_Cannon_Basic_Ammo", + icon = "__Bio_Industries__/graphics/entities/biocannon/projectiles/Bio_Cannon_Basic_Ammo_Icon.png", + flags = { "goes-to-main-inventory" }, + ammo_type = + { + category = "Bio_Cannon_Ammo", + target_type = "direction", + action = + { + { + type = "direct", + action_delivery = + { + type = "projectile", + projectile = "Bio_Cannon_Basic_Ammo", + starting_speed = 1, + direction_deviation = 0.8, + range_deviation = 0.8, + max_range = 75 + } + } + } + }, + subgroup = "ammo", + order = "a[Bio_Cannon_Ammo]-a[Basic]", + stack_size = 50, + }, + + -- Poison Ammo + { + type = "ammo", + name = "Bio_Cannon_Poison_Ammo", + icon = "__Bio_Industries__/graphics/entities/biocannon/projectiles/Bio_Cannon_Poison_Ammo_Icon.png", + flags = { "goes-to-main-inventory" }, + ammo_type = + { + category = "Bio_Cannon_Ammo", + target_type = "direction", + action = + { + { + type = "direct", + action_delivery = + { + type = "projectile", + projectile = "Bio_Cannon_Poison_Ammo", + starting_speed = 1, + direction_deviation = 0.8, + range_deviation = 0.8, + max_range = 75 + } + } + } + }, + subgroup = "ammo", + order = "a[Bio_Cannon_Ammo]-b[Poison]", + stack_size = 50, + }, + + }) \ No newline at end of file diff --git a/Bio_Industries_1.4.0/prototypes/Bio_Cannon/projectiles-recipe.lua b/Bio_Industries_1.4.2/prototypes/Bio_Cannon/projectiles-recipe.lua similarity index 95% rename from Bio_Industries_1.4.0/prototypes/Bio_Cannon/projectiles-recipe.lua rename to Bio_Industries_1.4.2/prototypes/Bio_Cannon/projectiles-recipe.lua index a92a881..c37d034 100644 --- a/Bio_Industries_1.4.0/prototypes/Bio_Cannon/projectiles-recipe.lua +++ b/Bio_Industries_1.4.2/prototypes/Bio_Cannon/projectiles-recipe.lua @@ -1,23 +1,23 @@ -data:extend({ - - -- Hive Buster Ammo - { - type= "recipe", - name= "Bio_Cannon_Basic_Ammo", - enabled = false, - energy_required = 4, - ingredients = {{"iron-plate", 10}, {"rocket", 10}}, - result = "Bio_Cannon_Basic_Ammo", - result_count = 2, - }, - { - type= "recipe", - name= "Bio_Cannon_Poison_Ammo", - enabled = false, - energy_required = 8, - ingredients = {{"Bio_Cannon_Basic_Ammo", 1},{"poison-capsule", 5}, {"explosive-rocket", 5}}, - result = "Bio_Cannon_Poison_Ammo", - result_count = 2, - }, - +data:extend({ + + -- Hive Buster Ammo + { + type= "recipe", + name= "Bio_Cannon_Basic_Ammo", + enabled = false, + energy_required = 4, + ingredients = {{"iron-plate", 10}, {"rocket", 10}}, + result = "Bio_Cannon_Basic_Ammo", + result_count = 2, + }, + { + type= "recipe", + name= "Bio_Cannon_Poison_Ammo", + enabled = false, + energy_required = 8, + ingredients = {{"Bio_Cannon_Basic_Ammo", 1},{"poison-capsule", 5}, {"explosive-rocket", 5}}, + result = "Bio_Cannon_Poison_Ammo", + result_count = 2, + }, + }) \ No newline at end of file diff --git a/Bio_Industries_1.4.0/prototypes/Bio_Cannon/recipe.lua b/Bio_Industries_1.4.2/prototypes/Bio_Cannon/recipe.lua similarity index 96% rename from Bio_Industries_1.4.0/prototypes/Bio_Cannon/recipe.lua rename to Bio_Industries_1.4.2/prototypes/Bio_Cannon/recipe.lua index 8379273..a2fe8c2 100644 --- a/Bio_Industries_1.4.0/prototypes/Bio_Cannon/recipe.lua +++ b/Bio_Industries_1.4.2/prototypes/Bio_Cannon/recipe.lua @@ -1,14 +1,14 @@ -data:extend({ - --- Hive Buster Turret - { - type = "recipe", - name = "Bio_Cannon", - enabled = false, - energy_required = 50, - ingredients = {{"advanced-circuit", 25},{"radar", 1}, {"steel-plate", 80}, {"electric-engine-unit", 5}}, - --ingredients = {{"processing-unit", 5},{"radar", 1}, {"steel-plate", 80}}, - - result = "Bio_Cannon_Area" - }, +data:extend({ + +-- Hive Buster Turret + { + type = "recipe", + name = "Bio_Cannon", + enabled = false, + energy_required = 50, + ingredients = {{"advanced-circuit", 25},{"radar", 1}, {"steel-plate", 80}, {"electric-engine-unit", 5}}, + --ingredients = {{"processing-unit", 5},{"radar", 1}, {"steel-plate", 80}}, + + result = "Bio_Cannon_Area" + }, }) \ No newline at end of file diff --git a/Bio_Industries_1.4.0/prototypes/Bio_Cannon/technology.lua b/Bio_Industries_1.4.2/prototypes/Bio_Cannon/technology.lua similarity index 94% rename from Bio_Industries_1.4.0/prototypes/Bio_Cannon/technology.lua rename to Bio_Industries_1.4.2/prototypes/Bio_Cannon/technology.lua index ad2a87d..5e41b9f 100644 --- a/Bio_Industries_1.4.0/prototypes/Bio_Cannon/technology.lua +++ b/Bio_Industries_1.4.2/prototypes/Bio_Cannon/technology.lua @@ -1,38 +1,38 @@ -data:extend({ - { - type = "technology", - name = "Bio_Cannon", - icon_size = 128, - icon = "__Bio_Industries__/graphics/technology/Bio_Cannon.png", - effects = - { - { - type = "unlock-recipe", - recipe = "Bio_Cannon" - }, - { - type = "unlock-recipe", - recipe = "Bio_Cannon_Basic_Ammo" - }, - { - type = "unlock-recipe", - recipe = "Bio_Cannon_Poison_Ammo" - }, - - }, - prerequisites = {"military-3", "alien-technology"}, - unit = - { - count = 100, - ingredients = - { - {"science-pack-1", 2}, - {"science-pack-2", 2}, - {"science-pack-3", 1}, - {"alien-science-pack", 3} - }, - time = 30, - } - }, - -}) +data:extend({ + { + type = "technology", + name = "Bio_Cannon", + icon_size = 128, + icon = "__Bio_Industries__/graphics/technology/Bio_Cannon.png", + effects = + { + { + type = "unlock-recipe", + recipe = "Bio_Cannon" + }, + { + type = "unlock-recipe", + recipe = "Bio_Cannon_Basic_Ammo" + }, + { + type = "unlock-recipe", + recipe = "Bio_Cannon_Poison_Ammo" + }, + + }, + prerequisites = {"military-3", "alien-technology"}, + unit = + { + count = 100, + ingredients = + { + {"science-pack-1", 2}, + {"science-pack-2", 2}, + {"science-pack-3", 1}, + {"alien-science-pack", 3} + }, + time = 30, + } + }, + +}) diff --git a/Bio_Industries_1.4.0/prototypes/Bio_Farm/dytech_recipe.lua b/Bio_Industries_1.4.2/prototypes/Bio_Farm/dytech_recipe.lua similarity index 95% rename from Bio_Industries_1.4.0/prototypes/Bio_Farm/dytech_recipe.lua rename to Bio_Industries_1.4.2/prototypes/Bio_Farm/dytech_recipe.lua index c7389b2..34fae97 100644 --- a/Bio_Industries_1.4.0/prototypes/Bio_Farm/dytech_recipe.lua +++ b/Bio_Industries_1.4.2/prototypes/Bio_Farm/dytech_recipe.lua @@ -1,111 +1,111 @@ - ---- If DyTech add these recipies. -data:extend({ - - - --- Resin from Rubber Seed - { - type = "recipe", - name = "bi-resin", - category = "biofarm-mod-dummy", - enabled = false, - energy_required = 400, - ingredients = - { - {type="item", name="rubber-seed", amount=20}, - {type="fluid", name="water", amount=100}, - }, - result_count = 60, - result = "resin" - }, - - --- Raw Wood from Water & fertiliser - { - type = "recipe", - name = "bi-resin_Mk2", - category = "biofarm-mod-dummy", - enabled = false, - energy_required = 300, - ingredients = - { - {type="item", name="rubber-seed", amount=30}, - {type="item", name="fertiliser", amount=10}, - {type="fluid", name="water", amount=100}, - }, - result_count = 90, - result = "resin" - }, - - - --- Raw Wood from fertiliser & NE_enhanced-nutrient-solution (Natural Evolution Mod) - { - type = "recipe", - name = "bi-resin_Mk3", - category = "biofarm-mod-dummy", - enabled = false, - energy_required = 200, - ingredients = - { - {type="item", name="rubber-seed", amount=50}, - {type="fluid", name="water", amount=100}, - --{type="item", name="bi-adv-fertiliser", amount=5}, -- Will be added if you have Natural Evolution Buildings Mod installed. - }, - result_count = 150, - result = "resin" - }, - - - --- Sulfer wood from Rubber Seed - { - type = "recipe", - name = "bi-sulfur-wood", - category = "biofarm-mod-dummy", - enabled = false, - energy_required = 400, - ingredients = - { - {type="item", name="sulfur-seed", amount=20}, - {type="fluid", name="water", amount=100}, - }, - result_count = 80, - result = "sulfur-wood" - }, - - --- Raw Wood from Water & fertiliser - { - type = "recipe", - name = "bi-sulfur-wood_Mk2", - category = "biofarm-mod-dummy", - enabled = false, - energy_required = 300, - ingredients = - { - {type="item", name="sulfur-seed", amount=30}, - {type="item", name="fertiliser", amount=10}, - {type="fluid", name="water", amount=100}, - }, - result_count = 120, - result = "sulfur-wood" - }, - - - --- Raw Wood from fertiliser & NE_enhanced-nutrient-solution (Natural Evolution Mod) - { - type = "recipe", - name = "bi-sulfur-wood_Mk3", - category = "biofarm-mod-dummy", - enabled = false, - energy_required = 200, - ingredients = - { - {type="item", name="sulfur-seed", amount=50}, - {type="fluid", name="water", amount=100}, - --{type="item", name="bi-adv-fertiliser", amount=5}, -- Will be added if you have Natural Evolution Buildings Mod installed. - }, - result_count = 200, - result = "sulfur-wood" - }, - - - }) - + +--- If DyTech add these recipies. +data:extend({ + + + --- Resin from Rubber Seed + { + type = "recipe", + name = "bi-resin", + category = "biofarm-mod-dummy", + enabled = false, + energy_required = 400, + ingredients = + { + {type="item", name="rubber-seed", amount=20}, + {type="fluid", name="water", amount=100}, + }, + result_count = 60, + result = "resin" + }, + + --- Raw Wood from Water & fertiliser + { + type = "recipe", + name = "bi-resin_Mk2", + category = "biofarm-mod-dummy", + enabled = false, + energy_required = 300, + ingredients = + { + {type="item", name="rubber-seed", amount=30}, + {type="item", name="fertiliser", amount=10}, + {type="fluid", name="water", amount=100}, + }, + result_count = 90, + result = "resin" + }, + + + --- Raw Wood from fertiliser & NE_enhanced-nutrient-solution (Natural Evolution Mod) + { + type = "recipe", + name = "bi-resin_Mk3", + category = "biofarm-mod-dummy", + enabled = false, + energy_required = 200, + ingredients = + { + {type="item", name="rubber-seed", amount=50}, + {type="fluid", name="water", amount=100}, + --{type="item", name="bi-adv-fertiliser", amount=5}, -- Will be added if you have Natural Evolution Buildings Mod installed. + }, + result_count = 150, + result = "resin" + }, + + + --- Sulfer wood from Rubber Seed + { + type = "recipe", + name = "bi-sulfur-wood", + category = "biofarm-mod-dummy", + enabled = false, + energy_required = 400, + ingredients = + { + {type="item", name="sulfur-seed", amount=20}, + {type="fluid", name="water", amount=100}, + }, + result_count = 80, + result = "sulfur-wood" + }, + + --- Raw Wood from Water & fertiliser + { + type = "recipe", + name = "bi-sulfur-wood_Mk2", + category = "biofarm-mod-dummy", + enabled = false, + energy_required = 300, + ingredients = + { + {type="item", name="sulfur-seed", amount=30}, + {type="item", name="fertiliser", amount=10}, + {type="fluid", name="water", amount=100}, + }, + result_count = 120, + result = "sulfur-wood" + }, + + + --- Raw Wood from fertiliser & NE_enhanced-nutrient-solution (Natural Evolution Mod) + { + type = "recipe", + name = "bi-sulfur-wood_Mk3", + category = "biofarm-mod-dummy", + enabled = false, + energy_required = 200, + ingredients = + { + {type="item", name="sulfur-seed", amount=50}, + {type="fluid", name="water", amount=100}, + --{type="item", name="bi-adv-fertiliser", amount=5}, -- Will be added if you have Natural Evolution Buildings Mod installed. + }, + result_count = 200, + result = "sulfur-wood" + }, + + + }) + diff --git a/Bio_Industries_1.4.0/prototypes/Bio_Farm/entities.lua b/Bio_Industries_1.4.2/prototypes/Bio_Farm/entities.lua similarity index 96% rename from Bio_Industries_1.4.0/prototypes/Bio_Farm/entities.lua rename to Bio_Industries_1.4.2/prototypes/Bio_Farm/entities.lua index b02b127..b0740aa 100644 --- a/Bio_Industries_1.4.0/prototypes/Bio_Farm/entities.lua +++ b/Bio_Industries_1.4.2/prototypes/Bio_Farm/entities.lua @@ -1,454 +1,454 @@ -require ("prototypes.Bio_Farm.pipeConnectors") -require ("util") - - - -data:extend({ - - ----- Seedling - { - type = "land-mine", - name = "seedling", - icon = "__Bio_Industries__/graphics/icons/Seedling.png", - order = "x[bi]-a[bi-seedling]", - flags = {"placeable-neutral", "placeable-player", "player-creation", "breaths-air",}, - minable = - { - mining_particle = "wooden-particle", - mining_time = 0.25, - result = "seedling", - count = 1 - }, - emissions_per_tick = -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}}, - --drawing_box = {{-0.7, -0.7}, {0.7, 0.7}}, - --subgroup = "trees", - subgroup = "intermediate-product", - - vehicle_impact_sound = { filename = "__base__/sound/car-wood-impact.ogg", volume = 1.0 }, - picture_safe = - { - filename = "__Bio_Industries__/graphics/icons/Seedling_a.png", - priority = "extra-high", - width = 32, - height = 32, - }, - picture_set = - { - filename = "__Bio_Industries__/graphics/icons/Seedling_b.png", - priority = "extra-high", - width = 32, - height = 32, - }, - trigger_radius = 0, - }, - - - ------- Bio Farm - { - type = "assembling-machine", - name = "bi_bio_farm", - icon = "__Bio_Industries__/graphics/icons/Bio_Farm_Icon.png", - 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 = "__Bio_Industries__/graphics/entities/biofarm/Bio_Farm_Idle.png", - priority = "high", - width = 320, - height = 320, - frame_count = 1, - shift = {0.75, 0}, - }, - - working_visualisations = - { - - animation = - { - filename = "__Bio_Industries__/graphics/entities/biofarm/Bio_Farm_Working.png", - priority = "high", - width = 320, - height = 320, - frame_count = 1, - shift = {0.75, 0}, - }, - }, - - crafting_categories = {"biofarm-mod-dummy"}, - crafting_speed = 1, - energy_source = - - { - type = "electric", - usage_priority = "primary-input", - drain = "50kW", - emissions = -0.1, -- the "-" means it eats pollution. Absorbs about 10 PU - }, - - 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 = { filename = "__base__/sound/car-metal-impact.ogg", volume = 0.65 }, - module_specification = - { - module_slots = 3 - }, - allowed_effects = {"consumption", "speed"} - }, - ------- Bio Farm Lamp - { - type = "lamp", - name = "bi_light_for_Bio_Farm", - icon = "__Bio_Industries__/graphics/icons/Bio_Farm_Lamp.png", - flags = {"placeable-neutral", "player-creation", "placeable-off-grid", "not-repairable"}, - selectable_in_game = false, - max_health = 1, - collision_box = {{-0.0, -0.0}, {0.0, 0.0}}, - energy_source = - { - type = "electric", - render_no_network_icon = false, - render_no_power_icon = false, - usage_priority = "secondary-input" - }, - energy_usage_per_tick = "100kW", - light = {intensity = 1, size = 45}, - picture_off = - { - filename = "__Bio_Industries__/graphics/entities/biofarm/Bio_Farm_Idle.png", - priority = "low", - width = 0, - height = 0, - frame_count = 1, - axially_symmetrical = false, - direction_count = 1, - shift = {0.75, 0}, - }, - picture_on = - { - filename = "__Bio_Industries__/graphics/entities/biofarm/Bio_Farm_Working.png", - priority = "low", - width = 0, - height = 0, - frame_count = 1, - axially_symmetrical = false, - direction_count = 1, - shift = {0.75, 0}, - }, - - }, - ------- Bio Farm Pole - { - type = "electric-pole", - name = "bi_medium-electric-pole_for_Bio_Farm", - icon = "__Bio_Industries__/graphics/icons/Bio_Farm_Cabeling.png", - flags = {"placeable-neutral", "player-creation", "placeable-off-grid", "not-repairable"}, - selectable_in_game = false, - max_health = 1, - resistances = {{type = "fire", percent = 100}}, - collision_box = {{-0, -0}, {0, 0}}, - maximum_wire_distance = 10, - supply_area_distance = 5, - - pictures = - { - filename = "__Bio_Industries__/graphics/icons/empty.png", - priority = "low", - width = 0, - height = 0, - frame_count = 1, - axially_symmetrical = false, - direction_count = 4, - shift = {0.75, 0}, - }, - connection_points = - { - { - shadow = - { - copper = {2.55, 0.4}, - }, - wire = - { - copper = {-0.03, -2.5}, - } - }, - { - shadow = - { - copper = {2.9, 0.1}, - }, - wire = - { - copper = {0.05, -2.75}, - } - }, - { - shadow = - { - copper = {1.5, -0.2}, - }, - wire = - { - copper = {-0.43, -2.4}, - } - }, - { - shadow = - { - copper = {2.88, 0.2}, - }, - wire = - { - copper = {0, -2.7}, - } - } - }, - radius_visualisation_picture = - { - filename = "__Bio_Industries__/graphics/icons/empty.png", - width = 0, - height = 0, - priority = "low" - }, - }, - ------- Bio Farm Solar Panel - { - type = "solar-panel", - name = "bi_solar-panel_for_Bio_Farm", - icon = "__Bio_Industries__/graphics/icons/Bio_Farm_Solar.png", - flags = {"placeable-neutral", "player-creation", "placeable-off-grid", "not-repairable"}, - selectable_in_game = false, - max_health = 1, - resistances = {{type = "fire", percent = 100}}, - collision_box = {{-0, -0}, {0, 0}}, - energy_source = - { - type = "electric", - usage_priority = "solar" - }, - picture = - { - filename = "__Bio_Industries__/graphics/icons/empty.png", - priority = "low", - width = 0, - height = 0, - }, - production = "100kW" - }, - - }) - - ---- Originally from the old Tree Farm Mod. -data:extend( -{ - - -- COKERY - { - type = "assembling-machine", - name = "bi-cokery", - icon = "__Bio_Industries__/graphics/icons/cokery.png", - 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 = 0.05 - }, - energy_usage = "180kW", - crafting_speed = 2, - ingredient_count = 1 - - }, - -- STONECRUSHER - { - type = "furnace", - name = "bi-stone-crusher", - icon = "__Bio_Industries__/graphics/icons/stone-crusher.png", - 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 = 0.05 / 1.5 - }, - energy_usage = "50kW" - }, - ---[[ - -- BIOREACTOR - { - type = "assembling-machine", - name = "bi-bioreactor", - icon = "__Bio_Industries__/graphics/icons/bioreactor.png", - flags = {"placeable-neutral", "player-creation"}, - minable = {hardness = 0.2, mining_time = 0.5, result = "bi-bioreactor"}, - 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" - }, - ]] - +require ("prototypes.Bio_Farm.pipeConnectors") +require ("util") + + + +data:extend({ + + +---- Seedling + { + type = "land-mine", + name = "seedling", + icon = "__Bio_Industries__/graphics/icons/Seedling.png", + order = "x[bi]-a[bi-seedling]", + flags = {"placeable-neutral", "placeable-player", "player-creation", "breaths-air",}, + minable = + { + mining_particle = "wooden-particle", + mining_time = 0.25, + result = "seedling", + count = 1 + }, + emissions_per_tick = -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}}, + --drawing_box = {{-0.7, -0.7}, {0.7, 0.7}}, + --subgroup = "trees", + subgroup = "intermediate-product", + + vehicle_impact_sound = { filename = "__base__/sound/car-wood-impact.ogg", volume = 1.0 }, + picture_safe = + { + filename = "__Bio_Industries__/graphics/icons/Seedling_a.png", + priority = "extra-high", + width = 32, + height = 32, + }, + picture_set = + { + filename = "__Bio_Industries__/graphics/icons/Seedling_b.png", + priority = "extra-high", + width = 32, + height = 32, + }, + trigger_radius = 0, + }, + + + ------- Bio Farm + { + type = "assembling-machine", + name = "bi_bio_farm", + icon = "__Bio_Industries__/graphics/icons/Bio_Farm_Icon.png", + 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 = "__Bio_Industries__/graphics/entities/biofarm/Bio_Farm_Idle.png", + priority = "high", + width = 320, + height = 320, + frame_count = 1, + shift = {0.75, 0}, + }, + + working_visualisations = + { + + animation = + { + filename = "__Bio_Industries__/graphics/entities/biofarm/Bio_Farm_Working.png", + priority = "high", + width = 320, + height = 320, + frame_count = 1, + shift = {0.75, 0}, + }, + }, + + crafting_categories = {"biofarm-mod-dummy"}, + crafting_speed = 1, + energy_source = + + { + type = "electric", + usage_priority = "primary-input", + drain = "50kW", + emissions = -0.1, -- the "-" means it eats pollution. Absorbs about 10 PU + }, + + 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 = { filename = "__base__/sound/car-metal-impact.ogg", volume = 0.65 }, + module_specification = + { + module_slots = 3 + }, + allowed_effects = {"consumption", "speed"} + }, + ------- Bio Farm Lamp + { + type = "lamp", + name = "bi_light_for_Bio_Farm", + icon = "__Bio_Industries__/graphics/icons/Bio_Farm_Lamp.png", + flags = {"placeable-neutral", "player-creation", "placeable-off-grid", "not-repairable"}, + selectable_in_game = false, + max_health = 1, + collision_box = {{-0.0, -0.0}, {0.0, 0.0}}, + energy_source = + { + type = "electric", + render_no_network_icon = false, + render_no_power_icon = false, + usage_priority = "secondary-input" + }, + energy_usage_per_tick = "100kW", + light = {intensity = 1, size = 45}, + picture_off = + { + filename = "__Bio_Industries__/graphics/entities/biofarm/Bio_Farm_Idle.png", + priority = "low", + width = 0, + height = 0, + frame_count = 1, + axially_symmetrical = false, + direction_count = 1, + shift = {0.75, 0}, + }, + picture_on = + { + filename = "__Bio_Industries__/graphics/entities/biofarm/Bio_Farm_Working.png", + priority = "low", + width = 0, + height = 0, + frame_count = 1, + axially_symmetrical = false, + direction_count = 1, + shift = {0.75, 0}, + }, + + }, + ------- Bio Farm Pole + { + type = "electric-pole", + name = "bi_medium-electric-pole_for_Bio_Farm", + icon = "__Bio_Industries__/graphics/icons/Bio_Farm_Cabeling.png", + flags = {"placeable-neutral", "player-creation", "placeable-off-grid", "not-repairable"}, + selectable_in_game = false, + max_health = 1, + resistances = {{type = "fire", percent = 100}}, + collision_box = {{-0, -0}, {0, 0}}, + maximum_wire_distance = 10, + supply_area_distance = 5, + + pictures = + { + filename = "__Bio_Industries__/graphics/icons/empty.png", + priority = "low", + width = 0, + height = 0, + frame_count = 1, + axially_symmetrical = false, + direction_count = 4, + shift = {0.75, 0}, + }, + connection_points = + { + { + shadow = + { + copper = {2.55, 0.4}, + }, + wire = + { + copper = {-0.03, -2.5}, + } + }, + { + shadow = + { + copper = {2.9, 0.1}, + }, + wire = + { + copper = {0.05, -2.75}, + } + }, + { + shadow = + { + copper = {1.5, -0.2}, + }, + wire = + { + copper = {-0.43, -2.4}, + } + }, + { + shadow = + { + copper = {2.88, 0.2}, + }, + wire = + { + copper = {0, -2.7}, + } + } + }, + radius_visualisation_picture = + { + filename = "__Bio_Industries__/graphics/icons/empty.png", + width = 0, + height = 0, + priority = "low" + }, + }, + ------- Bio Farm Solar Panel + { + type = "solar-panel", + name = "bi_solar-panel_for_Bio_Farm", + icon = "__Bio_Industries__/graphics/icons/Bio_Farm_Solar.png", + flags = {"placeable-neutral", "player-creation", "placeable-off-grid", "not-repairable"}, + selectable_in_game = false, + max_health = 1, + resistances = {{type = "fire", percent = 100}}, + collision_box = {{-0, -0}, {0, 0}}, + energy_source = + { + type = "electric", + usage_priority = "solar" + }, + picture = + { + filename = "__Bio_Industries__/graphics/icons/empty.png", + priority = "low", + width = 0, + height = 0, + }, + production = "100kW" + }, + + }) + + ---- Originally from the old Tree Farm Mod. +data:extend( +{ + + -- COKERY + { + type = "assembling-machine", + name = "bi-cokery", + icon = "__Bio_Industries__/graphics/icons/cokery.png", + 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 = 0.05 + }, + energy_usage = "180kW", + crafting_speed = 2, + ingredient_count = 1 + + }, + -- STONECRUSHER + { + type = "furnace", + name = "bi-stone-crusher", + icon = "__Bio_Industries__/graphics/icons/stone-crusher.png", + 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 = 0.05 / 1.5 + }, + energy_usage = "50kW" + }, + +--[[ + -- BIOREACTOR + { + type = "assembling-machine", + name = "bi-bioreactor", + icon = "__Bio_Industries__/graphics/icons/bioreactor.png", + flags = {"placeable-neutral", "player-creation"}, + minable = {hardness = 0.2, mining_time = 0.5, result = "bi-bioreactor"}, + 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" + }, + ]] + }) \ No newline at end of file diff --git a/Bio_Industries_1.4.0/prototypes/Bio_Farm/item.lua b/Bio_Industries_1.4.2/prototypes/Bio_Farm/item.lua similarity index 95% rename from Bio_Industries_1.4.0/prototypes/Bio_Farm/item.lua rename to Bio_Industries_1.4.2/prototypes/Bio_Farm/item.lua index 9068d2b..56487af 100644 --- a/Bio_Industries_1.4.0/prototypes/Bio_Farm/item.lua +++ b/Bio_Industries_1.4.2/prototypes/Bio_Farm/item.lua @@ -1,216 +1,216 @@ -data:extend({ - - ---- Seedling - { - type = "item", - name = "seedling", - icon = "__Bio_Industries__/graphics/icons/Seedling.png", - flags = {"goes-to-main-inventory"}, - --subgroup = "trees", - subgroup = "intermediate-product", - order = "x[bi]-a[bi-seedling]", - place_result="seedling", - fuel_value = "1MJ", - stack_size= 200 - }, - - ----Bio Farm - { - type= "item", - name= "bi_bio_farm", - icon = "__Bio_Industries__/graphics/icons/Bio_Farm_Icon.png", - flags= { "goes-to-quickbar" }, - subgroup = "production-machine", - order = "x[bi]-a[bi_bio_farm]", - place_result = "bi_bio_farm", - stack_size= 10, - }, - - ---- Light inside Bio Farm - { - type= "item", - name= "bi_light_for_Bio_Farm", - icon = "__Bio_Industries__/graphics/icons/Bio_Farm_Lamp.png", - flags = {"hidden"}, - subgroup = "production-machine", - order = "x[bi]-a[bi_bio_farm]", - place_result = "bi_light_for_Bio_Farm", - stack_size= 10, - enable = false, - }, - - ---- Electric pole inside Bio Farm - { - type = "item", - name = "bi_medium-electric-pole_for_Bio_Farm", - icon = "__Bio_Industries__/graphics/icons/Bio_Farm_Cabeling.png", - flags = {"hidden"}, - subgroup = "energy-pipe-distribution", - order = "x[bi]-a[bi_bio_farm]", - place_result = "bi_medium-electric-pole_for_Bio_Farm", - stack_size = 50, - enable = false, - }, - - ----- Solar Panel inside Bio Farm - { - type = "item", - name = "bi_solar-panel_for_Bio_Farm", - icon = "__Bio_Industries__/graphics/icons/Bio_Farm_Solar.png", - flags = {"hidden"}, - subgroup = "energy", - order = "x[bi]-a[bi_bio_farm]", - place_result = "bi_solar-panel_for_Bio_Farm", - stack_size = 50, - enable = false, - }, - - --- Cokery - { - type = "item", - name = "bi-cokery", - icon = "__Bio_Industries__/graphics/icons/cokery.png", - flags = {"goes-to-quickbar"}, - subgroup = "production-machine", - order = "x[bi]-b[bi-cokery]", - place_result = "bi-cokery", - stack_size = 10 - }, - - --- Stone Crusher - { - type = "item", - name = "bi-stone-crusher", - icon = "__Bio_Industries__/graphics/icons/stone-crusher.png", - flags = {"goes-to-quickbar"}, - subgroup = "production-machine", - order = "x[bi]-c[bi-stone-crusher]", - place_result = "bi-stone-crusher", - stack_size = 10 - }, - ---[[ - --- BioReactor - { - type = "item", - name = "bi-bioreactor", - icon = "__Bio_Industries__/graphics/icons/bioreactor.png", - flags = {"goes-to-quickbar"}, - subgroup = "production-machine", - order = "x[bi]-d[bi-bioreactor]", - place_result = "bi-bioreactor", - stack_size = 10 - }, - - - -- Raw Materials - - - ---- Celluluse - { - type = "item", - name = "bi-cellulose", - icon = "__Bio_Industries__/graphics/icons/cellulose.png", - flags = {"goes-to-main-inventory"}, - subgroup = "intermediate-product", - order = "b[cellulose]", - stack_size = 200 - }, -]] - --- Wood Pulp - { - type = "item", - name = "bi-woodpulp", - icon = "__Bio_Industries__/graphics/icons/Woodpulp_32.png", - flags = {"goes-to-main-inventory"}, - fuel_value = "2MJ", - subgroup = "raw-material", - order = "b[woodpulp]", - order = "a-b[bi-woodpulp]", - stack_size = 200 - }, - - --- Ash - { - type = "item", - name = "bi-ash", - icon = "__Bio_Industries__/graphics/icons/ash.png", - flags = {"goes-to-main-inventory"}, - subgroup = "raw-material", - order = "a[bi]-a-b[bi-ash]", - stack_size = 200 - }, - - --- Charcoal - { - type = "item", - name = "bi-charcoal", - icon = "__Bio_Industries__/graphics/icons/charcoal.png", - flags = {"goes-to-main-inventory"}, - fuel_value = "6MJ", - subgroup = "raw-material", - order = "a[bi]-a-c[charcoal]", - stack_size = 200 - }, - - --- Coke Coal - { - type = "item", - name = "bi-coke-coal", - icon = "__Bio_Industries__/graphics/icons/coke-coal.png", - flags = {"goes-to-main-inventory"}, - fuel_value = "18MJ", - subgroup = "raw-material", - order = "a[bi]-a-e[bi-coke-coal]", - stack_size = 200 - }, - - - --- Crushed Stone - { - type = "item", - name = "stone-crushed", - icon = "__Bio_Industries__/graphics/icons/crushed-stone.png", - flags = {"goes-to-main-inventory"}, - subgroup = "raw-material", - order = "a[bi]-a-z[stone-crushed]", - stack_size = 200 - }, - ---- Intermediate items - --- Fertiliser - { - type = "item", - name = "fertiliser", - icon = "__Bio_Industries__/graphics/icons/fertiliser_32.png", - flags = {"goes-to-main-inventory"}, - subgroup = "intermediate-product", - order = "b[fertiliser]", - stack_size = 200, - place_as_tile = - { - result = "grass", - condition_size = 1, - condition = { "water-tile" } - }, - }, - - --- Adv Fertiliser - { - type = "item", - name = "bi-adv-fertiliser", - icon = "__Bio_Industries__/graphics/icons/advanced_fertiliser_32.png", - flags = {"goes-to-main-inventory"}, - subgroup = "intermediate-product", - order = "b[fertiliser]-b[bi-adv-fertiliser]", - stack_size = 200, - place_as_tile = - { - result = "grass", - condition_size = 1, - condition = { "water-tile" } - }, - }, - - -}) +data:extend({ + + ---- Seedling + { + type = "item", + name = "seedling", + icon = "__Bio_Industries__/graphics/icons/Seedling.png", + flags = {"goes-to-main-inventory"}, + --subgroup = "trees", + subgroup = "intermediate-product", + order = "x[bi]-a[bi-seedling]", + place_result="seedling", + fuel_value = "1MJ", + stack_size= 200 + }, + + ----Bio Farm + { + type= "item", + name= "bi_bio_farm", + icon = "__Bio_Industries__/graphics/icons/Bio_Farm_Icon.png", + flags= { "goes-to-quickbar" }, + subgroup = "production-machine", + order = "x[bi]-a[bi_bio_farm]", + place_result = "bi_bio_farm", + stack_size= 10, + }, + + ---- Light inside Bio Farm + { + type= "item", + name= "bi_light_for_Bio_Farm", + icon = "__Bio_Industries__/graphics/icons/Bio_Farm_Lamp.png", + flags = {"hidden"}, + subgroup = "production-machine", + order = "x[bi]-a[bi_bio_farm]", + place_result = "bi_light_for_Bio_Farm", + stack_size= 10, + enable = false, + }, + + ---- Electric pole inside Bio Farm + { + type = "item", + name = "bi_medium-electric-pole_for_Bio_Farm", + icon = "__Bio_Industries__/graphics/icons/Bio_Farm_Cabeling.png", + flags = {"hidden"}, + subgroup = "energy-pipe-distribution", + order = "x[bi]-a[bi_bio_farm]", + place_result = "bi_medium-electric-pole_for_Bio_Farm", + stack_size = 50, + enable = false, + }, + + ----- Solar Panel inside Bio Farm + { + type = "item", + name = "bi_solar-panel_for_Bio_Farm", + icon = "__Bio_Industries__/graphics/icons/Bio_Farm_Solar.png", + flags = {"hidden"}, + subgroup = "energy", + order = "x[bi]-a[bi_bio_farm]", + place_result = "bi_solar-panel_for_Bio_Farm", + stack_size = 50, + enable = false, + }, + + --- Cokery + { + type = "item", + name = "bi-cokery", + icon = "__Bio_Industries__/graphics/icons/cokery.png", + flags = {"goes-to-quickbar"}, + subgroup = "production-machine", + order = "x[bi]-b[bi-cokery]", + place_result = "bi-cokery", + stack_size = 10 + }, + + --- Stone Crusher + { + type = "item", + name = "bi-stone-crusher", + icon = "__Bio_Industries__/graphics/icons/stone-crusher.png", + flags = {"goes-to-quickbar"}, + subgroup = "production-machine", + order = "x[bi]-c[bi-stone-crusher]", + place_result = "bi-stone-crusher", + stack_size = 10 + }, + +--[[ + --- BioReactor + { + type = "item", + name = "bi-bioreactor", + icon = "__Bio_Industries__/graphics/icons/bioreactor.png", + flags = {"goes-to-quickbar"}, + subgroup = "production-machine", + order = "x[bi]-d[bi-bioreactor]", + place_result = "bi-bioreactor", + stack_size = 10 + }, + + + -- Raw Materials + + + ---- Celluluse + { + type = "item", + name = "bi-cellulose", + icon = "__Bio_Industries__/graphics/icons/cellulose.png", + flags = {"goes-to-main-inventory"}, + subgroup = "intermediate-product", + order = "b[cellulose]", + stack_size = 200 + }, +]] + --- Wood Pulp + { + type = "item", + name = "bi-woodpulp", + icon = "__Bio_Industries__/graphics/icons/Woodpulp_32.png", + flags = {"goes-to-main-inventory"}, + fuel_value = "2MJ", + subgroup = "raw-material", + order = "b[woodpulp]", + order = "a-b[bi-woodpulp]", + stack_size = 200 + }, + + --- Ash + { + type = "item", + name = "bi-ash", + icon = "__Bio_Industries__/graphics/icons/ash.png", + flags = {"goes-to-main-inventory"}, + subgroup = "raw-material", + order = "a[bi]-a-b[bi-ash]", + stack_size = 200 + }, + + --- Charcoal + { + type = "item", + name = "bi-charcoal", + icon = "__Bio_Industries__/graphics/icons/charcoal.png", + flags = {"goes-to-main-inventory"}, + fuel_value = "6MJ", + subgroup = "raw-material", + order = "a[bi]-a-c[charcoal]", + stack_size = 200 + }, + + --- Coke Coal + { + type = "item", + name = "bi-coke-coal", + icon = "__Bio_Industries__/graphics/icons/coke-coal.png", + flags = {"goes-to-main-inventory"}, + fuel_value = "18MJ", + subgroup = "raw-material", + order = "a[bi]-a-e[bi-coke-coal]", + stack_size = 200 + }, + + + --- Crushed Stone + { + type = "item", + name = "stone-crushed", + icon = "__Bio_Industries__/graphics/icons/crushed-stone.png", + flags = {"goes-to-main-inventory"}, + subgroup = "raw-material", + order = "a[bi]-a-z[stone-crushed]", + stack_size = 200 + }, + +--- Intermediate items + --- Fertiliser + { + type = "item", + name = "fertiliser", + icon = "__Bio_Industries__/graphics/icons/fertiliser_32.png", + flags = {"goes-to-main-inventory"}, + subgroup = "intermediate-product", + order = "b[fertiliser]", + stack_size = 200, + place_as_tile = + { + result = "grass", + condition_size = 1, + condition = { "water-tile" } + }, + }, + + --- Adv Fertiliser + { + type = "item", + name = "bi-adv-fertiliser", + icon = "__Bio_Industries__/graphics/icons/advanced_fertiliser_32.png", + flags = {"goes-to-main-inventory"}, + subgroup = "intermediate-product", + order = "b[fertiliser]-b[bi-adv-fertiliser]", + stack_size = 200, + place_as_tile = + { + result = "grass", + condition_size = 1, + condition = { "water-tile" } + }, + }, + + +}) diff --git a/Bio_Industries_1.4.0/prototypes/Bio_Farm/liquids.lua b/Bio_Industries_1.4.2/prototypes/Bio_Farm/liquids.lua similarity index 89% rename from Bio_Industries_1.4.0/prototypes/Bio_Farm/liquids.lua rename to Bio_Industries_1.4.2/prototypes/Bio_Farm/liquids.lua index 26870e2..541f6f8 100644 --- a/Bio_Industries_1.4.0/prototypes/Bio_Farm/liquids.lua +++ b/Bio_Industries_1.4.2/prototypes/Bio_Farm/liquids.lua @@ -1,60 +1,60 @@ - data:extend( -{ - { - type = "fluid", - name = "liquid-air", - default_temperature = 100, - heat_capacity = "1KJ", - base_color = {r=0, g=0, b=0}, - flow_color = {r=0.5, g=1.0, b=1.0}, - max_temperature = -186, - icon = "__Bio_Industries__/graphics/icons/liquid-air.png", - pressure_to_speed_ratio = 0.4, - flow_to_energy_ratio = 0.59, - order = "a[fluid]-b[liquid-air]" - }, - - { - type = "fluid", - name = "nitrogen", - default_temperature = 25, - heat_capacity = "1KJ", - base_color = {r=0.0, g=0.0, b=1.0}, - flow_color = {r=0.5, g=0.5, b=0.5}, - max_temperature = -196, - icon = "__Bio_Industries__/graphics/icons/nitrogen.png", - pressure_to_speed_ratio = 0.4, - flow_to_energy_ratio = 0.59, - order = "a[fluid]-b[nitrogen]" - }, - - { - type = "fluid", - name = "bi-liquid-co2", - default_temperature = 25, - heat_capacity = "1KJ", - base_color = {r=0, g=0, b=0}, - flow_color = {r=1.0, g=1.0, b=1.0}, - max_temperature = -196, - icon = "__Bio_Industries__/graphics/icons/liquid-co2.png", - pressure_to_speed_ratio = 0.4, - flow_to_energy_ratio = 0.59, - order = "a[fluid]-b[liquid-co2]" - }, - - { - type = "fluid", - name = "bi-biomass", - default_temperature = 25, - heat_capacity = "1KJ", - base_color = {r=0, g=0, b=0}, - flow_color = {r=0.1, g=1.0, b=0.0}, - max_temperature = 50, - icon = "__Bio_Industries__/graphics/icons/biomass.png", - pressure_to_speed_ratio = 0.4, - flow_to_energy_ratio = 0.59, - order = "a[fluid]-b[biomass]" - } - -} + data:extend( +{ + { + type = "fluid", + name = "liquid-air", + default_temperature = 100, + heat_capacity = "1KJ", + base_color = {r=0, g=0, b=0}, + flow_color = {r=0.5, g=1.0, b=1.0}, + max_temperature = 100, + icon = "__Bio_Industries__/graphics/icons/liquid-air.png", + pressure_to_speed_ratio = 0.4, + flow_to_energy_ratio = 0.59, + order = "a[fluid]-b[liquid-air]" + }, + + { + type = "fluid", + name = "nitrogen", + default_temperature = 25, + heat_capacity = "1KJ", + base_color = {r=0.0, g=0.0, b=1.0}, + flow_color = {r=0.5, g=0.5, b=0.5}, + max_temperature = 100, + icon = "__Bio_Industries__/graphics/icons/nitrogen.png", + pressure_to_speed_ratio = 0.4, + flow_to_energy_ratio = 0.59, + order = "a[fluid]-b[nitrogen]" + }, + + { + type = "fluid", + name = "bi-liquid-co2", + default_temperature = 25, + heat_capacity = "1KJ", + base_color = {r=0, g=0, b=0}, + flow_color = {r=1.0, g=1.0, b=1.0}, + max_temperature = 100, + icon = "__Bio_Industries__/graphics/icons/liquid-co2.png", + pressure_to_speed_ratio = 0.4, + flow_to_energy_ratio = 0.59, + order = "a[fluid]-b[liquid-co2]" + }, + + { + type = "fluid", + name = "bi-biomass", + default_temperature = 25, + heat_capacity = "1KJ", + base_color = {r=0, g=0, b=0}, + flow_color = {r=0.1, g=1.0, b=0.0}, + max_temperature = 100, + icon = "__Bio_Industries__/graphics/icons/biomass.png", + pressure_to_speed_ratio = 0.4, + flow_to_energy_ratio = 0.59, + order = "a[fluid]-b[biomass]" + } + +} ) \ No newline at end of file diff --git a/Bio_Industries_1.4.0/prototypes/Bio_Farm/pipeConnectors.lua b/Bio_Industries_1.4.2/prototypes/Bio_Farm/pipeConnectors.lua similarity index 95% rename from Bio_Industries_1.4.0/prototypes/Bio_Farm/pipeConnectors.lua rename to Bio_Industries_1.4.2/prototypes/Bio_Farm/pipeConnectors.lua index bde6748..3525121 100644 --- a/Bio_Industries_1.4.0/prototypes/Bio_Farm/pipeConnectors.lua +++ b/Bio_Industries_1.4.2/prototypes/Bio_Farm/pipeConnectors.lua @@ -1,212 +1,212 @@ -function assembler2pipepictures() - return - { - north = - { - filename = "__base__/graphics/entity/assembling-machine-2/pipe-north.png", - priority = "extra-high", - width = 41, - height = 40, - 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 = "__base__/graphics/entity/assembling-machine-2/pipe-south.png", - priority = "extra-high", - width = 41, - height = 40, - 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 - -pipecoverspictures = function() - return { - north = - { - filename = "__base__/graphics/entity/pipe-covers/pipe-cover-north.png", - priority = "extra-high", - width = 44, - height = 32 - }, - east = - { - filename = "__base__/graphics/entity/pipe-covers/pipe-cover-east.png", - priority = "extra-high", - width = 32, - height = 32 - }, - south = - { - filename = "__base__/graphics/entity/pipe-covers/pipe-cover-south.png", - priority = "extra-high", - width = 46, - height = 52 - }, - west = - { - filename = "__base__/graphics/entity/pipe-covers/pipe-cover-west.png", - priority = "extra-high", - width = 32, - height = 32 - } - } -end - -function assembler2pipepicturesCokery() - return - { - north = - { - filename = "__Bio_Industries__/graphics/icons/empty.png", - priority = "extra-high", - width = 32, - height = 32, - 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 = "__Bio_Industries__/graphics/icons/empty.png", - priority = "extra-high", - width = 32, - height = 32, - 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 - -pipecoverspicturesCokery = function() - return { - north = - { - filename = "__Bio_Industries__/graphics/icons/empty.png", - priority = "extra-high", - width = 32, - height = 32 - }, - east = - { - filename = "__base__/graphics/entity/pipe-covers/pipe-cover-east.png", - priority = "extra-high", - width = 32, - height = 32 - }, - south = - { - filename = "__Bio_Industries__/graphics/icons/empty.png", - priority = "extra-high", - width = 32, - height = 32 - }, - west = - { - filename = "__base__/graphics/entity/pipe-covers/pipe-cover-west.png", - priority = "extra-high", - width = 32, - height = 32 - } - } -end - -function assembler2pipepicturesBioreactor() - return - { - north = - { - filename = "__Bio_Industries__/graphics/icons/empty.png", - priority = "extra-high", - width = 32, - height = 32, - shift = {0.09375, 0.4375} - }, - east = - { - filename = "__Bio_Industries__/graphics/entities/bioreactor/pipe-east.png", - priority = "extra-high", - width = 41, - height = 40, - shift = {-0.71875, 0} - }, - south = - { - filename = "__Bio_Industries__/graphics/entities/bioreactor/pipe-south.png", - priority = "extra-high", - width = 41, - height = 40, - shift = {0.0625, -0.8} - }, - west = - { - filename = "__Bio_Industries__/graphics/entities/bioreactor/pipe-west.png", - priority = "extra-high", - width = 41, - height = 40, - shift = {0.78125, 0.03125} - } - } -end - -pipecoverspicturesBioreactor = function() - return { - north = - { - filename = "__Bio_Industries__/graphics/icons/empty.png", - priority = "extra-high", - width = 32, - height = 32 - }, - east = - { - filename = "__base__/graphics/entity/pipe-covers/pipe-cover-east.png", - priority = "extra-high", - width = 32, - height = 32 - }, - south = - { - filename = "__base__/graphics/entity/pipe-covers/pipe-cover-south.png", - priority = "extra-high", - width = 46, - height = 52 - }, - west = - { - filename = "__base__/graphics/entity/pipe-covers/pipe-cover-west.png", - priority = "extra-high", - width = 32, - height = 32 - } - } +function assembler2pipepictures() + return + { + north = + { + filename = "__base__/graphics/entity/assembling-machine-2/pipe-north.png", + priority = "extra-high", + width = 41, + height = 40, + 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 = "__base__/graphics/entity/assembling-machine-2/pipe-south.png", + priority = "extra-high", + width = 41, + height = 40, + 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 + +pipecoverspictures = function() + return { + north = + { + filename = "__base__/graphics/entity/pipe-covers/pipe-cover-north.png", + priority = "extra-high", + width = 44, + height = 32 + }, + east = + { + filename = "__base__/graphics/entity/pipe-covers/pipe-cover-east.png", + priority = "extra-high", + width = 32, + height = 32 + }, + south = + { + filename = "__base__/graphics/entity/pipe-covers/pipe-cover-south.png", + priority = "extra-high", + width = 46, + height = 52 + }, + west = + { + filename = "__base__/graphics/entity/pipe-covers/pipe-cover-west.png", + priority = "extra-high", + width = 32, + height = 32 + } + } +end + +function assembler2pipepicturesCokery() + return + { + north = + { + filename = "__Bio_Industries__/graphics/icons/empty.png", + priority = "extra-high", + width = 32, + height = 32, + 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 = "__Bio_Industries__/graphics/icons/empty.png", + priority = "extra-high", + width = 32, + height = 32, + 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 + +pipecoverspicturesCokery = function() + return { + north = + { + filename = "__Bio_Industries__/graphics/icons/empty.png", + priority = "extra-high", + width = 32, + height = 32 + }, + east = + { + filename = "__base__/graphics/entity/pipe-covers/pipe-cover-east.png", + priority = "extra-high", + width = 32, + height = 32 + }, + south = + { + filename = "__Bio_Industries__/graphics/icons/empty.png", + priority = "extra-high", + width = 32, + height = 32 + }, + west = + { + filename = "__base__/graphics/entity/pipe-covers/pipe-cover-west.png", + priority = "extra-high", + width = 32, + height = 32 + } + } +end + +function assembler2pipepicturesBioreactor() + return + { + north = + { + filename = "__Bio_Industries__/graphics/icons/empty.png", + priority = "extra-high", + width = 32, + height = 32, + shift = {0.09375, 0.4375} + }, + east = + { + filename = "__Bio_Industries__/graphics/entities/bioreactor/pipe-east.png", + priority = "extra-high", + width = 41, + height = 40, + shift = {-0.71875, 0} + }, + south = + { + filename = "__Bio_Industries__/graphics/entities/bioreactor/pipe-south.png", + priority = "extra-high", + width = 41, + height = 40, + shift = {0.0625, -0.8} + }, + west = + { + filename = "__Bio_Industries__/graphics/entities/bioreactor/pipe-west.png", + priority = "extra-high", + width = 41, + height = 40, + shift = {0.78125, 0.03125} + } + } +end + +pipecoverspicturesBioreactor = function() + return { + north = + { + filename = "__Bio_Industries__/graphics/icons/empty.png", + priority = "extra-high", + width = 32, + height = 32 + }, + east = + { + filename = "__base__/graphics/entity/pipe-covers/pipe-cover-east.png", + priority = "extra-high", + width = 32, + height = 32 + }, + south = + { + filename = "__base__/graphics/entity/pipe-covers/pipe-cover-south.png", + priority = "extra-high", + width = 46, + height = 52 + }, + west = + { + filename = "__base__/graphics/entity/pipe-covers/pipe-cover-west.png", + priority = "extra-high", + width = 32, + height = 32 + } + } end \ No newline at end of file diff --git a/Bio_Industries_1.4.0/prototypes/Bio_Farm/recipe-categories.lua b/Bio_Industries_1.4.2/prototypes/Bio_Farm/recipe-categories.lua similarity index 92% rename from Bio_Industries_1.4.0/prototypes/Bio_Farm/recipe-categories.lua rename to Bio_Industries_1.4.2/prototypes/Bio_Farm/recipe-categories.lua index 65edeb1..ecf7d64 100644 --- a/Bio_Industries_1.4.0/prototypes/Bio_Farm/recipe-categories.lua +++ b/Bio_Industries_1.4.2/prototypes/Bio_Farm/recipe-categories.lua @@ -1,24 +1,24 @@ -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-dummy" - }, - -} +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-dummy" + }, + +} ) \ No newline at end of file diff --git a/Bio_Industries_1.4.0/prototypes/Bio_Farm/recipe.lua b/Bio_Industries_1.4.2/prototypes/Bio_Farm/recipe.lua similarity index 94% rename from Bio_Industries_1.4.0/prototypes/Bio_Farm/recipe.lua rename to Bio_Industries_1.4.2/prototypes/Bio_Farm/recipe.lua index 6e2785c..e9ce0a2 100644 --- a/Bio_Industries_1.4.0/prototypes/Bio_Farm/recipe.lua +++ b/Bio_Industries_1.4.2/prototypes/Bio_Farm/recipe.lua @@ -1,328 +1,328 @@ -data:extend({ - --- Seedling - { - type = "recipe", - name = "bi-seedling", - enabled = false, - subgroup = "raw-material", - energy_required = 0.5, - icon = "__Bio_Industries__/graphics/icons/Seedling.png", - ingredients = {{"raw-wood",1}}, - results= - { - {type="item", name="seedling", amount=2}, - {type="item", name="bi-woodpulp", amount=1} - }, - }, - --- Bio Farm - { - type = "recipe", - name = "bi_bio_farm", - enabled = false, - energy_required = 10, - ingredients = - { - {"iron-stick",20}, - {"copper-cable",10}, - {"stone",20}, - {"small-lamp",10} - }, - result = "bi_bio_farm" - }, - - --- Raw Wood from Water (BASIC) - { - type = "recipe", - name = "bi-Logs_Mk1", - --icon = "__Bio_Industries__/graphics/icons/raw-wood-mk1.png", - category = "biofarm-mod-dummy", - order = "a[bi]-a-a[raw-wood1]", - enabled = false, - energy_required = 600, - ingredients = - { - {type="item", name="seedling", amount=20}, - {type="fluid", name="water", amount=100}, - }, - - result_count = 40, - result = "raw-wood" - }, - - --- Raw Wood from Water & fertiliser - { - type = "recipe", - name = "bi-Logs_Mk2", - icon = "__Bio_Industries__/graphics/icons/raw-wood-mk2.png", - category = "biofarm-mod-dummy", - order = "a[bi]-a-a[raw-wood2]", - enabled = false, - energy_required = 350, - ingredients = - { - {type="item", name="seedling", amount=30}, - {type="item", name="fertiliser", amount=10}, - {type="fluid", name="water", amount=100}, - }, - - result_count = 75, - result = "raw-wood" - }, - - - --- Raw Wood from fertiliser & NE_enhanced-nutrient-solution (Natural Evolution Mod) - { - type = "recipe", - name = "bi-Logs_Mk3", - icon = "__Bio_Industries__/graphics/icons/raw-wood-mk3.png", - category = "biofarm-mod-dummy", - order = "a[bi]-a-a[raw-wood3]", - enabled = false, - energy_required = 200, - ingredients = - { - {type="item", name="seedling", amount=50}, - {type="fluid", name="water", amount=100}, - {type="item", name="bi-adv-fertiliser", amount=5}, - }, - result_count = 150, - result = "raw-wood" - }, - - -- ASH -- - { - type = "recipe", - name = "bi-ash", - icon = "__Bio_Industries__/graphics/icons/ash_raw-wood.png", - category = "biofarm-mod-smelting", - subgroup = "raw-material", - order = "a[bi]-a-b[bi-ash]", - enabled = false, - energy_required = 10, - ingredients = {{"raw-wood",5}}, - result = "bi-ash", - result_count = 10, - }, - -- ASH 2-- - { - type = "recipe", - name = "bi-ash-2", - icon = "__Bio_Industries__/graphics/icons/ash_woodpulp.png", - category = "biofarm-mod-smelting", - subgroup = "raw-material", - order = "a[bi]-a-b[bi-ash2]", - enabled = false, - energy_required = 5, - ingredients = {{"bi-woodpulp",10}}, - result = "bi-ash", - result_count = 10, - }, - - -- CHARCOAL 1 - { - type = "recipe", - name = "bi-charcoal", - icon = "__Bio_Industries__/graphics/icons/charcoal_woodpulp.png", - subgroup = "raw-material", - order = "a[bi]-a-c[charcoal1]", - category = "biofarm-mod-smelting", - energy_required = 12.5, - ingredients = {{"bi-woodpulp",40}}, - result = "bi-charcoal", - result_count = 18, - enabled = false, - }, - -- CHARCOAL 2 - { - type = "recipe", - name = "bi-charcoal-2", - icon = "__Bio_Industries__/graphics/icons/charcoal_raw-wood.png", - subgroup = "raw-material", - order = "a[bi]-a-c[charcoal2]", - category = "biofarm-mod-smelting", - energy_required = 20, - ingredients = {{"raw-wood",20}}, - result = "bi-charcoal", - result_count = 18, - enabled = false, - }, - -- COAL 1 -- - { - type = "recipe", - name = "bi-coal", - icon = "__Bio_Industries__/graphics/icons/coal_mk1.png", - category = "biofarm-mod-smelting", - subgroup = "raw-material", - order = "a[bi]-a-d[bi-coal]", - energy_required = 12, - ingredients = {{"bi-charcoal",12}}, - result = "coal", - result_count = 8, - enabled = false, - }, - -- COAL 2 -- - { - type = "recipe", - name = "bi-coal-2", - icon = "__Bio_Industries__/graphics/icons/coal_mk2.png", - category = "biofarm-mod-smelting", - subgroup = "raw-material", - order = "a[bi]-a-d[bi-coal2]", - energy_required = 18, - ingredients = {{"bi-charcoal",12}}, - result = "coal", - result_count = 10, - enabled = false, - }, - -- COKE-COAL -- - { - type = "recipe", - name = "bi-coke-coal", - category = "biofarm-mod-smelting", - subgroup = "raw-material", - order = "d-a[bi-coke-coal]", - order = "a[bi]-a-e[bi-coke-coal]", - energy_required = 25, - ingredients = {{"coal",15}}, - result = "bi-coke-coal", - result_count = 10, - enabled = false, - }, - - -- CRUSHED STONE -- - { - type = "recipe", - name = "bi-crushed-stone", - category = "biofarm-mod-crushing", - subgroup = "raw-material", - order = "a[bi]-a-z[stone-crushed]", - energy_required = 2, - ingredients = {{"stone",1}}, - result = "stone-crushed", - result_count = 2, - enabled = false, - }, - -- LIQUID-AIR -- - { - type = "recipe", - name = "bi-liquid-air", - category = "chemistry", - subgroup = "intermediate-product", - energy_required = 1, - ingredients = {}, - results= - { - {type = "fluid", name = "liquid-air", amount = 10} - }, - enabled = false, - }, - -- -NITROGEN -- - { - type = "recipe", - name = "bi-nitrogen", - category = "chemistry", - subgroup = "intermediate-product", - energy_required = 10, - ingredients = - { - {type="fluid", name="liquid-air", amount=2} - }, - results= - { - {type="fluid", name="nitrogen", amount=2}, - }, - enabled = false, - main_product= "nitrogen", - }, - - -- fertiliser- Sulfur- - { - type = "recipe", - name = "bi-fertiliser", - icon = "__Bio_Industries__/graphics/icons/fertiliser_sulfur.png", - category = "chemistry", - order = "b[fertiliser]", - energy_required = 5, - ingredients = - { - {type = "item", name = "sulfur", amount = 1}, - {type="item", name="stone-crushed", amount=5}, - {type="fluid", name="nitrogen", amount=1}, - {type="item", name="bi-ash", amount=5} - }, - results= - { - {type="item", name="fertiliser", amount=5} - }, - enabled = false, - }, - - -- fertiliser from sodium-hydroxide-- - { - type = "recipe", - name = "bi-fertiliser-2", - icon = "__Bio_Industries__/graphics/icons/fertiliser_sodium-hydroxide.png", - category = "chemistry", - order = "b[fertiliser]", - energy_required = 5, - ingredients = - { - --{type = "item", name = "sodium-hydroxide", amount = 10}, - {type="item", name="stone-crushed", amount=5}, - {type="fluid", name="nitrogen", amount=1}, - {type="item", name="bi-ash", amount=5} - }, - results= - { - {type="item", name="fertiliser", amount=5} - }, - enabled = false, - }, - - - -- Advanced fertiliser -- - { - type = "recipe", - name = "bi-adv-fertiliser", - category = "chemistry", - order = "b[fertiliser]-b[bi-adv-fertiliser]", - energy_required = 125, - icon = "__Bio_Industries__/graphics/icons/advanced_fertiliser_32.png", - ingredients = - { - {type="item", name="fertiliser", amount=25}, - {type="item", name="bi-woodpulp", amount=50}, - {type="item", name="alien-artifact", amount=5}, - --{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-fertiliser", amount=50} - }, - enabled = false, - }, - - - -- COKERY -- - { - type = "recipe", - name = "bi-cokery", - energy_required = 10, - ingredients = {{"stone-furnace",3},{"steel-plate",10}}, - result = "bi-cokery", - result_count = 1, - enabled = false, - }, - -- STONE CRUSHER -- - { - type = "recipe", - name = "bi-stone-crusher", - energy_required = 10, - ingredients = {{"iron-plate",10},{"steel-plate",10},{"iron-gear-wheel",5}}, - result = "bi-stone-crusher", - enabled = false, - result_count = 1 - }, - - -}) +data:extend({ + --- Seedling + { + type = "recipe", + name = "bi-seedling", + enabled = false, + subgroup = "raw-material", + energy_required = 0.5, + icon = "__Bio_Industries__/graphics/icons/Seedling.png", + ingredients = {{"raw-wood",1}}, + results= + { + {type="item", name="seedling", amount=2}, + {type="item", name="bi-woodpulp", amount=1} + }, + }, + --- Bio Farm + { + type = "recipe", + name = "bi_bio_farm", + enabled = false, + energy_required = 10, + ingredients = + { + {"iron-stick",20}, + {"copper-cable",10}, + {"stone",20}, + {"small-lamp",10} + }, + result = "bi_bio_farm" + }, + + --- Raw Wood from Water (BASIC) + { + type = "recipe", + name = "bi-Logs_Mk1", + --icon = "__Bio_Industries__/graphics/icons/raw-wood-mk1.png", + category = "biofarm-mod-dummy", + order = "a[bi]-a-a[raw-wood1]", + enabled = false, + energy_required = 450, + ingredients = + { + {type="item", name="seedling", amount=20}, + {type="fluid", name="water", amount=100}, + }, + + result_count = 40, + result = "raw-wood" + }, + + --- Raw Wood from Water & fertiliser + { + type = "recipe", + name = "bi-Logs_Mk2", + icon = "__Bio_Industries__/graphics/icons/raw-wood-mk2.png", + category = "biofarm-mod-dummy", + order = "a[bi]-a-a[raw-wood2]", + enabled = false, + energy_required = 260, + ingredients = + { + {type="item", name="seedling", amount=30}, + {type="item", name="fertiliser", amount=10}, + {type="fluid", name="water", amount=100}, + }, + + result_count = 75, + result = "raw-wood" + }, + + + --- Raw Wood from fertiliser & NE_enhanced-nutrient-solution (Natural Evolution Mod) + { + type = "recipe", + name = "bi-Logs_Mk3", + icon = "__Bio_Industries__/graphics/icons/raw-wood-mk3.png", + category = "biofarm-mod-dummy", + order = "a[bi]-a-a[raw-wood3]", + enabled = false, + energy_required = 150, + ingredients = + { + {type="item", name="seedling", amount=50}, + {type="fluid", name="water", amount=100}, + {type="item", name="bi-adv-fertiliser", amount=5}, + }, + result_count = 150, + result = "raw-wood" + }, + + -- ASH -- + { + type = "recipe", + name = "bi-ash", + icon = "__Bio_Industries__/graphics/icons/ash_raw-wood.png", + category = "biofarm-mod-smelting", + subgroup = "raw-material", + order = "a[bi]-a-b[bi-ash]", + enabled = false, + energy_required = 10, + ingredients = {{"raw-wood",5}}, + result = "bi-ash", + result_count = 10, + }, + -- ASH 2-- + { + type = "recipe", + name = "bi-ash-2", + icon = "__Bio_Industries__/graphics/icons/ash_woodpulp.png", + category = "biofarm-mod-smelting", + subgroup = "raw-material", + order = "a[bi]-a-b[bi-ash2]", + enabled = false, + energy_required = 5, + ingredients = {{"bi-woodpulp",10}}, + result = "bi-ash", + result_count = 10, + }, + + -- CHARCOAL 1 + { + type = "recipe", + name = "bi-charcoal", + icon = "__Bio_Industries__/graphics/icons/charcoal_woodpulp.png", + subgroup = "raw-material", + order = "a[bi]-a-c[charcoal1]", + category = "biofarm-mod-smelting", + energy_required = 12.5, + ingredients = {{"bi-woodpulp",40}}, + result = "bi-charcoal", + result_count = 18, + enabled = false, + }, + -- CHARCOAL 2 + { + type = "recipe", + name = "bi-charcoal-2", + icon = "__Bio_Industries__/graphics/icons/charcoal_raw-wood.png", + subgroup = "raw-material", + order = "a[bi]-a-c[charcoal2]", + category = "biofarm-mod-smelting", + energy_required = 20, + ingredients = {{"raw-wood",20}}, + result = "bi-charcoal", + result_count = 18, + enabled = false, + }, + -- COAL 1 -- + { + type = "recipe", + name = "bi-coal", + icon = "__Bio_Industries__/graphics/icons/coal_mk1.png", + category = "biofarm-mod-smelting", + subgroup = "raw-material", + order = "a[bi]-a-d[bi-coal]", + energy_required = 12, + ingredients = {{"bi-charcoal",12}}, + result = "coal", + result_count = 8, + enabled = false, + }, + -- COAL 2 -- + { + type = "recipe", + name = "bi-coal-2", + icon = "__Bio_Industries__/graphics/icons/coal_mk2.png", + category = "biofarm-mod-smelting", + subgroup = "raw-material", + order = "a[bi]-a-d[bi-coal2]", + energy_required = 18, + ingredients = {{"bi-charcoal",12}}, + result = "coal", + result_count = 10, + enabled = false, + }, + -- COKE-COAL -- + { + type = "recipe", + name = "bi-coke-coal", + category = "biofarm-mod-smelting", + subgroup = "raw-material", + order = "d-a[bi-coke-coal]", + order = "a[bi]-a-e[bi-coke-coal]", + energy_required = 25, + ingredients = {{"coal",15}}, + result = "bi-coke-coal", + result_count = 10, + enabled = false, + }, + + -- CRUSHED STONE -- + { + type = "recipe", + name = "bi-crushed-stone", + category = "biofarm-mod-crushing", + subgroup = "raw-material", + order = "a[bi]-a-z[stone-crushed]", + energy_required = 2, + ingredients = {{"stone",1}}, + result = "stone-crushed", + result_count = 2, + enabled = false, + }, + -- LIQUID-AIR -- + { + type = "recipe", + name = "bi-liquid-air", + category = "chemistry", + subgroup = "intermediate-product", + energy_required = 1, + ingredients = {}, + results= + { + {type = "fluid", name = "liquid-air", amount = 10} + }, + enabled = false, + }, + -- -NITROGEN -- + { + type = "recipe", + name = "bi-nitrogen", + category = "chemistry", + subgroup = "intermediate-product", + energy_required = 10, + ingredients = + { + {type="fluid", name="liquid-air", amount=2} + }, + results= + { + {type="fluid", name="nitrogen", amount=2}, + }, + enabled = false, + main_product= "nitrogen", + }, + + -- fertiliser- Sulfur- + { + type = "recipe", + name = "bi-fertiliser", + icon = "__Bio_Industries__/graphics/icons/fertiliser_sulfur.png", + category = "chemistry", + order = "b[fertiliser]", + energy_required = 5, + ingredients = + { + {type = "item", name = "sulfur", amount = 1}, + {type="item", name="stone-crushed", amount=5}, + {type="fluid", name="nitrogen", amount=1}, + {type="item", name="bi-ash", amount=5} + }, + results= + { + {type="item", name="fertiliser", amount=5} + }, + enabled = false, + }, + + -- fertiliser from sodium-hydroxide-- + { + type = "recipe", + name = "bi-fertiliser-2", + icon = "__Bio_Industries__/graphics/icons/fertiliser_sodium-hydroxide.png", + category = "chemistry", + order = "b[fertiliser]", + energy_required = 5, + ingredients = + { + --{type = "item", name = "sodium-hydroxide", amount = 10}, + {type="item", name="stone-crushed", amount=5}, + {type="fluid", name="nitrogen", amount=1}, + {type="item", name="bi-ash", amount=5} + }, + results= + { + {type="item", name="fertiliser", amount=5} + }, + enabled = false, + }, + + + -- Advanced fertiliser -- + { + type = "recipe", + name = "bi-adv-fertiliser", + category = "chemistry", + order = "b[fertiliser]-b[bi-adv-fertiliser]", + energy_required = 125, + icon = "__Bio_Industries__/graphics/icons/advanced_fertiliser_32.png", + ingredients = + { + {type="item", name="fertiliser", amount=25}, + {type="item", name="bi-woodpulp", amount=50}, + {type="item", name="alien-artifact", amount=5}, + --{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-fertiliser", amount=50} + }, + enabled = false, + }, + + + -- COKERY -- + { + type = "recipe", + name = "bi-cokery", + energy_required = 10, + ingredients = {{"stone-furnace",3},{"steel-plate",10}}, + result = "bi-cokery", + result_count = 1, + enabled = false, + }, + -- STONE CRUSHER -- + { + type = "recipe", + name = "bi-stone-crusher", + energy_required = 10, + ingredients = {{"iron-plate",10},{"steel-plate",10},{"iron-gear-wheel",5}}, + result = "bi-stone-crusher", + enabled = false, + result_count = 1 + }, + + +}) diff --git a/Bio_Industries_1.4.0/prototypes/Bio_Farm/technology.lua b/Bio_Industries_1.4.2/prototypes/Bio_Farm/technology.lua similarity index 94% rename from Bio_Industries_1.4.0/prototypes/Bio_Farm/technology.lua rename to Bio_Industries_1.4.2/prototypes/Bio_Farm/technology.lua index 0eb7b28..253cbce 100644 --- a/Bio_Industries_1.4.0/prototypes/Bio_Farm/technology.lua +++ b/Bio_Industries_1.4.2/prototypes/Bio_Farm/technology.lua @@ -1,177 +1,177 @@ - ----- Bio Farm -data:extend({ - - { - type = "technology", - name = "bi_bio_farming", - icon_size = 128, - icon = "__Bio_Industries__/graphics/technology/Bio_Farm_Tech_128.png", - effects = - { - { - type = "unlock-recipe", - recipe = "bi-seedling" - }, - { - type = "unlock-recipe", - recipe = "bi-Logs_Mk1" - }, - { - type = "unlock-recipe", - recipe = "bi_bio_farm" - }, - -- { - -- type = "unlock-recipe", - -- recipe = "bi-stone-crusher" - -- }, - }, - prerequisites = {"optics"}, - unit = - { - count = 20, - ingredients = - { - {"science-pack-1", 1} - }, - time = 20 - }, - }, - - { - type = "technology", - name = "bi-coal-processing", - icon_size = 128, - icon = "__Bio_Industries__/graphics/technology/Coal_128.png", - effects = { - { - type = "unlock-recipe", - recipe = "bi-charcoal" - }, - { - type = "unlock-recipe", - recipe = "bi-charcoal-2" - }, - - { - type = "unlock-recipe", - recipe = "bi-ash" - }, - { - type = "unlock-recipe", - recipe = "bi-ash-2" - }, - { - type = "unlock-recipe", - recipe = "bi-cokery" - } - }, - prerequisites = {"advanced-material-processing"}, - unit = - { - count = 100, - ingredients = { - {"science-pack-1", 1} - }, - time = 30 - }, - }, - - { - type = "technology", - name = "bi-coal-processing-2", - icon_size = 128, - icon = "__Bio_Industries__/graphics/technology/Coal_128.png", - effects = { - { - type = "unlock-recipe", - recipe = "bi-coal" - }, - { - type = "unlock-recipe", - recipe = "bi-coke-coal" - }, - }, - prerequisites = {"bi-coal-processing"}, - unit = - { - count = 100, - ingredients = { - {"science-pack-1", 1}, - {"science-pack-2", 1} - }, - time = 30 - }, - upgrade = true, - }, - - { - type = "technology", - name = "bi-coal-processing-3", - icon_size = 128, - icon = "__Bio_Industries__/graphics/technology/Coal_128.png", - effects = { - { - type = "unlock-recipe", - recipe = "bi-coal-2" - }, - }, - prerequisites = {"bi-coal-processing-2"}, - unit = - { - count = 50, - ingredients = { - {"science-pack-1", 2}, - {"science-pack-2", 2}, - {"science-pack-3", 1} - }, - time = 30 - }, - upgrade = true, - }, - - { - type = "technology", - name = "bi-fertiliser", - icon_size = 128, - icon = "__Bio_Industries__/graphics/technology/Fertiliser_128.png", - effects = { - { - type = "unlock-recipe", - recipe = "bi-crushed-stone" - }, - { - type = "unlock-recipe", - recipe = "bi-liquid-air" - }, - { - type = "unlock-recipe", - recipe = "bi-nitrogen" - }, - { - type = "unlock-recipe", - recipe = "bi-fertiliser" - }, - { - type = "unlock-recipe", - recipe = "bi-Logs_Mk2" - } - - }, - prerequisites = - { - "fluid-handling", - "bi_bio_farming" - }, - unit = { - count = 200, - ingredients = { - {"science-pack-1", 2}, - {"science-pack-2", 1} - }, - time = 30 - } - }, - -}) - + +---- Bio Farm +data:extend({ + + { + type = "technology", + name = "bi_bio_farming", + icon_size = 128, + icon = "__Bio_Industries__/graphics/technology/Bio_Farm_Tech_128.png", + effects = + { + { + type = "unlock-recipe", + recipe = "bi-seedling" + }, + { + type = "unlock-recipe", + recipe = "bi-Logs_Mk1" + }, + { + type = "unlock-recipe", + recipe = "bi_bio_farm" + }, + -- { + -- type = "unlock-recipe", + -- recipe = "bi-stone-crusher" + -- }, + }, + prerequisites = {"optics"}, + unit = + { + count = 20, + ingredients = + { + {"science-pack-1", 1} + }, + time = 20 + }, + }, + + { + type = "technology", + name = "bi-coal-processing", + icon_size = 128, + icon = "__Bio_Industries__/graphics/technology/Coal_128.png", + effects = { + { + type = "unlock-recipe", + recipe = "bi-charcoal" + }, + { + type = "unlock-recipe", + recipe = "bi-charcoal-2" + }, + + { + type = "unlock-recipe", + recipe = "bi-ash" + }, + { + type = "unlock-recipe", + recipe = "bi-ash-2" + }, + { + type = "unlock-recipe", + recipe = "bi-cokery" + } + }, + prerequisites = {"advanced-material-processing"}, + unit = + { + count = 100, + ingredients = { + {"science-pack-1", 1} + }, + time = 30 + }, + }, + + { + type = "technology", + name = "bi-coal-processing-2", + icon_size = 128, + icon = "__Bio_Industries__/graphics/technology/Coal_128.png", + effects = { + { + type = "unlock-recipe", + recipe = "bi-coal" + }, + { + type = "unlock-recipe", + recipe = "bi-coke-coal" + }, + }, + prerequisites = {"bi-coal-processing"}, + unit = + { + count = 100, + ingredients = { + {"science-pack-1", 1}, + {"science-pack-2", 1} + }, + time = 30 + }, + upgrade = true, + }, + + { + type = "technology", + name = "bi-coal-processing-3", + icon_size = 128, + icon = "__Bio_Industries__/graphics/technology/Coal_128.png", + effects = { + { + type = "unlock-recipe", + recipe = "bi-coal-2" + }, + }, + prerequisites = {"bi-coal-processing-2"}, + unit = + { + count = 50, + ingredients = { + {"science-pack-1", 2}, + {"science-pack-2", 2}, + {"science-pack-3", 1} + }, + time = 30 + }, + upgrade = true, + }, + + { + type = "technology", + name = "bi-fertiliser", + icon_size = 128, + icon = "__Bio_Industries__/graphics/technology/Fertiliser_128.png", + effects = { + { + type = "unlock-recipe", + recipe = "bi-crushed-stone" + }, + { + type = "unlock-recipe", + recipe = "bi-liquid-air" + }, + { + type = "unlock-recipe", + recipe = "bi-nitrogen" + }, + { + type = "unlock-recipe", + recipe = "bi-fertiliser" + }, + { + type = "unlock-recipe", + recipe = "bi-Logs_Mk2" + } + + }, + prerequisites = + { + "fluid-handling", + "bi_bio_farming" + }, + unit = { + count = 200, + ingredients = { + {"science-pack-1", 2}, + {"science-pack-2", 1} + }, + time = 30 + } + }, + +}) + diff --git a/Bio_Industries_1.4.0/prototypes/Bio_Farm/technology2.lua b/Bio_Industries_1.4.2/prototypes/Bio_Farm/technology2.lua similarity index 93% rename from Bio_Industries_1.4.0/prototypes/Bio_Farm/technology2.lua rename to Bio_Industries_1.4.2/prototypes/Bio_Farm/technology2.lua index cdd4607..1df127c 100644 --- a/Bio_Industries_1.4.0/prototypes/Bio_Farm/technology2.lua +++ b/Bio_Industries_1.4.2/prototypes/Bio_Farm/technology2.lua @@ -1,42 +1,42 @@ - - ---- Imported from Tree Farm Mod -data:extend( -{ - - - { - type = "technology", - name = "bi-advanced-biotechnology", - icon_size = 128, - icon = "__Bio_Industries__/graphics/technology/Biomass_128.png", - effects = { - { - type = "unlock-recipe", - recipe = "bi-Logs_Mk3" - }, - { - type = "unlock-recipe", - recipe = "bi-adv-fertiliser" - }, - { - type = "unlock-recipe", - recipe = "bi-Clean_Air2" - }, - - }, - prerequisites = { - "bi-fertiliser" - }, - unit = { - count = 150, - ingredients = { - {"science-pack-1", 4}, - {"science-pack-2", 2} - }, - time = 30 - } - }, - -}) - + + +--- Imported from Tree Farm Mod +data:extend( +{ + + + { + type = "technology", + name = "bi-advanced-biotechnology", + icon_size = 128, + icon = "__Bio_Industries__/graphics/technology/Biomass_128.png", + effects = { + { + type = "unlock-recipe", + recipe = "bi-Logs_Mk3" + }, + { + type = "unlock-recipe", + recipe = "bi-adv-fertiliser" + }, + { + type = "unlock-recipe", + recipe = "bi-Clean_Air2" + }, + + }, + prerequisites = { + "bi-fertiliser" + }, + unit = { + count = 150, + ingredients = { + {"science-pack-1", 4}, + {"science-pack-2", 2} + }, + time = 30 + } + }, + +}) + diff --git a/Bio_Industries_1.4.0/prototypes/Bio_Fuel/entities.lua b/Bio_Industries_1.4.2/prototypes/Bio_Fuel/entities.lua similarity index 96% rename from Bio_Industries_1.4.0/prototypes/Bio_Fuel/entities.lua rename to Bio_Industries_1.4.2/prototypes/Bio_Fuel/entities.lua index 0bba982..cc20110 100644 --- a/Bio_Industries_1.4.0/prototypes/Bio_Fuel/entities.lua +++ b/Bio_Industries_1.4.2/prototypes/Bio_Fuel/entities.lua @@ -1,92 +1,92 @@ -require ("prototypes.Bio_Fuel.pipeConnectors") -require ("util") - - - - ---- Originally from the old Tree Farm Mod. -data:extend( -{ - - - - -- BIOREACTOR - { - type = "assembling-machine", - name = "bi-bioreactor", - icon = "__Bio_Industries__/graphics/icons/bioreactor.png", - flags = {"placeable-neutral", "player-creation"}, - minable = {hardness = 0.2, mining_time = 0.5, result = "bi-bioreactor"}, - 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" - }, - - } +require ("prototypes.Bio_Fuel.pipeConnectors") +require ("util") + + + + ---- Originally from the old Tree Farm Mod. +data:extend( +{ + + + + -- BIOREACTOR + { + type = "assembling-machine", + name = "bi-bioreactor", + icon = "__Bio_Industries__/graphics/icons/bioreactor.png", + flags = {"placeable-neutral", "player-creation"}, + minable = {hardness = 0.2, mining_time = 0.5, result = "bi-bioreactor"}, + 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" + }, + + } ) \ No newline at end of file diff --git a/Bio_Industries_1.4.0/prototypes/Bio_Fuel/fluid.lua b/Bio_Industries_1.4.2/prototypes/Bio_Fuel/fluid.lua similarity index 95% rename from Bio_Industries_1.4.0/prototypes/Bio_Fuel/fluid.lua rename to Bio_Industries_1.4.2/prototypes/Bio_Fuel/fluid.lua index e5db612..0f9876e 100644 --- a/Bio_Industries_1.4.0/prototypes/Bio_Fuel/fluid.lua +++ b/Bio_Industries_1.4.2/prototypes/Bio_Fuel/fluid.lua @@ -1,18 +1,18 @@ - -data:extend({ - { - type = "fluid", - name = "bi-Bio_Fuel", - 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}, - icon = "__Bio_Industries__/graphics/icons/bio-fuel.png", - --order = "a[fluid]-a[water]", - pressure_to_speed_ratio = 0.4, - flow_to_energy_ratio = 0.59, - }, - - -}) + +data:extend({ + { + type = "fluid", + name = "bi-Bio_Fuel", + 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}, + icon = "__Bio_Industries__/graphics/icons/bio-fuel.png", + --order = "a[fluid]-a[water]", + pressure_to_speed_ratio = 0.4, + flow_to_energy_ratio = 0.59, + }, + + +}) diff --git a/Bio_Industries_1.4.0/prototypes/Bio_Fuel/item.lua b/Bio_Industries_1.4.2/prototypes/Bio_Fuel/item.lua similarity index 94% rename from Bio_Industries_1.4.0/prototypes/Bio_Fuel/item.lua rename to Bio_Industries_1.4.2/prototypes/Bio_Fuel/item.lua index 487602c..942aa64 100644 --- a/Bio_Industries_1.4.0/prototypes/Bio_Fuel/item.lua +++ b/Bio_Industries_1.4.2/prototypes/Bio_Fuel/item.lua @@ -1,30 +1,30 @@ - - data:extend( -{ - - - ---- Celluluse - { - type = "item", - name = "bi-cellulose", - icon = "__Bio_Industries__/graphics/icons/cellulose.png", - flags = {"goes-to-main-inventory"}, - subgroup = "intermediate-product", - order = "b[cellulose]", - stack_size = 200 - }, - - --- BioReactor - { - type = "item", - name = "bi-bioreactor", - icon = "__Bio_Industries__/graphics/icons/bioreactor.png", - flags = {"goes-to-quickbar"}, - subgroup = "production-machine", - order = "a[bi]-d[bi-bioreactor]", - place_result = "bi-bioreactor", - stack_size = 10 - }, - - -}) + + data:extend( +{ + + + ---- Celluluse + { + type = "item", + name = "bi-cellulose", + icon = "__Bio_Industries__/graphics/icons/cellulose.png", + flags = {"goes-to-main-inventory"}, + subgroup = "intermediate-product", + order = "b[cellulose]", + stack_size = 200 + }, + + --- BioReactor + { + type = "item", + name = "bi-bioreactor", + icon = "__Bio_Industries__/graphics/icons/bioreactor.png", + flags = {"goes-to-quickbar"}, + subgroup = "production-machine", + order = "a[bi]-d[bi-bioreactor]", + place_result = "bi-bioreactor", + stack_size = 10 + }, + + +}) diff --git a/Bio_Industries_1.4.0/prototypes/Bio_Fuel/pipeConnectors.lua b/Bio_Industries_1.4.2/prototypes/Bio_Fuel/pipeConnectors.lua similarity index 95% rename from Bio_Industries_1.4.0/prototypes/Bio_Fuel/pipeConnectors.lua rename to Bio_Industries_1.4.2/prototypes/Bio_Fuel/pipeConnectors.lua index bde6748..3525121 100644 --- a/Bio_Industries_1.4.0/prototypes/Bio_Fuel/pipeConnectors.lua +++ b/Bio_Industries_1.4.2/prototypes/Bio_Fuel/pipeConnectors.lua @@ -1,212 +1,212 @@ -function assembler2pipepictures() - return - { - north = - { - filename = "__base__/graphics/entity/assembling-machine-2/pipe-north.png", - priority = "extra-high", - width = 41, - height = 40, - 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 = "__base__/graphics/entity/assembling-machine-2/pipe-south.png", - priority = "extra-high", - width = 41, - height = 40, - 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 - -pipecoverspictures = function() - return { - north = - { - filename = "__base__/graphics/entity/pipe-covers/pipe-cover-north.png", - priority = "extra-high", - width = 44, - height = 32 - }, - east = - { - filename = "__base__/graphics/entity/pipe-covers/pipe-cover-east.png", - priority = "extra-high", - width = 32, - height = 32 - }, - south = - { - filename = "__base__/graphics/entity/pipe-covers/pipe-cover-south.png", - priority = "extra-high", - width = 46, - height = 52 - }, - west = - { - filename = "__base__/graphics/entity/pipe-covers/pipe-cover-west.png", - priority = "extra-high", - width = 32, - height = 32 - } - } -end - -function assembler2pipepicturesCokery() - return - { - north = - { - filename = "__Bio_Industries__/graphics/icons/empty.png", - priority = "extra-high", - width = 32, - height = 32, - 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 = "__Bio_Industries__/graphics/icons/empty.png", - priority = "extra-high", - width = 32, - height = 32, - 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 - -pipecoverspicturesCokery = function() - return { - north = - { - filename = "__Bio_Industries__/graphics/icons/empty.png", - priority = "extra-high", - width = 32, - height = 32 - }, - east = - { - filename = "__base__/graphics/entity/pipe-covers/pipe-cover-east.png", - priority = "extra-high", - width = 32, - height = 32 - }, - south = - { - filename = "__Bio_Industries__/graphics/icons/empty.png", - priority = "extra-high", - width = 32, - height = 32 - }, - west = - { - filename = "__base__/graphics/entity/pipe-covers/pipe-cover-west.png", - priority = "extra-high", - width = 32, - height = 32 - } - } -end - -function assembler2pipepicturesBioreactor() - return - { - north = - { - filename = "__Bio_Industries__/graphics/icons/empty.png", - priority = "extra-high", - width = 32, - height = 32, - shift = {0.09375, 0.4375} - }, - east = - { - filename = "__Bio_Industries__/graphics/entities/bioreactor/pipe-east.png", - priority = "extra-high", - width = 41, - height = 40, - shift = {-0.71875, 0} - }, - south = - { - filename = "__Bio_Industries__/graphics/entities/bioreactor/pipe-south.png", - priority = "extra-high", - width = 41, - height = 40, - shift = {0.0625, -0.8} - }, - west = - { - filename = "__Bio_Industries__/graphics/entities/bioreactor/pipe-west.png", - priority = "extra-high", - width = 41, - height = 40, - shift = {0.78125, 0.03125} - } - } -end - -pipecoverspicturesBioreactor = function() - return { - north = - { - filename = "__Bio_Industries__/graphics/icons/empty.png", - priority = "extra-high", - width = 32, - height = 32 - }, - east = - { - filename = "__base__/graphics/entity/pipe-covers/pipe-cover-east.png", - priority = "extra-high", - width = 32, - height = 32 - }, - south = - { - filename = "__base__/graphics/entity/pipe-covers/pipe-cover-south.png", - priority = "extra-high", - width = 46, - height = 52 - }, - west = - { - filename = "__base__/graphics/entity/pipe-covers/pipe-cover-west.png", - priority = "extra-high", - width = 32, - height = 32 - } - } +function assembler2pipepictures() + return + { + north = + { + filename = "__base__/graphics/entity/assembling-machine-2/pipe-north.png", + priority = "extra-high", + width = 41, + height = 40, + 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 = "__base__/graphics/entity/assembling-machine-2/pipe-south.png", + priority = "extra-high", + width = 41, + height = 40, + 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 + +pipecoverspictures = function() + return { + north = + { + filename = "__base__/graphics/entity/pipe-covers/pipe-cover-north.png", + priority = "extra-high", + width = 44, + height = 32 + }, + east = + { + filename = "__base__/graphics/entity/pipe-covers/pipe-cover-east.png", + priority = "extra-high", + width = 32, + height = 32 + }, + south = + { + filename = "__base__/graphics/entity/pipe-covers/pipe-cover-south.png", + priority = "extra-high", + width = 46, + height = 52 + }, + west = + { + filename = "__base__/graphics/entity/pipe-covers/pipe-cover-west.png", + priority = "extra-high", + width = 32, + height = 32 + } + } +end + +function assembler2pipepicturesCokery() + return + { + north = + { + filename = "__Bio_Industries__/graphics/icons/empty.png", + priority = "extra-high", + width = 32, + height = 32, + 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 = "__Bio_Industries__/graphics/icons/empty.png", + priority = "extra-high", + width = 32, + height = 32, + 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 + +pipecoverspicturesCokery = function() + return { + north = + { + filename = "__Bio_Industries__/graphics/icons/empty.png", + priority = "extra-high", + width = 32, + height = 32 + }, + east = + { + filename = "__base__/graphics/entity/pipe-covers/pipe-cover-east.png", + priority = "extra-high", + width = 32, + height = 32 + }, + south = + { + filename = "__Bio_Industries__/graphics/icons/empty.png", + priority = "extra-high", + width = 32, + height = 32 + }, + west = + { + filename = "__base__/graphics/entity/pipe-covers/pipe-cover-west.png", + priority = "extra-high", + width = 32, + height = 32 + } + } +end + +function assembler2pipepicturesBioreactor() + return + { + north = + { + filename = "__Bio_Industries__/graphics/icons/empty.png", + priority = "extra-high", + width = 32, + height = 32, + shift = {0.09375, 0.4375} + }, + east = + { + filename = "__Bio_Industries__/graphics/entities/bioreactor/pipe-east.png", + priority = "extra-high", + width = 41, + height = 40, + shift = {-0.71875, 0} + }, + south = + { + filename = "__Bio_Industries__/graphics/entities/bioreactor/pipe-south.png", + priority = "extra-high", + width = 41, + height = 40, + shift = {0.0625, -0.8} + }, + west = + { + filename = "__Bio_Industries__/graphics/entities/bioreactor/pipe-west.png", + priority = "extra-high", + width = 41, + height = 40, + shift = {0.78125, 0.03125} + } + } +end + +pipecoverspicturesBioreactor = function() + return { + north = + { + filename = "__Bio_Industries__/graphics/icons/empty.png", + priority = "extra-high", + width = 32, + height = 32 + }, + east = + { + filename = "__base__/graphics/entity/pipe-covers/pipe-cover-east.png", + priority = "extra-high", + width = 32, + height = 32 + }, + south = + { + filename = "__base__/graphics/entity/pipe-covers/pipe-cover-south.png", + priority = "extra-high", + width = 46, + height = 52 + }, + west = + { + filename = "__base__/graphics/entity/pipe-covers/pipe-cover-west.png", + priority = "extra-high", + width = 32, + height = 32 + } + } end \ No newline at end of file diff --git a/Bio_Industries_1.4.0/prototypes/Bio_Fuel/recipe.lua b/Bio_Industries_1.4.2/prototypes/Bio_Fuel/recipe.lua similarity index 94% rename from Bio_Industries_1.4.0/prototypes/Bio_Fuel/recipe.lua rename to Bio_Industries_1.4.2/prototypes/Bio_Fuel/recipe.lua index 25557ce..ee526bc 100644 --- a/Bio_Industries_1.4.0/prototypes/Bio_Fuel/recipe.lua +++ b/Bio_Industries_1.4.2/prototypes/Bio_Fuel/recipe.lua @@ -1,142 +1,142 @@ - - -data:extend({ - - ---- Bio Fuel - { - type = "recipe", - name = "bi-Bio_Fuel", - --category = "chemistry", - category = "biofarm-mod-bioreactor", - energy_required = 10, - enabled = false, - ingredients = - { - {type="item", name="bi-cellulose", amount=2}, - {type="item", name="alien-artifact", amount=1}, - --{type="fluid", name="NE_revitalization-solution", amount=10} <-- Will be added if you are using NE Buildings - }, - results= - { - {type="fluid", name="bi-Bio_Fuel", amount=20}, - }, - --subgroup = "Evolution-fluids", - subgroup = "fluid-recipes", - order = "a[oil-processing]-z[bi-Bio_Fuel]", - }, - -- Bio Fuel conversion to Oil products - { - type = "recipe", - name = "bi-Fuel_Conversion", - category = "oil-processing", - enabled = false, - energy_required = 5, - ingredients = - { - {type="fluid", name="bi-Bio_Fuel", amount=9}, - {type="fluid", name="crude-oil", amount=1}, - }, - results= - { - {type="fluid", name="light-oil", amount=3}, - {type="fluid", name="heavy-oil", amount=2}, - {type="fluid", name="petroleum-gas", amount=2}, - }, - icon = "__Bio_Industries__/graphics/icons/bio_conversion.png", - subgroup = "fluid-recipes", - order = "a[oil-processing]-b[advanced-oil-processing]-y[bi-Fuel_Conversion]", - }, - -}) - ---- Plastics -data:extend({ - - -- BIO Reactor -- - { - type = "recipe", - name = "bi-bioreactor", - energy_required = 20, - ingredients = {{"assembling-machine-1",1},{"steel-plate",5},{"electronic-circuit",5}}, - result = "bi-bioreactor", - enabled = false, - result_count = 1 - }, - - -- PLASTIC -- - { - type = "recipe", - name = "bi-plastic", - category = "chemistry", - subgroup = "raw-material", - order = "g[plastic-bar]", - energy_required = 2, - ingredients = - { - {type="item", name="bi-cellulose", amount=2} - }, - results= - { - {type="item", name="plastic-bar", amount=1} - }, - enabled = false, - }, - - - -- LIQUID CO2 - { - type = "recipe", - name = "bi-liquid-co2", - category = "chemistry", - energy_required = 5, - ingredients ={{type="fluid", name="liquid-air", amount=1}}, - results= - { - {type="fluid", name="bi-liquid-co2", amount=1} - }, - enabled = false, - subgroup = "fluid-recipes", - order = "x[oil-processing]-z[bi-liquid-co2]" - }, - - -- BIOMASS -- - { - type = "recipe", - name = "bi-biomass-0", - icon = "__Bio_Industries__/graphics/icons/biomass.png", - category = "biofarm-mod-bioreactor", - energy_required = 10, - ingredients = - { - {type="fluid", name="water", amount=10}, - {type="fluid", name="bi-liquid-co2", amount=1}, - {type="item", name="fertiliser", amount=1} - }, - results= - { - {type="fluid", name="bi-biomass", amount=3}, - }, - enabled = false, - subgroup = "fluid-recipes", - order = "x[oil-processing]-z[bi-biomass]" - }, - - -- CELLULOSE -- - { - type = "recipe", - name = "bi-cellulose", - category = "chemistry", - energy_required = 10, - ingredients = - { - {type="fluid", name="bi-biomass", amount=2}, - {type="item", name="seedling", amount=25}, - }, - results= - { - {type="item", name="bi-cellulose", amount=1 } - }, - enabled = false, - }, - + + +data:extend({ + + ---- Bio Fuel + { + type = "recipe", + name = "bi-Bio_Fuel", + --category = "chemistry", + category = "biofarm-mod-bioreactor", + energy_required = 10, + enabled = false, + ingredients = + { + {type="item", name="bi-cellulose", amount=2}, + {type="item", name="alien-artifact", amount=1}, + --{type="fluid", name="NE_revitalization-solution", amount=10} <-- Will be added if you are using NE Buildings + }, + results= + { + {type="fluid", name="bi-Bio_Fuel", amount=20}, + }, + --subgroup = "Evolution-fluids", + subgroup = "fluid-recipes", + order = "a[oil-processing]-z[bi-Bio_Fuel]", + }, + -- Bio Fuel conversion to Oil products + { + type = "recipe", + name = "bi-Fuel_Conversion", + category = "oil-processing", + enabled = false, + energy_required = 5, + ingredients = + { + {type="fluid", name="bi-Bio_Fuel", amount=9}, + {type="fluid", name="crude-oil", amount=1}, + }, + results= + { + {type="fluid", name="light-oil", amount=3}, + {type="fluid", name="heavy-oil", amount=2}, + {type="fluid", name="petroleum-gas", amount=2}, + }, + icon = "__Bio_Industries__/graphics/icons/bio_conversion.png", + subgroup = "fluid-recipes", + order = "a[oil-processing]-b[advanced-oil-processing]-y[bi-Fuel_Conversion]", + }, + +}) + +--- Plastics +data:extend({ + + -- BIO Reactor -- + { + type = "recipe", + name = "bi-bioreactor", + energy_required = 20, + ingredients = {{"assembling-machine-1",1},{"steel-plate",5},{"electronic-circuit",5}}, + result = "bi-bioreactor", + enabled = false, + result_count = 1 + }, + + -- PLASTIC -- + { + type = "recipe", + name = "bi-plastic", + category = "chemistry", + subgroup = "raw-material", + order = "g[plastic-bar]", + energy_required = 2, + ingredients = + { + {type="item", name="bi-cellulose", amount=2} + }, + results= + { + {type="item", name="plastic-bar", amount=4} + }, + enabled = false, + }, + + + -- LIQUID CO2 + { + type = "recipe", + name = "bi-liquid-co2", + category = "chemistry", + energy_required = 5, + ingredients ={{type="fluid", name="liquid-air", amount=1}}, + results= + { + {type="fluid", name="bi-liquid-co2", amount=1} + }, + enabled = false, + subgroup = "fluid-recipes", + order = "x[oil-processing]-z[bi-liquid-co2]" + }, + + -- BIOMASS -- + { + type = "recipe", + name = "bi-biomass-0", + icon = "__Bio_Industries__/graphics/icons/biomass.png", + category = "biofarm-mod-bioreactor", + energy_required = 10, + ingredients = + { + {type="fluid", name="water", amount=10}, + {type="fluid", name="bi-liquid-co2", amount=1}, + {type="item", name="fertiliser", amount=1} + }, + results= + { + {type="fluid", name="bi-biomass", amount=3}, + }, + enabled = false, + subgroup = "fluid-recipes", + order = "x[oil-processing]-z[bi-biomass]" + }, + + -- CELLULOSE -- + { + type = "recipe", + name = "bi-cellulose", + category = "chemistry", + energy_required = 10, + ingredients = + { + {type="fluid", name="bi-biomass", amount=2}, + {type="item", name="seedling", amount=25}, + }, + results= + { + {type="item", name="bi-cellulose", amount=1 } + }, + enabled = false, + }, + }) \ No newline at end of file diff --git a/Bio_Industries_1.4.0/prototypes/Bio_Fuel/technology.lua b/Bio_Industries_1.4.2/prototypes/Bio_Fuel/technology.lua similarity index 93% rename from Bio_Industries_1.4.0/prototypes/Bio_Fuel/technology.lua rename to Bio_Industries_1.4.2/prototypes/Bio_Fuel/technology.lua index 62e9f4c..febf02c 100644 --- a/Bio_Industries_1.4.0/prototypes/Bio_Fuel/technology.lua +++ b/Bio_Industries_1.4.2/prototypes/Bio_Fuel/technology.lua @@ -1,33 +1,33 @@ - - ---- Imported from Tree Farm Mod -data:extend( -{ - - { - type = "technology", - name = "bi-organic-plastic", - icon_size = 128, - icon = "__Bio_Industries__/graphics/technology/Cellulose_128.png", - effects = { - { - type = "unlock-recipe", - recipe = "bi-plastic" - } - }, - prerequisites = { - "bi-advanced-biotechnology" - }, - unit = { - count = 150, - ingredients = { - {"science-pack-1", 2}, - {"science-pack-2", 2}, - {"science-pack-3", 1} - }, - time = 30 - } - }, - -}) - + + +--- Imported from Tree Farm Mod +data:extend( +{ + + { + type = "technology", + name = "bi-organic-plastic", + icon_size = 128, + icon = "__Bio_Industries__/graphics/technology/Cellulose_128.png", + effects = { + { + type = "unlock-recipe", + recipe = "bi-plastic" + } + }, + prerequisites = { + "bi-advanced-biotechnology" + }, + unit = { + count = 150, + ingredients = { + {"science-pack-1", 2}, + {"science-pack-2", 2}, + {"science-pack-3", 1} + }, + time = 30 + } + }, + +}) + diff --git a/Bio_Industries_1.4.0/prototypes/Bio_Garden/entities.lua b/Bio_Industries_1.4.2/prototypes/Bio_Garden/entities.lua similarity index 96% rename from Bio_Industries_1.4.0/prototypes/Bio_Garden/entities.lua rename to Bio_Industries_1.4.2/prototypes/Bio_Garden/entities.lua index b47e89d..71cee7d 100644 --- a/Bio_Industries_1.4.0/prototypes/Bio_Garden/entities.lua +++ b/Bio_Industries_1.4.2/prototypes/Bio_Garden/entities.lua @@ -1,68 +1,68 @@ - -require ("util") - - ---- Bio Gardens -data:extend({ - ---- Bio Garden - { - type = "assembling-machine", - name = "bi-Bio_Garden", - icon = "__Bio_Industries__/graphics/icons/bio_garden_icon.png", - 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 = -0.1 -- the "-" means it eats pollution. Absorbs about 20 PU - }, - energy_usage = "200kW", - ingredient_count = 1, - module_slots = 0 - }, - - - }) + +require ("util") + + +--- Bio Gardens +data:extend({ + +--- Bio Garden + { + type = "assembling-machine", + name = "bi-Bio_Garden", + icon = "__Bio_Industries__/graphics/icons/bio_garden_icon.png", + 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 = -0.1 -- the "-" means it eats pollution. Absorbs about 20 PU + }, + energy_usage = "200kW", + ingredient_count = 1, + module_slots = 0 + }, + + + }) diff --git a/Bio_Industries_1.4.0/prototypes/Bio_Garden/item.lua b/Bio_Industries_1.4.2/prototypes/Bio_Garden/item.lua similarity index 95% rename from Bio_Industries_1.4.0/prototypes/Bio_Garden/item.lua rename to Bio_Industries_1.4.2/prototypes/Bio_Garden/item.lua index a08a10e..8715937 100644 --- a/Bio_Industries_1.4.0/prototypes/Bio_Garden/item.lua +++ b/Bio_Industries_1.4.2/prototypes/Bio_Garden/item.lua @@ -1,29 +1,29 @@ - --------- Bio Garden - -data:extend({ - - { - type = "item", - name = "bi-Bio_Garden", - icon = "__Bio_Industries__/graphics/icons/bio_garden_icon.png", - flags = { "goes-to-quickbar" }, - 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 = "__Bio_Industries__/graphics/icons/Clean_Air2.png", - flags = {"goes-to-main-inventory", "hidden"}, - subgroup = "raw-material", - order = "bi-Purified_Air", - stack_size = 100 - }, - - - + +-------- Bio Garden + +data:extend({ + + { + type = "item", + name = "bi-Bio_Garden", + icon = "__Bio_Industries__/graphics/icons/bio_garden_icon.png", + flags = { "goes-to-quickbar" }, + 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 = "__Bio_Industries__/graphics/icons/Clean_Air2.png", + flags = {"goes-to-main-inventory", "hidden"}, + subgroup = "raw-material", + order = "bi-Purified_Air", + stack_size = 100 + }, + + + }) \ No newline at end of file diff --git a/Bio_Industries_1.4.0/prototypes/Bio_Garden/recipe-categories.lua b/Bio_Industries_1.4.2/prototypes/Bio_Garden/recipe-categories.lua similarity index 91% rename from Bio_Industries_1.4.0/prototypes/Bio_Garden/recipe-categories.lua rename to Bio_Industries_1.4.2/prototypes/Bio_Garden/recipe-categories.lua index 741ff81..21f1ba0 100644 --- a/Bio_Industries_1.4.0/prototypes/Bio_Garden/recipe-categories.lua +++ b/Bio_Industries_1.4.2/prototypes/Bio_Garden/recipe-categories.lua @@ -1,10 +1,10 @@ -data:extend( -{ - - -- Bio Garden - { - type = "recipe-category", - name = "clean-air" - } -} +data:extend( +{ + + -- Bio Garden + { + type = "recipe-category", + name = "clean-air" + } +} ) \ No newline at end of file diff --git a/Bio_Industries_1.4.0/prototypes/Bio_Garden/recipe.lua b/Bio_Industries_1.4.2/prototypes/Bio_Garden/recipe.lua similarity index 94% rename from Bio_Industries_1.4.0/prototypes/Bio_Garden/recipe.lua rename to Bio_Industries_1.4.2/prototypes/Bio_Garden/recipe.lua index ae05c79..9ab4dc3 100644 --- a/Bio_Industries_1.4.0/prototypes/Bio_Garden/recipe.lua +++ b/Bio_Industries_1.4.2/prototypes/Bio_Garden/recipe.lua @@ -1,65 +1,65 @@ - ---- Bio Gardens -data:extend({ - - - - { - type = "recipe", - name = "bi-Bio_Garden", - icon = "__Bio_Industries__/graphics/icons/bio_garden_icon.png", - enabled = false, - energy_required = 10, - ingredients = - { - {"stone-wall", 12}, - {"stone-crushed", 50}, - {"seedling", 50} - }, - result = "bi-Bio_Garden", - }, - - - - { - type = "recipe", - name = "bi-Clean_Air", - icon = "__Bio_Industries__/graphics/icons/clean-air_mk1.png", - order = "zzz-clean-air", - category = "clean-air", - enabled = false, - energy_required = 40, - ingredients = - { - {type="fluid", name="water", amount=50}, - {type="item", name="fertiliser", amount=1} - }, - results= - { - {type="item", name="bi-Purified_Air", amount=1, probability=0}, - }, - }, - - - { - type = "recipe", - name = "bi-Clean_Air2", - icon = "__Bio_Industries__/graphics/icons/clean-air_mk2.png", - order = "zzz-clean-air2", - category = "clean-air", - enabled = false, - energy_required = 100, - ingredients = - { - {type="fluid", name="water", amount=50}, - {type="item", name="bi-adv-fertiliser", amount=1}, - }, - results= - { - {type="item", name="bi-Purified_Air", amount=1, probability=0}, - }, - }, - - } -) - + +--- Bio Gardens +data:extend({ + + + + { + type = "recipe", + name = "bi-Bio_Garden", + icon = "__Bio_Industries__/graphics/icons/bio_garden_icon.png", + enabled = false, + energy_required = 10, + ingredients = + { + {"stone-wall", 12}, + {"stone-crushed", 50}, + {"seedling", 50} + }, + result = "bi-Bio_Garden", + }, + + + + { + type = "recipe", + name = "bi-Clean_Air", + icon = "__Bio_Industries__/graphics/icons/clean-air_mk1.png", + order = "zzz-clean-air", + category = "clean-air", + enabled = false, + energy_required = 40, + ingredients = + { + {type="fluid", name="water", amount=50}, + {type="item", name="fertiliser", amount=1} + }, + results= + { + {type="item", name="bi-Purified_Air", amount=1, probability=0}, + }, + }, + + + { + type = "recipe", + name = "bi-Clean_Air2", + icon = "__Bio_Industries__/graphics/icons/clean-air_mk2.png", + order = "zzz-clean-air2", + category = "clean-air", + enabled = false, + energy_required = 100, + ingredients = + { + {type="fluid", name="water", amount=50}, + {type="item", name="bi-adv-fertiliser", amount=1}, + }, + results= + { + {type="item", name="bi-Purified_Air", amount=1, probability=0}, + }, + }, + + } +) + diff --git a/Bio_Industries_1.4.0/prototypes/Bio_Solar_Farm/entities.lua b/Bio_Industries_1.4.2/prototypes/Bio_Solar_Farm/entities.lua similarity index 96% rename from Bio_Industries_1.4.0/prototypes/Bio_Solar_Farm/entities.lua rename to Bio_Industries_1.4.2/prototypes/Bio_Solar_Farm/entities.lua index d9134bf..1d46c95 100644 --- a/Bio_Industries_1.4.0/prototypes/Bio_Solar_Farm/entities.lua +++ b/Bio_Industries_1.4.2/prototypes/Bio_Solar_Farm/entities.lua @@ -1,84 +1,84 @@ - -require ("util") - - -data:extend({ -------- Bio Solar Farm - - -------- Bio Solar Farm Image - { - type = "lamp", - name = "bi_bio_Solar_Farm_Image", - icon = "__Bio_Industries__/graphics/icons/Bio_Solar_Farm_Icon.png", - flags = {"placeable-neutral", "player-creation", "placeable-off-grid", "not-repairable"}, - selectable_in_game = false, - max_health = 1, - collision_box = {{-0.2, -0.2}, {0.2, 0.2}}, - selection_box = {{-0.2, -0.2}, {0.2, 0.2}}, - energy_source = - { - type = "electric", - render_no_network_icon = false, - render_no_power_icon = false, - usage_priority = "secondary-input" - }, - energy_usage_per_tick = "1kW", - light = {intensity = 0.1, size = 1}, - picture_off = - { - filename = "__Bio_Industries__/graphics/entities/bio_solar_farm/Bio_Solar_Farm_On.png", - priority = "high", - width = 208, - height = 192, - frame_count = 1, - direction_count = 1, - scale = 3/2, - --shift = {0.75, 0}, - }, - picture_on = - { - filename = "__Bio_Industries__/graphics/entities/bio_solar_farm/Bio_Solar_Farm_Off.png", - priority = "high", - width = 208, - height = 192, - frame_count = 1, - direction_count = 1, - scale = 3/2, - --shift = {0.75, 0}, - }, - }, - ------- Bio Farm Solar Panel - { - type = "solar-panel", - name = "bi_bio_Solar_Farm", - icon = "__Bio_Industries__/graphics/icons/Bio_Solar_Farm_Icon.png", - flags = {"placeable-neutral", "player-creation", "not-repairable"}, - minable = {hardness = 0.2, mining_time = 0.5, result = "bi_bio_Solar_Farm"}, - max_health = 100, - 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 = "__Bio_Industries__/graphics/entities/bio_solar_farm/Bio_Solar_Farm_On.png", - priority = "low", - width = 208, - height = 192, - frame_count = 1, - direction_count = 1, - scale = 3/2, - --shift = {0.75, 0}, - }, - production = "2000kW" - }, - - }) + +require ("util") + + +data:extend({ +------- Bio Solar Farm + + +------- Bio Solar Farm Image + { + type = "lamp", + name = "bi_bio_Solar_Farm_Image", + icon = "__Bio_Industries__/graphics/icons/Bio_Solar_Farm_Icon.png", + flags = {"placeable-neutral", "player-creation", "placeable-off-grid", "not-repairable"}, + selectable_in_game = false, + max_health = 1, + collision_box = {{-0.2, -0.2}, {0.2, 0.2}}, + selection_box = {{-0.2, -0.2}, {0.2, 0.2}}, + energy_source = + { + type = "electric", + render_no_network_icon = false, + render_no_power_icon = false, + usage_priority = "secondary-input" + }, + energy_usage_per_tick = "1kW", + light = {intensity = 0.1, size = 1}, + picture_off = + { + filename = "__Bio_Industries__/graphics/entities/bio_solar_farm/Bio_Solar_Farm_On.png", + priority = "high", + width = 208, + height = 192, + frame_count = 1, + direction_count = 1, + scale = 3/2, + --shift = {0.75, 0}, + }, + picture_on = + { + filename = "__Bio_Industries__/graphics/entities/bio_solar_farm/Bio_Solar_Farm_Off.png", + priority = "high", + width = 208, + height = 192, + frame_count = 1, + direction_count = 1, + scale = 3/2, + --shift = {0.75, 0}, + }, + }, + ------- Bio Farm Solar Panel + { + type = "solar-panel", + name = "bi_bio_Solar_Farm", + icon = "__Bio_Industries__/graphics/icons/Bio_Solar_Farm_Icon.png", + flags = {"placeable-neutral", "player-creation", "not-repairable"}, + minable = {hardness = 0.2, mining_time = 0.5, result = "bi_bio_Solar_Farm"}, + max_health = 100, + 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 = "__Bio_Industries__/graphics/entities/bio_solar_farm/Bio_Solar_Farm_On.png", + priority = "low", + width = 208, + height = 192, + frame_count = 1, + direction_count = 1, + scale = 3/2, + --shift = {0.75, 0}, + }, + production = "2000kW" + }, + + }) \ No newline at end of file diff --git a/Bio_Industries_1.4.0/prototypes/Bio_Solar_Farm/item.lua b/Bio_Industries_1.4.2/prototypes/Bio_Solar_Farm/item.lua similarity index 95% rename from Bio_Industries_1.4.0/prototypes/Bio_Solar_Farm/item.lua rename to Bio_Industries_1.4.2/prototypes/Bio_Solar_Farm/item.lua index f4dfaf6..a42df23 100644 --- a/Bio_Industries_1.4.0/prototypes/Bio_Solar_Farm/item.lua +++ b/Bio_Industries_1.4.2/prototypes/Bio_Solar_Farm/item.lua @@ -1,30 +1,30 @@ -data:extend({ - - - - { - type = "item", - name = "bi_bio_Solar_Farm", - icon = "__Bio_Industries__/graphics/icons/Bio_Solar_Farm_Icon.png", - flags= { "goes-to-quickbar" }, - subgroup = "energy", - order = "d[solar-panel]-a[solar-panel]-a[bi_bio_Solar_Farm]", - place_result = "bi_bio_Solar_Farm", - stack_size = 10, - enable = false, - }, - - { - type= "item", - name= "bi_bio_Solar_Farm_Image", - icon = "__Bio_Industries__/graphics/icons/Bio_Solar_Farm_Icon.png", - flags = {"hidden"}, - subgroup = "energy", - order = "d[solar-panel]-a[solar-panel]-a[bi_bio_Solar_Farm]", - place_result = "bi_bio_Solar_Farm_Image", - stack_size= 10, - enable = false, - }, - - -}) +data:extend({ + + + + { + type = "item", + name = "bi_bio_Solar_Farm", + icon = "__Bio_Industries__/graphics/icons/Bio_Solar_Farm_Icon.png", + flags= { "goes-to-quickbar" }, + subgroup = "energy", + order = "d[solar-panel]-a[solar-panel]-a[bi_bio_Solar_Farm]", + place_result = "bi_bio_Solar_Farm", + stack_size = 10, + enable = false, + }, + + { + type= "item", + name= "bi_bio_Solar_Farm_Image", + icon = "__Bio_Industries__/graphics/icons/Bio_Solar_Farm_Icon.png", + flags = {"hidden"}, + subgroup = "energy", + order = "d[solar-panel]-a[solar-panel]-a[bi_bio_Solar_Farm]", + place_result = "bi_bio_Solar_Farm_Image", + stack_size= 10, + enable = false, + }, + + +}) diff --git a/Bio_Industries_1.4.0/prototypes/Bio_Solar_Farm/recipe.lua b/Bio_Industries_1.4.2/prototypes/Bio_Solar_Farm/recipe.lua similarity index 92% rename from Bio_Industries_1.4.0/prototypes/Bio_Solar_Farm/recipe.lua rename to Bio_Industries_1.4.2/prototypes/Bio_Solar_Farm/recipe.lua index 1e67b89..cedd09f 100644 --- a/Bio_Industries_1.4.0/prototypes/Bio_Solar_Farm/recipe.lua +++ b/Bio_Industries_1.4.2/prototypes/Bio_Solar_Farm/recipe.lua @@ -1,22 +1,22 @@ -data:extend({ - - --- Bio Solar Farm - { - type = "recipe", - name = "bi_bio_Solar_Farm", - enabled = false, - energy_required = 20, - ingredients = - { - {"solar-panel",20}, - {"medium-electric-pole",10}, - {"concrete",40}, - - }, - result = "bi_bio_Solar_Farm" - }, - - - - }) - +data:extend({ + + --- Bio Solar Farm + { + type = "recipe", + name = "bi_bio_Solar_Farm", + enabled = false, + energy_required = 20, + ingredients = + { + {"solar-panel",20}, + {"medium-electric-pole",10}, + {"concrete",40}, + + }, + result = "bi_bio_Solar_Farm" + }, + + + + }) + diff --git a/Bio_Industries_1.4.0/prototypes/Bio_Tweaks/recipe.lua b/Bio_Industries_1.4.2/prototypes/Bio_Tweaks/recipe.lua similarity index 95% rename from Bio_Industries_1.4.0/prototypes/Bio_Tweaks/recipe.lua rename to Bio_Industries_1.4.2/prototypes/Bio_Tweaks/recipe.lua index 5ac8cbe..0395096 100644 --- a/Bio_Industries_1.4.0/prototypes/Bio_Tweaks/recipe.lua +++ b/Bio_Industries_1.4.2/prototypes/Bio_Tweaks/recipe.lua @@ -1,49 +1,49 @@ - ---- Bio Tweaks -data:extend( -{ - - { - type = "recipe", - name = "bi-burner-mining-drill-disassemble", - icon = "__Bio_Industries__/graphics/icons/burner-mining-drill_disassemble.png", - subgroup = "extraction-machine", - category = "advanced-crafting", - order = "a[items]-a[burner-mining-drill]", - energy_required = 2, - ingredients = - { - -- {type="fluid", name="water", amount=50}, - {type="item", name="burner-mining-drill", amount=1}, - }, - results= - { - {"stone", 4}, - {"iron-plate", 6} - }, - }, - - { - type = "recipe", - name = "bi-steel-furnace-disassemble", - icon = "__Bio_Industries__/graphics/icons/steel-furnace_disassemble.png", - subgroup = "smelting-machine", - category = "advanced-crafting", - order = "b[steel-furnace]", - energy_required = 2, - ingredients = - { - -- {type="fluid", name="water", amount=50}, - {type="item", name="steel-furnace", amount=1}, - }, - results= - { - {"steel-plate", 6}, - {"stone-brick", 6} - }, - - enabled = false - }, - -}) - + +--- Bio Tweaks +data:extend( +{ + + { + type = "recipe", + name = "bi-burner-mining-drill-disassemble", + icon = "__Bio_Industries__/graphics/icons/burner-mining-drill_disassemble.png", + subgroup = "extraction-machine", + category = "advanced-crafting", + order = "a[items]-a[burner-mining-drill]", + energy_required = 2, + ingredients = + { + -- {type="fluid", name="water", amount=50}, + {type="item", name="burner-mining-drill", amount=1}, + }, + results= + { + {"stone", 4}, + {"iron-plate", 6} + }, + }, + + { + type = "recipe", + name = "bi-steel-furnace-disassemble", + icon = "__Bio_Industries__/graphics/icons/steel-furnace_disassemble.png", + subgroup = "smelting-machine", + category = "advanced-crafting", + order = "b[steel-furnace]", + energy_required = 2, + ingredients = + { + -- {type="fluid", name="water", amount=50}, + {type="item", name="steel-furnace", amount=1}, + }, + results= + { + {"steel-plate", 6}, + {"stone-brick", 6} + }, + + enabled = false + }, + +}) + diff --git a/Bio_Industries_1.4.0/prototypes/Wood_Products/demo-railpictures-concrete.lua b/Bio_Industries_1.4.2/prototypes/Wood_Products/demo-railpictures-concrete.lua similarity index 100% rename from Bio_Industries_1.4.0/prototypes/Wood_Products/demo-railpictures-concrete.lua rename to Bio_Industries_1.4.2/prototypes/Wood_Products/demo-railpictures-concrete.lua diff --git a/Bio_Industries_1.4.0/prototypes/Wood_Products/demo-railpictures-wood.lua b/Bio_Industries_1.4.2/prototypes/Wood_Products/demo-railpictures-wood.lua similarity index 100% rename from Bio_Industries_1.4.0/prototypes/Wood_Products/demo-railpictures-wood.lua rename to Bio_Industries_1.4.2/prototypes/Wood_Products/demo-railpictures-wood.lua diff --git a/Bio_Industries_1.4.0/prototypes/Wood_Products/demo-railpictures.lua b/Bio_Industries_1.4.2/prototypes/Wood_Products/demo-railpictures.lua similarity index 100% rename from Bio_Industries_1.4.0/prototypes/Wood_Products/demo-railpictures.lua rename to Bio_Industries_1.4.2/prototypes/Wood_Products/demo-railpictures.lua diff --git a/Bio_Industries_1.4.0/prototypes/Wood_Products/entities.lua b/Bio_Industries_1.4.2/prototypes/Wood_Products/entities.lua similarity index 96% rename from Bio_Industries_1.4.0/prototypes/Wood_Products/entities.lua rename to Bio_Industries_1.4.2/prototypes/Wood_Products/entities.lua index 0efbf8d..6feaa14 100644 --- a/Bio_Industries_1.4.0/prototypes/Wood_Products/entities.lua +++ b/Bio_Industries_1.4.2/prototypes/Wood_Products/entities.lua @@ -1,496 +1,496 @@ - -require("prototypes.Wood_Products.demo-railpictures-wood") - - -railpictures = function() - return railpicturesinternal({{"metals", "metals"}, {"backplates", "backplates"}, {"ties", "ties"}, {"stone_path", "stone-path"}}) -end - - -data:extend({ - ----- Wood Floor - { - type = "tile", - name = "bi-wood-floor", - needs_correction = false, - minable = {hardness = 0.2, mining_time = 0.5, 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 = "__Bio_Industries__/graphics/entities/wood_products/wood1.png", - count = 4, - size = 1 - }, - { - picture = "__Bio_Industries__/graphics/entities/wood_products/wood2.png", - count = 1, - size = 2, - probability = 1, - }, - }, - inner_corner = - { - picture = "__Bio_Industries__/graphics/entities/wood_products/wood-inner-corner.png", - count = 8 - }, - outer_corner = - { - picture = "__Bio_Industries__/graphics/entities/wood_products/wood-outer-corner.png", - count = 8 - }, - side = - { - picture = "__Bio_Industries__/graphics/entities/wood_products/wood-side.png", - count = 8 - }, - u_transition = - { - picture = "__Bio_Industries__/graphics/entities/wood_products/wood-u.png", - count = 8 - }, - o_transition = - { - picture = "__Bio_Industries__/graphics/entities/wood_products/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 - } - }, - map_color={r=139, g=115, b=85}, - ageing=0, - vehicle_friction_modifier = dirt_vehicle_speed_modifer - }, - - ---- Big Wooden Pole - - { - type = "electric-pole", - name = "bi-big-wooden-pole", - icon = "__Bio_Industries__/graphics/icons/big-wooden-pole.png", - flags = {"placeable-neutral", "player-creation"}, - minable = {hardness = 0.2, mining_time = 0.5, result = "bi-big-wooden-pole"}, - max_health = 150, - corpse = "medium-remnants", - resistances = - { - { - 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 = {{0,0}, {0,0}}, - maximum_wire_distance = 24, - supply_area_distance = 0, - pictures = - - { - filename = "__Bio_Industries__/graphics/entities/wood_products/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 = "__base__/graphics/entity/small-electric-pole/copper-wire.png", - priority = "extra-high-no-scale", - width = 224, - height = 46 - }, - green_wire_picture = - { - filename = "__base__/graphics/entity/small-electric-pole/green-wire.png", - priority = "extra-high-no-scale", - width = 224, - height = 46 - }, - radius_visualisation_picture = - { - filename = "__base__/graphics/entity/small-electric-pole/electric-pole-radius-visualization.png", - width = 12, - height = 12 - }, - red_wire_picture = - { - filename = "__base__/graphics/entity/small-electric-pole/red-wire.png", - priority = "extra-high-no-scale", - width = 224, - height = 46 - }, - wire_shadow_picture = - { - filename = "__base__/graphics/entity/small-electric-pole/wire-shadow.png", - priority = "extra-high-no-scale", - width = 224, - height = 46 - } - }, - - ---- Wood Fence - - { - type = "wall", - name = "bi-wooden-fence", - icon = "__Bio_Industries__/graphics/icons/wooden-fence.png", - 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 }, - - resistances = - { - { - type = "physical", - decrease = 2, - percent = 15 - }, - { - type = "impact", - decrease = 15, - percent = 20 - } - - }, - pictures = - { - single = - { - layers = - { - { - filename = "__Bio_Industries__/graphics/entities/wood_products/fence-single-1.png", - priority = "extra-high", - width = 7, - height = 46, - shift = {0, -0.15625} - }, - { - filename = "__Bio_Industries__/graphics/entities/wood_products/fence-single-shadow.png", - priority = "extra-high", - width = 38, - height = 25, - shift = {0.459375, 0.75}, - draw_as_shadow = true - } - } - }, - straight_vertical = - { - { - layers = - { - { - filename = "__Bio_Industries__/graphics/entities/wood_products/fence-straight-vertical-1.png", - priority = "extra-high", - width = 7, - height = 53, - shift = {0, -0.15625} - }, - { - filename = "__Bio_Industries__/graphics/entities/wood_products/fence-straight-vertical-shadow.png", - priority = "extra-high", - width = 39, - height = 66, - shift = {0.490625, 1.425}, - draw_as_shadow = true - } - } - }, - { - layers = - { - { - filename = "__Bio_Industries__/graphics/entities/wood_products/fence-straight-vertical-1.png", - priority = "extra-high", - width = 7, - height = 53, - shift = {0, -0.15625} - }, - { - filename = "__Bio_Industries__/graphics/entities/wood_products/fence-straight-vertical-shadow.png", - priority = "extra-high", - width = 39, - height = 66, - shift = {0.490625, 1.425}, - draw_as_shadow = true - } - } - }, - { - layers = - { - { - filename = "__Bio_Industries__/graphics/entities/wood_products/fence-straight-vertical-1.png", - priority = "extra-high", - width = 7, - height = 53, - shift = {0, -0.15625} - }, - { - filename = "__Bio_Industries__/graphics/entities/wood_products/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 = "__Bio_Industries__/graphics/entities/wood_products/fence-straight-horizontal-1.png", - priority = "extra-high", - width = 34, - height = 47, - shift = {0, -0.15625} - }, - { - filename = "__Bio_Industries__/graphics/entities/wood_products/fence-straight-horizontal-shadow.png", - priority = "extra-high", - width = 84, - height = 28, - shift = {0.421875, 0.85}, - draw_as_shadow = true - } - } - }, - { - layers = - { - { - filename = "__Bio_Industries__/graphics/entities/wood_products/fence-straight-horizontal-2.png", - priority = "extra-high", - width = 34, - height = 47, - shift = {0, -0.15625} - }, - { - filename = "__Bio_Industries__/graphics/entities/wood_products/fence-straight-horizontal-shadow.png", - priority = "extra-high", - width = 84, - height = 28, - shift = {0.421875, 0.85}, - draw_as_shadow = true - } - } - }, - { - layers = - { - { - filename = "__Bio_Industries__/graphics/entities/wood_products/fence-straight-horizontal-3.png", - priority = "extra-high", - width = 34, - height = 47, - shift = {0, -0.15625} - }, - { - filename = "__Bio_Industries__/graphics/entities/wood_products/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 = "__Bio_Industries__/graphics/entities/wood_products/fence-corner-right-down.png", - priority = "extra-high", - width = 23, - height = 53, - shift = {0.248125, -0.07625} - }, - { - filename = "__Bio_Industries__/graphics/entities/wood_products/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 = "__Bio_Industries__/graphics/entities/wood_products/fence-corner-left-down.png", - priority = "extra-high", - width = 21, - height = 53, - shift = {-0.248125, -0.07625} - }, - { - filename = "__Bio_Industries__/graphics/entities/wood_products/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 = "__Bio_Industries__/graphics/entities/wood_products/fence-t-down.png", - priority = "extra-high", - width = 34, - height = 53, - shift = {0, -0.07625} - }, - { - filename = "__Bio_Industries__/graphics/entities/wood_products/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 = "__Bio_Industries__/graphics/entities/wood_products/fence-ending-right.png", - priority = "extra-high", - width = 23, - height = 47, - shift = {0.248125, -0.15625} - }, - { - filename = "__Bio_Industries__/graphics/entities/wood_products/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 = "__Bio_Industries__/graphics/entities/wood_products/fence-ending-left.png", - priority = "extra-high", - width = 21, - height = 47, - shift = {-0.248125, -0.15625} - }, - { - filename = "__Bio_Industries__/graphics/entities/wood_products/fence-ending-left-shadow.png", - priority = "extra-high", - width = 63, - height = 27, - shift = {0.128125, 0.85}, - draw_as_shadow = true - } - } - } - } - }, - - - --------------- Rail - - { - type = "straight-rail", - name = "bi-straight-rail-wood", - icon = "__Bio_Industries__/graphics/icons/straight-rail-wood.png", - flags = {"placeable-neutral", "player-creation", "building-direction-8-way"}, - minable = {mining_time = 0.5, result = "bi-rail-wood"}, - 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 = railpictures(), - }, - { - type = "curved-rail", - name = "bi-curved-rail-wood", - icon = "__Bio_Industries__/graphics/icons/curved-rail-wood.png", - flags = {"placeable-neutral", "player-creation", "building-direction-8-way"}, - minable = {mining_time = 0.5, result = "bi-rail-wood", 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 = railpictures(), - placeable_by = { item="bi-rail-wood", count = 4} - }, - - -}) + +require("prototypes.Wood_Products.demo-railpictures-wood") + + +railpictures = function() + return railpicturesinternal({{"metals", "metals"}, {"backplates", "backplates"}, {"ties", "ties"}, {"stone_path", "stone-path"}}) +end + + +data:extend({ + +---- Wood Floor + { + type = "tile", + name = "bi-wood-floor", + needs_correction = false, + minable = {hardness = 0.2, mining_time = 0.5, 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 = "__Bio_Industries__/graphics/entities/wood_products/wood1.png", + count = 4, + size = 1 + }, + { + picture = "__Bio_Industries__/graphics/entities/wood_products/wood2.png", + count = 1, + size = 2, + probability = 1, + }, + }, + inner_corner = + { + picture = "__Bio_Industries__/graphics/entities/wood_products/wood-inner-corner.png", + count = 8 + }, + outer_corner = + { + picture = "__Bio_Industries__/graphics/entities/wood_products/wood-outer-corner.png", + count = 8 + }, + side = + { + picture = "__Bio_Industries__/graphics/entities/wood_products/wood-side.png", + count = 8 + }, + u_transition = + { + picture = "__Bio_Industries__/graphics/entities/wood_products/wood-u.png", + count = 8 + }, + o_transition = + { + picture = "__Bio_Industries__/graphics/entities/wood_products/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 + } + }, + map_color={r=139, g=115, b=85}, + ageing=0, + vehicle_friction_modifier = dirt_vehicle_speed_modifer + }, + + ---- Big Wooden Pole + + { + type = "electric-pole", + name = "bi-big-wooden-pole", + icon = "__Bio_Industries__/graphics/icons/big-wooden-pole.png", + flags = {"placeable-neutral", "player-creation"}, + minable = {hardness = 0.2, mining_time = 0.5, result = "bi-big-wooden-pole"}, + max_health = 150, + corpse = "medium-remnants", + resistances = + { + { + 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 = {{0,0}, {0,0}}, + maximum_wire_distance = 24, + supply_area_distance = 0, + pictures = + + { + filename = "__Bio_Industries__/graphics/entities/wood_products/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 = "__base__/graphics/entity/small-electric-pole/copper-wire.png", + priority = "extra-high-no-scale", + width = 224, + height = 46 + }, + green_wire_picture = + { + filename = "__base__/graphics/entity/small-electric-pole/green-wire.png", + priority = "extra-high-no-scale", + width = 224, + height = 46 + }, + radius_visualisation_picture = + { + filename = "__base__/graphics/entity/small-electric-pole/electric-pole-radius-visualization.png", + width = 12, + height = 12 + }, + red_wire_picture = + { + filename = "__base__/graphics/entity/small-electric-pole/red-wire.png", + priority = "extra-high-no-scale", + width = 224, + height = 46 + }, + wire_shadow_picture = + { + filename = "__base__/graphics/entity/small-electric-pole/wire-shadow.png", + priority = "extra-high-no-scale", + width = 224, + height = 46 + } + }, + + ---- Wood Fence + + { + type = "wall", + name = "bi-wooden-fence", + icon = "__Bio_Industries__/graphics/icons/wooden-fence.png", + 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 }, + + resistances = + { + { + type = "physical", + decrease = 2, + percent = 15 + }, + { + type = "impact", + decrease = 15, + percent = 20 + } + + }, + pictures = + { + single = + { + layers = + { + { + filename = "__Bio_Industries__/graphics/entities/wood_products/fence-single-1.png", + priority = "extra-high", + width = 7, + height = 46, + shift = {0, -0.15625} + }, + { + filename = "__Bio_Industries__/graphics/entities/wood_products/fence-single-shadow.png", + priority = "extra-high", + width = 38, + height = 25, + shift = {0.459375, 0.75}, + draw_as_shadow = true + } + } + }, + straight_vertical = + { + { + layers = + { + { + filename = "__Bio_Industries__/graphics/entities/wood_products/fence-straight-vertical-1.png", + priority = "extra-high", + width = 7, + height = 53, + shift = {0, -0.15625} + }, + { + filename = "__Bio_Industries__/graphics/entities/wood_products/fence-straight-vertical-shadow.png", + priority = "extra-high", + width = 39, + height = 66, + shift = {0.490625, 1.425}, + draw_as_shadow = true + } + } + }, + { + layers = + { + { + filename = "__Bio_Industries__/graphics/entities/wood_products/fence-straight-vertical-1.png", + priority = "extra-high", + width = 7, + height = 53, + shift = {0, -0.15625} + }, + { + filename = "__Bio_Industries__/graphics/entities/wood_products/fence-straight-vertical-shadow.png", + priority = "extra-high", + width = 39, + height = 66, + shift = {0.490625, 1.425}, + draw_as_shadow = true + } + } + }, + { + layers = + { + { + filename = "__Bio_Industries__/graphics/entities/wood_products/fence-straight-vertical-1.png", + priority = "extra-high", + width = 7, + height = 53, + shift = {0, -0.15625} + }, + { + filename = "__Bio_Industries__/graphics/entities/wood_products/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 = "__Bio_Industries__/graphics/entities/wood_products/fence-straight-horizontal-1.png", + priority = "extra-high", + width = 34, + height = 47, + shift = {0, -0.15625} + }, + { + filename = "__Bio_Industries__/graphics/entities/wood_products/fence-straight-horizontal-shadow.png", + priority = "extra-high", + width = 84, + height = 28, + shift = {0.421875, 0.85}, + draw_as_shadow = true + } + } + }, + { + layers = + { + { + filename = "__Bio_Industries__/graphics/entities/wood_products/fence-straight-horizontal-2.png", + priority = "extra-high", + width = 34, + height = 47, + shift = {0, -0.15625} + }, + { + filename = "__Bio_Industries__/graphics/entities/wood_products/fence-straight-horizontal-shadow.png", + priority = "extra-high", + width = 84, + height = 28, + shift = {0.421875, 0.85}, + draw_as_shadow = true + } + } + }, + { + layers = + { + { + filename = "__Bio_Industries__/graphics/entities/wood_products/fence-straight-horizontal-3.png", + priority = "extra-high", + width = 34, + height = 47, + shift = {0, -0.15625} + }, + { + filename = "__Bio_Industries__/graphics/entities/wood_products/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 = "__Bio_Industries__/graphics/entities/wood_products/fence-corner-right-down.png", + priority = "extra-high", + width = 23, + height = 53, + shift = {0.248125, -0.07625} + }, + { + filename = "__Bio_Industries__/graphics/entities/wood_products/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 = "__Bio_Industries__/graphics/entities/wood_products/fence-corner-left-down.png", + priority = "extra-high", + width = 21, + height = 53, + shift = {-0.248125, -0.07625} + }, + { + filename = "__Bio_Industries__/graphics/entities/wood_products/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 = "__Bio_Industries__/graphics/entities/wood_products/fence-t-down.png", + priority = "extra-high", + width = 34, + height = 53, + shift = {0, -0.07625} + }, + { + filename = "__Bio_Industries__/graphics/entities/wood_products/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 = "__Bio_Industries__/graphics/entities/wood_products/fence-ending-right.png", + priority = "extra-high", + width = 23, + height = 47, + shift = {0.248125, -0.15625} + }, + { + filename = "__Bio_Industries__/graphics/entities/wood_products/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 = "__Bio_Industries__/graphics/entities/wood_products/fence-ending-left.png", + priority = "extra-high", + width = 21, + height = 47, + shift = {-0.248125, -0.15625} + }, + { + filename = "__Bio_Industries__/graphics/entities/wood_products/fence-ending-left-shadow.png", + priority = "extra-high", + width = 63, + height = 27, + shift = {0.128125, 0.85}, + draw_as_shadow = true + } + } + } + } + }, + + + --------------- Rail + + { + type = "straight-rail", + name = "bi-straight-rail-wood", + icon = "__Bio_Industries__/graphics/icons/straight-rail-wood.png", + flags = {"placeable-neutral", "player-creation", "building-direction-8-way"}, + minable = {mining_time = 0.5, result = "bi-rail-wood"}, + 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 = railpictures(), + }, + { + type = "curved-rail", + name = "bi-curved-rail-wood", + icon = "__Bio_Industries__/graphics/icons/curved-rail-wood.png", + flags = {"placeable-neutral", "player-creation", "building-direction-8-way"}, + minable = {mining_time = 0.5, result = "bi-rail-wood", 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 = railpictures(), + placeable_by = { item="bi-rail-wood", count = 4} + }, + + +}) diff --git a/Bio_Industries_1.4.0/prototypes/Wood_Products/item.lua b/Bio_Industries_1.4.2/prototypes/Wood_Products/item.lua similarity index 96% rename from Bio_Industries_1.4.0/prototypes/Wood_Products/item.lua rename to Bio_Industries_1.4.2/prototypes/Wood_Products/item.lua index 47cb427..59863f3 100644 --- a/Bio_Industries_1.4.0/prototypes/Wood_Products/item.lua +++ b/Bio_Industries_1.4.2/prototypes/Wood_Products/item.lua @@ -1,44 +1,44 @@ -data:extend({ - - { - type = "item", - name = "bi-big-wooden-pole", - icon = "__Bio_Industries__/graphics/icons/big-wooden-pole.png", - flags = {"goes-to-quickbar"}, - subgroup = "energy-pipe-distribution", - order = "a[energy]-b[small-electric-pole]", - place_result = "bi-big-wooden-pole", - stack_size = 50, - fuel_value = "20MJ" - - }, - - { - type = "item", - name = "bi-wooden-fence", - icon = "__Bio_Industries__/graphics/icons/wooden-fence.png", - flags = {"goes-to-quickbar"}, - subgroup = "defensive-structure", - order = "a-a[stone-wall]-a[wooden-fence]", - place_result = "bi-wooden-fence", - fuel_value = "24MJ", - stack_size = 50 - }, - - { - type = "rail-planner", - name = "bi-rail-wood", - icon = "__Bio_Industries__/graphics/icons/rail-wood.png", - icon = "__Bio_Industries__/graphics/icons/rail-wood.png", - flags = {"goes-to-quickbar"}, - 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" - }, - - -}) - +data:extend({ + + { + type = "item", + name = "bi-big-wooden-pole", + icon = "__Bio_Industries__/graphics/icons/big-wooden-pole.png", + flags = {"goes-to-quickbar"}, + subgroup = "energy-pipe-distribution", + order = "a[energy]-b[small-electric-pole]", + place_result = "bi-big-wooden-pole", + stack_size = 50, + fuel_value = "20MJ" + + }, + + { + type = "item", + name = "bi-wooden-fence", + icon = "__Bio_Industries__/graphics/icons/wooden-fence.png", + flags = {"goes-to-quickbar"}, + subgroup = "defensive-structure", + order = "a-a[stone-wall]-a[wooden-fence]", + place_result = "bi-wooden-fence", + fuel_value = "24MJ", + stack_size = 50 + }, + + { + type = "rail-planner", + name = "bi-rail-wood", + icon = "__Bio_Industries__/graphics/icons/rail-wood.png", + icon = "__Bio_Industries__/graphics/icons/rail-wood.png", + flags = {"goes-to-quickbar"}, + 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" + }, + + +}) + diff --git a/Bio_Industries_1.4.0/prototypes/Wood_Products/recipe.lua b/Bio_Industries_1.4.2/prototypes/Wood_Products/recipe.lua similarity index 92% rename from Bio_Industries_1.4.0/prototypes/Wood_Products/recipe.lua rename to Bio_Industries_1.4.2/prototypes/Wood_Products/recipe.lua index 11782e0..834fc57 100644 --- a/Bio_Industries_1.4.0/prototypes/Wood_Products/recipe.lua +++ b/Bio_Industries_1.4.2/prototypes/Wood_Products/recipe.lua @@ -1,50 +1,50 @@ -data:extend({ - - - { - type = "recipe", - name = "bi-big-wooden-pole", - ingredients = - { - {"wood", 10}, - {"small-electric-pole", 2}, - }, - result = "bi-big-wooden-pole", - enabled = false, - }, - - - { - type = "recipe", - name = "bi-wooden-fence", - - ingredients = - { - {"wood", 2}, - {"raw-wood", 2}, - }, - result = "bi-wooden-fence", - enabled = "true", - }, - - - { - type = "recipe", - name = "bi-rail-wood", - enabled = false, - ingredients = - { - {"stone", 1}, - {"iron-stick", 1}, - {"steel-plate", 1}, - {"raw-wood", 4} - }, - result = "bi-rail-wood", - result_count = 2, - requester_paste_multiplier = 4 - }, - - - - }) - +data:extend({ + + + { + type = "recipe", + name = "bi-big-wooden-pole", + ingredients = + { + {"wood", 10}, + {"small-electric-pole", 2}, + }, + result = "bi-big-wooden-pole", + enabled = false, + }, + + + { + type = "recipe", + name = "bi-wooden-fence", + + ingredients = + { + {"wood", 2}, + {"raw-wood", 2}, + }, + result = "bi-wooden-fence", + enabled = "true", + }, + + + { + type = "recipe", + name = "bi-rail-wood", + enabled = false, + ingredients = + { + {"stone", 1}, + {"iron-stick", 1}, + {"steel-plate", 1}, + {"raw-wood", 4} + }, + result = "bi-rail-wood", + result_count = 2, + requester_paste_multiplier = 4 + }, + + + + }) + diff --git a/Bio_Industries_1.4.0/sound/rainforest_ambience.ogg b/Bio_Industries_1.4.2/sound/rainforest_ambience.ogg similarity index 100% rename from Bio_Industries_1.4.0/sound/rainforest_ambience.ogg rename to Bio_Industries_1.4.2/sound/rainforest_ambience.ogg diff --git a/CMHMod_0.2.3/control.lua b/CMHMod_0.14.0/control.lua similarity index 100% rename from CMHMod_0.2.3/control.lua rename to CMHMod_0.14.0/control.lua diff --git a/CMHMod_0.2.3/data-updates.lua b/CMHMod_0.14.0/data-updates.lua similarity index 98% rename from CMHMod_0.2.3/data-updates.lua rename to CMHMod_0.14.0/data-updates.lua index 8023775..23b131f 100644 --- a/CMHMod_0.2.3/data-updates.lua +++ b/CMHMod_0.14.0/data-updates.lua @@ -1,116 +1,116 @@ -data.raw.recipe["steel-plate"].ingredients = {{"iron-plate", 5}} - -if data.raw.item["raw-speed-module-1"] then -data.raw["module"]["raw-speed-module-1"].effect = { speed = {bonus = .75 * bobmods.modules.SpeedPerLevel + bobmods.modules.SpeedBonus}} -data.raw["module"]["raw-speed-module-2"].effect = { speed = {bonus = 1.5 * bobmods.modules.SpeedPerLevel + bobmods.modules.SpeedBonus}} -data.raw["module"]["raw-speed-module-3"].effect = { speed = {bonus = 2.25 * bobmods.modules.SpeedPerLevel + bobmods.modules.SpeedBonus}} -data.raw["module"]["raw-speed-module-4"].effect = { speed = {bonus = 3 * bobmods.modules.SpeedPerLevel + bobmods.modules.SpeedBonus}} -data.raw["module"]["raw-speed-module-5"].effect = { speed = {bonus = 3.75 * bobmods.modules.SpeedPerLevel + bobmods.modules.SpeedBonus}} -data.raw["module"]["raw-speed-module-6"].effect = { speed = {bonus = 4.5 * bobmods.modules.SpeedPerLevel + bobmods.modules.SpeedBonus}} -data.raw["module"]["raw-speed-module-7"].effect = { speed = {bonus = 5.25 * bobmods.modules.SpeedPerLevel + bobmods.modules.SpeedBonus}} -data.raw["module"]["raw-speed-module-8"].effect = { speed = {bonus = 6 * bobmods.modules.SpeedPerLevel + bobmods.modules.SpeedBonus}} -end - -if data.raw.item["god-module-1"] then -data.raw["module"]["god-module-1"].effect = - { - productivity = {bonus = 1 * bobmods.modules.ProductivityPerLevel + bobmods.modules.ProductivityBonus}, - pollution = {bonus = -1 * bobmods.modules.PollutionPerLevel - bobmods.modules.PollutionBonus}, - consumption = {bonus = 1 * bobmods.modules.ConsumptionPerLevel - bobmods.modules.ConsumptionBonus}, - speed = {bonus = 1 * bobmods.modules.SpeedPerLevel + bobmods.modules.SpeedBonus} - } -data.raw["module"]["god-module-2"].effect = - { - productivity = {bonus = 2 * bobmods.modules.ProductivityPerLevel + bobmods.modules.ProductivityBonus}, - pollution = {bonus = -2 * bobmods.modules.PollutionPerLevel - bobmods.modules.PollutionBonus}, - consumption = {bonus = 2 * bobmods.modules.ConsumptionPerLevel - bobmods.modules.ConsumptionBonus}, - speed = {bonus = 2 * bobmods.modules.SpeedPerLevel + bobmods.modules.SpeedBonus} - } -data.raw["module"]["god-module-3"].effect = - { - productivity = {bonus = 3 * bobmods.modules.ProductivityPerLevel + bobmods.modules.ProductivityBonus}, - pollution = {bonus = -3 * bobmods.modules.PollutionPerLevel - bobmods.modules.PollutionBonus}, - consumption = {bonus = 3 * bobmods.modules.ConsumptionPerLevel - bobmods.modules.ConsumptionBonus}, - speed = {bonus = 3 * bobmods.modules.SpeedPerLevel + bobmods.modules.SpeedBonus} - } -data.raw["module"]["god-module-4"].effect = - { - productivity = {bonus = 4 * bobmods.modules.ProductivityPerLevel + bobmods.modules.ProductivityBonus}, - pollution = {bonus = -4 * bobmods.modules.PollutionPerLevel - bobmods.modules.PollutionBonus}, - consumption = {bonus = 4 * bobmods.modules.ConsumptionPerLevel - bobmods.modules.ConsumptionBonus}, - speed = {bonus = 4 * bobmods.modules.SpeedPerLevel + bobmods.modules.SpeedBonus} - } -data.raw["module"]["god-module-5"].effect = - { - productivity = {bonus = 5 * bobmods.modules.ProductivityPerLevel + bobmods.modules.ProductivityBonus}, - pollution = {bonus = -5 * bobmods.modules.PollutionPerLevel - bobmods.modules.PollutionBonus}, - consumption = {bonus = 5 * bobmods.modules.ConsumptionPerLevel - bobmods.modules.ConsumptionBonus}, - speed = {bonus = 5 * bobmods.modules.SpeedPerLevel + bobmods.modules.SpeedBonus} - } -end - - -if data.raw.item["raw-productivity-module-1"] then -data.raw["module"]["raw-productivity-module-1"].effect = { productivity = {bonus = .75 * bobmods.modules.ProductivityPerLevel + bobmods.modules.ProductivityBonus}} -data.raw["module"]["raw-productivity-module-2"].effect = { productivity = {bonus = 1.5 * bobmods.modules.ProductivityPerLevel + bobmods.modules.ProductivityBonus}} -data.raw["module"]["raw-productivity-module-3"].effect = { productivity = {bonus = 2.25 * bobmods.modules.ProductivityPerLevel + bobmods.modules.ProductivityBonus}} -data.raw["module"]["raw-productivity-module-4"].effect = { productivity = {bonus = 3 * bobmods.modules.ProductivityPerLevel + bobmods.modules.ProductivityBonus}} -data.raw["module"]["raw-productivity-module-5"].effect = { productivity = {bonus = 3.75 * bobmods.modules.ProductivityPerLevel + bobmods.modules.ProductivityBonus}} -data.raw["module"]["raw-productivity-module-6"].effect = { productivity = {bonus = 4.5 * bobmods.modules.ProductivityPerLevel + bobmods.modules.ProductivityBonus}} -data.raw["module"]["raw-productivity-module-7"].effect = { productivity = {bonus = 5.25 * bobmods.modules.ProductivityPerLevel + bobmods.modules.ProductivityBonus}} -data.raw["module"]["raw-productivity-module-8"].effect = { productivity = {bonus = 6 * bobmods.modules.ProductivityPerLevel + bobmods.modules.ProductivityBonus}} -end - - -if data.raw.item["green-module-1"] then -data.raw["module"]["green-module-1"].effect = - { - pollution = {bonus = -0.75 * bobmods.modules.PollutionPerLevel - bobmods.modules.PollutionBonus}, - consumption = {bonus = -0.75 * bobmods.modules.ConsumptionPerLevel - bobmods.modules.ConsumptionBonus} - } -data.raw["module"]["green-module-2"].effect = - { - pollution = {bonus = -1.5 * bobmods.modules.PollutionPerLevel - bobmods.modules.PollutionBonus}, - consumption = {bonus = -1.5 * bobmods.modules.ConsumptionPerLevel - bobmods.modules.ConsumptionBonus} - } -data.raw["module"]["green-module-3"].effect = - { - pollution = {bonus = -2.25 * bobmods.modules.PollutionPerLevel - bobmods.modules.PollutionBonus}, - consumption = {bonus = -2.25 * bobmods.modules.ConsumptionPerLevel - bobmods.modules.ConsumptionBonus} - } -data.raw["module"]["green-module-4"].effect = - { - pollution = {bonus = -3 * bobmods.modules.PollutionPerLevel - bobmods.modules.PollutionBonus}, - consumption = {bonus = -3 * bobmods.modules.ConsumptionPerLevel - bobmods.modules.ConsumptionBonus} - } -data.raw["module"]["green-module-5"].effect = - { - pollution = {bonus = -3.75 * bobmods.modules.PollutionPerLevel - bobmods.modules.PollutionBonus}, - consumption = {bonus = -3.75 * bobmods.modules.ConsumptionPerLevel - bobmods.modules.ConsumptionBonus} - } -data.raw["module"]["green-module-6"].effect = - { - pollution = {bonus = -4.5 * bobmods.modules.PollutionPerLevel - bobmods.modules.PollutionBonus}, - consumption = {bonus = -4.5 * bobmods.modules.ConsumptionPerLevel - bobmods.modules.ConsumptionBonus} - } -data.raw["module"]["green-module-7"].effect = - { - pollution = {bonus = -5.25 * bobmods.modules.PollutionPerLevel - bobmods.modules.PollutionBonus}, - consumption = {bonus = -5.25 * bobmods.modules.ConsumptionPerLevel - bobmods.modules.ConsumptionBonus} - } -data.raw["module"]["green-module-8"].effect = - { - pollution = {bonus = -6 * bobmods.modules.PollutionPerLevel - bobmods.modules.PollutionBonus}, - consumption = {bonus = -6 * bobmods.modules.ConsumptionPerLevel - bobmods.modules.ConsumptionBonus} - } -end - -data.raw["recipe"]["lithium-ion-battery"].energy_required = 5 -data.raw["recipe"]["silver-zinc-battery"].energy_required = 5 -data.raw["recipe"]["silver-from-lead"].ingredients = - { - {type = "item", name = "lead-oxide", amount = 7}, - {type = "item", name = "carbon", amount = 3}, - {type = "item", name = "nickel-plate", amount = 2}, - } +data.raw.recipe["steel-plate"].ingredients = {{"iron-plate", 5}} + +if data.raw.item["raw-speed-module-1"] then +data.raw["module"]["raw-speed-module-1"].effect = { speed = {bonus = .75 * bobmods.modules.SpeedPerLevel + bobmods.modules.SpeedBonus}} +data.raw["module"]["raw-speed-module-2"].effect = { speed = {bonus = 1.5 * bobmods.modules.SpeedPerLevel + bobmods.modules.SpeedBonus}} +data.raw["module"]["raw-speed-module-3"].effect = { speed = {bonus = 2.25 * bobmods.modules.SpeedPerLevel + bobmods.modules.SpeedBonus}} +data.raw["module"]["raw-speed-module-4"].effect = { speed = {bonus = 3 * bobmods.modules.SpeedPerLevel + bobmods.modules.SpeedBonus}} +data.raw["module"]["raw-speed-module-5"].effect = { speed = {bonus = 3.75 * bobmods.modules.SpeedPerLevel + bobmods.modules.SpeedBonus}} +data.raw["module"]["raw-speed-module-6"].effect = { speed = {bonus = 4.5 * bobmods.modules.SpeedPerLevel + bobmods.modules.SpeedBonus}} +data.raw["module"]["raw-speed-module-7"].effect = { speed = {bonus = 5.25 * bobmods.modules.SpeedPerLevel + bobmods.modules.SpeedBonus}} +data.raw["module"]["raw-speed-module-8"].effect = { speed = {bonus = 6 * bobmods.modules.SpeedPerLevel + bobmods.modules.SpeedBonus}} +end + +if data.raw.item["god-module-1"] then +data.raw["module"]["god-module-1"].effect = + { + productivity = {bonus = 1 * bobmods.modules.ProductivityPerLevel + bobmods.modules.ProductivityBonus}, + pollution = {bonus = -1 * bobmods.modules.PollutionPerLevel - bobmods.modules.PollutionBonus}, + consumption = {bonus = 1 * bobmods.modules.ConsumptionPerLevel - bobmods.modules.ConsumptionBonus}, + speed = {bonus = 1 * bobmods.modules.SpeedPerLevel + bobmods.modules.SpeedBonus} + } +data.raw["module"]["god-module-2"].effect = + { + productivity = {bonus = 2 * bobmods.modules.ProductivityPerLevel + bobmods.modules.ProductivityBonus}, + pollution = {bonus = -2 * bobmods.modules.PollutionPerLevel - bobmods.modules.PollutionBonus}, + consumption = {bonus = 2 * bobmods.modules.ConsumptionPerLevel - bobmods.modules.ConsumptionBonus}, + speed = {bonus = 2 * bobmods.modules.SpeedPerLevel + bobmods.modules.SpeedBonus} + } +data.raw["module"]["god-module-3"].effect = + { + productivity = {bonus = 3 * bobmods.modules.ProductivityPerLevel + bobmods.modules.ProductivityBonus}, + pollution = {bonus = -3 * bobmods.modules.PollutionPerLevel - bobmods.modules.PollutionBonus}, + consumption = {bonus = 3 * bobmods.modules.ConsumptionPerLevel - bobmods.modules.ConsumptionBonus}, + speed = {bonus = 3 * bobmods.modules.SpeedPerLevel + bobmods.modules.SpeedBonus} + } +data.raw["module"]["god-module-4"].effect = + { + productivity = {bonus = 4 * bobmods.modules.ProductivityPerLevel + bobmods.modules.ProductivityBonus}, + pollution = {bonus = -4 * bobmods.modules.PollutionPerLevel - bobmods.modules.PollutionBonus}, + consumption = {bonus = 4 * bobmods.modules.ConsumptionPerLevel - bobmods.modules.ConsumptionBonus}, + speed = {bonus = 4 * bobmods.modules.SpeedPerLevel + bobmods.modules.SpeedBonus} + } +data.raw["module"]["god-module-5"].effect = + { + productivity = {bonus = 5 * bobmods.modules.ProductivityPerLevel + bobmods.modules.ProductivityBonus}, + pollution = {bonus = -5 * bobmods.modules.PollutionPerLevel - bobmods.modules.PollutionBonus}, + consumption = {bonus = 5 * bobmods.modules.ConsumptionPerLevel - bobmods.modules.ConsumptionBonus}, + speed = {bonus = 5 * bobmods.modules.SpeedPerLevel + bobmods.modules.SpeedBonus} + } +end + + +if data.raw.item["raw-productivity-module-1"] then +data.raw["module"]["raw-productivity-module-1"].effect = { productivity = {bonus = .75 * bobmods.modules.ProductivityPerLevel + bobmods.modules.ProductivityBonus}} +data.raw["module"]["raw-productivity-module-2"].effect = { productivity = {bonus = 1.5 * bobmods.modules.ProductivityPerLevel + bobmods.modules.ProductivityBonus}} +data.raw["module"]["raw-productivity-module-3"].effect = { productivity = {bonus = 2.25 * bobmods.modules.ProductivityPerLevel + bobmods.modules.ProductivityBonus}} +data.raw["module"]["raw-productivity-module-4"].effect = { productivity = {bonus = 3 * bobmods.modules.ProductivityPerLevel + bobmods.modules.ProductivityBonus}} +data.raw["module"]["raw-productivity-module-5"].effect = { productivity = {bonus = 3.75 * bobmods.modules.ProductivityPerLevel + bobmods.modules.ProductivityBonus}} +data.raw["module"]["raw-productivity-module-6"].effect = { productivity = {bonus = 4.5 * bobmods.modules.ProductivityPerLevel + bobmods.modules.ProductivityBonus}} +data.raw["module"]["raw-productivity-module-7"].effect = { productivity = {bonus = 5.25 * bobmods.modules.ProductivityPerLevel + bobmods.modules.ProductivityBonus}} +data.raw["module"]["raw-productivity-module-8"].effect = { productivity = {bonus = 6 * bobmods.modules.ProductivityPerLevel + bobmods.modules.ProductivityBonus}} +end + + +if data.raw.item["green-module-1"] then +data.raw["module"]["green-module-1"].effect = + { + pollution = {bonus = -0.75 * bobmods.modules.PollutionPerLevel - bobmods.modules.PollutionBonus}, + consumption = {bonus = -0.75 * bobmods.modules.ConsumptionPerLevel - bobmods.modules.ConsumptionBonus} + } +data.raw["module"]["green-module-2"].effect = + { + pollution = {bonus = -1.5 * bobmods.modules.PollutionPerLevel - bobmods.modules.PollutionBonus}, + consumption = {bonus = -1.5 * bobmods.modules.ConsumptionPerLevel - bobmods.modules.ConsumptionBonus} + } +data.raw["module"]["green-module-3"].effect = + { + pollution = {bonus = -2.25 * bobmods.modules.PollutionPerLevel - bobmods.modules.PollutionBonus}, + consumption = {bonus = -2.25 * bobmods.modules.ConsumptionPerLevel - bobmods.modules.ConsumptionBonus} + } +data.raw["module"]["green-module-4"].effect = + { + pollution = {bonus = -3 * bobmods.modules.PollutionPerLevel - bobmods.modules.PollutionBonus}, + consumption = {bonus = -3 * bobmods.modules.ConsumptionPerLevel - bobmods.modules.ConsumptionBonus} + } +data.raw["module"]["green-module-5"].effect = + { + pollution = {bonus = -3.75 * bobmods.modules.PollutionPerLevel - bobmods.modules.PollutionBonus}, + consumption = {bonus = -3.75 * bobmods.modules.ConsumptionPerLevel - bobmods.modules.ConsumptionBonus} + } +data.raw["module"]["green-module-6"].effect = + { + pollution = {bonus = -4.5 * bobmods.modules.PollutionPerLevel - bobmods.modules.PollutionBonus}, + consumption = {bonus = -4.5 * bobmods.modules.ConsumptionPerLevel - bobmods.modules.ConsumptionBonus} + } +data.raw["module"]["green-module-7"].effect = + { + pollution = {bonus = -5.25 * bobmods.modules.PollutionPerLevel - bobmods.modules.PollutionBonus}, + consumption = {bonus = -5.25 * bobmods.modules.ConsumptionPerLevel - bobmods.modules.ConsumptionBonus} + } +data.raw["module"]["green-module-8"].effect = + { + pollution = {bonus = -6 * bobmods.modules.PollutionPerLevel - bobmods.modules.PollutionBonus}, + consumption = {bonus = -6 * bobmods.modules.ConsumptionPerLevel - bobmods.modules.ConsumptionBonus} + } +end + +data.raw["recipe"]["lithium-ion-battery"].energy_required = 5 +data.raw["recipe"]["silver-zinc-battery"].energy_required = 5 +data.raw["recipe"]["silver-from-lead"].ingredients = + { + {type = "item", name = "lead-oxide", amount = 7}, + {type = "item", name = "carbon", amount = 3}, + {type = "item", name = "nickel-plate", amount = 2}, + } data.raw["rocket-silo"]["rocket-silo"].ingredient_count = 4 \ No newline at end of file diff --git a/CMHMod_0.2.3/data.lua b/CMHMod_0.14.0/data.lua similarity index 97% rename from CMHMod_0.2.3/data.lua rename to CMHMod_0.14.0/data.lua index 29a7508..e9c88ee 100644 --- a/CMHMod_0.2.3/data.lua +++ b/CMHMod_0.14.0/data.lua @@ -1,14 +1,14 @@ -require("prototypes.recipe.recipes") -require("prototypes.recipe.recipe-updates") -require("prototypes.technology") -require("prototypes.technology-updates") -require("prototypes.items.items") - - -bobmods.ores.gold.enabled = false -bobmods.ores.zinc.enabled = false -bobmods.ores.quartz.enabled = false -bobmods.ores.settings.UnsortedGemOre = true -bobmods.ores.nickel.enabled = false -bobmods.ores.settings.LeadGivesNickel = true +require("prototypes.recipe.recipes") +require("prototypes.recipe.recipe-updates") +require("prototypes.technology") +require("prototypes.technology-updates") +require("prototypes.items.items") + + +bobmods.ores.gold.enabled = false +bobmods.ores.zinc.enabled = false +bobmods.ores.quartz.enabled = false +bobmods.ores.settings.UnsortedGemOre = true +bobmods.ores.nickel.enabled = false +bobmods.ores.settings.LeadGivesNickel = true bobmods.ores.settings.LeadNickelRatio = 0.3 \ No newline at end of file diff --git a/CMHMod_0.2.3/graphics/electrum-processing.png b/CMHMod_0.14.0/graphics/electrum-processing.png similarity index 100% rename from CMHMod_0.2.3/graphics/electrum-processing.png rename to CMHMod_0.14.0/graphics/electrum-processing.png diff --git a/CMHMod_0.2.3/graphics/icons/NaOH.png b/CMHMod_0.14.0/graphics/icons/NaOH.png similarity index 100% rename from CMHMod_0.2.3/graphics/icons/NaOH.png rename to CMHMod_0.14.0/graphics/icons/NaOH.png diff --git a/CMHMod_0.2.3/graphics/icons/advanced-tin.png b/CMHMod_0.14.0/graphics/icons/advanced-tin.png similarity index 100% rename from CMHMod_0.2.3/graphics/icons/advanced-tin.png rename to CMHMod_0.14.0/graphics/icons/advanced-tin.png diff --git a/CMHMod_0.2.3/graphics/icons/aluminium-titanium.png b/CMHMod_0.14.0/graphics/icons/aluminium-titanium.png similarity index 100% rename from CMHMod_0.2.3/graphics/icons/aluminium-titanium.png rename to CMHMod_0.14.0/graphics/icons/aluminium-titanium.png diff --git a/CMHMod_0.2.3/graphics/icons/aluminium-titanium2.png b/CMHMod_0.14.0/graphics/icons/aluminium-titanium2.png similarity index 100% rename from CMHMod_0.2.3/graphics/icons/aluminium-titanium2.png rename to CMHMod_0.14.0/graphics/icons/aluminium-titanium2.png diff --git a/CMHMod_0.2.3/graphics/icons/crude-gold.png b/CMHMod_0.14.0/graphics/icons/crude-gold.png similarity index 100% rename from CMHMod_0.2.3/graphics/icons/crude-gold.png rename to CMHMod_0.14.0/graphics/icons/crude-gold.png diff --git a/CMHMod_0.2.3/graphics/icons/iron-zinc.png b/CMHMod_0.14.0/graphics/icons/iron-zinc.png similarity index 100% rename from CMHMod_0.2.3/graphics/icons/iron-zinc.png rename to CMHMod_0.14.0/graphics/icons/iron-zinc.png diff --git a/CMHMod_0.2.3/graphics/icons/rocket-engine.png b/CMHMod_0.14.0/graphics/icons/rocket-engine.png similarity index 100% rename from CMHMod_0.2.3/graphics/icons/rocket-engine.png rename to CMHMod_0.14.0/graphics/icons/rocket-engine.png diff --git a/CMHMod_0.2.3/graphics/icons/silver-gold.png b/CMHMod_0.14.0/graphics/icons/silver-gold.png similarity index 100% rename from CMHMod_0.2.3/graphics/icons/silver-gold.png rename to CMHMod_0.14.0/graphics/icons/silver-gold.png diff --git a/CMHMod_0.2.3/graphics/icons/stone-quartz.png b/CMHMod_0.14.0/graphics/icons/stone-quartz.png similarity index 100% rename from CMHMod_0.2.3/graphics/icons/stone-quartz.png rename to CMHMod_0.14.0/graphics/icons/stone-quartz.png diff --git a/CMHMod_0.2.3/graphics/icons/zinc-tin.png b/CMHMod_0.14.0/graphics/icons/zinc-tin.png similarity index 100% rename from CMHMod_0.2.3/graphics/icons/zinc-tin.png rename to CMHMod_0.14.0/graphics/icons/zinc-tin.png diff --git a/CMHMod_0.2.3/info.json b/CMHMod_0.14.0/info.json similarity index 54% rename from CMHMod_0.2.3/info.json rename to CMHMod_0.14.0/info.json index fed9a25..9d89740 100644 --- a/CMHMod_0.2.3/info.json +++ b/CMHMod_0.14.0/info.json @@ -1,12 +1,12 @@ -{ - "name": "CMHMod", - "version": "0.2.3", - "factorio_version": "0.14", - "title": "CMHMod - Rebalancing Bob's Mods", - "author": "CMH", - "contact": "", - "homepage": "", - "description": "Making use of the highest tiers of Bob's mods right to the end game. Introduces more 'advanced recipes' for the classic choice between higher production yields vs simplicity.", - "dependencies": ["base >= 0.13.0", "bobplates >= 0.13.0", "bobelectronics >= 0.13.0", "bobores >= 0.13.0", "boblibrary >= 0.13.0", "?bobpower >= 0.13.0", "? bobmodules >= 0.13.0", "? bobtech >= 0.13.0", "? bobwarfare >= 0.13.00", "? bobconfig >= 0.13.0"] - +{ + "name": "CMHMod", + "version": "0.14.0", + "factorio_version": "0.14", + "title": "CMHMod - Rebalancing Bob's Mods", + "author": "CMH", + "contact": "", + "homepage": "", + "description": "Making use of the highest tiers of Bob's mods right to the end game. Introduces more 'advanced recipes' for the classic choice between higher production yields vs simplicity.", + "dependencies": ["base >= 0.14.0", "bobplates >= 0.14.0", "bobelectronics >= 0.14.0", "bobpower >= 0.14.0", "bobores >= 0.14.0", "boblibrary >= 0.14.0", "? bobmodules >= 0.14.0", "? bobtech >= 0.14.0", "? bobwarfare >= 0.14.0", "? bobconfig >= 0.14.0"] + } \ No newline at end of file diff --git a/CMHMod_0.2.3/locale/en/CMHMod.cfg b/CMHMod_0.14.0/locale/en/CMHMod.cfg similarity index 93% rename from CMHMod_0.2.3/locale/en/CMHMod.cfg rename to CMHMod_0.14.0/locale/en/CMHMod.cfg index e0ec6c5..ccd64bb 100644 --- a/CMHMod_0.2.3/locale/en/CMHMod.cfg +++ b/CMHMod_0.14.0/locale/en/CMHMod.cfg @@ -1,27 +1,28 @@ -[item-name] -electrum-alloy=Gold alloy plate -silver-ore=Electrum (Silver/Gold ore) -lead-ore=Galena (Lead/Nickel ore) -rocket-engine=Rocket Engine -sodium-hydroxide=Sodium Hydroxide Crystals - -[technology-name] -electrum-processing=Gold alloy processing -aluminium-titanium=Aluminium/Titanium smelting -advanced-tin=Advanced Tin smelting - -[recipe-name] -advanced-electrum=Advanced Gold extraction from Electrum -aluminium-titanium-a=Aluminium/Titanium smelting -advanced-tin=Zinc extraction from Tin -rocket-engine=Rocket Engine -CMH-NaOH=Aqueous Sodium Hydroxide -CMH-refining=Crude Oil Refining -CMH-coal-cracking=Coal cracking to Heavy oil -crude-gold=Gold extraction from Electrum - -[entity-name] -silver-ore=Electrum (Silver/Gold ore) - -[fluid-name] +[item-name] +electrum-alloy=Gold alloy plate +silver-ore=Electrum (Silver/Gold ore) +lead-ore=Galena (Lead ore) +rocket-engine=Rocket Engine +sodium-hydroxide=Sodium Hydroxide Crystals + +[technology-name] +electrum-processing=Gold alloy processing +aluminium-titanium=Aluminium/Titanium smelting +advanced-tin=Advanced Tin smelting + +[recipe-name] +advanced-electrum=Advanced Gold extraction from Electrum +aluminium-titanium-a=Aluminium/Titanium smelting +advanced-tin=Zinc extraction from Tin +rocket-engine=Rocket Engine +CMH-NaOH=Aqueous Sodium Hydroxide +CMH-refining=Crude Oil Refining +CMH-coal-cracking=Coal cracking to Heavy oil +crude-gold=Gold extraction from Electrum + +[entity-name] +silver-ore=Electrum (Silver/Gold ore) +lead-ore=Galena (Lead/Nickel ore) + +[fluid-name] CMH-NaOH=Aqueous Sodium Hydroxide \ No newline at end of file diff --git a/CMHMod_0.2.3/prototypes/items/items.lua b/CMHMod_0.14.0/prototypes/items/items.lua similarity index 96% rename from CMHMod_0.2.3/prototypes/items/items.lua rename to CMHMod_0.14.0/prototypes/items/items.lua index 3906d3d..16a1445 100644 --- a/CMHMod_0.2.3/prototypes/items/items.lua +++ b/CMHMod_0.14.0/prototypes/items/items.lua @@ -1,25 +1,25 @@ -data:extend({ - - { - type = "item", - name = "rocket-engine", - icon = "__CMHMod__/graphics/icons/rocket-engine.png", - flags = { "goes-to-main-inventory" }, - subgroup = "intermediate-product", - stack_size= 5, - }, - { - type = "fluid", - name = "CMH-NaOH", - default_temperature = 25, - heat_capacity = "1KJ", - base_color = {r=0.0, g=1.0, b=1.0}, - flow_color = {r=0.0, g=1.0, b=1.0}, - max_temperature = 100, - icon = "__CMHMod__/graphics/icons/NaOH.png", - pressure_to_speed_ratio = 0.4, - flow_to_energy_ratio = 0.59, - order = "a[fluid]-g[nitric-acid]" - }, - +data:extend({ + + { + type = "item", + name = "rocket-engine", + icon = "__CMHMod__/graphics/icons/rocket-engine.png", + flags = { "goes-to-main-inventory" }, + subgroup = "intermediate-product", + stack_size= 5, + }, + { + type = "fluid", + name = "CMH-NaOH", + default_temperature = 25, + heat_capacity = "1KJ", + base_color = {r=0.0, g=1.0, b=1.0}, + flow_color = {r=0.0, g=1.0, b=1.0}, + max_temperature = 100, + icon = "__CMHMod__/graphics/icons/NaOH.png", + pressure_to_speed_ratio = 0.4, + flow_to_energy_ratio = 0.59, + order = "a[fluid]-g[nitric-acid]" + }, + }) \ No newline at end of file diff --git a/CMHMod_0.2.3/prototypes/recipe/recipe-updates.lua b/CMHMod_0.14.0/prototypes/recipe/recipe-updates.lua similarity index 96% rename from CMHMod_0.2.3/prototypes/recipe/recipe-updates.lua rename to CMHMod_0.14.0/prototypes/recipe/recipe-updates.lua index 57e3e02..d3ca341 100644 --- a/CMHMod_0.2.3/prototypes/recipe/recipe-updates.lua +++ b/CMHMod_0.14.0/prototypes/recipe/recipe-updates.lua @@ -1,75 +1,75 @@ - -bobmods.lib.add_new_recipe_item ("bob-oil-processing", {"sodium-hydroxide", 5}) -bobmods.lib.add_new_recipe_item ("coal-cracking", {"sodium-hydroxide", 2}) -bobmods.lib.add_new_recipe_item ("alumina", {"sodium-hydroxide", 2}) -data.raw["recipe"]["solid-fuel-from-hydrogen"].ingredients = - { - {type="fluid", name="hydrogen", amount=25}, - {type="item", name="coal", amount=3} - } -data.raw["recipe"]["alumina"].ingredients = - { - {type="item", name="sodium-hydroxide", amount=2}, - {type="item", name="bauxite-ore", amount=1}, - } -data.raw["recipe"]["silver-oxide"].ingredients = - { - {"silver-nitrate", 1}, - {"sodium-hydroxide", 2}, - } - - -if data.raw.module["god-module-5"] then - data.raw["recipe"]["rocket-control-unit"].ingredients = - { - {"advanced-processing-unit", 1}, + +bobmods.lib.add_new_recipe_item ("bob-oil-processing", {"sodium-hydroxide", 5}) +bobmods.lib.add_new_recipe_item ("coal-cracking", {"sodium-hydroxide", 2}) +bobmods.lib.add_new_recipe_item ("alumina", {"sodium-hydroxide", 2}) +data.raw["recipe"]["solid-fuel-from-hydrogen"].ingredients = + { + {type="fluid", name="hydrogen", amount=25}, + {type="item", name="coal", amount=3} + } +data.raw["recipe"]["alumina"].ingredients = + { + {type="item", name="sodium-hydroxide", amount=2}, + {type="item", name="bauxite-ore", amount=1}, + } +data.raw["recipe"]["silver-oxide"].ingredients = + { + {"silver-nitrate", 1}, + {"sodium-hydroxide", 2}, + } + + +if data.raw.module["god-module-5"] then + data.raw["recipe"]["rocket-control-unit"].ingredients = + { + {"advanced-processing-unit", 1}, {"god-module-5", 1} - - } -else -if data.raw.module["raw-speed-module-8"] then - data.raw["recipe"]["rocket-control-unit"].ingredients = - { - {"advanced-processing-unit", 1}, + + } +else +if data.raw.module["raw-speed-module-8"] then + data.raw["recipe"]["rocket-control-unit"].ingredients = + { + {"advanced-processing-unit", 1}, {"raw-speed-module-8", 1} - - } - -else - if data.raw.module["speed-module-8"] then - data.raw["recipe"]["rocket-control-unit"].ingredients = - { - {"advanced-processing-unit", 1}, + + } + +else + if data.raw.module["speed-module-8"] then + data.raw["recipe"]["rocket-control-unit"].ingredients = + { + {"advanced-processing-unit", 1}, {"speed-module-8", 1} - - } - end - end -end - -if data.raw.item["radar-5"] then - bobmods.lib.replace_recipe_item ("satellite", "radar", "radar-5") -end - -data.raw["recipe"]["steel-plate"].ingredients = { {"iron-plate", 2}, { "iron-plate", 5 } } - -if data.raw.item["tungsten-pipe"] then - bobmods.lib.replace_recipe_item ("rocket-silo", "pipe", "tungsten-pipe") -end - -if data.raw.fluid["nitroglycerin"] then - data.raw["recipe"]["rocket-fuel"].ingredients = - { - {type="item", name="solid-fuel", amount=10}, + + } + end + end +end + +if data.raw.item["radar-5"] then + bobmods.lib.replace_recipe_item ("satellite", "radar", "radar-5") +end + +data.raw["recipe"]["steel-plate"].ingredients = { {"iron-plate", 2}, { "iron-plate", 5 } } + +if data.raw.item["tungsten-pipe"] then + bobmods.lib.replace_recipe_item ("rocket-silo", "pipe", "tungsten-pipe") +end + +if data.raw.fluid["nitroglycerin"] then + data.raw["recipe"]["rocket-fuel"].ingredients = + { + {type="item", name="solid-fuel", amount=10}, {type="fluid", name="nitroglycerin", amount=3} -, - } -end - -if data.raw.item["solar-panel-large-3"] then - bobmods.lib.replace_recipe_item ("satellite", "solar-panel", "solar-panel-large-3") -end - -if data.raw.item["fast-accumulator-3"] then - bobmods.lib.replace_recipe_item ("satellite", "accumulator", "fast-accumulator-3") +, + } +end + +if data.raw.item["solar-panel-large-3"] then + bobmods.lib.replace_recipe_item ("satellite", "solar-panel", "solar-panel-large-3") +end + +if data.raw.item["fast-accumulator-3"] then + bobmods.lib.replace_recipe_item ("satellite", "accumulator", "fast-accumulator-3") end \ No newline at end of file diff --git a/CMHMod_0.2.3/prototypes/recipe/recipes.lua b/CMHMod_0.14.0/prototypes/recipe/recipes.lua similarity index 96% rename from CMHMod_0.2.3/prototypes/recipe/recipes.lua rename to CMHMod_0.14.0/prototypes/recipe/recipes.lua index da8c703..1594c41 100644 --- a/CMHMod_0.2.3/prototypes/recipe/recipes.lua +++ b/CMHMod_0.14.0/prototypes/recipe/recipes.lua @@ -1,373 +1,373 @@ -data:extend( -{ - { type = "recipe", - name = "advanced-electrum", - enabled = "false", - category = "chemical-furnace", - subgroup = "bob-material-chemical", - energy_required = 18, - ingredients = - { - {type = "item", name = "silver-ore", amount = 5}, - {type = "item", name = "stone", amount = 1}, - {type = "item", name = "iron-ore", amount = 4}, - }, - results = - { - {type = "item", name = "silver-plate", amount = 1}, - {type = "item", name = "gold-ore", amount = 5}, - }, - main_product= "gold-ore", - icon = "__CMHMod__/graphics/icons/silver-gold.png", - order = "c-b" - }, - - { type = "recipe", - name = "crude-gold", - enabled = "true", - category = "smelting", - subgroup = "bob-material-smelting", - energy_required = 5, - ingredients = - { - {type = "item", name = "silver-ore", amount = 2}, - }, - results = - { - {type = "item", name = "gold-ore", amount = 1}, - }, - main_product= "gold-ore", - icon = "__CMHMod__/graphics/icons/crude-gold.png", - }, - - { type = "recipe", - name = "zinc-iron", - enabled = "false", - category = "chemical-furnace", - subgroup = "bob-material-chemical", - energy_required = 25, - ingredients = - { - {type = "item", name = "iron-ore", amount = 7}, - {type = "item", name = "coal", amount = 2}, - {type = "item", name = "salt", amount = 1}, - }, - results = - { - {type = "item", name = "iron-plate", amount = 8}, - {type = "item", name = "zinc-ore", amount = 2}, - }, - main_product= "iron-plate", - icon = "__CMHMod__/graphics/icons/iron-zinc.png", - }, - - { type = "recipe", - name = "zinc-tin", - enabled = "false", - category = "chemical-furnace", - subgroup = "bob-material-chemical", - energy_required = 18, - ingredients = - { - {type = "item", name = "tin-ore", amount = 5}, - {type = "item", name = "carbon", amount = 1}, - }, - results = - { - {type = "item", name = "tin-plate", amount = 6}, - {type = "item", name = "zinc-ore", amount = 2}, - }, - main_product= "tin-plate", - icon = "__CMHMod__/graphics/icons/zinc-tin.png", - }, - - { type = "recipe", - name = "stone-quartz", - enabled = "true", - category = "chemical-furnace", - subgroup = "bob-material-chemical", - energy_required = 2.5, - ingredients = - { - {type = "item", name = "stone", amount = 1}, - - }, - results = - { - {type = "item", name = "quartz", amount = 1}, - }, - icon = "__CMHMod__/graphics/icons/stone-quartz.png", - }, - - - { type = "recipe", - name = "aluminium-titanium-a", - enabled = "false", - category = "chemical-furnace", - subgroup = "bob-material-chemical", - energy_required = 28, - ingredients = - { - {type = "item", name = "rutile-ore", amount = 4}, - {type = "item", name = "alumina", amount = 4}, - {type = "item", name = "carbon", amount = 4}, - {type = "item", name = "calcium-chloride", amount = 4}, - - }, - results = - { - {type = "item", name = "titanium-plate", amount = 6}, - {type = "item", name = "aluminium-plate", amount = 6}, - {type = "item", name = "quartz", amount = 2}, - }, - icon = "__CMHMod__/graphics/icons/aluminium-titanium.png", - }, - { type = "recipe", - name = "rocket-engine", - enabled = "false", - category = "crafting", - energy_required = 3, - ingredients = - { - {type = "item", name = "cobalt-steel-alloy", amount = 1}, - {type = "item", name = "invar-alloy", amount = 1}, - {type = "item", name = "tungsten-plate", amount = 1}, - }, - results = - { - {type = "item", name = "rocket-engine", amount = 1}, - }, - icon = "__CMHMod__/graphics/icons/rocket-engine.png", - }, - - { - type = "recipe", - name = "CMH-NaOH", - category = "chemistry", - energy_required = 0.5, - enabled = "false", - ingredients = - { - {type="fluid", name="water", amount=5}, - {type="item", name="sodium-hydroxide", amount=5}, - }, - results= - { - {type="fluid", name="CMH-NaOH", amount=5} - }, - main_product= "CMH-NaOH", - subgroup = "bob-fluid", - icon = "__CMHMod__/graphics/icons/NaOH.png", - order = "b[fluid-chemistry]-f[sulfuric-acid]" - }, - - { type = "recipe", - name = "CMH-refining", - category = "oil-processing", - enabled = false, - energy_required = 5, - ingredients = - { - {type="fluid", name="crude-oil", amount=10}, - {type="fluid", name="CMH-NaOH", amount=5}, - }, - results= - { - {type="fluid", name="heavy-oil", amount=5}, - {type="fluid", name="light-oil", amount=2}, - {type="fluid", name="petroleum-gas", amount=3} - }, - icon = "__base__/graphics/icons/fluid/basic-oil-processing.png", - subgroup = "fluid-recipes", - order = "a[oil-processing]-c[bob-oil-processing]" - }, - { - type = "recipe", - name = "CMH-coal-cracking", - category = "chemistry", - enabled = "false", - energy_required = 2.5, - ingredients = - { - {type="item", name="coal", amount=2}, - {type="fluid", name="water", amount=1.5}, - {type="fluid", name="CMH-NaOH", amount=2} - }, - results= - { - {type="fluid", name="heavy-oil", amount=1.2} - }, - subgroup = "bob-fluid", - icon = "__bobplates__/graphics/icons/coal-cracking.png", - order = "b[fluid-chemistry]-a[coal-cracking]" - }, - -} -) - -data:extend({ +data:extend( +{ + { type = "recipe", + name = "advanced-electrum", + enabled = "false", + category = "chemical-furnace", + subgroup = "bob-material-chemical", + energy_required = 18, + ingredients = + { + {type = "item", name = "silver-ore", amount = 5}, + {type = "item", name = "stone", amount = 1}, + {type = "item", name = "iron-ore", amount = 4}, + }, + results = + { + {type = "item", name = "silver-plate", amount = 1}, + {type = "item", name = "gold-ore", amount = 5}, + }, + main_product= "gold-ore", + icon = "__CMHMod__/graphics/icons/silver-gold.png", + order = "c-b" + }, + + { type = "recipe", + name = "crude-gold", + enabled = "true", + category = "smelting", + subgroup = "bob-material-smelting", + energy_required = 5, + ingredients = + { + {type = "item", name = "silver-ore", amount = 2}, + }, + results = + { + {type = "item", name = "gold-ore", amount = 1}, + }, + main_product= "gold-ore", + icon = "__CMHMod__/graphics/icons/crude-gold.png", + }, + + { type = "recipe", + name = "zinc-iron", + enabled = "false", + category = "chemical-furnace", + subgroup = "bob-material-chemical", + energy_required = 25, + ingredients = + { + {type = "item", name = "iron-ore", amount = 7}, + {type = "item", name = "coal", amount = 2}, + {type = "item", name = "salt", amount = 1}, + }, + results = + { + {type = "item", name = "iron-plate", amount = 8}, + {type = "item", name = "zinc-ore", amount = 2}, + }, + main_product= "iron-plate", + icon = "__CMHMod__/graphics/icons/iron-zinc.png", + }, + + { type = "recipe", + name = "zinc-tin", + enabled = "false", + category = "chemical-furnace", + subgroup = "bob-material-chemical", + energy_required = 18, + ingredients = + { + {type = "item", name = "tin-ore", amount = 5}, + {type = "item", name = "carbon", amount = 1}, + }, + results = + { + {type = "item", name = "tin-plate", amount = 6}, + {type = "item", name = "zinc-ore", amount = 2}, + }, + main_product= "tin-plate", + icon = "__CMHMod__/graphics/icons/zinc-tin.png", + }, + + { type = "recipe", + name = "stone-quartz", + enabled = "true", + category = "chemical-furnace", + subgroup = "bob-material-chemical", + energy_required = 2.5, + ingredients = + { + {type = "item", name = "stone", amount = 1}, + + }, + results = + { + {type = "item", name = "quartz", amount = 1}, + }, + icon = "__CMHMod__/graphics/icons/stone-quartz.png", + }, + + + { type = "recipe", + name = "aluminium-titanium-a", + enabled = "false", + category = "chemical-furnace", + subgroup = "bob-material-chemical", + energy_required = 28, + ingredients = + { + {type = "item", name = "rutile-ore", amount = 4}, + {type = "item", name = "alumina", amount = 4}, + {type = "item", name = "carbon", amount = 4}, + {type = "item", name = "calcium-chloride", amount = 4}, + + }, + results = + { + {type = "item", name = "titanium-plate", amount = 6}, + {type = "item", name = "aluminium-plate", amount = 6}, + {type = "item", name = "quartz", amount = 2}, + }, + icon = "__CMHMod__/graphics/icons/aluminium-titanium.png", + }, + { type = "recipe", + name = "rocket-engine", + enabled = "false", + category = "crafting", + energy_required = 3, + ingredients = + { + {type = "item", name = "cobalt-steel-alloy", amount = 1}, + {type = "item", name = "invar-alloy", amount = 1}, + {type = "item", name = "tungsten-plate", amount = 1}, + }, + results = + { + {type = "item", name = "rocket-engine", amount = 1}, + }, + icon = "__CMHMod__/graphics/icons/rocket-engine.png", + }, + + { + type = "recipe", + name = "CMH-NaOH", + category = "chemistry", + energy_required = 0.5, + enabled = "false", + ingredients = + { + {type="fluid", name="water", amount=5}, + {type="item", name="sodium-hydroxide", amount=5}, + }, + results= + { + {type="fluid", name="CMH-NaOH", amount=5} + }, + main_product= "CMH-NaOH", + subgroup = "bob-fluid", + icon = "__CMHMod__/graphics/icons/NaOH.png", + order = "b[fluid-chemistry]-f[sulfuric-acid]" + }, + + { type = "recipe", + name = "CMH-refining", + category = "oil-processing", + enabled = false, + energy_required = 5, + ingredients = + { + {type="fluid", name="crude-oil", amount=10}, + {type="fluid", name="CMH-NaOH", amount=5}, + }, + results= + { + {type="fluid", name="heavy-oil", amount=5}, + {type="fluid", name="light-oil", amount=2}, + {type="fluid", name="petroleum-gas", amount=3} + }, + icon = "__base__/graphics/icons/fluid/basic-oil-processing.png", + subgroup = "fluid-recipes", + order = "a[oil-processing]-c[bob-oil-processing]" + }, + { + type = "recipe", + name = "CMH-coal-cracking", + category = "chemistry", + enabled = "false", + energy_required = 2.5, + ingredients = + { + {type="item", name="coal", amount=2}, + {type="fluid", name="water", amount=1.5}, + {type="fluid", name="CMH-NaOH", amount=2} + }, + results= + { + {type="fluid", name="heavy-oil", amount=1.2} + }, + subgroup = "bob-fluid", + icon = "__bobplates__/graphics/icons/coal-cracking.png", + order = "b[fluid-chemistry]-a[coal-cracking]" + }, + +} +) + +data:extend({ { - - type = "recipe", + + type = "recipe", - name = "low-density-structure", + name = "low-density-structure", - energy_required = 30, + energy_required = 30, - enabled = false, + enabled = false, category = "crafting", - - ingredients = + + ingredients = { + + {"nitinol-alloy", 10}, - {"nitinol-alloy", 10}, - - {"aluminium-plate", 5}, + {"aluminium-plate", 5}, - {"plastic-bar", 5} + {"plastic-bar", 5} - }, + }, - result= "low-density-structure" + result= "low-density-structure" - }, + }, + + + { - - { - - type = "recipe", + type = "recipe", name = "satellite", + + energy_required = 3, - energy_required = 3, + enabled = false, - enabled = false, - - category = "crafting", + category = "crafting", ingredients = + + { - { - - {"low-density-structure", 100}, + {"low-density-structure", 100}, {"solar-panel", 100}, - + {"accumulator", 100}, + + {"radar", 5}, - {"radar", 5}, - - {"advanced-processing-unit", 100}, + {"advanced-processing-unit", 100}, - {"rocket-fuel", 50} + {"rocket-fuel", 50} - }, + }, result= "satellite" - - }, - - + + }, + + { + + type = "recipe", - type = "recipe", + name = "rocket-part", - name = "rocket-part", + energy_required = 3, - energy_required = 3, + enabled = false, - enabled = false, + hidden = true, - hidden = true, + category = "rocket-building", - category = "rocket-building", + ingredients = - ingredients = - - { + { - {"low-density-structure", 10}, + {"low-density-structure", 10}, - {"rocket-fuel", 10}, + {"rocket-fuel", 10}, - {"rocket-control-unit", 10}, + {"rocket-control-unit", 10}, {"rocket-engine", 10} + + }, - }, + result= "rocket-part" - result= "rocket-part" + }, + + { - }, - - { - - type = "recipe", + type = "recipe", name = "rocket-control-unit", - + energy_required = 30, - + enabled = false, - - category = "crafting", + + category = "crafting", ingredients = + + { - { + {"advanced-processing-unit", 1}, - {"advanced-processing-unit", 1}, + {"speed-module-3", 1} - {"speed-module-3", 1} + }, - }, - - result= "rocket-control-unit" - - }, + result= "rocket-control-unit" + }, + { - + type = "recipe", - - name = "rocket-fuel", + + name = "rocket-fuel", energy_required = 30, - + enabled = false, - - category = "chemistry", + + category = "chemistry", ingredients = + + { - { - - {"solid-fuel", 10}, - - {type="fluid", name="sulfuric-acid", amount=10}, - {type="fluid", name="nitric-acid", amount=10} + {"solid-fuel", 10}, - }, + {type="fluid", name="sulfuric-acid", amount=10}, + {type="fluid", name="nitric-acid", amount=10} - result= "rocket-fuel" + }, - }, + result= "rocket-fuel" -}) - -data.raw["recipe"]["rocket-silo"].ingredients = + }, + +}) + +data.raw["recipe"]["rocket-silo"].ingredients = { - + {"steel-plate", 1000}, - + {"concrete", 1000}, + + {"pipe", 100}, - {"pipe", 100}, - - {"advanced-processing-unit", 200}, + {"advanced-processing-unit", 200}, - {"electric-engine-unit", 200} + {"electric-engine-unit", 200} } \ No newline at end of file diff --git a/CMHMod_0.2.3/prototypes/technology-updates.lua b/CMHMod_0.14.0/prototypes/technology-updates.lua similarity index 98% rename from CMHMod_0.2.3/prototypes/technology-updates.lua rename to CMHMod_0.14.0/prototypes/technology-updates.lua index 092e842..8362cef 100644 --- a/CMHMod_0.2.3/prototypes/technology-updates.lua +++ b/CMHMod_0.14.0/prototypes/technology-updates.lua @@ -1,10 +1,10 @@ -bobmods.lib.add_technology_recipe("zinc-processing", "zinc-iron") -bobmods.lib.add_technology_recipe("gold-processing", "advanced-electrum") -bobmods.lib.add_technology_recipe("rocket-silo", "rocket-engine") -bobmods.lib.add_technology_recipe("advanced-oil-processing", "CMH-NaOH") -bobmods.lib.add_technology_recipe("advanced-oil-processing", "CMH-refining") -bobmods.lib.add_technology_recipe("advanced-oil-processing", "CMH-coal-cracking") - -if data.raw.tool["science-pack-4"] then - bobmods.lib.replace_science_pack ("aluminium-titanium", "alien-science-pack", "science-pack-4") -end +bobmods.lib.add_technology_recipe("zinc-processing", "zinc-iron") +bobmods.lib.add_technology_recipe("gold-processing", "advanced-electrum") +bobmods.lib.add_technology_recipe("rocket-silo", "rocket-engine") +bobmods.lib.add_technology_recipe("advanced-oil-processing", "CMH-NaOH") +bobmods.lib.add_technology_recipe("advanced-oil-processing", "CMH-refining") +bobmods.lib.add_technology_recipe("advanced-oil-processing", "CMH-coal-cracking") + +if data.raw.tool["science-pack-4"] then + bobmods.lib.replace_science_pack ("aluminium-titanium", "alien-science-pack", "science-pack-4") +end diff --git a/CMHMod_0.2.3/prototypes/technology.lua b/CMHMod_0.14.0/prototypes/technology.lua similarity index 94% rename from CMHMod_0.2.3/prototypes/technology.lua rename to CMHMod_0.14.0/prototypes/technology.lua index 59eb3dc..3528e04 100644 --- a/CMHMod_0.2.3/prototypes/technology.lua +++ b/CMHMod_0.14.0/prototypes/technology.lua @@ -1,58 +1,58 @@ -data:extend( -{ - { - type = "technology", - name = "aluminium-titanium", - icon = "__CMHMod__/graphics/icons/aluminium-titanium2.png", - prerequisites = - { "aluminium-processing", "titanium-processing", }, - effects = - { - { - type = "unlock-recipe", - recipe = "aluminium-titanium-a", - } - }, - unit = - { - count = 75, - ingredients = - { - {"science-pack-1", 1}, - {"science-pack-2", 1}, - {"science-pack-3", 1}, - {"alien-science-pack", 1}, - }, - time = 30, - order = "c-b-e3", - } - }, - - { - type = "technology", - name = "advanced-tin", - icon = "__CMHMod__/graphics/icons/advanced-tin.png", - prerequisites = - { "zinc-processing", }, - effects = - { - { - type = "unlock-recipe", - recipe = "zinc-tin", - } - }, - unit = - { - count = 75, - ingredients = - { - {"science-pack-1", 1}, - {"science-pack-2", 1}, - {"science-pack-3", 1}, - }, - time = 30, - order = "c-b-e4", - } - } -} +data:extend( +{ + { + type = "technology", + name = "aluminium-titanium", + icon = "__CMHMod__/graphics/icons/aluminium-titanium2.png", + prerequisites = + { "aluminium-processing", "titanium-processing", }, + effects = + { + { + type = "unlock-recipe", + recipe = "aluminium-titanium-a", + } + }, + unit = + { + count = 75, + ingredients = + { + {"science-pack-1", 1}, + {"science-pack-2", 1}, + {"science-pack-3", 1}, + {"alien-science-pack", 1}, + }, + time = 30, + order = "c-b-e3", + } + }, + + { + type = "technology", + name = "advanced-tin", + icon = "__CMHMod__/graphics/icons/advanced-tin.png", + prerequisites = + { "zinc-processing", }, + effects = + { + { + type = "unlock-recipe", + recipe = "zinc-tin", + } + }, + unit = + { + count = 75, + ingredients = + { + {"science-pack-1", 1}, + {"science-pack-2", 1}, + {"science-pack-3", 1}, + }, + time = 30, + order = "c-b-e4", + } + } +} ) \ No newline at end of file diff --git a/More signal color_0.0.1/data.lua b/More signal color_1.14.0/data.lua similarity index 100% rename from More signal color_0.0.1/data.lua rename to More signal color_1.14.0/data.lua diff --git a/More signal color_0.0.1/graphics/icons/signal/signal_basic-yellow.png b/More signal color_1.14.0/graphics/icons/signal/signal_basic-yellow.png similarity index 100% rename from More signal color_0.0.1/graphics/icons/signal/signal_basic-yellow.png rename to More signal color_1.14.0/graphics/icons/signal/signal_basic-yellow.png diff --git a/More signal color_0.0.1/graphics/icons/signal/signal_blue.png b/More signal color_1.14.0/graphics/icons/signal/signal_blue.png similarity index 100% rename from More signal color_0.0.1/graphics/icons/signal/signal_blue.png rename to More signal color_1.14.0/graphics/icons/signal/signal_blue.png diff --git a/More signal color_0.0.1/graphics/icons/signal/signal_brown.png b/More signal color_1.14.0/graphics/icons/signal/signal_brown.png similarity index 100% rename from More signal color_0.0.1/graphics/icons/signal/signal_brown.png rename to More signal color_1.14.0/graphics/icons/signal/signal_brown.png diff --git a/More signal color_0.0.1/graphics/icons/signal/signal_christmas-green.png b/More signal color_1.14.0/graphics/icons/signal/signal_christmas-green.png similarity index 100% rename from More signal color_0.0.1/graphics/icons/signal/signal_christmas-green.png rename to More signal color_1.14.0/graphics/icons/signal/signal_christmas-green.png diff --git a/More signal color_0.0.1/graphics/icons/signal/signal_christmas-red.png b/More signal color_1.14.0/graphics/icons/signal/signal_christmas-red.png similarity index 100% rename from More signal color_0.0.1/graphics/icons/signal/signal_christmas-red.png rename to More signal color_1.14.0/graphics/icons/signal/signal_christmas-red.png diff --git a/More signal color_0.0.1/graphics/icons/signal/signal_express-blue.png b/More signal color_1.14.0/graphics/icons/signal/signal_express-blue.png similarity index 100% rename from More signal color_0.0.1/graphics/icons/signal/signal_express-blue.png rename to More signal color_1.14.0/graphics/icons/signal/signal_express-blue.png diff --git a/More signal color_0.0.1/graphics/icons/signal/signal_fast-red.png b/More signal color_1.14.0/graphics/icons/signal/signal_fast-red.png similarity index 100% rename from More signal color_0.0.1/graphics/icons/signal/signal_fast-red.png rename to More signal color_1.14.0/graphics/icons/signal/signal_fast-red.png diff --git a/More signal color_0.0.1/graphics/icons/signal/signal_orange.png b/More signal color_1.14.0/graphics/icons/signal/signal_orange.png similarity index 100% rename from More signal color_0.0.1/graphics/icons/signal/signal_orange.png rename to More signal color_1.14.0/graphics/icons/signal/signal_orange.png diff --git a/More signal color_0.0.1/graphics/icons/signal/signal_purple.png b/More signal color_1.14.0/graphics/icons/signal/signal_purple.png similarity index 100% rename from More signal color_0.0.1/graphics/icons/signal/signal_purple.png rename to More signal color_1.14.0/graphics/icons/signal/signal_purple.png diff --git a/More signal color_0.0.1/graphics/icons/signal/signal_radioactive.png b/More signal color_1.14.0/graphics/icons/signal/signal_radioactive.png similarity index 100% rename from More signal color_0.0.1/graphics/icons/signal/signal_radioactive.png rename to More signal color_1.14.0/graphics/icons/signal/signal_radioactive.png diff --git a/More signal color_0.0.1/info.json b/More signal color_1.14.0/info.json similarity index 91% rename from More signal color_0.0.1/info.json rename to More signal color_1.14.0/info.json index 42d7c13..e063433 100644 --- a/More signal color_0.0.1/info.json +++ b/More signal color_1.14.0/info.json @@ -1,10 +1,10 @@ { "name": "More signal color", - "version": "0.0.1", + "version": "1.14.0", "title": "More signal color", "author": "devilwarriors", "contact": "", "homepage": "https://github.com/jfmmm/Factorio-more-signal-color", "description": "Mod that adds more signal color", - "factorio_version": "0.14" + "factorio_version": "0.14" } diff --git a/More signal color_0.0.1/locale/en/base.cfg b/More signal color_1.14.0/locale/en/base.cfg similarity index 100% rename from More signal color_0.0.1/locale/en/base.cfg rename to More signal color_1.14.0/locale/en/base.cfg diff --git a/More signal color_0.0.1/locale/fr/base.cfg b/More signal color_1.14.0/locale/fr/base.cfg similarity index 100% rename from More signal color_0.0.1/locale/fr/base.cfg rename to More signal color_1.14.0/locale/fr/base.cfg diff --git a/More signal color_0.0.1/prototypes/entity/entities.lua b/More signal color_1.14.0/prototypes/entity/entities.lua similarity index 100% rename from More signal color_0.0.1/prototypes/entity/entities.lua rename to More signal color_1.14.0/prototypes/entity/entities.lua diff --git a/More signal color_0.0.1/prototypes/signal/signal.lua b/More signal color_1.14.0/prototypes/signal/signal.lua similarity index 100% rename from More signal color_0.0.1/prototypes/signal/signal.lua rename to More signal color_1.14.0/prototypes/signal/signal.lua diff --git a/Natural_Evolution_Buildings_6.3.0/graphics/entity/livingwall/biowall-h-variant-1.png b/Natural_Evolution_Buildings_6.3.0/graphics/entity/livingwall/biowall-h-variant-1.png deleted file mode 100644 index bef07de..0000000 Binary files a/Natural_Evolution_Buildings_6.3.0/graphics/entity/livingwall/biowall-h-variant-1.png and /dev/null differ diff --git a/Natural_Evolution_Buildings_6.3.0/graphics/entity/livingwall/biowall-h-variant-2.png b/Natural_Evolution_Buildings_6.3.0/graphics/entity/livingwall/biowall-h-variant-2.png deleted file mode 100644 index cac73cd..0000000 Binary files a/Natural_Evolution_Buildings_6.3.0/graphics/entity/livingwall/biowall-h-variant-2.png and /dev/null differ diff --git a/Natural_Evolution_Buildings_6.3.0/graphics/entity/livingwall/biowall-h-variant-3.png b/Natural_Evolution_Buildings_6.3.0/graphics/entity/livingwall/biowall-h-variant-3.png deleted file mode 100644 index ae776e5..0000000 Binary files a/Natural_Evolution_Buildings_6.3.0/graphics/entity/livingwall/biowall-h-variant-3.png and /dev/null differ diff --git a/Natural_Evolution_Buildings_6.3.0/graphics/entity/livingwall/biowall-h-variant-4.png b/Natural_Evolution_Buildings_6.3.0/graphics/entity/livingwall/biowall-h-variant-4.png deleted file mode 100644 index 271d7d7..0000000 Binary files a/Natural_Evolution_Buildings_6.3.0/graphics/entity/livingwall/biowall-h-variant-4.png and /dev/null differ diff --git a/Natural_Evolution_Buildings_6.3.0/graphics/entity/livingwall/biowall-h-variant-5.png b/Natural_Evolution_Buildings_6.3.0/graphics/entity/livingwall/biowall-h-variant-5.png deleted file mode 100644 index acc5e94..0000000 Binary files a/Natural_Evolution_Buildings_6.3.0/graphics/entity/livingwall/biowall-h-variant-5.png and /dev/null differ diff --git a/Natural_Evolution_Buildings_6.3.0/graphics/entity/livingwall/biowall-h-variant-6.png b/Natural_Evolution_Buildings_6.3.0/graphics/entity/livingwall/biowall-h-variant-6.png deleted file mode 100644 index d019ebb..0000000 Binary files a/Natural_Evolution_Buildings_6.3.0/graphics/entity/livingwall/biowall-h-variant-6.png and /dev/null differ diff --git a/Natural_Evolution_Buildings_6.3.0/config.lua b/Natural_Evolution_Buildings_6.3.1/config.lua similarity index 97% rename from Natural_Evolution_Buildings_6.3.0/config.lua rename to Natural_Evolution_Buildings_6.3.1/config.lua index 72c54ca..fab8cf8 100644 --- a/Natural_Evolution_Buildings_6.3.0/config.lua +++ b/Natural_Evolution_Buildings_6.3.1/config.lua @@ -1,57 +1,57 @@ -local NE = NE_Buildings_Config ---[[--------------------------------------------------------------------------- -------------------------------------- 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. -Supercheese - Swarm Mod. -Afforess - Misanthrope Mod. -Orzelek - RSO, Coding help and answering questions! -ThaPear, Semvoz, Billw, Adil, Rseding91, Chlue - Coding help! -DySoch - DyTech, showing me what was possible -Bobingabout - Bob's Mods - Learned a lot from looking at your amazing work. -YuokiTani - Art!! Amazing work! - - ---------------------------------------------------------------------------- ---------------------------------------------------------------------------- ------------------------- On / Off Toggles --------------------------------- ---------------------------------------------------------------------------- ---- true = On / Yes ---- false = Off / No --- NOTE -- When changing most of the below values, this will only affect new games, not existing games. ----------------------------------------------------------------------------]] - - -NE.LongReach = true ---- Long Reach ---- Do you want double the vanilla reach - -NE.Single_Player_Only = true ---- Some people have reported lag and crashes with MP. So if you do, set this to false if you're playing a MP and hopefully that should work. ---- You will not have any EVO_GUI info if set to false. - - ---- Alien_Control_Station settings -NE.Spawner_Search_Distance = 35 -- Radius -NE.Unit_Search_Distance = 25 -- Radius -NE.Conversion_Difficulty = Hard -- Easy , Normal or Hard --- Spawner Conversion chanse per scan: Easy = 16.5% chance, Normal = 10%, Hard = 5% --- Unit Conversion chanse per scan: Easy = 16.5% chance, Normal = 10%, Hard = 5% - - - - ------------------------------ END ------------------------------------------- - -NE.QCCode = false --- Used for QC --- Displays messages used for checking my code - - - +local NE = NE_Buildings_Config +--[[--------------------------------------------------------------------------- +------------------------------------- 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. +Supercheese - Swarm Mod. +Afforess - Misanthrope Mod. +Orzelek - RSO, Coding help and answering questions! +ThaPear, Semvoz, Billw, Adil, Rseding91, Chlue - Coding help! +DySoch - DyTech, showing me what was possible +Bobingabout - Bob's Mods - Learned a lot from looking at your amazing work. +YuokiTani - Art!! Amazing work! + + +--------------------------------------------------------------------------- +--------------------------------------------------------------------------- +------------------------ On / Off Toggles --------------------------------- +--------------------------------------------------------------------------- +--- true = On / Yes +--- false = Off / No +-- NOTE -- When changing most of the below values, this will only affect new games, not existing games. +---------------------------------------------------------------------------]] + + +NE.LongReach = true +--- Long Reach +--- Do you want double the vanilla reach + +NE.Single_Player_Only = true +--- Some people have reported lag and crashes with MP. So if you do, set this to false if you're playing a MP and hopefully that should work. +--- You will not have any EVO_GUI info if set to false. + + +--- Alien_Control_Station settings +NE.Spawner_Search_Distance = 35 -- Radius +NE.Unit_Search_Distance = 25 -- Radius +NE.Conversion_Difficulty = Hard -- Easy , Normal or Hard +-- Spawner Conversion chanse per scan: Easy = 16.5% chance, Normal = 10%, Hard = 5% +-- Unit Conversion chanse per scan: Easy = 16.5% chance, Normal = 10%, Hard = 5% + + + + +----------------------------- END ------------------------------------------- + +NE.QCCode = false +-- Used for QC +-- Displays messages used for checking my code + + + diff --git a/Natural_Evolution_Buildings_6.3.0/control.lua b/Natural_Evolution_Buildings_6.3.1/control.lua similarity index 94% rename from Natural_Evolution_Buildings_6.3.0/control.lua rename to Natural_Evolution_Buildings_6.3.1/control.lua index cefac99..2fe0498 100644 --- a/Natural_Evolution_Buildings_6.3.0/control.lua +++ b/Natural_Evolution_Buildings_6.3.1/control.lua @@ -1,589 +1,599 @@ ----BUILDINGS - v.6.3.0 -if not NE_Buildings_Config then NE_Buildings_Config = {} end -if not NE_Buildings_Config.mod then NE_Buildings_Config.mod = {} end - ---require ("defines") -require ("util") -require ("config") -require ("libs/event") - -if NE_Buildings_Config.Single_Player_Only and remote.interfaces.EvoGUI then - require ("libs/EvoGUI") -end - - ----- Evolution_MOD -local update_com_count = 80 -local agro_area_rad = 40 -local call_back_area_rad = agro_area_rad + 15 -local max_unit_count = 20 -local max_terra_count = 30 - - ---------------------------------------------- - -script.on_event({defines.events.on_robot_built_entity,defines.events.on_built_entity,},function(event) On_Built(event) end) -script.on_event({defines.events.on_robot_pre_mined,defines.events.on_preplayer_mined_item,},function(event) On_Remove(event) end) -script.on_event(defines.events.on_entity_died,function(event) On_Death(event) end) - - - ---------------------------------------------- -script.on_event(defines.events.on_research_finished, function(event) - if event.research.name == "Alien_Training" then - for _, player in pairs(event.research.force.players) do - player.insert{name="attractor-off",count=1} - end - end -end) - - ---------------------------------------------- -function On_Init() - - ----- Evolution_MOD - if global.Evolution_MOD == nil then - global.Evolution_MOD = {} - end - - ---- Alien Control Initialization ---- - if not global.beacons then - global.beacons = {} - end - if not global.minds then - global.minds = {} - end - if not global.hiveminds then - global.hiveminds = {} -- Bases / Spawners - end - - --- Alien_Control_Station Difficulty settings - if NE_Buildings_Config.Conversion_Difficulty == Easy then - global.minds.difficulty = 3 -- Easy difficulty - elseif NE_Buildings_Config.Conversion_Difficulty == Normal then - global.minds.difficulty = 5 -- Normal - else global.minds.difficulty = 10 -- Hard - end - - ---- Terraforming Initialization ---- - if not global.numTerraformingStations then - global.numTerraformingStations = 0 - elseif global.numTerraformingStations < 0 then - global.numTerraformingStations = 0 - end - - if not global.factormultiplier then - global.factormultiplier = 0 - elseif global.factormultiplier < 0 then - global.factormultiplier = 0 - end - - if not global.Total_TerraformingStations_Evo_Deduction then - global.Total_TerraformingStations_Evo_Deduction = 0 - elseif global.Total_TerraformingStations_Evo_Deduction < 0 then - global.Total_TerraformingStations_Evo_Deduction = 0 - end - - - if global.Living_Walls_Table == nil then - global.Living_Walls_Table = {} - end - - -end - - ---------------------------------------------- -function On_Built(event) - -local entity = event.created_entity - - - --- Living Wall built - if entity and entity.name == "ne-living-wall" then - if global.Living_Walls_Table == nil then - global.Living_Walls_Table = {} - end - writeDebug("Living Wall has been built") - - local Created_L_Wall = event.created_entity - - table.insert(global.Living_Walls_Table, Created_L_Wall) - - end - - --- Terraforming Station has been built - if entity and entity.name == "TerraformingStation" then - - if global.numTerraformingStations < 0 then - global.numTerraformingStations = 0 - end - - global.numTerraformingStations = global.numTerraformingStations + 1 - - global.factormultiplier = GetFactorPerTerraformingStation(global.numTerraformingStations) - writeDebug("The the number of Terraforming Stations: " .. global.numTerraformingStations) - - end - - - --- Alien Control Station has been built - - - if entity and entity.name == "AlienControlStation_Area" then - local newAlienControlStation - local surface = event.created_entity.surface - local force = event.created_entity.force - - newAlienControlStation = surface.create_entity({name = "AlienControlStation", position = event.created_entity.position, force = force}) - event.created_entity.destroy() - - table.insert(global.beacons, newAlienControlStation) - end - - -end - - ---------------------------------------------- -function On_Remove(event) - --- Terraforming Station has been removed - if event.entity.name == "TerraformingStation" then - - if global.numTerraformingStations > 0 then - global.numTerraformingStations = global.numTerraformingStations - 1 - else - global.numTerraformingStations = 0 - end - - global.factormultiplier = GetFactorPerTerraformingStation(global.numTerraformingStations) - end - - --- Alien Control Station has been removed - if event.entity.name == "AlienControlStation" then - ACS_Remove() - end - - --- fully heal the items that need a refresh in the alien hatchery anyway to avoid having multiple item stacks for damaged items. - if event.name ~= defines.events.on_entity_died then - if ( - event.entity.name == "small-worm-turret-player" or - event.entity.name == "medium-worm-turret-player" or - event.entity.name == "big-worm-turret-player" or - event.entity.name == "Natural_Evolution_Biter-Spawner" or - event.entity.name == "Natural_Evolution_Spitter-Spawner" or - event.entity.name == "ne-living-wall" - ) then - event.entity.health = 100000 -- Note: Just needs to be higher or identical to maxhealth - end - end - -end - -function On_Death(event) - - --- Terraforming Station has been removed - if event.entity.name == "TerraformingStation" then - - if global.numTerraformingStations > 0 then - global.numTerraformingStations = global.numTerraformingStations - 1 - else - global.numTerraformingStations = 0 - end - - global.factormultiplier = GetFactorPerTerraformingStation(global.numTerraformingStations) - end - - --- Alien Control Station has been removed - if event.entity.name == "AlienControlStation" then - ACS_Remove() - end - - --------- Currently the Evolution Factor gets affected even if you or the enemy kills your Spawners. So this should help with that. - if (event.entity.type == "unit-spawner") then - if event.entity.force == game.forces.enemy then - writeDebug("Enemy Spawner Killed") - else - writeDebug("Friendly Spawner") - game.evolution_factor = game.evolution_factor - (game.map_settings.enemy_evolution.destroy_factor * (1-game.evolution_factor)^2) - end - - end -end - ----- Removes the Alien Control Station --- -function ACS_Remove(index) - - if index then - if global.beacons[index] and not global.beacons[index].valid then - table.remove(global.beacons, index) - return -- if an index was found and it's entity was not valid return after removing it - end - end - -- if no index was provided, or an inappropriate index was provided then loop through the table - - for k,beacon in ipairs(global.beacons) do - if not beacon.valid then - table.remove(global.beacons,k) - writeDebug("Alien Control Station Removed") - end - end - -end - - ---------------- Terraforming Station Calculations ------------------------------ -function GetFactorPerTerraformingStation(numTerraformingStations) - local res = 1 - -- Calculate the total evolution reduction. - if numTerraformingStations > 1 then - for i = 1, (numTerraformingStations-1) do - res = res + math.pow(0.85, i) -- Each consecutive Terraforming station is only 85% as effective. - end - end - - -- Return the evolution reduction per Terraforming Station. - return res / numTerraformingStations -end - - -----------------Radars Scanning Function, used by Terraforming Sataion and Thumper ----------------------------- -script.on_event(defines.events.on_sector_scanned, function(event) - - ---- Each time a Terraforming Station scans a sector, reduce the evolution factor ---- - if event.radar.name == "TerraformingStation" then - - reduction = ((0.00025 * global.factormultiplier) * game.evolution_factor * (1 - game.evolution_factor)) - if game.evolution_factor > reduction then - game.evolution_factor = game.evolution_factor - reduction - global.Total_TerraformingStations_Evo_Deduction = global.Total_TerraformingStations_Evo_Deduction + reduction - end - writeDebug("The current Factor Multiplier is: " .. global.factormultiplier) - writeDebug("The total Evolution Deduction due to Terraforming Stations is: " .. global.Total_TerraformingStations_Evo_Deduction) - - end - - - --- Each time a Thumper "Scans", it will attract biters in the area - if event.radar.name == "Thumper" then - event.radar.surface.set_multi_command{command = {type=defines.command.attack, target=event.radar, distraction=defines.distraction.by_enemy},unit_count = 10, unit_search_distance = 200} - writeDebug("Thumper Scanned, units should attack") - end - -end) - - ---------------- Alien Control Station --------------------------------- -function Control_Enemies() - - -- old code-- local surface = game.surfaces['nauvis'] - local enemyForce = game.forces.enemy - - for k,beacon in ipairs(global.beacons) do - if beacon.valid then - local surface = beacon.surface -- New Code - - if beacon.energy > 0 then - - local bases = surface.find_entities_filtered{type="unit-spawner", area=Get_Bounding_Box(beacon.position, NE_Buildings_Config.Spawner_Search_Distance)} --search area of thirty around each ACS for spawners - - if #bases > 0 then - for i, base in ipairs(bases) do - if base.force == (enemyForce) and math.random(global.minds.difficulty*2)==1 then --easy = 16.5% chance, normal = 10%, hard = 5% - Convert_Base(base, false, beacon.force) - end - end - else -- no bases in range - - for i, enemy in ipairs(surface.find_enemy_units(beacon.position, NE_Buildings_Config.Unit_Search_Distance)) do --search area of ten around each ACS - - if enemy.force == (enemyForce) then --do only if not already controlled - if math.random(global.minds.difficulty*2)==1 then --easy = 16.5% chance, normal = 10%, hard = 5% - enemy.force=beacon.force - enemy.set_command{type=defines.command.wander,distraction=defines.distraction.by_enemy} - table.insert(global.minds, enemy) - writeDebug("An Enemy has been Converted") - end - end - end - end - else - writeDebug("A Alien Control Station has no Power") - end - else - ACS_Remove() - end - end -end - - ---------------- Alien Control Station --------------------------------- -function Remove_Mind_Control() - - local surface = game.surfaces['nauvis'] --- Old Code Need to Fix - --local surface = mind.surface -- Needs Testing - local enemyForce = game.forces.enemy - - if global.beacons[1] then -- if there are valid beacons - for k,mind in ipairs (global.minds) do --remove mind control from biters not in area of influence - if not mind.valid then --first make sure the enemy is still valid, if not remove them - table.remove(global.minds, k) - else -- is valid - local controlled = false --assume out of range - if surface.find_entities_filtered{name="AlienControlStation", area=Get_Bounding_Box(mind.position, NE_Buildings_Config.Unit_Search_Distance)}[1] then --a AlienControlStation is in range - controlled = true - break - end - if not controlled then mind.force=enemyForce end - end - end - end -end - - ---------------- Alien Control Station --------------------------------- -function Convert_Base(base, died, newforce) - - local surface = game.surfaces['nauvis'] -- Old Code, need to fix - --local surface = base.surface - local enemies=Get_Bounding_Box(base.position, NE_Buildings_Config.Unit_Search_Distance) - local units={} - local hives={} - local worms={} - local count=0 - local count_worms=0 - local count_spawners=0 - local count_units=0 - enemies = surface.find_entities(enemies) - for i, enemy in ipairs(enemies) do - if enemy.type=="turret" and enemy.force == (enemyForce) then - table.insert(worms, enemy) - elseif enemy.type=="unit-spawner" then - table.insert(hives, enemy) - elseif enemy.type=="unit" then - table.insert(units, enemy) - end - end - - count=#units+#hives+#worms - count_worms=#worms - count_spawners=#hives - count_units=#units - - if count~=0 then -- prevent empty random interval - writeDebug("The number of Worms/Turrets in Range: " .. count_worms) - writeDebug("The number of Spawners in Range: " .. count_spawners) - writeDebug("The number of Units in Range: " .. count_units) - end - - if count~=0 and math.random(1+math.sqrt(count))==1 then - - if died then - table.insert(global.hiveminds, base.surface.create_entity{name=base.name, position=base.position, force=game.newforce}) - -- table.insert(global.hiveminds, game.create_entity{name=base.name, position=base.position, force=game.newforce}) --- Old Code --- game.create_entity issue - end - - for _, worm in pairs(worms) do - worm.force=newforce - writeDebug("Turret/Worm Converted") - end - - for _, hive in pairs(hives) do - hive.force=newforce - table.insert(global.hiveminds, hive) - writeDebug("Spawner Converted") - end - - for _, unit in pairs(units) do - - unit.force=newforce - unit.set_command{type=defines.command.wander, distraction=defines.distraction.by_enemy} - -- remove mind controlled biters in range from the minds table - -- so they aren't converted back into enemies when wandering away from the beacon - for i, controlled in ipairs(global.minds) do - if unit == (controlled) then - table.remove(global.minds, i) - break - end - end - end - end -end - ---------------------------------------------- -function Get_Bounding_Box(position, radius) - return {{position.x-radius, position.y-radius}, {position.x+radius,position.y+radius}} -end - - --------------------------------------------- - - ----- Living Wall Stuff -Event.register(defines.events.on_tick, function(event) - - if game.tick % 60 == 0 and global.Living_Walls_Table ~= nil then - - for k,Living_Wall in pairs(global.Living_Walls_Table) do - if Living_Wall.valid then - local LW_Health = Living_Wall.health - local Regen = 0.5 - if LW_Health < 600 then - New_LW_Health = LW_Health + Regen - Living_Wall.health = New_LW_Health - end - else - table.remove(global.Living_Walls_Table, k) - end - end - end - - -end) - - - -Event.register(defines.events.on_tick, function(event) - - - -- check for biters within Alien Control Station's range - if (game.tick % (60 * 6) == 0) and global.beacons[1] then - - Remove_Mind_Control() --free out of range biters - Control_Enemies() --control newly in range biters - - end -end) - -Event.register(defines.events.on_tick, function(event) - -- Evolution_MOD - - if event.tick % update_com_count == 0 then - for index, player in pairs(game.players) do - if player.connected and player.character then - UpdateUnitsCommands(index) - end - end - end - -end) - - ---------------------------------------------- ----- Evolution_MOD -function UpdateUnitsCommands(player_index) - - local player = game.players[player_index] - local pos = player.position - local aggression_area = {{pos.x - agro_area_rad, pos.y - agro_area_rad}, {pos.x + agro_area_rad, pos.y + agro_area_rad}} - if not player.surface.valid then return end - local min_dist = agro_area_rad + 10; - local closest_index = -1 - local surface = player.surface - - local attOn = player.get_item_count("attractor-on") - local attOff = player.get_item_count("attractor-off") - local lastState = nil - if global.Evolution_MOD[player.name] and global.Evolution_MOD[player.name].lastState then - lastState = global.Evolution_MOD[player.name].lastState - else - if global.Evolution_MOD[player.name] == nil then - global.Evolution_MOD[player.name] = {} - end - global.Evolution_MOD[player.name].lastState = nil - end - - if attOn > 0 and attOff == 0 then - if attOn > 1 then - player.remove_item({name="attractor-on", count=(attOn - 1)}) - end - lastState = "on" - elseif attOn == 0 and attOff > 0 then - if attOff > 1 then - player.remove_item({name="attractor-off", count=(attOff - 1)}) - end - lastState = "off" - elseif attOn > 0 and attOff > 0 then - if lastState ~= nil and lastState == "off" then - player.remove_item({name="attractor-off", count=attOff}) - if attOn > 1 then - player.remove_item({name="attractor-on", count=(attOn - 1)}) - end - lastState = "on" - else - player.remove_item({name="attractor-on", count=attOn}) - if attOn > 1 then - player.remove_item({name="attractor-on", count=(attOn - 1)}) - end - lastState = "off" - end - else - lastState = "off" - end - global.Evolution_MOD[player.name].lastState = lastState - - if lastState == "off" then return end - - local targets = player.surface.find_entities(aggression_area) - - for index, target in ipairs(targets) do - if target.health then - if target.force == game.forces.enemy and target.type ~= "turret" and target.type ~= "unit" then - local dist = GetDistance(target.position, pos) - if min_dist > dist then - min_dist = dist - closest_index = index - end - end - end - end - - local unit_count = 0 - if closest_index == -1 then - local call_back_area = {{pos.x - call_back_area_rad, pos.y - call_back_area_rad}, {pos.x + call_back_area_rad, pos.y + call_back_area_rad}} - local biters = surface.find_entities_filtered{area = call_back_area, type = "unit"} - for index, biter in ipairs(biters) do - if biter.force == (player.force) then - biter.set_command({type = defines.command.go_to_location, destination = pos, radius = 10, distraction = defines.distraction.byanything}); - unit_count = unit_count + 1 - - end - if unit_count > max_unit_count then return end - end - else - local call_back_area = {{pos.x - call_back_area_rad, pos.y - call_back_area_rad}, {pos.x + call_back_area_rad, pos.y + call_back_area_rad}} - local biters = player.surface.find_entities_filtered{area = call_back_area, type = "unit"} - for index, biter in ipairs(biters) do - if biter.force == player.force then - biter.set_command({type = defines.command.attack, target = targets[closest_index], distraction = defines.distraction.byanything}); - unit_count = unit_count + 1 - end - if unit_count > max_unit_count then return end - end - end -end - - ---------------------------------------------- -function GetDistance(pos1 , pos2) - return math.sqrt((pos1.x - pos2.x)^2 + (pos1.y - pos2.y)^2) -end - - ---------------------------------------------- -script.on_init(On_Init) ---script.on_load(On_Load) -script.on_configuration_changed(On_Load) - - ---------------------------------------------- - ---- DeBug Messages -function writeDebug(message) - if NE_Buildings_Config.QCCode then - for i, player in pairs(game.players) do - player.print(tostring(message)) - end - end -end +---BUILDINGS - v.6.3.1 +if not NE_Buildings_Config then NE_Buildings_Config = {} end +if not NE_Buildings_Config.mod then NE_Buildings_Config.mod = {} end + +--require ("defines") +require ("util") +require ("config") +require ("libs/event") + +if NE_Buildings_Config.Single_Player_Only and remote.interfaces.EvoGUI then + require ("libs/EvoGUI") +end + + +---- Evolution_MOD +local update_com_count = 80 +local agro_area_rad = 40 +local call_back_area_rad = agro_area_rad + 15 +local max_unit_count = 20 +local max_terra_count = 30 + + +--------------------------------------------- + +script.on_event({defines.events.on_robot_built_entity,defines.events.on_built_entity,},function(event) On_Built(event) end) +script.on_event({defines.events.on_robot_pre_mined,defines.events.on_preplayer_mined_item,},function(event) On_Remove(event) end) +script.on_event(defines.events.on_entity_died,function(event) On_Death(event) end) + + + +--------------------------------------------- +script.on_event(defines.events.on_research_finished, function(event) + if event.research.name == "Alien_Training" then + for _, player in pairs(event.research.force.players) do + player.insert{name="attractor-off",count=1} + end + end +end) + + +--------------------------------------------- +function On_Init() + + +---- Evolution_MOD + if global.Evolution_MOD == nil then + global.Evolution_MOD = {} + end + + ---- Alien Control Initialization ---- + if not global.beacons then + global.beacons = {} + end + if not global.minds then + global.minds = {} + end + if not global.hiveminds then + global.hiveminds = {} -- Bases / Spawners + end + + --- Alien_Control_Station Difficulty settings + if NE_Buildings_Config.Conversion_Difficulty == Easy then + global.minds.difficulty = 3 -- Easy difficulty + elseif NE_Buildings_Config.Conversion_Difficulty == Normal then + global.minds.difficulty = 5 -- Normal + else global.minds.difficulty = 10 -- Hard + end + + ---- Terraforming Initialization ---- + if not global.numTerraformingStations then + global.numTerraformingStations = 0 + elseif global.numTerraformingStations < 0 then + global.numTerraformingStations = 0 + end + + if not global.factormultiplier then + global.factormultiplier = 0 + elseif global.factormultiplier < 0 then + global.factormultiplier = 0 + end + + if not global.Total_TerraformingStations_Evo_Deduction then + global.Total_TerraformingStations_Evo_Deduction = 0 + elseif global.Total_TerraformingStations_Evo_Deduction < 0 then + global.Total_TerraformingStations_Evo_Deduction = 0 + end + + + if global.Living_Walls_Table == nil then + global.Living_Walls_Table = {} + end + + +end + + +--------------------------------------------- +function On_Built(event) + +local entity = event.created_entity + + + --- Living Wall built + if entity and entity.name == "ne-living-wall" then + if global.Living_Walls_Table == nil then + global.Living_Walls_Table = {} + end + writeDebug("Living Wall has been built") + + local Created_L_Wall = event.created_entity + + table.insert(global.Living_Walls_Table, Created_L_Wall) + + end + + --- Terraforming Station has been built + if entity and entity.name == "TerraformingStation" then + + if global.numTerraformingStations < 0 then + global.numTerraformingStations = 0 + end + + global.numTerraformingStations = global.numTerraformingStations + 1 + + global.factormultiplier = GetFactorPerTerraformingStation(global.numTerraformingStations) + writeDebug("The the number of Terraforming Stations: " .. global.numTerraformingStations) + + end + + + --- Alien Control Station has been built + + + if entity and entity.name == "AlienControlStation_Area" then + local newAlienControlStation + local surface = event.created_entity.surface + local force = event.created_entity.force + + newAlienControlStation = surface.create_entity({name = "AlienControlStation", position = event.created_entity.position, force = force}) + event.created_entity.destroy() + + table.insert(global.beacons, newAlienControlStation) + end + + +end + + +--------------------------------------------- +function On_Remove(event) + --- Terraforming Station has been removed + if event.entity.name == "TerraformingStation" then + + if global.numTerraformingStations > 0 then + global.numTerraformingStations = global.numTerraformingStations - 1 + else + global.numTerraformingStations = 0 + end + + global.factormultiplier = GetFactorPerTerraformingStation(global.numTerraformingStations) + end + + --- Alien Control Station has been removed + if event.entity.name == "AlienControlStation" then + ACS_Remove() + end + + --- fully heal the items that need a refresh in the alien hatchery anyway to avoid having multiple item stacks for damaged items. + if event.name ~= defines.events.on_entity_died then + if ( + event.entity.name == "small-worm-turret-player" or + event.entity.name == "medium-worm-turret-player" or + event.entity.name == "big-worm-turret-player" or + event.entity.name == "Natural_Evolution_Biter-Spawner" or + event.entity.name == "Natural_Evolution_Spitter-Spawner" or + event.entity.name == "ne-living-wall" + ) then + event.entity.health = 100000 -- Note: Just needs to be higher or identical to maxhealth + end + end + +end + +function On_Death(event) + + --- Terraforming Station has been removed + if event.entity.name == "TerraformingStation" then + + if global.numTerraformingStations > 0 then + global.numTerraformingStations = global.numTerraformingStations - 1 + else + global.numTerraformingStations = 0 + end + + global.factormultiplier = GetFactorPerTerraformingStation(global.numTerraformingStations) + end + + --- Alien Control Station has been removed + if event.entity.name == "AlienControlStation" then + ACS_Remove() + end + + --------- Currently the Evolution Factor gets affected even if you or the enemy kills your Spawners. So this should help with that. + if (event.entity.type == "unit-spawner") then + if event.entity.force == game.forces.enemy then + writeDebug("Enemy Spawner Killed") + else + writeDebug("Friendly Spawner") + game.evolution_factor = game.evolution_factor - (game.map_settings.enemy_evolution.destroy_factor * (1-game.evolution_factor)^2) + end + + end +end + +---- Removes the Alien Control Station --- +function ACS_Remove(index) + + if index then + if global.beacons[index] and not global.beacons[index].valid then + table.remove(global.beacons, index) + return -- if an index was found and it's entity was not valid return after removing it + end + end + -- if no index was provided, or an inappropriate index was provided then loop through the table + + for k,beacon in ipairs(global.beacons) do + if not beacon.valid then + table.remove(global.beacons,k) + writeDebug("Alien Control Station Removed") + end + end + +end + + +--------------- Terraforming Station Calculations ------------------------------ +function GetFactorPerTerraformingStation(numTerraformingStations) + local res = 1 + -- Calculate the total evolution reduction. + if numTerraformingStations > 1 then + for i = 1, (numTerraformingStations-1) do + res = res + math.pow(0.85, i) -- Each consecutive Terraforming station is only 85% as effective. + end + end + + -- Return the evolution reduction per Terraforming Station. + return res / numTerraformingStations +end + + +----------------Radars Scanning Function, used by Terraforming Sataion and Thumper ----------------------------- +script.on_event(defines.events.on_sector_scanned, function(event) + + ---- Each time a Terraforming Station scans a sector, reduce the evolution factor ---- + if event.radar.name == "TerraformingStation" then + + reduction = ((0.00025 * global.factormultiplier) * (1 - game.evolution_factor) * (1 - game.evolution_factor)) + reduction95 = ((0.00025 * global.factormultiplier) * (1 - 0.95) * (1 - 0.95)) + + if game.evolution_factor > 0.95 and game.evolution_factor > reduction95 then + + game.evolution_factor = game.evolution_factor - reduction95 + global.Total_TerraformingStations_Evo_Deduction = global.Total_TerraformingStations_Evo_Deduction + reduction95 + + elseif game.evolution_factor > reduction then + + game.evolution_factor = game.evolution_factor - reduction + global.Total_TerraformingStations_Evo_Deduction = global.Total_TerraformingStations_Evo_Deduction + reduction + + end + + writeDebug("The current Factor Multiplier is: " .. global.factormultiplier) + writeDebug("The total Evolution Deduction due to Terraforming Stations is: " .. global.Total_TerraformingStations_Evo_Deduction) + + end + + + --- Each time a Thumper "Scans", it will attract biters in the area + if event.radar.name == "Thumper" then + event.radar.surface.set_multi_command{command = {type=defines.command.attack, target=event.radar, distraction=defines.distraction.by_enemy},unit_count = 10, unit_search_distance = 200} + writeDebug("Thumper Scanned, units should attack") + end + +end) + + +--------------- Alien Control Station --------------------------------- +function Control_Enemies() + + -- old code-- local surface = game.surfaces['nauvis'] + local enemyForce = game.forces.enemy + + for k,beacon in ipairs(global.beacons) do + if beacon.valid then + local surface = beacon.surface -- New Code + + if beacon.energy > 0 then + + local bases = surface.find_entities_filtered{type="unit-spawner", area=Get_Bounding_Box(beacon.position, NE_Buildings_Config.Spawner_Search_Distance)} --search area of thirty around each ACS for spawners + + if #bases > 0 then + for i, base in ipairs(bases) do + if base.force == (enemyForce) and math.random(global.minds.difficulty*2)==1 then --easy = 16.5% chance, normal = 10%, hard = 5% + Convert_Base(base, false, beacon.force) + end + end + else -- no bases in range + + for i, enemy in ipairs(surface.find_enemy_units(beacon.position, NE_Buildings_Config.Unit_Search_Distance)) do --search area of ten around each ACS + + if enemy.force == (enemyForce) then --do only if not already controlled + if math.random(global.minds.difficulty*2)==1 then --easy = 16.5% chance, normal = 10%, hard = 5% + enemy.force=beacon.force + enemy.set_command{type=defines.command.wander,distraction=defines.distraction.by_enemy} + table.insert(global.minds, enemy) + writeDebug("An Enemy has been Converted") + end + end + end + end + else + writeDebug("A Alien Control Station has no Power") + end + else + ACS_Remove() + end + end +end + + +--------------- Alien Control Station --------------------------------- +function Remove_Mind_Control() + + local surface = game.surfaces['nauvis'] --- Old Code Need to Fix + --local surface = mind.surface -- Needs Testing + local enemyForce = game.forces.enemy + + if global.beacons[1] then -- if there are valid beacons + for k,mind in ipairs (global.minds) do --remove mind control from biters not in area of influence + if not mind.valid then --first make sure the enemy is still valid, if not remove them + table.remove(global.minds, k) + else -- is valid + local controlled = false --assume out of range + if surface.find_entities_filtered{name="AlienControlStation", area=Get_Bounding_Box(mind.position, NE_Buildings_Config.Unit_Search_Distance)}[1] then --a AlienControlStation is in range + controlled = true + break + end + if not controlled then mind.force=enemyForce end + end + end + end +end + + +--------------- Alien Control Station --------------------------------- +function Convert_Base(base, died, newforce) + + local surface = game.surfaces['nauvis'] -- Old Code, need to fix + --local surface = base.surface + local enemies=Get_Bounding_Box(base.position, NE_Buildings_Config.Unit_Search_Distance) + local units={} + local hives={} + local worms={} + local count=0 + local count_worms=0 + local count_spawners=0 + local count_units=0 + enemies = surface.find_entities(enemies) + for i, enemy in ipairs(enemies) do + if enemy.type=="turret" and enemy.force == (enemyForce) then + table.insert(worms, enemy) + elseif enemy.type=="unit-spawner" then + table.insert(hives, enemy) + elseif enemy.type=="unit" then + table.insert(units, enemy) + end + end + + count=#units+#hives+#worms + count_worms=#worms + count_spawners=#hives + count_units=#units + + if count~=0 then -- prevent empty random interval + writeDebug("The number of Worms/Turrets in Range: " .. count_worms) + writeDebug("The number of Spawners in Range: " .. count_spawners) + writeDebug("The number of Units in Range: " .. count_units) + end + + if count~=0 and math.random(1+math.sqrt(count))==1 then + + if died then + table.insert(global.hiveminds, base.surface.create_entity{name=base.name, position=base.position, force=game.newforce}) + -- table.insert(global.hiveminds, game.create_entity{name=base.name, position=base.position, force=game.newforce}) --- Old Code --- game.create_entity issue + end + + for _, worm in pairs(worms) do + worm.force=newforce + writeDebug("Turret/Worm Converted") + end + + for _, hive in pairs(hives) do + hive.force=newforce + table.insert(global.hiveminds, hive) + writeDebug("Spawner Converted") + end + + for _, unit in pairs(units) do + + unit.force=newforce + unit.set_command{type=defines.command.wander, distraction=defines.distraction.by_enemy} + -- remove mind controlled biters in range from the minds table + -- so they aren't converted back into enemies when wandering away from the beacon + for i, controlled in ipairs(global.minds) do + if unit == (controlled) then + table.remove(global.minds, i) + break + end + end + end + end +end + +--------------------------------------------- +function Get_Bounding_Box(position, radius) + return {{position.x-radius, position.y-radius}, {position.x+radius,position.y+radius}} +end + + +-------------------------------------------- + + +---- Living Wall Stuff +Event.register(defines.events.on_tick, function(event) + + if game.tick % 60 == 0 and global.Living_Walls_Table ~= nil then + + for k,Living_Wall in pairs(global.Living_Walls_Table) do + if Living_Wall.valid then + local LW_Health = Living_Wall.health + local Regen = 0.5 + if LW_Health < 600 then + New_LW_Health = LW_Health + Regen + Living_Wall.health = New_LW_Health + end + else + table.remove(global.Living_Walls_Table, k) + end + end + end + + +end) + + + +Event.register(defines.events.on_tick, function(event) + + + -- check for biters within Alien Control Station's range + if (game.tick % (60 * 6) == 0) and global.beacons[1] then + + Remove_Mind_Control() --free out of range biters + Control_Enemies() --control newly in range biters + + end +end) + +Event.register(defines.events.on_tick, function(event) + -- Evolution_MOD + + if event.tick % update_com_count == 0 then + for index, player in pairs(game.players) do + if player.connected and player.character then + UpdateUnitsCommands(index) + end + end + end + +end) + + +--------------------------------------------- +---- Evolution_MOD +function UpdateUnitsCommands(player_index) + + local player = game.players[player_index] + local pos = player.position + local aggression_area = {{pos.x - agro_area_rad, pos.y - agro_area_rad}, {pos.x + agro_area_rad, pos.y + agro_area_rad}} + if not player.surface.valid then return end + local min_dist = agro_area_rad + 10; + local closest_index = -1 + local surface = player.surface + + local attOn = player.get_item_count("attractor-on") + local attOff = player.get_item_count("attractor-off") + local lastState = nil + if global.Evolution_MOD[player.name] and global.Evolution_MOD[player.name].lastState then + lastState = global.Evolution_MOD[player.name].lastState + else + if global.Evolution_MOD[player.name] == nil then + global.Evolution_MOD[player.name] = {} + end + global.Evolution_MOD[player.name].lastState = nil + end + + if attOn > 0 and attOff == 0 then + if attOn > 1 then + player.remove_item({name="attractor-on", count=(attOn - 1)}) + end + lastState = "on" + elseif attOn == 0 and attOff > 0 then + if attOff > 1 then + player.remove_item({name="attractor-off", count=(attOff - 1)}) + end + lastState = "off" + elseif attOn > 0 and attOff > 0 then + if lastState ~= nil and lastState == "off" then + player.remove_item({name="attractor-off", count=attOff}) + if attOn > 1 then + player.remove_item({name="attractor-on", count=(attOn - 1)}) + end + lastState = "on" + else + player.remove_item({name="attractor-on", count=attOn}) + if attOn > 1 then + player.remove_item({name="attractor-on", count=(attOn - 1)}) + end + lastState = "off" + end + else + lastState = "off" + end + global.Evolution_MOD[player.name].lastState = lastState + + if lastState == "off" then return end + + local targets = player.surface.find_entities(aggression_area) + + for index, target in ipairs(targets) do + if target.health then + if target.force == game.forces.enemy and target.type ~= "turret" and target.type ~= "unit" then + local dist = GetDistance(target.position, pos) + if min_dist > dist then + min_dist = dist + closest_index = index + end + end + end + end + + local unit_count = 0 + if closest_index == -1 then + local call_back_area = {{pos.x - call_back_area_rad, pos.y - call_back_area_rad}, {pos.x + call_back_area_rad, pos.y + call_back_area_rad}} + local biters = surface.find_entities_filtered{area = call_back_area, type = "unit"} + for index, biter in ipairs(biters) do + if biter.force == (player.force) then + biter.set_command({type = defines.command.go_to_location, destination = pos, radius = 10, distraction = defines.distraction.byanything}); + unit_count = unit_count + 1 + + end + if unit_count > max_unit_count then return end + end + else + local call_back_area = {{pos.x - call_back_area_rad, pos.y - call_back_area_rad}, {pos.x + call_back_area_rad, pos.y + call_back_area_rad}} + local biters = player.surface.find_entities_filtered{area = call_back_area, type = "unit"} + for index, biter in ipairs(biters) do + if biter.force == player.force then + biter.set_command({type = defines.command.attack, target = targets[closest_index], distraction = defines.distraction.byanything}); + unit_count = unit_count + 1 + end + if unit_count > max_unit_count then return end + end + end +end + + +--------------------------------------------- +function GetDistance(pos1 , pos2) + return math.sqrt((pos1.x - pos2.x)^2 + (pos1.y - pos2.y)^2) +end + + +--------------------------------------------- +script.on_init(On_Init) +--script.on_load(On_Load) +script.on_configuration_changed(On_Load) + + +--------------------------------------------- + +--- DeBug Messages +function writeDebug(message) + if NE_Buildings_Config.QCCode then + for i, player in pairs(game.players) do + player.print(tostring(message)) + end + end +end diff --git a/Natural_Evolution_Buildings_6.3.0/data-updates.lua b/Natural_Evolution_Buildings_6.3.1/data-updates.lua similarity index 98% rename from Natural_Evolution_Buildings_6.3.0/data-updates.lua rename to Natural_Evolution_Buildings_6.3.1/data-updates.lua index 6b368b2..47104a5 100644 --- a/Natural_Evolution_Buildings_6.3.0/data-updates.lua +++ b/Natural_Evolution_Buildings_6.3.1/data-updates.lua @@ -1,128 +1,128 @@ - -if not thxbob then thxbob = {} end -if not thxbob.lib then thxbob.lib = {} end - -if not NE_Buildings_Config then NE_Buildings_Config = {} end -if not NE_Buildings_Config.mod then NE_Buildings_Config.mod = {} end -if not NE_Functions then NE_Functions = {} end - -require ("config") -require ("libs.detectmod") --Detect supported Mods, Bob's Enemies and others -require ("libs.legacy") -- From Bob's Libary -require ("libs.item-functions") -- From Bob's Libary -require ("libs.recipe-functions") -- From Bob's Libary -require ("libs.technology-functions") -- From Bob's Libary - - ---- Got tierd of reaching limits... -if NE_Buildings_Config.LongReach or NE_Buildings_Config.QCCode then - if data.raw.player.player.build_distance < 24 then - data.raw.player.player.build_distance = 24 - data.raw.player.player.reach_distance = 20 - data.raw.player.player.reach_resource_distance = 20 - data.raw.player.player.drop_item_distance = 20 - end -end - ------ Update the Alien Atrifact Graphic -data.raw.item["alien-artifact"].icon = "__Natural_Evolution_Buildings__/graphics/icons/alien-artifact.png" - - --- Make it so that you can mine spawners & worms, since you are able to convert them, you can now remove them. -data.raw["unit-spawner"]["biter-spawner"].minable = {hardness = 1.5, mining_time = 1.6, results = {{type="item", name="Natural_Evolution_Biter-Spawner-exhausted", amount=1},}} -data.raw["unit-spawner"]["spitter-spawner"].minable = {hardness = 1.5, mining_time = 1.6, results = {{type="item", name="Natural_Evolution_Spitter-Spawner-exhausted", amount=1},}} -data.raw["turret"]["small-worm-turret"].minable = {hardness = 0.5, mining_time = 1.6, results = {{type="item", name="small-worm-hatching-exhausted", amount=1},}} -data.raw["turret"]["medium-worm-turret"].minable = {hardness = 1.0, mining_time = 1.6, results = {{type="item", name="medium-worm-hatching-exhausted", amount=1},}} -data.raw["turret"]["big-worm-turret"].minable = {hardness = 1.5, mining_time = 1.6, results = {{type="item", name="big-worm-hatching-exhausted", amount=1},}} - - -if NE_Buildings_Config.mod.BobEnemies then - data.raw["unit-spawner"]["bob-biter-spawner"].minable = {hardness = 1.5, mining_time = 1.6, results = {{type="item", name="Natural_Evolution_Biter-Spawner-exhausted", amount=1},}} - data.raw["unit-spawner"]["bob-spitter-spawner"].minable = {hardness = 1.5, mining_time = 1.6, results = {{type="item", name="Natural_Evolution_Spitter-Spawner-exhausted", amount=1},}} - data.raw["turret"]["bob-big-explosive-worm-turret"].minable = {hardness = 1.5, mining_time = 1.6, results = {{type="item", name="big-worm-hatching-exhausted", amount=1},}} - data.raw["turret"]["bob-big-fire-worm-turret"].minable = {hardness = 1.5, mining_time = 1.6, results = {{type="item", name="big-worm-hatching-exhausted", amount=1},}} - data.raw["turret"]["bob-big-poison-worm-turret"].minable = {hardness = 1.5, mining_time = 1.6, results = {{type="item", name="big-worm-hatching-exhausted", amount=1},}} -end - - ---- Adjust N.E. Building spawners to N.E. Enemy Settings -if NE_Buildings_Config.mod.NEEnemies then - - -- Natural Evolution Biter Spawner Adjustments - data.raw["unit-spawner"]["Natural_Evolution_Biter-Spawner"].max_count_of_owned_units = data.raw["unit-spawner"]["biter-spawner"].max_count_of_owned_units - data.raw["unit-spawner"]["Natural_Evolution_Biter-Spawner"].max_friends_around_to_spawn = data.raw["unit-spawner"]["biter-spawner"].max_friends_around_to_spawn - data.raw["unit-spawner"]["Natural_Evolution_Biter-Spawner"].spawning_cooldown = data.raw["unit-spawner"]["biter-spawner"].spawning_cooldown - data.raw["unit-spawner"]["Natural_Evolution_Biter-Spawner"].max_health = data.raw["unit-spawner"]["biter-spawner"].max_health - data.raw["unit-spawner"]["Natural_Evolution_Biter-Spawner"].spawning_radius = data.raw["unit-spawner"]["biter-spawner"].spawning_radius - data.raw["unit-spawner"]["Natural_Evolution_Biter-Spawner"].spawning_spacing = data.raw["unit-spawner"]["biter-spawner"].spawning_spacing - data.raw["unit-spawner"]["Natural_Evolution_Biter-Spawner"].max_spawn_shift = data.raw["unit-spawner"]["biter-spawner"].max_spawn_shift - data.raw["unit-spawner"]["Natural_Evolution_Biter-Spawner"].pollution_absorbtion_proportional = data.raw["unit-spawner"]["biter-spawner"].pollution_absorbtion_proportional - data.raw["unit-spawner"]["Natural_Evolution_Biter-Spawner"].pollution_absorbtion_absolute = data.raw["unit-spawner"]["biter-spawner"].pollution_absorbtion_absolute - - - -- Natural Evolution Spitter Spawner Adjustments - data.raw["unit-spawner"]["Natural_Evolution_Spitter-Spawner"].max_count_of_owned_units = data.raw["unit-spawner"]["spitter-spawner"].max_count_of_owned_units - data.raw["unit-spawner"]["Natural_Evolution_Spitter-Spawner"].max_friends_around_to_spawn = data.raw["unit-spawner"]["spitter-spawner"].max_friends_around_to_spawn - data.raw["unit-spawner"]["Natural_Evolution_Spitter-Spawner"].spawning_cooldown = data.raw["unit-spawner"]["spitter-spawner"].spawning_cooldown - data.raw["unit-spawner"]["Natural_Evolution_Spitter-Spawner"].max_health = data.raw["unit-spawner"]["spitter-spawner"].max_health - data.raw["unit-spawner"]["Natural_Evolution_Spitter-Spawner"].spawning_radius = data.raw["unit-spawner"]["spitter-spawner"].spawning_radius - data.raw["unit-spawner"]["Natural_Evolution_Spitter-Spawner"].spawning_spacing = data.raw["unit-spawner"]["spitter-spawner"].spawning_spacing - data.raw["unit-spawner"]["Natural_Evolution_Spitter-Spawner"].max_spawn_shift = data.raw["unit-spawner"]["spitter-spawner"].max_spawn_shift - data.raw["unit-spawner"]["Natural_Evolution_Spitter-Spawner"].pollution_absorbtion_proportional = data.raw["unit-spawner"]["spitter-spawner"].pollution_absorbtion_proportional - data.raw["unit-spawner"]["Natural_Evolution_Spitter-Spawner"].pollution_absorbtion_absolute = data.raw["unit-spawner"]["spitter-spawner"].pollution_absorbtion_absolute - - -end - - -if NE_Buildings_Config.mod.NEEnemies then - - - ----- Adds in Building Materials and Thumper to Tech Tree, since Alien Understanding Tech is in both Buildings and Enemies. - ---- Make sure that the Artifact-collector and Biological-bullet-magazine are present, since the tech is in NE Enemies and NE Buildings. - thxbob.lib.add_technology_recipe ("AlienUnderstanding", "Artifact-collector") - thxbob.lib.add_technology_recipe ("AlienUnderstanding-2", "Biological-bullet-magazine") - -end - - -thxbob.lib.add_technology_recipe ("AlienUnderstanding", "ne-combat-inserter") ---log("Resistances before") ---log(serpent.block(data.raw.inserter["combat-inserter"].resistances)) - --- Adds a resitance of all damage types to an entity -for k, v in pairs(data.raw["damage-type"]) do - local Resist = {type = v.name, percent = 70} -- or you could use k, and not v.name - - if data.raw.inserter["combat-inserter"].resistances == nil then - data.raw.inserter["combat-inserter"].resistances = {} - table.insert(data.raw.inserter["combat-inserter"].resistances, Resist) - else - local found = false - for _, resistance in pairs(data.raw.inserter["combat-inserter"].resistances) do - if resistance.type == Resist.type and resistance.percent then - if resistance.percent < Resist.percent then - resistance.percent = Resist.percent - end - found = true - end - end - - if not found then - table.insert(data.raw.inserter["combat-inserter"].resistances, Resist) - end - end -end - - ---log("Resistances after") - ---log(serpent.block(data.raw.inserter["combat-inserter"].resistances)) - - - - - - - - + +if not thxbob then thxbob = {} end +if not thxbob.lib then thxbob.lib = {} end + +if not NE_Buildings_Config then NE_Buildings_Config = {} end +if not NE_Buildings_Config.mod then NE_Buildings_Config.mod = {} end +if not NE_Functions then NE_Functions = {} end + +require ("config") +require ("libs.detectmod") --Detect supported Mods, Bob's Enemies and others +require ("libs.legacy") -- From Bob's Libary +require ("libs.item-functions") -- From Bob's Libary +require ("libs.recipe-functions") -- From Bob's Libary +require ("libs.technology-functions") -- From Bob's Libary + + +--- Got tierd of reaching limits... +if NE_Buildings_Config.LongReach or NE_Buildings_Config.QCCode then + if data.raw.player.player.build_distance < 24 then + data.raw.player.player.build_distance = 24 + data.raw.player.player.reach_distance = 20 + data.raw.player.player.reach_resource_distance = 20 + data.raw.player.player.drop_item_distance = 20 + end +end + +----- Update the Alien Atrifact Graphic +data.raw.item["alien-artifact"].icon = "__Natural_Evolution_Buildings__/graphics/icons/alien-artifact.png" + + +-- Make it so that you can mine spawners & worms, since you are able to convert them, you can now remove them. +data.raw["unit-spawner"]["biter-spawner"].minable = {hardness = 1.5, mining_time = 1.6, results = {{type="item", name="Natural_Evolution_Biter-Spawner-exhausted", amount=1},}} +data.raw["unit-spawner"]["spitter-spawner"].minable = {hardness = 1.5, mining_time = 1.6, results = {{type="item", name="Natural_Evolution_Spitter-Spawner-exhausted", amount=1},}} +data.raw["turret"]["small-worm-turret"].minable = {hardness = 0.5, mining_time = 1.6, results = {{type="item", name="small-worm-hatching-exhausted", amount=1},}} +data.raw["turret"]["medium-worm-turret"].minable = {hardness = 1.0, mining_time = 1.6, results = {{type="item", name="medium-worm-hatching-exhausted", amount=1},}} +data.raw["turret"]["big-worm-turret"].minable = {hardness = 1.5, mining_time = 1.6, results = {{type="item", name="big-worm-hatching-exhausted", amount=1},}} + + +if NE_Buildings_Config.mod.BobEnemies then + data.raw["unit-spawner"]["bob-biter-spawner"].minable = {hardness = 1.5, mining_time = 1.6, results = {{type="item", name="Natural_Evolution_Biter-Spawner-exhausted", amount=1},}} + data.raw["unit-spawner"]["bob-spitter-spawner"].minable = {hardness = 1.5, mining_time = 1.6, results = {{type="item", name="Natural_Evolution_Spitter-Spawner-exhausted", amount=1},}} + data.raw["turret"]["bob-big-explosive-worm-turret"].minable = {hardness = 1.5, mining_time = 1.6, results = {{type="item", name="big-worm-hatching-exhausted", amount=1},}} + data.raw["turret"]["bob-big-fire-worm-turret"].minable = {hardness = 1.5, mining_time = 1.6, results = {{type="item", name="big-worm-hatching-exhausted", amount=1},}} + data.raw["turret"]["bob-big-poison-worm-turret"].minable = {hardness = 1.5, mining_time = 1.6, results = {{type="item", name="big-worm-hatching-exhausted", amount=1},}} +end + + +--- Adjust N.E. Building spawners to N.E. Enemy Settings +if NE_Buildings_Config.mod.NEEnemies then + + -- Natural Evolution Biter Spawner Adjustments + data.raw["unit-spawner"]["Natural_Evolution_Biter-Spawner"].max_count_of_owned_units = data.raw["unit-spawner"]["biter-spawner"].max_count_of_owned_units + data.raw["unit-spawner"]["Natural_Evolution_Biter-Spawner"].max_friends_around_to_spawn = data.raw["unit-spawner"]["biter-spawner"].max_friends_around_to_spawn + data.raw["unit-spawner"]["Natural_Evolution_Biter-Spawner"].spawning_cooldown = data.raw["unit-spawner"]["biter-spawner"].spawning_cooldown + data.raw["unit-spawner"]["Natural_Evolution_Biter-Spawner"].max_health = data.raw["unit-spawner"]["biter-spawner"].max_health + data.raw["unit-spawner"]["Natural_Evolution_Biter-Spawner"].spawning_radius = data.raw["unit-spawner"]["biter-spawner"].spawning_radius + data.raw["unit-spawner"]["Natural_Evolution_Biter-Spawner"].spawning_spacing = data.raw["unit-spawner"]["biter-spawner"].spawning_spacing + data.raw["unit-spawner"]["Natural_Evolution_Biter-Spawner"].max_spawn_shift = data.raw["unit-spawner"]["biter-spawner"].max_spawn_shift + data.raw["unit-spawner"]["Natural_Evolution_Biter-Spawner"].pollution_absorbtion_proportional = data.raw["unit-spawner"]["biter-spawner"].pollution_absorbtion_proportional + data.raw["unit-spawner"]["Natural_Evolution_Biter-Spawner"].pollution_absorbtion_absolute = data.raw["unit-spawner"]["biter-spawner"].pollution_absorbtion_absolute + + + -- Natural Evolution Spitter Spawner Adjustments + data.raw["unit-spawner"]["Natural_Evolution_Spitter-Spawner"].max_count_of_owned_units = data.raw["unit-spawner"]["spitter-spawner"].max_count_of_owned_units + data.raw["unit-spawner"]["Natural_Evolution_Spitter-Spawner"].max_friends_around_to_spawn = data.raw["unit-spawner"]["spitter-spawner"].max_friends_around_to_spawn + data.raw["unit-spawner"]["Natural_Evolution_Spitter-Spawner"].spawning_cooldown = data.raw["unit-spawner"]["spitter-spawner"].spawning_cooldown + data.raw["unit-spawner"]["Natural_Evolution_Spitter-Spawner"].max_health = data.raw["unit-spawner"]["spitter-spawner"].max_health + data.raw["unit-spawner"]["Natural_Evolution_Spitter-Spawner"].spawning_radius = data.raw["unit-spawner"]["spitter-spawner"].spawning_radius + data.raw["unit-spawner"]["Natural_Evolution_Spitter-Spawner"].spawning_spacing = data.raw["unit-spawner"]["spitter-spawner"].spawning_spacing + data.raw["unit-spawner"]["Natural_Evolution_Spitter-Spawner"].max_spawn_shift = data.raw["unit-spawner"]["spitter-spawner"].max_spawn_shift + data.raw["unit-spawner"]["Natural_Evolution_Spitter-Spawner"].pollution_absorbtion_proportional = data.raw["unit-spawner"]["spitter-spawner"].pollution_absorbtion_proportional + data.raw["unit-spawner"]["Natural_Evolution_Spitter-Spawner"].pollution_absorbtion_absolute = data.raw["unit-spawner"]["spitter-spawner"].pollution_absorbtion_absolute + + +end + + +if NE_Buildings_Config.mod.NEEnemies then + + + ----- Adds in Building Materials and Thumper to Tech Tree, since Alien Understanding Tech is in both Buildings and Enemies. + ---- Make sure that the Artifact-collector and Biological-bullet-magazine are present, since the tech is in NE Enemies and NE Buildings. + thxbob.lib.add_technology_recipe ("AlienUnderstanding", "Artifact-collector") + thxbob.lib.add_technology_recipe ("AlienUnderstanding-2", "Biological-bullet-magazine") + +end + + +thxbob.lib.add_technology_recipe ("AlienUnderstanding", "ne-combat-inserter") +--log("Resistances before") +--log(serpent.block(data.raw.inserter["combat-inserter"].resistances)) + +-- Adds a resitance of all damage types to an entity +for k, v in pairs(data.raw["damage-type"]) do + local Resist = {type = v.name, percent = 70} -- or you could use k, and not v.name + + if data.raw.inserter["combat-inserter"].resistances == nil then + data.raw.inserter["combat-inserter"].resistances = {} + table.insert(data.raw.inserter["combat-inserter"].resistances, Resist) + else + local found = false + for _, resistance in pairs(data.raw.inserter["combat-inserter"].resistances) do + if resistance.type == Resist.type and resistance.percent then + if resistance.percent < Resist.percent then + resistance.percent = Resist.percent + end + found = true + end + end + + if not found then + table.insert(data.raw.inserter["combat-inserter"].resistances, Resist) + end + end +end + + +--log("Resistances after") + +--log(serpent.block(data.raw.inserter["combat-inserter"].resistances)) + + + + + + + + diff --git a/Natural_Evolution_Buildings_6.3.0/data.lua b/Natural_Evolution_Buildings_6.3.1/data.lua similarity index 96% rename from Natural_Evolution_Buildings_6.3.0/data.lua rename to Natural_Evolution_Buildings_6.3.1/data.lua index f39a3e0..8e18152 100644 --- a/Natural_Evolution_Buildings_6.3.0/data.lua +++ b/Natural_Evolution_Buildings_6.3.1/data.lua @@ -1,76 +1,76 @@ - -if not thxbob then thxbob = {} end -if not thxbob.lib then thxbob.lib = {} end - -if not NE_Buildings_Config then NE_Buildings_Config = {} end -if not NE_Buildings_Config.mod then NE_Buildings_Config.mod = {} end -if not NE_Functions then NE_Functions = {} end - -require ("config") -require ("libs.NE_Functions") -require ("libs.legacy") -- From Bob's Libary -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("prototypes.Technology.technology") -require("prototypes.Item-Groups.item-groups") -require("prototypes.Categories.recipe-category") ---------------------------------------------------------------- - - - --- Alien_Hatchery - -require("prototypes.Alien_Hatchery.entity") -require("prototypes.Alien_Hatchery.item") -require("prototypes.Alien_Hatchery.fluid") -require("prototypes.Alien_Hatchery.recipe") -require("prototypes.Alien_Hatchery.biters") -require("prototypes.Alien_Hatchery.spawner") -require("prototypes.Alien_Hatchery.spitters") -require("prototypes.Alien_Hatchery.worms") - - - ---------------------------------------------------------------- - - --- Alien Control Station - -require("prototypes.Alien_Control_Station.entity") -require("prototypes.Alien_Control_Station.item") -require("prototypes.Alien_Control_Station.recipe") ---------------------------------------------------------------- - - --- Terraforming Station - -require("prototypes.Terraforming_Station.entity") -require("prototypes.Terraforming_Station.item") -require("prototypes.Terraforming_Station.recipe") ---------------------------------------------------------------- - - --- Thumper - -require("prototypes.Thumper.entity") -require("prototypes.Thumper.item") -require("prototypes.Thumper.recipe") ---------------------------------------------------------------- - - - --- Combat Inserter - -require("prototypes.Combat_Inserter.entity") -require("prototypes.Combat_Inserter.item") -require("prototypes.Combat_Inserter.recipe") ---------------------------------------------------------------- - - --- Other - Building Materials, Attractors & Damage Type - -require("prototypes.Other.item") -require("prototypes.Other.recipe") -require("prototypes.Other.damage-type") ---------------------------------------------------------------- - - - - + +if not thxbob then thxbob = {} end +if not thxbob.lib then thxbob.lib = {} end + +if not NE_Buildings_Config then NE_Buildings_Config = {} end +if not NE_Buildings_Config.mod then NE_Buildings_Config.mod = {} end +if not NE_Functions then NE_Functions = {} end + +require ("config") +require ("libs.NE_Functions") +require ("libs.legacy") -- From Bob's Libary +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("prototypes.Technology.technology") +require("prototypes.Item-Groups.item-groups") +require("prototypes.Categories.recipe-category") +--------------------------------------------------------------- + + + --- Alien_Hatchery + +require("prototypes.Alien_Hatchery.entity") +require("prototypes.Alien_Hatchery.item") +require("prototypes.Alien_Hatchery.fluid") +require("prototypes.Alien_Hatchery.recipe") +require("prototypes.Alien_Hatchery.biters") +require("prototypes.Alien_Hatchery.spawner") +require("prototypes.Alien_Hatchery.spitters") +require("prototypes.Alien_Hatchery.worms") + + + +--------------------------------------------------------------- + + --- Alien Control Station + +require("prototypes.Alien_Control_Station.entity") +require("prototypes.Alien_Control_Station.item") +require("prototypes.Alien_Control_Station.recipe") +--------------------------------------------------------------- + + --- Terraforming Station + +require("prototypes.Terraforming_Station.entity") +require("prototypes.Terraforming_Station.item") +require("prototypes.Terraforming_Station.recipe") +--------------------------------------------------------------- + + --- Thumper + +require("prototypes.Thumper.entity") +require("prototypes.Thumper.item") +require("prototypes.Thumper.recipe") +--------------------------------------------------------------- + + + --- Combat Inserter + +require("prototypes.Combat_Inserter.entity") +require("prototypes.Combat_Inserter.item") +require("prototypes.Combat_Inserter.recipe") +--------------------------------------------------------------- + + --- Other - Building Materials, Attractors & Damage Type + +require("prototypes.Other.item") +require("prototypes.Other.recipe") +require("prototypes.Other.damage-type") +--------------------------------------------------------------- + + + + diff --git a/Natural_Evolution_Buildings_6.3.0/graphics/entity/AlienControlStation.png b/Natural_Evolution_Buildings_6.3.1/graphics/entity/AlienControlStation.png similarity index 100% rename from Natural_Evolution_Buildings_6.3.0/graphics/entity/AlienControlStation.png rename to Natural_Evolution_Buildings_6.3.1/graphics/entity/AlienControlStation.png diff --git a/Natural_Evolution_Buildings_6.3.0/graphics/entity/AlienControlStation_Area.png b/Natural_Evolution_Buildings_6.3.1/graphics/entity/AlienControlStation_Area.png similarity index 100% rename from Natural_Evolution_Buildings_6.3.0/graphics/entity/AlienControlStation_Area.png rename to Natural_Evolution_Buildings_6.3.1/graphics/entity/AlienControlStation_Area.png diff --git a/Natural_Evolution_Buildings_6.3.0/graphics/entity/AlienControlStation_Area_5_Green.png b/Natural_Evolution_Buildings_6.3.1/graphics/entity/AlienControlStation_Area_5_Green.png similarity index 100% rename from Natural_Evolution_Buildings_6.3.0/graphics/entity/AlienControlStation_Area_5_Green.png rename to Natural_Evolution_Buildings_6.3.1/graphics/entity/AlienControlStation_Area_5_Green.png diff --git a/Natural_Evolution_Buildings_6.3.0/graphics/entity/AlienControlStation_Area_5_Red.png b/Natural_Evolution_Buildings_6.3.1/graphics/entity/AlienControlStation_Area_5_Red.png similarity index 100% rename from Natural_Evolution_Buildings_6.3.0/graphics/entity/AlienControlStation_Area_5_Red.png rename to Natural_Evolution_Buildings_6.3.1/graphics/entity/AlienControlStation_Area_5_Red.png diff --git a/Natural_Evolution_Buildings_6.3.0/graphics/entity/Alien_Hatchery.png b/Natural_Evolution_Buildings_6.3.1/graphics/entity/Alien_Hatchery.png similarity index 100% rename from Natural_Evolution_Buildings_6.3.0/graphics/entity/Alien_Hatchery.png rename to Natural_Evolution_Buildings_6.3.1/graphics/entity/Alien_Hatchery.png diff --git a/Natural_Evolution_Buildings_6.3.0/graphics/entity/TerraformingStation.png b/Natural_Evolution_Buildings_6.3.1/graphics/entity/TerraformingStation.png similarity index 100% rename from Natural_Evolution_Buildings_6.3.0/graphics/entity/TerraformingStation.png rename to Natural_Evolution_Buildings_6.3.1/graphics/entity/TerraformingStation.png diff --git a/Natural_Evolution_Buildings_6.3.0/graphics/entity/Thumper.png b/Natural_Evolution_Buildings_6.3.1/graphics/entity/Thumper.png similarity index 100% rename from Natural_Evolution_Buildings_6.3.0/graphics/entity/Thumper.png rename to Natural_Evolution_Buildings_6.3.1/graphics/entity/Thumper.png diff --git a/Natural_Evolution_Buildings_6.3.0/graphics/entity/attractor_off.png b/Natural_Evolution_Buildings_6.3.1/graphics/entity/attractor_off.png similarity index 100% rename from Natural_Evolution_Buildings_6.3.0/graphics/entity/attractor_off.png rename to Natural_Evolution_Buildings_6.3.1/graphics/entity/attractor_off.png diff --git a/Natural_Evolution_Buildings_6.3.0/graphics/entity/attractor_off_64.png b/Natural_Evolution_Buildings_6.3.1/graphics/entity/attractor_off_64.png similarity index 100% rename from Natural_Evolution_Buildings_6.3.0/graphics/entity/attractor_off_64.png rename to Natural_Evolution_Buildings_6.3.1/graphics/entity/attractor_off_64.png diff --git a/Natural_Evolution_Buildings_6.3.0/graphics/entity/attractor_on.png b/Natural_Evolution_Buildings_6.3.1/graphics/entity/attractor_on.png similarity index 100% rename from Natural_Evolution_Buildings_6.3.0/graphics/entity/attractor_on.png rename to Natural_Evolution_Buildings_6.3.1/graphics/entity/attractor_on.png diff --git a/Natural_Evolution_Buildings_6.3.0/graphics/entity/attractor_on_64.png b/Natural_Evolution_Buildings_6.3.1/graphics/entity/attractor_on_64.png similarity index 100% rename from Natural_Evolution_Buildings_6.3.0/graphics/entity/attractor_on_64.png rename to Natural_Evolution_Buildings_6.3.1/graphics/entity/attractor_on_64.png diff --git a/Natural_Evolution_Buildings_6.3.0/graphics/entity/combat-inserter/inserter-hand-base.png b/Natural_Evolution_Buildings_6.3.1/graphics/entity/combat-inserter/inserter-hand-base.png similarity index 100% rename from Natural_Evolution_Buildings_6.3.0/graphics/entity/combat-inserter/inserter-hand-base.png rename to Natural_Evolution_Buildings_6.3.1/graphics/entity/combat-inserter/inserter-hand-base.png diff --git a/Natural_Evolution_Buildings_6.3.0/graphics/entity/combat-inserter/inserter-hand-closed.png b/Natural_Evolution_Buildings_6.3.1/graphics/entity/combat-inserter/inserter-hand-closed.png similarity index 100% rename from Natural_Evolution_Buildings_6.3.0/graphics/entity/combat-inserter/inserter-hand-closed.png rename to Natural_Evolution_Buildings_6.3.1/graphics/entity/combat-inserter/inserter-hand-closed.png diff --git a/Natural_Evolution_Buildings_6.3.0/graphics/entity/combat-inserter/inserter-hand-open.png b/Natural_Evolution_Buildings_6.3.1/graphics/entity/combat-inserter/inserter-hand-open.png similarity index 100% rename from Natural_Evolution_Buildings_6.3.0/graphics/entity/combat-inserter/inserter-hand-open.png rename to Natural_Evolution_Buildings_6.3.1/graphics/entity/combat-inserter/inserter-hand-open.png diff --git a/Natural_Evolution_Buildings_6.3.0/graphics/entity/combat-inserter/inserter-platform.png b/Natural_Evolution_Buildings_6.3.1/graphics/entity/combat-inserter/inserter-platform.png similarity index 100% rename from Natural_Evolution_Buildings_6.3.0/graphics/entity/combat-inserter/inserter-platform.png rename to Natural_Evolution_Buildings_6.3.1/graphics/entity/combat-inserter/inserter-platform.png diff --git a/Natural_Evolution_Buildings_6.3.0/graphics/entity/livingwall/biowall-cr-variant-1.png b/Natural_Evolution_Buildings_6.3.1/graphics/entity/livingwall/biowall-cr-variant-1.png similarity index 100% rename from Natural_Evolution_Buildings_6.3.0/graphics/entity/livingwall/biowall-cr-variant-1.png rename to Natural_Evolution_Buildings_6.3.1/graphics/entity/livingwall/biowall-cr-variant-1.png diff --git a/Natural_Evolution_Buildings_6.3.0/graphics/entity/livingwall/biowall-cr-variant-2.png b/Natural_Evolution_Buildings_6.3.1/graphics/entity/livingwall/biowall-cr-variant-2.png similarity index 100% rename from Natural_Evolution_Buildings_6.3.0/graphics/entity/livingwall/biowall-cr-variant-2.png rename to Natural_Evolution_Buildings_6.3.1/graphics/entity/livingwall/biowall-cr-variant-2.png diff --git a/Natural_Evolution_Buildings_6.3.0/graphics/entity/livingwall/biowall-cr-variant-3.png b/Natural_Evolution_Buildings_6.3.1/graphics/entity/livingwall/biowall-cr-variant-3.png similarity index 100% rename from Natural_Evolution_Buildings_6.3.0/graphics/entity/livingwall/biowall-cr-variant-3.png rename to Natural_Evolution_Buildings_6.3.1/graphics/entity/livingwall/biowall-cr-variant-3.png diff --git a/Natural_Evolution_Buildings_6.3.0/graphics/entity/livingwall/biowall-cr-variant-4.png b/Natural_Evolution_Buildings_6.3.1/graphics/entity/livingwall/biowall-cr-variant-4.png similarity index 100% rename from Natural_Evolution_Buildings_6.3.0/graphics/entity/livingwall/biowall-cr-variant-4.png rename to Natural_Evolution_Buildings_6.3.1/graphics/entity/livingwall/biowall-cr-variant-4.png diff --git a/Natural_Evolution_Buildings_6.3.0/graphics/entity/livingwall/biowall-cr-variant-5.png b/Natural_Evolution_Buildings_6.3.1/graphics/entity/livingwall/biowall-cr-variant-5.png similarity index 100% rename from Natural_Evolution_Buildings_6.3.0/graphics/entity/livingwall/biowall-cr-variant-5.png rename to Natural_Evolution_Buildings_6.3.1/graphics/entity/livingwall/biowall-cr-variant-5.png diff --git a/Natural_Evolution_Buildings_6.3.0/graphics/entity/livingwall/biowall-cr-variant-6.png b/Natural_Evolution_Buildings_6.3.1/graphics/entity/livingwall/biowall-cr-variant-6.png similarity index 100% rename from Natural_Evolution_Buildings_6.3.0/graphics/entity/livingwall/biowall-cr-variant-6.png rename to Natural_Evolution_Buildings_6.3.1/graphics/entity/livingwall/biowall-cr-variant-6.png diff --git a/Natural_Evolution_Buildings_6.3.1/graphics/entity/livingwall/biowall-h-variant-1.png b/Natural_Evolution_Buildings_6.3.1/graphics/entity/livingwall/biowall-h-variant-1.png new file mode 100644 index 0000000..f17c38b Binary files /dev/null and b/Natural_Evolution_Buildings_6.3.1/graphics/entity/livingwall/biowall-h-variant-1.png differ diff --git a/Natural_Evolution_Buildings_6.3.1/graphics/entity/livingwall/biowall-h-variant-2.png b/Natural_Evolution_Buildings_6.3.1/graphics/entity/livingwall/biowall-h-variant-2.png new file mode 100644 index 0000000..7c45454 Binary files /dev/null and b/Natural_Evolution_Buildings_6.3.1/graphics/entity/livingwall/biowall-h-variant-2.png differ diff --git a/Natural_Evolution_Buildings_6.3.1/graphics/entity/livingwall/biowall-h-variant-3.png b/Natural_Evolution_Buildings_6.3.1/graphics/entity/livingwall/biowall-h-variant-3.png new file mode 100644 index 0000000..d0fe8e0 Binary files /dev/null and b/Natural_Evolution_Buildings_6.3.1/graphics/entity/livingwall/biowall-h-variant-3.png differ diff --git a/Natural_Evolution_Buildings_6.3.1/graphics/entity/livingwall/biowall-h-variant-4.png b/Natural_Evolution_Buildings_6.3.1/graphics/entity/livingwall/biowall-h-variant-4.png new file mode 100644 index 0000000..3bdf5b1 Binary files /dev/null and b/Natural_Evolution_Buildings_6.3.1/graphics/entity/livingwall/biowall-h-variant-4.png differ diff --git a/Natural_Evolution_Buildings_6.3.1/graphics/entity/livingwall/biowall-h-variant-5.png b/Natural_Evolution_Buildings_6.3.1/graphics/entity/livingwall/biowall-h-variant-5.png new file mode 100644 index 0000000..36a1b8a Binary files /dev/null and b/Natural_Evolution_Buildings_6.3.1/graphics/entity/livingwall/biowall-h-variant-5.png differ diff --git a/Natural_Evolution_Buildings_6.3.1/graphics/entity/livingwall/biowall-h-variant-6.png b/Natural_Evolution_Buildings_6.3.1/graphics/entity/livingwall/biowall-h-variant-6.png new file mode 100644 index 0000000..e417880 Binary files /dev/null and b/Natural_Evolution_Buildings_6.3.1/graphics/entity/livingwall/biowall-h-variant-6.png differ diff --git a/Natural_Evolution_Buildings_6.3.0/graphics/entity/livingwall/biowall-single.png b/Natural_Evolution_Buildings_6.3.1/graphics/entity/livingwall/biowall-single.png similarity index 100% rename from Natural_Evolution_Buildings_6.3.0/graphics/entity/livingwall/biowall-single.png rename to Natural_Evolution_Buildings_6.3.1/graphics/entity/livingwall/biowall-single.png diff --git a/Natural_Evolution_Buildings_6.3.0/graphics/entity/livingwall/biowall-variant-1.png b/Natural_Evolution_Buildings_6.3.1/graphics/entity/livingwall/biowall-variant-1.png similarity index 100% rename from Natural_Evolution_Buildings_6.3.0/graphics/entity/livingwall/biowall-variant-1.png rename to Natural_Evolution_Buildings_6.3.1/graphics/entity/livingwall/biowall-variant-1.png diff --git a/Natural_Evolution_Buildings_6.3.0/graphics/entity/livingwall/biowall-variant-2.png b/Natural_Evolution_Buildings_6.3.1/graphics/entity/livingwall/biowall-variant-2.png similarity index 100% rename from Natural_Evolution_Buildings_6.3.0/graphics/entity/livingwall/biowall-variant-2.png rename to Natural_Evolution_Buildings_6.3.1/graphics/entity/livingwall/biowall-variant-2.png diff --git a/Natural_Evolution_Buildings_6.3.0/graphics/entity/livingwall/biowall-variant-3.png b/Natural_Evolution_Buildings_6.3.1/graphics/entity/livingwall/biowall-variant-3.png similarity index 100% rename from Natural_Evolution_Buildings_6.3.0/graphics/entity/livingwall/biowall-variant-3.png rename to Natural_Evolution_Buildings_6.3.1/graphics/entity/livingwall/biowall-variant-3.png diff --git a/Natural_Evolution_Buildings_6.3.0/graphics/entity/livingwall/biowall-variant-4.png b/Natural_Evolution_Buildings_6.3.1/graphics/entity/livingwall/biowall-variant-4.png similarity index 100% rename from Natural_Evolution_Buildings_6.3.0/graphics/entity/livingwall/biowall-variant-4.png rename to Natural_Evolution_Buildings_6.3.1/graphics/entity/livingwall/biowall-variant-4.png diff --git a/Natural_Evolution_Buildings_6.3.0/graphics/entity/livingwall/biowall-variant-5.png b/Natural_Evolution_Buildings_6.3.1/graphics/entity/livingwall/biowall-variant-5.png similarity index 100% rename from Natural_Evolution_Buildings_6.3.0/graphics/entity/livingwall/biowall-variant-5.png rename to Natural_Evolution_Buildings_6.3.1/graphics/entity/livingwall/biowall-variant-5.png diff --git a/Natural_Evolution_Buildings_6.3.0/graphics/entity/livingwall/biowall-variant-6.png b/Natural_Evolution_Buildings_6.3.1/graphics/entity/livingwall/biowall-variant-6.png similarity index 100% rename from Natural_Evolution_Buildings_6.3.0/graphics/entity/livingwall/biowall-variant-6.png rename to Natural_Evolution_Buildings_6.3.1/graphics/entity/livingwall/biowall-variant-6.png diff --git a/Natural_Evolution_Buildings_6.3.0/graphics/icons/AlienControlStation.png b/Natural_Evolution_Buildings_6.3.1/graphics/icons/AlienControlStation.png similarity index 100% rename from Natural_Evolution_Buildings_6.3.0/graphics/icons/AlienControlStation.png rename to Natural_Evolution_Buildings_6.3.1/graphics/icons/AlienControlStation.png diff --git a/Natural_Evolution_Buildings_6.3.0/graphics/icons/AlienControlStation_32.png b/Natural_Evolution_Buildings_6.3.1/graphics/icons/AlienControlStation_32.png similarity index 100% rename from Natural_Evolution_Buildings_6.3.0/graphics/icons/AlienControlStation_32.png rename to Natural_Evolution_Buildings_6.3.1/graphics/icons/AlienControlStation_32.png diff --git a/Natural_Evolution_Buildings_6.3.0/graphics/icons/AlienUnderstanding.png b/Natural_Evolution_Buildings_6.3.1/graphics/icons/AlienUnderstanding.png similarity index 100% rename from Natural_Evolution_Buildings_6.3.0/graphics/icons/AlienUnderstanding.png rename to Natural_Evolution_Buildings_6.3.1/graphics/icons/AlienUnderstanding.png diff --git a/Natural_Evolution_Buildings_6.3.0/graphics/icons/Alien_Hatchery.png b/Natural_Evolution_Buildings_6.3.1/graphics/icons/Alien_Hatchery.png similarity index 100% rename from Natural_Evolution_Buildings_6.3.0/graphics/icons/Alien_Hatchery.png rename to Natural_Evolution_Buildings_6.3.1/graphics/icons/Alien_Hatchery.png diff --git a/Natural_Evolution_Buildings_6.3.0/graphics/icons/Alien_Hatchery_32.png b/Natural_Evolution_Buildings_6.3.1/graphics/icons/Alien_Hatchery_32.png similarity index 100% rename from Natural_Evolution_Buildings_6.3.0/graphics/icons/Alien_Hatchery_32.png rename to Natural_Evolution_Buildings_6.3.1/graphics/icons/Alien_Hatchery_32.png diff --git a/Natural_Evolution_Buildings_6.3.0/graphics/icons/Biological-bullet-magazine.png b/Natural_Evolution_Buildings_6.3.1/graphics/icons/Biological-bullet-magazine.png similarity index 100% rename from Natural_Evolution_Buildings_6.3.0/graphics/icons/Biological-bullet-magazine.png rename to Natural_Evolution_Buildings_6.3.1/graphics/icons/Biological-bullet-magazine.png diff --git a/Natural_Evolution_Buildings_6.3.0/graphics/icons/Building_Materials.png b/Natural_Evolution_Buildings_6.3.1/graphics/icons/Building_Materials.png similarity index 100% rename from Natural_Evolution_Buildings_6.3.0/graphics/icons/Building_Materials.png rename to Natural_Evolution_Buildings_6.3.1/graphics/icons/Building_Materials.png diff --git a/Natural_Evolution_Buildings_6.3.0/graphics/icons/TerraformingStation.png b/Natural_Evolution_Buildings_6.3.1/graphics/icons/TerraformingStation.png similarity index 100% rename from Natural_Evolution_Buildings_6.3.0/graphics/icons/TerraformingStation.png rename to Natural_Evolution_Buildings_6.3.1/graphics/icons/TerraformingStation.png diff --git a/Natural_Evolution_Buildings_6.3.0/graphics/icons/Thumper.png b/Natural_Evolution_Buildings_6.3.1/graphics/icons/Thumper.png similarity index 100% rename from Natural_Evolution_Buildings_6.3.0/graphics/icons/Thumper.png rename to Natural_Evolution_Buildings_6.3.1/graphics/icons/Thumper.png diff --git a/Natural_Evolution_Buildings_6.3.0/graphics/icons/alien-artifact.png b/Natural_Evolution_Buildings_6.3.1/graphics/icons/alien-artifact.png similarity index 100% rename from Natural_Evolution_Buildings_6.3.0/graphics/icons/alien-artifact.png rename to Natural_Evolution_Buildings_6.3.1/graphics/icons/alien-artifact.png diff --git a/Natural_Evolution_Buildings_6.3.0/graphics/icons/behemoth-spitter_32.png b/Natural_Evolution_Buildings_6.3.1/graphics/icons/behemoth-spitter_32.png similarity index 100% rename from Natural_Evolution_Buildings_6.3.0/graphics/icons/behemoth-spitter_32.png rename to Natural_Evolution_Buildings_6.3.1/graphics/icons/behemoth-spitter_32.png diff --git a/Natural_Evolution_Buildings_6.3.0/graphics/icons/big-spitter_32.png b/Natural_Evolution_Buildings_6.3.1/graphics/icons/big-spitter_32.png similarity index 100% rename from Natural_Evolution_Buildings_6.3.0/graphics/icons/big-spitter_32.png rename to Natural_Evolution_Buildings_6.3.1/graphics/icons/big-spitter_32.png diff --git a/Natural_Evolution_Buildings_6.3.0/graphics/icons/big-worm-r.png b/Natural_Evolution_Buildings_6.3.1/graphics/icons/big-worm-r.png similarity index 100% rename from Natural_Evolution_Buildings_6.3.0/graphics/icons/big-worm-r.png rename to Natural_Evolution_Buildings_6.3.1/graphics/icons/big-worm-r.png diff --git a/Natural_Evolution_Buildings_6.3.0/graphics/icons/big-worm.png b/Natural_Evolution_Buildings_6.3.1/graphics/icons/big-worm.png similarity index 100% rename from Natural_Evolution_Buildings_6.3.0/graphics/icons/big-worm.png rename to Natural_Evolution_Buildings_6.3.1/graphics/icons/big-worm.png diff --git a/Natural_Evolution_Buildings_6.3.0/graphics/icons/biter-spawner-exhausted.png b/Natural_Evolution_Buildings_6.3.1/graphics/icons/biter-spawner-exhausted.png similarity index 100% rename from Natural_Evolution_Buildings_6.3.0/graphics/icons/biter-spawner-exhausted.png rename to Natural_Evolution_Buildings_6.3.1/graphics/icons/biter-spawner-exhausted.png diff --git a/Natural_Evolution_Buildings_6.3.0/graphics/icons/biter-spawner-r.png b/Natural_Evolution_Buildings_6.3.1/graphics/icons/biter-spawner-r.png similarity index 100% rename from Natural_Evolution_Buildings_6.3.0/graphics/icons/biter-spawner-r.png rename to Natural_Evolution_Buildings_6.3.1/graphics/icons/biter-spawner-r.png diff --git a/Natural_Evolution_Buildings_6.3.0/graphics/icons/biter-spawner.png b/Natural_Evolution_Buildings_6.3.1/graphics/icons/biter-spawner.png similarity index 100% rename from Natural_Evolution_Buildings_6.3.0/graphics/icons/biter-spawner.png rename to Natural_Evolution_Buildings_6.3.1/graphics/icons/biter-spawner.png diff --git a/Natural_Evolution_Buildings_6.3.0/graphics/icons/combat_inserter.png b/Natural_Evolution_Buildings_6.3.1/graphics/icons/combat_inserter.png similarity index 100% rename from Natural_Evolution_Buildings_6.3.0/graphics/icons/combat_inserter.png rename to Natural_Evolution_Buildings_6.3.1/graphics/icons/combat_inserter.png diff --git a/Natural_Evolution_Buildings_6.3.0/graphics/icons/fluid/alien-revitalization.png b/Natural_Evolution_Buildings_6.3.1/graphics/icons/fluid/alien-revitalization.png similarity index 100% rename from Natural_Evolution_Buildings_6.3.0/graphics/icons/fluid/alien-revitalization.png rename to Natural_Evolution_Buildings_6.3.1/graphics/icons/fluid/alien-revitalization.png diff --git a/Natural_Evolution_Buildings_6.3.0/graphics/icons/fluid/alien-revitalization_toxin.png b/Natural_Evolution_Buildings_6.3.1/graphics/icons/fluid/alien-revitalization_toxin.png similarity index 100% rename from Natural_Evolution_Buildings_6.3.0/graphics/icons/fluid/alien-revitalization_toxin.png rename to Natural_Evolution_Buildings_6.3.1/graphics/icons/fluid/alien-revitalization_toxin.png diff --git a/Natural_Evolution_Buildings_6.3.0/graphics/icons/fluid/alien-toxin.png b/Natural_Evolution_Buildings_6.3.1/graphics/icons/fluid/alien-toxin.png similarity index 100% rename from Natural_Evolution_Buildings_6.3.0/graphics/icons/fluid/alien-toxin.png rename to Natural_Evolution_Buildings_6.3.1/graphics/icons/fluid/alien-toxin.png diff --git a/Natural_Evolution_Buildings_6.3.0/graphics/icons/fluid/basic-alien-nutrientant.png b/Natural_Evolution_Buildings_6.3.1/graphics/icons/fluid/basic-alien-nutrientant.png similarity index 100% rename from Natural_Evolution_Buildings_6.3.0/graphics/icons/fluid/basic-alien-nutrientant.png rename to Natural_Evolution_Buildings_6.3.1/graphics/icons/fluid/basic-alien-nutrientant.png diff --git a/Natural_Evolution_Buildings_6.3.0/graphics/icons/fluid/enhanced-alien-nutrientant.png b/Natural_Evolution_Buildings_6.3.1/graphics/icons/fluid/enhanced-alien-nutrientant.png similarity index 100% rename from Natural_Evolution_Buildings_6.3.0/graphics/icons/fluid/enhanced-alien-nutrientant.png rename to Natural_Evolution_Buildings_6.3.1/graphics/icons/fluid/enhanced-alien-nutrientant.png diff --git a/Natural_Evolution_Buildings_6.3.0/graphics/icons/fluid/enhanced-alien-nutrientant_toxin.png b/Natural_Evolution_Buildings_6.3.1/graphics/icons/fluid/enhanced-alien-nutrientant_toxin.png similarity index 100% rename from Natural_Evolution_Buildings_6.3.0/graphics/icons/fluid/enhanced-alien-nutrientant_toxin.png rename to Natural_Evolution_Buildings_6.3.1/graphics/icons/fluid/enhanced-alien-nutrientant_toxin.png diff --git a/Natural_Evolution_Buildings_6.3.0/graphics/icons/living_wall-r.png b/Natural_Evolution_Buildings_6.3.1/graphics/icons/living_wall-r.png similarity index 100% rename from Natural_Evolution_Buildings_6.3.0/graphics/icons/living_wall-r.png rename to Natural_Evolution_Buildings_6.3.1/graphics/icons/living_wall-r.png diff --git a/Natural_Evolution_Buildings_6.3.0/graphics/icons/living_wall.png b/Natural_Evolution_Buildings_6.3.1/graphics/icons/living_wall.png similarity index 100% rename from Natural_Evolution_Buildings_6.3.0/graphics/icons/living_wall.png rename to Natural_Evolution_Buildings_6.3.1/graphics/icons/living_wall.png diff --git a/Natural_Evolution_Buildings_6.3.0/graphics/icons/living_wall_exhausted.png b/Natural_Evolution_Buildings_6.3.1/graphics/icons/living_wall_exhausted.png similarity index 100% rename from Natural_Evolution_Buildings_6.3.0/graphics/icons/living_wall_exhausted.png rename to Natural_Evolution_Buildings_6.3.1/graphics/icons/living_wall_exhausted.png diff --git a/Natural_Evolution_Buildings_6.3.0/graphics/icons/medium-spitter_32.png b/Natural_Evolution_Buildings_6.3.1/graphics/icons/medium-spitter_32.png similarity index 100% rename from Natural_Evolution_Buildings_6.3.0/graphics/icons/medium-spitter_32.png rename to Natural_Evolution_Buildings_6.3.1/graphics/icons/medium-spitter_32.png diff --git a/Natural_Evolution_Buildings_6.3.0/graphics/icons/medium-worm-r.png b/Natural_Evolution_Buildings_6.3.1/graphics/icons/medium-worm-r.png similarity index 100% rename from Natural_Evolution_Buildings_6.3.0/graphics/icons/medium-worm-r.png rename to Natural_Evolution_Buildings_6.3.1/graphics/icons/medium-worm-r.png diff --git a/Natural_Evolution_Buildings_6.3.0/graphics/icons/medium-worm.png b/Natural_Evolution_Buildings_6.3.1/graphics/icons/medium-worm.png similarity index 100% rename from Natural_Evolution_Buildings_6.3.0/graphics/icons/medium-worm.png rename to Natural_Evolution_Buildings_6.3.1/graphics/icons/medium-worm.png diff --git a/Natural_Evolution_Buildings_6.3.0/graphics/icons/small-spitter_32.png b/Natural_Evolution_Buildings_6.3.1/graphics/icons/small-spitter_32.png similarity index 100% rename from Natural_Evolution_Buildings_6.3.0/graphics/icons/small-spitter_32.png rename to Natural_Evolution_Buildings_6.3.1/graphics/icons/small-spitter_32.png diff --git a/Natural_Evolution_Buildings_6.3.0/graphics/icons/small-worm-r.png b/Natural_Evolution_Buildings_6.3.1/graphics/icons/small-worm-r.png similarity index 100% rename from Natural_Evolution_Buildings_6.3.0/graphics/icons/small-worm-r.png rename to Natural_Evolution_Buildings_6.3.1/graphics/icons/small-worm-r.png diff --git a/Natural_Evolution_Buildings_6.3.0/graphics/icons/small-worm.png b/Natural_Evolution_Buildings_6.3.1/graphics/icons/small-worm.png similarity index 100% rename from Natural_Evolution_Buildings_6.3.0/graphics/icons/small-worm.png rename to Natural_Evolution_Buildings_6.3.1/graphics/icons/small-worm.png diff --git a/Natural_Evolution_Buildings_6.3.0/graphics/icons/spitter-spawner-exhausted.png b/Natural_Evolution_Buildings_6.3.1/graphics/icons/spitter-spawner-exhausted.png similarity index 100% rename from Natural_Evolution_Buildings_6.3.0/graphics/icons/spitter-spawner-exhausted.png rename to Natural_Evolution_Buildings_6.3.1/graphics/icons/spitter-spawner-exhausted.png diff --git a/Natural_Evolution_Buildings_6.3.0/graphics/icons/spitter-spawner-r.png b/Natural_Evolution_Buildings_6.3.1/graphics/icons/spitter-spawner-r.png similarity index 100% rename from Natural_Evolution_Buildings_6.3.0/graphics/icons/spitter-spawner-r.png rename to Natural_Evolution_Buildings_6.3.1/graphics/icons/spitter-spawner-r.png diff --git a/Natural_Evolution_Buildings_6.3.0/graphics/icons/spitter-spawner.png b/Natural_Evolution_Buildings_6.3.1/graphics/icons/spitter-spawner.png similarity index 100% rename from Natural_Evolution_Buildings_6.3.0/graphics/icons/spitter-spawner.png rename to Natural_Evolution_Buildings_6.3.1/graphics/icons/spitter-spawner.png diff --git a/Natural_Evolution_Buildings_6.3.0/graphics/technology/AlienControlStation.png b/Natural_Evolution_Buildings_6.3.1/graphics/technology/AlienControlStation.png similarity index 100% rename from Natural_Evolution_Buildings_6.3.0/graphics/technology/AlienControlStation.png rename to Natural_Evolution_Buildings_6.3.1/graphics/technology/AlienControlStation.png diff --git a/Natural_Evolution_Buildings_6.3.0/graphics/technology/AlienUnderstanding.png b/Natural_Evolution_Buildings_6.3.1/graphics/technology/AlienUnderstanding.png similarity index 100% rename from Natural_Evolution_Buildings_6.3.0/graphics/technology/AlienUnderstanding.png rename to Natural_Evolution_Buildings_6.3.1/graphics/technology/AlienUnderstanding.png diff --git a/Natural_Evolution_Buildings_6.3.0/graphics/technology/Alien_Hatchery.png b/Natural_Evolution_Buildings_6.3.1/graphics/technology/Alien_Hatchery.png similarity index 100% rename from Natural_Evolution_Buildings_6.3.0/graphics/technology/Alien_Hatchery.png rename to Natural_Evolution_Buildings_6.3.1/graphics/technology/Alien_Hatchery.png diff --git a/Natural_Evolution_Buildings_6.3.0/graphics/technology/Alien_Training.png b/Natural_Evolution_Buildings_6.3.1/graphics/technology/Alien_Training.png similarity index 100% rename from Natural_Evolution_Buildings_6.3.0/graphics/technology/Alien_Training.png rename to Natural_Evolution_Buildings_6.3.1/graphics/technology/Alien_Training.png diff --git a/Natural_Evolution_Buildings_6.3.0/graphics/technology/TerraformingStation.png b/Natural_Evolution_Buildings_6.3.1/graphics/technology/TerraformingStation.png similarity index 100% rename from Natural_Evolution_Buildings_6.3.0/graphics/technology/TerraformingStation.png rename to Natural_Evolution_Buildings_6.3.1/graphics/technology/TerraformingStation.png diff --git a/Natural_Evolution_Buildings_6.3.0/graphics/technology/behemoth-biter.png b/Natural_Evolution_Buildings_6.3.1/graphics/technology/behemoth-biter.png similarity index 100% rename from Natural_Evolution_Buildings_6.3.0/graphics/technology/behemoth-biter.png rename to Natural_Evolution_Buildings_6.3.1/graphics/technology/behemoth-biter.png diff --git a/Natural_Evolution_Buildings_6.3.0/graphics/technology/behemoth-spitter.png b/Natural_Evolution_Buildings_6.3.1/graphics/technology/behemoth-spitter.png similarity index 100% rename from Natural_Evolution_Buildings_6.3.0/graphics/technology/behemoth-spitter.png rename to Natural_Evolution_Buildings_6.3.1/graphics/technology/behemoth-spitter.png diff --git a/Natural_Evolution_Buildings_6.3.0/graphics/technology/big-biter.png b/Natural_Evolution_Buildings_6.3.1/graphics/technology/big-biter.png similarity index 100% rename from Natural_Evolution_Buildings_6.3.0/graphics/technology/big-biter.png rename to Natural_Evolution_Buildings_6.3.1/graphics/technology/big-biter.png diff --git a/Natural_Evolution_Buildings_6.3.0/graphics/technology/big-spitter.png b/Natural_Evolution_Buildings_6.3.1/graphics/technology/big-spitter.png similarity index 100% rename from Natural_Evolution_Buildings_6.3.0/graphics/technology/big-spitter.png rename to Natural_Evolution_Buildings_6.3.1/graphics/technology/big-spitter.png diff --git a/Natural_Evolution_Buildings_6.3.0/graphics/technology/biter_spawner.png b/Natural_Evolution_Buildings_6.3.1/graphics/technology/biter_spawner.png similarity index 100% rename from Natural_Evolution_Buildings_6.3.0/graphics/technology/biter_spawner.png rename to Natural_Evolution_Buildings_6.3.1/graphics/technology/biter_spawner.png diff --git a/Natural_Evolution_Buildings_6.3.0/graphics/technology/medium-biter.png b/Natural_Evolution_Buildings_6.3.1/graphics/technology/medium-biter.png similarity index 100% rename from Natural_Evolution_Buildings_6.3.0/graphics/technology/medium-biter.png rename to Natural_Evolution_Buildings_6.3.1/graphics/technology/medium-biter.png diff --git a/Natural_Evolution_Buildings_6.3.0/graphics/technology/medium-spitter.png b/Natural_Evolution_Buildings_6.3.1/graphics/technology/medium-spitter.png similarity index 100% rename from Natural_Evolution_Buildings_6.3.0/graphics/technology/medium-spitter.png rename to Natural_Evolution_Buildings_6.3.1/graphics/technology/medium-spitter.png diff --git a/Natural_Evolution_Buildings_6.3.0/graphics/technology/small-biter.png b/Natural_Evolution_Buildings_6.3.1/graphics/technology/small-biter.png similarity index 100% rename from Natural_Evolution_Buildings_6.3.0/graphics/technology/small-biter.png rename to Natural_Evolution_Buildings_6.3.1/graphics/technology/small-biter.png diff --git a/Natural_Evolution_Buildings_6.3.0/graphics/technology/small-spitter.png b/Natural_Evolution_Buildings_6.3.1/graphics/technology/small-spitter.png similarity index 100% rename from Natural_Evolution_Buildings_6.3.0/graphics/technology/small-spitter.png rename to Natural_Evolution_Buildings_6.3.1/graphics/technology/small-spitter.png diff --git a/Natural_Evolution_Buildings_6.3.0/graphics/technology/spitter_spawner.png b/Natural_Evolution_Buildings_6.3.1/graphics/technology/spitter_spawner.png similarity index 100% rename from Natural_Evolution_Buildings_6.3.0/graphics/technology/spitter_spawner.png rename to Natural_Evolution_Buildings_6.3.1/graphics/technology/spitter_spawner.png diff --git a/Natural_Evolution_Buildings_6.3.0/info.json b/Natural_Evolution_Buildings_6.3.1/info.json similarity index 94% rename from Natural_Evolution_Buildings_6.3.0/info.json rename to Natural_Evolution_Buildings_6.3.1/info.json index b25bf48..14c0915 100644 --- a/Natural_Evolution_Buildings_6.3.0/info.json +++ b/Natural_Evolution_Buildings_6.3.1/info.json @@ -1,11 +1,11 @@ -{ - "name": "Natural_Evolution_Buildings", - "version": "6.3.0", - "title": "Natural Evolution Buildings", - "author": "TheSAguy", - "contact": "vvwmisc@hotmail.com", - "homepage": "http://www.factorioforums.com/forum/viewtopic.php?f=91&t=13562&p", - "description": "Add some very useful buildings to combat the Enemy threat, as changed by N.E. Enemies and Expansion. Part of the N.E. Mods, but can be used as Standalone. Please visit home page for more details.", - "dependencies": ["base >= 0.14", "? bobenemies", "? EvoGUI"], - "factorio_version": "0.14" +{ + "name": "Natural_Evolution_Buildings", + "version": "6.3.1", + "title": "Natural Evolution Buildings", + "author": "TheSAguy", + "contact": "vvwmisc@hotmail.com", + "homepage": "http://www.factorioforums.com/forum/viewtopic.php?f=91&t=13562&p", + "description": "Add some very useful buildings to combat the Enemy threat, as changed by N.E. Enemies and Expansion. Part of the N.E. Mods, but can be used as Standalone. Please visit home page for more details.", + "dependencies": ["base >= 0.14", "? bobenemies", "? EvoGUI"], + "factorio_version": "0.14" } \ No newline at end of file diff --git a/Natural_Evolution_Buildings_6.3.0/libs/EvoGUI.lua b/Natural_Evolution_Buildings_6.3.1/libs/EvoGUI.lua similarity index 83% rename from Natural_Evolution_Buildings_6.3.0/libs/EvoGUI.lua rename to Natural_Evolution_Buildings_6.3.1/libs/EvoGUI.lua index 2354f23..ec4260a 100644 --- a/Natural_Evolution_Buildings_6.3.0/libs/EvoGUI.lua +++ b/Natural_Evolution_Buildings_6.3.1/libs/EvoGUI.lua @@ -1,56 +1,62 @@ -require ("libs/event") - -EvoGUI = {} - - - function EvoGUI.create_Evo_Deduction_Text() - - local whole_number = math.floor(global.Total_TerraformingStations_Evo_Deduction*100) - local fractional_component = math.floor((global.Total_TerraformingStations_Evo_Deduction*100 - whole_number) * 1000) - local text2 = string.format("%d.%03d%%", whole_number, fractional_component) - local text = "Evolution Deduction by T-Stations: " .. text2 - - return text - end - - function EvoGUI.setup() - if remote.interfaces.EvoGUI and remote.interfaces.EvoGUI.create_remote_sensor then - global.evo_gui.detected = true - - remote.call("EvoGUI", "create_remote_sensor", { - mod_name = "Natural Evolution", - name = "evolution_deduction", - text = "Evolution Deduction:", - caption = "Evolution Deduction" - }) - - EvoGUI.update_gui() - end - end - -Event.register(defines.events.on_tick, function(event) - - if not global.evo_gui then global.evo_gui = {} end - - if not global.evo_gui.detected then - EvoGUI.setup() - end - - if global.evo_gui.detected and game.tick % 10 == 0 then - if remote.interfaces.EvoGUI then - EvoGUI.update_gui() - end - end - -end) - - function EvoGUI.update_gui() - -- figure out what color to make the text here (if any) - local color = { r = 255, g = 255, b = 255 } - - remote.call("EvoGUI", "update_remote_sensor", "evolution_deduction", EvoGUI.create_Evo_Deduction_Text(), color) - - end - - +require ("libs/event") + +EvoGUI = {} + + if not global.Total_TerraformingStations_Evo_Deduction then + global.Total_TerraformingStations_Evo_Deduction = 0 + elseif global.Total_TerraformingStations_Evo_Deduction < 0 then + global.Total_TerraformingStations_Evo_Deduction = 0 + end + + + function EvoGUI.create_Evo_Deduction_Text() + + local whole_number = math.floor(global.Total_TerraformingStations_Evo_Deduction*100) + local fractional_component = math.floor((global.Total_TerraformingStations_Evo_Deduction*100 - whole_number) * 1000) + local text2 = string.format("%d.%03d%%", whole_number, fractional_component) + local text = "Evolution Deduction by T-Stations: " .. text2 + + return text + end + + function EvoGUI.setup() + if remote.interfaces.EvoGUI and remote.interfaces.EvoGUI.create_remote_sensor then + global.evo_gui.detected = true + + remote.call("EvoGUI", "create_remote_sensor", { + mod_name = "Natural Evolution", + name = "evolution_deduction", + text = "Evolution Deduction:", + caption = "Evolution Deduction" + }) + + EvoGUI.update_gui() + end + end + +Event.register(defines.events.on_tick, function(event) + + if not global.evo_gui then global.evo_gui = {} end + + if not global.evo_gui.detected then + EvoGUI.setup() + end + + if global.evo_gui.detected and game.tick % 10 == 0 then + if remote.interfaces.EvoGUI then + EvoGUI.update_gui() + end + end + +end) + + function EvoGUI.update_gui() + -- figure out what color to make the text here (if any) + local color = { r = 255, g = 255, b = 255 } + + remote.call("EvoGUI", "update_remote_sensor", "evolution_deduction", EvoGUI.create_Evo_Deduction_Text(), color) + + end + + return EvoGUI \ No newline at end of file diff --git a/Natural_Evolution_Enemies_6.3.0/libs/NE_Functions.lua b/Natural_Evolution_Buildings_6.3.1/libs/NE_Functions.lua similarity index 96% rename from Natural_Evolution_Enemies_6.3.0/libs/NE_Functions.lua rename to Natural_Evolution_Buildings_6.3.1/libs/NE_Functions.lua index 72b488b..c98f641 100644 --- a/Natural_Evolution_Enemies_6.3.0/libs/NE_Functions.lua +++ b/Natural_Evolution_Buildings_6.3.1/libs/NE_Functions.lua @@ -1,71 +1,71 @@ ------------------------ ---NE Functions-- ------------------------ - ---- Multiplies ingridient -function NE_Functions.Ingredient_Multiplier(Input, Multiplier) - if data.raw.recipe[Input] ~= nil then - for _, recipe in pairs({Input}) do - for _, ingredient in pairs(data.raw.recipe[recipe].ingredients) do - if ingredient[2] ~= nil then - ingredient[2] = ingredient[2] * Multiplier - elseif ingredient.amount ~= nil then - ingredient.amount = ingredient.amount * Multiplier - end - end - end - end -end - --- Adds a resistance of a single damage type to an entity -function NE_Functions.Add_Damage_Resists(D_Type,Raw,percent) - if data.raw["damage-type"][D_Type] ~= nil then - local Resist = {type = D_Type, percent = percent} - for i,d in pairs(Raw) do - if d.resistances == nil then - d.resistances = {} - table.insert(d.resistances, Resist) - else - local found = false - for _, resistance in pairs(d.resistances) do - if resistance.type == Resist.type and resistance.percent then - if resistance.percent < Resist.percent then - resistance.percent = Resist.percent - end - found = true - end - end - - if not found then - table.insert(d.resistances, Resist) - end - end - end - end -end - - --- Adds a resistance of all damage types to an entity -function NE_Functions.Add_ALL_Damage_Resists(Raw,Percent) - if Raw ~= nil then - for k, v in pairs(data.raw["damage-type"]) do - NE_Functions.Add_Damage_Resists(v.name, Raw, Percent) - end - end -end - - ----- Makes it that Biters don't attack rail. Side effect though is that rails don't show up on mini-map or blue-prints -function NE_Functions.Biters_Dont_Attack(Raw) - for i,d in pairs(Raw) do - local newflags = {} - for pos=1,#d.flags do - if not (d.flags[pos] == "player-creation") then - table.insert(newflags, d.flags[pos]) - end - end - d.flags = newflags - - end -end - +----------------------- +--NE Functions-- +----------------------- + +--- Multiplies ingridient +function NE_Functions.Ingredient_Multiplier(Input, Multiplier) + if data.raw.recipe[Input] ~= nil then + for _, recipe in pairs({Input}) do + for _, ingredient in pairs(data.raw.recipe[recipe].ingredients) do + if ingredient[2] ~= nil then + ingredient[2] = ingredient[2] * Multiplier + elseif ingredient.amount ~= nil then + ingredient.amount = ingredient.amount * Multiplier + end + end + end + end +end + +-- Adds a resistance of a single damage type to an entity +function NE_Functions.Add_Damage_Resists(D_Type,Raw,percent) + if data.raw["damage-type"][D_Type] ~= nil then + local Resist = {type = D_Type, percent = percent} + for i,d in pairs(Raw) do + if d.resistances == nil then + d.resistances = {} + table.insert(d.resistances, Resist) + else + local found = false + for _, resistance in pairs(d.resistances) do + if resistance.type == Resist.type and resistance.percent then + if resistance.percent < Resist.percent then + resistance.percent = Resist.percent + end + found = true + end + end + + if not found then + table.insert(d.resistances, Resist) + end + end + end + end +end + + +-- Adds a resistance of all damage types to an entity +function NE_Functions.Add_ALL_Damage_Resists(Raw,Percent) + if Raw ~= nil then + for k, v in pairs(data.raw["damage-type"]) do + NE_Functions.Add_Damage_Resists(v.name, Raw, Percent) + end + end +end + + +---- Makes it that Biters don't attack rail. Side effect though is that rails don't show up on mini-map or blue-prints +function NE_Functions.Biters_Dont_Attack(Raw) + for i,d in pairs(Raw) do + local newflags = {} + for pos=1,#d.flags do + if not (d.flags[pos] == "player-creation") then + table.insert(newflags, d.flags[pos]) + end + end + d.flags = newflags + + end +end + diff --git a/Bio_Industries_1.4.0/libs/core.lua b/Natural_Evolution_Buildings_6.3.1/libs/core.lua similarity index 100% rename from Bio_Industries_1.4.0/libs/core.lua rename to Natural_Evolution_Buildings_6.3.1/libs/core.lua diff --git a/Natural_Evolution_Buildings_6.3.0/libs/detectmod.lua b/Natural_Evolution_Buildings_6.3.1/libs/detectmod.lua similarity index 96% rename from Natural_Evolution_Buildings_6.3.0/libs/detectmod.lua rename to Natural_Evolution_Buildings_6.3.1/libs/detectmod.lua index 8b5ecf3..23b44b7 100644 --- a/Natural_Evolution_Buildings_6.3.0/libs/detectmod.lua +++ b/Natural_Evolution_Buildings_6.3.1/libs/detectmod.lua @@ -1,31 +1,31 @@ ------------------------ ---Cross Mod Detection-- ------------------------ - -if not NE_Buildings_Config then NE_Buildings_Config = {} end -if not NE_Buildings_Config.mod then NE_Buildings_Config.mod = {} end - ------------------------ - - ---Detect Bob's Enemies -if data.raw["unit"]["bob-big-piercing-biter"] ~= nil and data.raw["unit"]["bob-big-electric-spitter"] ~= nil then - NE_Buildings_Config.mod.BobEnemies=true -else - NE_Buildings_Config.mod.BobEnemies=false -end - ---Detect Supreme Warfare -if data.raw["technology"]["artillery"] ~= nil and data.raw["technology"]["advanced-artillery"] ~= nil then - NE_Buildings_Config.mod.SupremeWarfare=true -else - NE_Buildings_Config.mod.SupremeWarfare=false -end - - ---Detect N.E. Enemies -if data.raw["unit"]["small-biter-Mk2"] ~= nil or data.raw["unit"]["small-spitter-Mk2"] ~= nil or data.raw["logistic-container"]["Artifact-collector-area"] ~= nil then - NE_Buildings_Config.mod.NEEnemies=true -else - NE_Buildings_Config.mod.NEEnemies=false -end +----------------------- +--Cross Mod Detection-- +----------------------- + +if not NE_Buildings_Config then NE_Buildings_Config = {} end +if not NE_Buildings_Config.mod then NE_Buildings_Config.mod = {} end + +----------------------- + + +--Detect Bob's Enemies +if data.raw["unit"]["bob-big-piercing-biter"] ~= nil and data.raw["unit"]["bob-big-electric-spitter"] ~= nil then + NE_Buildings_Config.mod.BobEnemies=true +else + NE_Buildings_Config.mod.BobEnemies=false +end + +--Detect Supreme Warfare +if data.raw["technology"]["artillery"] ~= nil and data.raw["technology"]["advanced-artillery"] ~= nil then + NE_Buildings_Config.mod.SupremeWarfare=true +else + NE_Buildings_Config.mod.SupremeWarfare=false +end + + +--Detect N.E. Enemies +if data.raw["unit"]["small-biter-Mk2"] ~= nil or data.raw["unit"]["small-spitter-Mk2"] ~= nil or data.raw["logistic-container"]["Artifact-collector-area"] ~= nil then + NE_Buildings_Config.mod.NEEnemies=true +else + NE_Buildings_Config.mod.NEEnemies=false +end diff --git a/Bio_Industries_1.4.0/libs/event.lua b/Natural_Evolution_Buildings_6.3.1/libs/event.lua similarity index 100% rename from Bio_Industries_1.4.0/libs/event.lua rename to Natural_Evolution_Buildings_6.3.1/libs/event.lua diff --git a/Natural_Evolution_Buildings_6.3.0/libs/functions.lua b/Natural_Evolution_Buildings_6.3.1/libs/functions.lua similarity index 97% rename from Natural_Evolution_Buildings_6.3.0/libs/functions.lua rename to Natural_Evolution_Buildings_6.3.1/libs/functions.lua index 56bdcb1..e87a40a 100644 --- a/Natural_Evolution_Buildings_6.3.0/libs/functions.lua +++ b/Natural_Evolution_Buildings_6.3.1/libs/functions.lua @@ -1,51 +1,51 @@ --- 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 - thxbob.lib.table_merge(table1[index], table2[index]) - else - table1[index] = value - end - end -end - - -function thxbob.lib.result_check(object) - if object then - if object.results == nil then - object.results = {} - end - - if object.result then - local item = thxbob.lib.item.basic_item({name = object.result}) - if object.result_count then - item.amount = object.result_count - object.result_count = nil - end - thxbob.lib.item.add_new(object.results, item) - - 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 - if not object.icon and data.raw[item.type][object.result].icon then - object.icon = data.raw[item.type][object.result].icon - end - if not object.subgroup 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].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 - log(object .. " does not exist.") - end -end - +-- 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 + thxbob.lib.table_merge(table1[index], table2[index]) + else + table1[index] = value + end + end +end + + +function thxbob.lib.result_check(object) + if object then + if object.results == nil then + object.results = {} + end + + if object.result then + local item = thxbob.lib.item.basic_item({name = object.result}) + if object.result_count then + item.amount = object.result_count + object.result_count = nil + end + thxbob.lib.item.add_new(object.results, item) + + 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 + if not object.icon and data.raw[item.type][object.result].icon then + object.icon = data.raw[item.type][object.result].icon + end + if not object.subgroup 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].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 + log(object .. " does not exist.") + end +end + diff --git a/Bio_Industries_1.4.0/libs/game.lua b/Natural_Evolution_Buildings_6.3.1/libs/game.lua similarity index 100% rename from Bio_Industries_1.4.0/libs/game.lua rename to Natural_Evolution_Buildings_6.3.1/libs/game.lua diff --git a/Bio_Industries_1.4.0/libs/item-functions.lua b/Natural_Evolution_Buildings_6.3.1/libs/item-functions.lua similarity index 96% rename from Bio_Industries_1.4.0/libs/item-functions.lua rename to Natural_Evolution_Buildings_6.3.1/libs/item-functions.lua index c25b191..fb1db4d 100644 --- a/Bio_Industries_1.4.0/libs/item-functions.lua +++ b/Natural_Evolution_Buildings_6.3.1/libs/item-functions.lua @@ -1,149 +1,149 @@ -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"} - 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 - - 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 - object = 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 - - +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"} + 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 + + 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 + object = 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 + + diff --git a/Bio_Industries_1.4.0/libs/legacy.lua b/Natural_Evolution_Buildings_6.3.1/libs/legacy.lua similarity index 96% rename from Bio_Industries_1.4.0/libs/legacy.lua rename to Natural_Evolution_Buildings_6.3.1/libs/legacy.lua index 9c1fc8b..68d9c73 100644 --- a/Bio_Industries_1.4.0/libs/legacy.lua +++ b/Natural_Evolution_Buildings_6.3.1/libs/legacy.lua @@ -1,186 +1,186 @@ -function thxbob.lib.basic_item(inputs) - return thxbob.lib.item.basic_item(inputs) -end - ---[[ Cannot be used in legacy, due to new group conflict. -function thxbob.lib.item(inputs) - return thxbob.lib.item.item(inputs) -end -]]-- - -function thxbob.lib.get_item_type(name) - return thxbob.lib.item.get_type(name) -end - -function thxbob.lib.get_basic_item_type(name) - return thxbob.lib.item.get_basic_type(name) -end - -function thxbob.lib.combine_items(item1_in, item2_in) - return thxbob.lib.item.combine(item1_in, item2_in) -end - -function thxbob.lib.add_item(list, item_in) - thxbob.lib.item.add(list, item_in) --increments amount if exists -end - -function thxbob.lib.add_new_item(list, item_in) - thxbob.lib.item.add_new(list, item_in) --ignores if exists -end - -function thxbob.lib.remove_item(list, item) - thxbob.lib.item.remove(list, item) -end - - - -function thxbob.lib.replace_science_pack (technology, old, new) - thxbob.lib.tech.replace_science_pack (technology, old, new) -end - -function thxbob.lib.add_new_science_pack (technology, pack, amount) - thxbob.lib.tech.add_new_science_pack (technology, pack, amount) -end - -function thxbob.lib.add_science_pack (technology, pack, amount) - thxbob.lib.tech.add_science_pack (technology, pack, amount) -end - -function thxbob.lib.remove_science_pack (technology, pack) - thxbob.lib.tech.remove_science_pack (technology, pack) -end - -function thxbob.lib.add_technology_recipe (technology, recipe) - thxbob.lib.tech.add_recipe_unlock (technology, recipe) -end - -function thxbob.lib.remove_technology_recipe (technology, recipe) - thxbob.lib.tech.remove_recipe_unlock (technology, recipe) -end - -function thxbob.lib.replace_technology_prerequisite (technology, old, new) - thxbob.lib.tech.replace_prerequisite (technology, old, new) -end - -function thxbob.lib.add_technology_prerequisite (technology, prerequisite) - thxbob.lib.tech.add_prerequisite (technology, prerequisite) -end - -function thxbob.lib.remove_technology_prerequisite (technology, prerequisite) - thxbob.lib.tech.remove_prerequisite (technology, prerequisite) -end - - - -function thxbob.lib.add_productivity_limitation(intermediate) - thxbob.lib.module.add_productivity_limitation(intermediate) -end - -function thxbob.lib.add_productivity_limitations(intermediates) - thxbob.lib.module.add_productivity_limitations(intermediates) -end - - - -function thxbob.lib.replace_recipe_item (recipe, old, new) - thxbob.lib.recipe.replace_ingredient(recipe, old, new) -end - -function thxbob.lib.replace_recipe_item_crude (recipe, old, new) - thxbob.lib.recipe.replace_ingredient_crude(recipe, old, new) -end - -function thxbob.lib.replace_item_all_recipes (old, new) - thxbob.lib.recipe.replace_ingredient_in_all(old, new) -end - -function thxbob.lib.remove_recipe_item (recipe, item) - thxbob.lib.recipe.remove_ingredient(recipe, item) -end - -function thxbob.lib.add_new_recipe_item (recipe, item) - thxbob.lib.recipe.add_new_ingredient(recipe, item) -end - -function thxbob.lib.add_recipe_item (recipe, item) - thxbob.lib.recipe.add_ingredient(recipe, item) -end - -function thxbob.lib.add_recipe_result(recipe, item) - thxbob.lib.recipe.add_result(recipe, item) -end - -function thxbob.lib.remove_recipe_result(recipe, item) - thxbob.lib.recipe.remove_result(recipe, item) -end - - - -function thxbob.lib.create_autoplace(inputs) - return thxbob.lib.resource.create_autoplace(inputs) -end - -function thxbob.lib.autoplace_peak(inputs) - return thxbob.lib.resource.autoplace_peak(inputs) -end - -function thxbob.lib.add_autoplace_peak(inputs) - thxbob.lib.resource.add_autoplace_peak(inputs) -end - -function thxbob.lib.add_item_to_resource(resource, item) - thxbob.lib.resource.add_result(resource, item) -end - -function thxbob.lib.remove_item_from_resource(resource, item) - thxbob.lib.resource.remove_result(resource, item) -end - -function thxbob.lib.stage_counts(stages, mult) - return thxbob.lib.resource.stage_counts(stages, mult) -end - -function thxbob.lib.ore_sprite(inputs) - return thxbob.lib.resource.sprite(inputs) -end - -function thxbob.lib.create_ore_item(inputs) - thxbob.lib.resource.create_item(inputs) -end - -function thxbob.lib.create_ore_resource(inputs) - thxbob.lib.resource.create(inputs) -end - -function thxbob.lib.create_ore_particle(inputs) - thxbob.lib.resource.create_particle(inputs) -end - -function thxbob.lib.generate_ore_data_stage(inputs) - thxbob.lib.resource.generate_data_stage(inputs) -end - -function thxbob.lib.generate_ore_updates_stage(inputs) - thxbob.lib.resource.generate_updates_stage(inputs) -end - -function thxbob.lib.generate_ore(inputs) - thxbob.lib.resource.generate(inputs) -end - - - -function thxbob.lib.machine_has_category(machine, category_in) - return thxbob.lib.machine.has_category(machine, category_in) -end - -function thxbob.lib.machine_add_category(machine, category) - thxbob.lib.machine.add_category(machine, category) -end - -function thxbob.lib.machine_type_if_category_add_category(machine_type, category, category_to_add) - thxbob.lib.machine.type_if_add_category(machine_type, category, category_to_add) -end - - - +function thxbob.lib.basic_item(inputs) + return thxbob.lib.item.basic_item(inputs) +end + +--[[ Cannot be used in legacy, due to new group conflict. +function thxbob.lib.item(inputs) + return thxbob.lib.item.item(inputs) +end +]]-- + +function thxbob.lib.get_item_type(name) + return thxbob.lib.item.get_type(name) +end + +function thxbob.lib.get_basic_item_type(name) + return thxbob.lib.item.get_basic_type(name) +end + +function thxbob.lib.combine_items(item1_in, item2_in) + return thxbob.lib.item.combine(item1_in, item2_in) +end + +function thxbob.lib.add_item(list, item_in) + thxbob.lib.item.add(list, item_in) --increments amount if exists +end + +function thxbob.lib.add_new_item(list, item_in) + thxbob.lib.item.add_new(list, item_in) --ignores if exists +end + +function thxbob.lib.remove_item(list, item) + thxbob.lib.item.remove(list, item) +end + + + +function thxbob.lib.replace_science_pack (technology, old, new) + thxbob.lib.tech.replace_science_pack (technology, old, new) +end + +function thxbob.lib.add_new_science_pack (technology, pack, amount) + thxbob.lib.tech.add_new_science_pack (technology, pack, amount) +end + +function thxbob.lib.add_science_pack (technology, pack, amount) + thxbob.lib.tech.add_science_pack (technology, pack, amount) +end + +function thxbob.lib.remove_science_pack (technology, pack) + thxbob.lib.tech.remove_science_pack (technology, pack) +end + +function thxbob.lib.add_technology_recipe (technology, recipe) + thxbob.lib.tech.add_recipe_unlock (technology, recipe) +end + +function thxbob.lib.remove_technology_recipe (technology, recipe) + thxbob.lib.tech.remove_recipe_unlock (technology, recipe) +end + +function thxbob.lib.replace_technology_prerequisite (technology, old, new) + thxbob.lib.tech.replace_prerequisite (technology, old, new) +end + +function thxbob.lib.add_technology_prerequisite (technology, prerequisite) + thxbob.lib.tech.add_prerequisite (technology, prerequisite) +end + +function thxbob.lib.remove_technology_prerequisite (technology, prerequisite) + thxbob.lib.tech.remove_prerequisite (technology, prerequisite) +end + + + +function thxbob.lib.add_productivity_limitation(intermediate) + thxbob.lib.module.add_productivity_limitation(intermediate) +end + +function thxbob.lib.add_productivity_limitations(intermediates) + thxbob.lib.module.add_productivity_limitations(intermediates) +end + + + +function thxbob.lib.replace_recipe_item (recipe, old, new) + thxbob.lib.recipe.replace_ingredient(recipe, old, new) +end + +function thxbob.lib.replace_recipe_item_crude (recipe, old, new) + thxbob.lib.recipe.replace_ingredient_crude(recipe, old, new) +end + +function thxbob.lib.replace_item_all_recipes (old, new) + thxbob.lib.recipe.replace_ingredient_in_all(old, new) +end + +function thxbob.lib.remove_recipe_item (recipe, item) + thxbob.lib.recipe.remove_ingredient(recipe, item) +end + +function thxbob.lib.add_new_recipe_item (recipe, item) + thxbob.lib.recipe.add_new_ingredient(recipe, item) +end + +function thxbob.lib.add_recipe_item (recipe, item) + thxbob.lib.recipe.add_ingredient(recipe, item) +end + +function thxbob.lib.add_recipe_result(recipe, item) + thxbob.lib.recipe.add_result(recipe, item) +end + +function thxbob.lib.remove_recipe_result(recipe, item) + thxbob.lib.recipe.remove_result(recipe, item) +end + + + +function thxbob.lib.create_autoplace(inputs) + return thxbob.lib.resource.create_autoplace(inputs) +end + +function thxbob.lib.autoplace_peak(inputs) + return thxbob.lib.resource.autoplace_peak(inputs) +end + +function thxbob.lib.add_autoplace_peak(inputs) + thxbob.lib.resource.add_autoplace_peak(inputs) +end + +function thxbob.lib.add_item_to_resource(resource, item) + thxbob.lib.resource.add_result(resource, item) +end + +function thxbob.lib.remove_item_from_resource(resource, item) + thxbob.lib.resource.remove_result(resource, item) +end + +function thxbob.lib.stage_counts(stages, mult) + return thxbob.lib.resource.stage_counts(stages, mult) +end + +function thxbob.lib.ore_sprite(inputs) + return thxbob.lib.resource.sprite(inputs) +end + +function thxbob.lib.create_ore_item(inputs) + thxbob.lib.resource.create_item(inputs) +end + +function thxbob.lib.create_ore_resource(inputs) + thxbob.lib.resource.create(inputs) +end + +function thxbob.lib.create_ore_particle(inputs) + thxbob.lib.resource.create_particle(inputs) +end + +function thxbob.lib.generate_ore_data_stage(inputs) + thxbob.lib.resource.generate_data_stage(inputs) +end + +function thxbob.lib.generate_ore_updates_stage(inputs) + thxbob.lib.resource.generate_updates_stage(inputs) +end + +function thxbob.lib.generate_ore(inputs) + thxbob.lib.resource.generate(inputs) +end + + + +function thxbob.lib.machine_has_category(machine, category_in) + return thxbob.lib.machine.has_category(machine, category_in) +end + +function thxbob.lib.machine_add_category(machine, category) + thxbob.lib.machine.add_category(machine, category) +end + +function thxbob.lib.machine_type_if_category_add_category(machine_type, category, category_to_add) + thxbob.lib.machine.type_if_add_category(machine_type, category, category_to_add) +end + + + diff --git a/Natural_Evolution_Buildings_6.3.0/libs/recipe-functions.lua b/Natural_Evolution_Buildings_6.3.1/libs/recipe-functions.lua similarity index 97% rename from Natural_Evolution_Buildings_6.3.0/libs/recipe-functions.lua rename to Natural_Evolution_Buildings_6.3.1/libs/recipe-functions.lua index 2d85652..6484e13 100644 --- a/Natural_Evolution_Buildings_6.3.0/libs/recipe-functions.lua +++ b/Natural_Evolution_Buildings_6.3.1/libs/recipe-functions.lua @@ -1,118 +1,118 @@ -if not thxbob.lib.recipe then thxbob.lib.recipe = {} end - - -function thxbob.lib.recipe.replace_ingredient(recipe, old, new) - if data.raw.recipe[recipe] and thxbob.lib.item.get_type(new) then - local amount = 0 - for i, ingredient in pairs(data.raw.recipe[recipe].ingredients) do - if ingredient[1] == old then - amount = ingredient[2] + amount - end - if ingredient.name == old then - amount = ingredient.amount + amount - end - end - if amount > 0 then - thxbob.lib.recipe.remove_ingredient(recipe, old) - thxbob.lib.recipe.add_ingredient(recipe, {new, amount}) - end - else - if not data.raw.recipe[recipe] then - log("Recipe " .. recipe .. " does not exist.") - end - if not thxbob.lib.item.get_type(new) then - log("Ingredient " .. new .. " does not exist.") - end - end -end - -function thxbob.lib.recipe.replace_ingredient_crude(recipe, old, new) - if data.raw.recipe[recipe] and thxbob.lib.item.get_basic_type(new) then - for i, ingredient in pairs(data.raw.recipe[recipe].ingredients) do - if ingredient[1] == old or ingredient.name == old then - local item = thxbob.lib.item.basic_item(ingredient) - item.name = new - item.type = thxbob.lib.item.get_basic_type(new) - ingredient = item - end - end - else - if not data.raw.recipe[recipe] then - log("Recipe " .. recipe .. " does not exist.") - end - if not thxbob.lib.item.get_type(new) then - log("Ingredient " .. new .. " does not exist.") - end - end -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 - log("Ingredient " .. new .. " does not exist.") - end -end - -function thxbob.lib.recipe.remove_ingredient(recipe, item) - if data.raw.recipe[recipe] then - thxbob.lib.item.remove(data.raw.recipe[recipe].ingredients, item) - else - log("Recipe " .. recipe .. " does not exist.") - 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 - thxbob.lib.item.add_new(data.raw.recipe[recipe].ingredients, thxbob.lib.item.basic_item(item)) - else - if not data.raw.recipe[recipe] then - log("Recipe " .. recipe .. " does not exist.") - end - if not thxbob.lib.item.get_type(item) then - log("Ingredient " .. thxbob.lib.item.basic_item(item).name .. " does not exist.") - 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 - thxbob.lib.item.add(data.raw.recipe[recipe].ingredients, thxbob.lib.item.basic_item(item)) - else - if not data.raw.recipe[recipe] then - log("Recipe " .. recipe .. " does not exist.") - end - if not thxbob.lib.item.get_basic_type(thxbob.lib.item.basic_item(item).name) then - log("Ingredient " .. thxbob.lib.item.basic_item(item).name .. " does not exist.") - 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 - thxbob.lib.result_check(data.raw.recipe[recipe]) - thxbob.lib.item.add(data.raw.recipe[recipe].results, item) - else - if not data.raw.recipe[recipe] then - log("Recipe " .. recipe .. " does not exist.") - end - if not thxbob.lib.item.get_basic_type(thxbob.lib.item.basic_item(item).name) then - log("Item " .. thxbob.lib.item.basic_item(item).name .. " does not exist.") - end - end -end - -function thxbob.lib.recipe.remove_result(recipe, item) - if data.raw.recipe[recipe] then - thxbob.lib.result_check(data.raw.recipe[recipe]) - thxbob.lib.item.remove(data.raw.recipe[recipe].results, item) - else - log("Recipe " .. recipe .. " does not exist.") - end -end - - - +if not thxbob.lib.recipe then thxbob.lib.recipe = {} end + + +function thxbob.lib.recipe.replace_ingredient(recipe, old, new) + if data.raw.recipe[recipe] and thxbob.lib.item.get_type(new) then + local amount = 0 + for i, ingredient in pairs(data.raw.recipe[recipe].ingredients) do + if ingredient[1] == old then + amount = ingredient[2] + amount + end + if ingredient.name == old then + amount = ingredient.amount + amount + end + end + if amount > 0 then + thxbob.lib.recipe.remove_ingredient(recipe, old) + thxbob.lib.recipe.add_ingredient(recipe, {new, amount}) + end + else + if not data.raw.recipe[recipe] then + log("Recipe " .. recipe .. " does not exist.") + end + if not thxbob.lib.item.get_type(new) then + log("Ingredient " .. new .. " does not exist.") + end + end +end + +function thxbob.lib.recipe.replace_ingredient_crude(recipe, old, new) + if data.raw.recipe[recipe] and thxbob.lib.item.get_basic_type(new) then + for i, ingredient in pairs(data.raw.recipe[recipe].ingredients) do + if ingredient[1] == old or ingredient.name == old then + local item = thxbob.lib.item.basic_item(ingredient) + item.name = new + item.type = thxbob.lib.item.get_basic_type(new) + ingredient = item + end + end + else + if not data.raw.recipe[recipe] then + log("Recipe " .. recipe .. " does not exist.") + end + if not thxbob.lib.item.get_type(new) then + log("Ingredient " .. new .. " does not exist.") + end + end +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 + log("Ingredient " .. new .. " does not exist.") + end +end + +function thxbob.lib.recipe.remove_ingredient(recipe, item) + if data.raw.recipe[recipe] then + thxbob.lib.item.remove(data.raw.recipe[recipe].ingredients, item) + else + log("Recipe " .. recipe .. " does not exist.") + 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 + thxbob.lib.item.add_new(data.raw.recipe[recipe].ingredients, thxbob.lib.item.basic_item(item)) + else + if not data.raw.recipe[recipe] then + log("Recipe " .. recipe .. " does not exist.") + end + if not thxbob.lib.item.get_type(item) then + log("Ingredient " .. thxbob.lib.item.basic_item(item).name .. " does not exist.") + 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 + thxbob.lib.item.add(data.raw.recipe[recipe].ingredients, thxbob.lib.item.basic_item(item)) + else + if not data.raw.recipe[recipe] then + log("Recipe " .. recipe .. " does not exist.") + end + if not thxbob.lib.item.get_basic_type(thxbob.lib.item.basic_item(item).name) then + log("Ingredient " .. thxbob.lib.item.basic_item(item).name .. " does not exist.") + 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 + thxbob.lib.result_check(data.raw.recipe[recipe]) + thxbob.lib.item.add(data.raw.recipe[recipe].results, item) + else + if not data.raw.recipe[recipe] then + log("Recipe " .. recipe .. " does not exist.") + end + if not thxbob.lib.item.get_basic_type(thxbob.lib.item.basic_item(item).name) then + log("Item " .. thxbob.lib.item.basic_item(item).name .. " does not exist.") + end + end +end + +function thxbob.lib.recipe.remove_result(recipe, item) + if data.raw.recipe[recipe] then + thxbob.lib.result_check(data.raw.recipe[recipe]) + thxbob.lib.item.remove(data.raw.recipe[recipe].results, item) + else + log("Recipe " .. recipe .. " does not exist.") + end +end + + + diff --git a/Natural_Evolution_Enemies_6.3.0/libs/technology-functions.lua b/Natural_Evolution_Buildings_6.3.1/libs/technology-functions.lua similarity index 97% rename from Natural_Evolution_Enemies_6.3.0/libs/technology-functions.lua rename to Natural_Evolution_Buildings_6.3.1/libs/technology-functions.lua index ad90d3f..2fe45d5 100644 --- a/Natural_Evolution_Enemies_6.3.0/libs/technology-functions.lua +++ b/Natural_Evolution_Buildings_6.3.1/libs/technology-functions.lua @@ -1,172 +1,172 @@ -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 - log("Technology " .. technology .. " does not exist.") - end - if not data.raw.tool[new] then - log("Science pack " .. new .. " does not exist.") - 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 - log("Technology " .. technology .. " does not exist.") - end - if not data.raw.tool[pack] then - log("Science pack " .. new .. " does not exist.") - 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 - log("Technology " .. technology .. " does not exist.") - end - if not data.raw.tool[pack] then - log("Science pack " .. new .. " does not exist.") - 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 - log("Technology " .. technology .. " does not exist.") - 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 - log("Technology " .. technology .. " does not exist.") - end - if not data.raw.recipe[recipe] then - log("Recipe " .. recipe .. " does not exist.") - 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 - log("Technology " .. technology .. " does not exist.") - 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 - log("Technology " .. technology .. " does not exist.") - end - if not data.raw.technology[new] then - log("Technology " .. new .. " does not exist.") - 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 - log("Technology " .. technology .. " does not exist.") - end - if not data.raw.technology[prerequisite] then - log("Technology " .. prerequisite .. " does not exist.") - 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 - log("Technology " .. technology .. " does not exist.") - end -end - - +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 + log("Technology " .. technology .. " does not exist.") + end + if not data.raw.tool[new] then + log("Science pack " .. new .. " does not exist.") + 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 + log("Technology " .. technology .. " does not exist.") + end + if not data.raw.tool[pack] then + log("Science pack " .. new .. " does not exist.") + 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 + log("Technology " .. technology .. " does not exist.") + end + if not data.raw.tool[pack] then + log("Science pack " .. new .. " does not exist.") + 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 + log("Technology " .. technology .. " does not exist.") + 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 + log("Technology " .. technology .. " does not exist.") + end + if not data.raw.recipe[recipe] then + log("Recipe " .. recipe .. " does not exist.") + 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 + log("Technology " .. technology .. " does not exist.") + 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 + log("Technology " .. technology .. " does not exist.") + end + if not data.raw.technology[new] then + log("Technology " .. new .. " does not exist.") + 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 + log("Technology " .. technology .. " does not exist.") + end + if not data.raw.technology[prerequisite] then + log("Technology " .. prerequisite .. " does not exist.") + 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 + log("Technology " .. technology .. " does not exist.") + end +end + + diff --git a/Natural_Evolution_Buildings_6.3.0/license.txt b/Natural_Evolution_Buildings_6.3.1/license.txt similarity index 94% rename from Natural_Evolution_Buildings_6.3.0/license.txt rename to Natural_Evolution_Buildings_6.3.1/license.txt index 263082f..ead2130 100644 --- a/Natural_Evolution_Buildings_6.3.0/license.txt +++ b/Natural_Evolution_Buildings_6.3.1/license.txt @@ -1,7 +1,10 @@ -Copyright (c) 2015 TheSAguy - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - +The MIT License (MIT) + + +Copyright (c) 2016 TheSAguy + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file diff --git a/Natural_Evolution_Buildings_6.3.0/locale/en/locale.cfg b/Natural_Evolution_Buildings_6.3.1/locale/en/locale.cfg similarity index 97% rename from Natural_Evolution_Buildings_6.3.0/locale/en/locale.cfg rename to Natural_Evolution_Buildings_6.3.1/locale/en/locale.cfg index 096ede1..541d5bf 100644 --- a/Natural_Evolution_Buildings_6.3.0/locale/en/locale.cfg +++ b/Natural_Evolution_Buildings_6.3.1/locale/en/locale.cfg @@ -1,192 +1,192 @@ -[item-group-name] -Natural-Evolution = Natural-Evolution - - -[item-name] -TerraformingStation = Terraforming Station -AlienControlStation = Alien Control Station -AlienControlStation_Area = Alien Control Station -attractor-on = Attract Biters - ON -attractor-off = Attract Biters - OFF -Alien_Hatchery = Alien Hatchery -Building_Materials = Building Materials -small-biter-hatching = Small Biter Hatching -medium-biter-hatching = Medium Biter Hatching -big-biter-hatching = Big Biter Hatching -behemoth-biter-hatching = Behemoth Biter Hatching -small-spitter-hatching = Small Spitter Hatching -medium-spitter-hatching = Medium Spitter Hatching -big-spitter-hatching = Big Spitter Hatching -behemoth-spitter-hatching = Behemoth Spitter Hatching -Biological-bullet-magazine = Biological Bullet Magazine -small-worm-hatching-exhausted = Exhausted small worm -medium-worm-hatching-exhausted = Exhausted medium worm -big-worm-hatching-exhausted = Exhausted big worm -Natural_Evolution_Biter-Spawner-exhausted = Exhausted human made Biter Spawner -Natural_Evolution_Spitter-Spawner-exhausted = Exhausted human made Spitter Spawner -ne-living-wall = Living Wall -ne-living-wall-exhausted = Exhausted Living Wall -combat-inserter = Combat Inserter - -[item-description] -TerraformingStation = Terraforming Station transmits radio waves, which reduce evolution per time. Each consecutive station is less effective than the one before -AlienControlStation = A Radar that can also control the minds of nearby enemies -AlienControlStation_Area = A Radar that can also control the minds of nearby enemies -Alien_Hatchery = Human Bread Aliens -attractor-on = Have Aliens follow you -attractor-off = Stop Aliens from following you -Building_Materials = The needed materials to build something -small-biter-hatching = Small Biter Hatching -medium-biter-hatching = Medium Biter Hatching -big-biter-hatching = Big Biter Hatching -behemoth-biter-hatching = Behemoth Biter Hatching -small-spitter-hatching = Small Spitter Hatching -medium-spitter-hatching = Medium Spitter Hatching -big-spitter-hatching = Big Spitter Hatching -behemoth-spitter-hatching = Behemoth Spitter Hatching -Biological-bullet-magazine = Extremely Deadly to Aliens! -small-worm-hatching-exhausted = This poor little guy needs a shot of Alien Revitalization Solution -medium-worm-hatching-exhausted = This poor little guy needs a shot of Alien Revitalization Solution -big-worm-hatching-exhausted = This poor little guy needs a shot of Alien Revitalization Solution -Natural_Evolution_Biter-Spawner-exhausted = This uprooted building needs a shot of Alien Revitalization Solution -Natural_Evolution_Spitter-Spawner-exhausted = This uprooted building needs a shot of Alien Revitalization Solution -ne-living-wall = a Living Wall that can repair itself and also defend itself -ne-living-wall-exhausted = This uprooted wall needs a shot of Alien Revitalization Solution -combat-inserter = A high resistant Inserter made to take some enemy punishment! - - -[fluid-name] -NE_nutrient-solution = Basic Nutrient Solution -NE_revitalization-solution = Alien Revitalization Solution -NE_alien-revitalization = to revitalize uprooted alien structures / Alien Toxin for killing... -NE_enhanced-nutrient-solution = Enhanced Nutrient Solution -NE_alien_toxin = Alien Toxin - -[fluid-description] -NE_nutrient-solution = for growing basic alien lifeforms / structures -NE_revitalization-solution = to revitalize uprooted alien structures -NE_alien-revitalization = to revitalize uprooted alien structures / Alien Toxin for killing... -NE_enhanced-nutrient-solution = for growing advanced alien liveforms / strucutures -NE_alien_toxin = Extremely deadly Alien poison - - -[recipe-name] -NE_basic-alien-nutrientant = Basic Nutrient Solution -NE_alien-revitalization = Alien Revitalization Solution -NE_enhanced-alien-nutrientant = Enhanced Nutrient Solution -ne-living-wall = Living Wall -ne-combat-inserter = Combat Inserter - -[recipe-description] -NE_basic-alien-nutrientant = for growing basic alien lifeforms / structures -NE_alien-revitalization = to revitalize uprooted alien structures / Alien Toxin for killing... -NE_enhanced-alien-nutrientant = Enhanced Alien Nutrient for growing -ne-living-wall = a Living Wall that can repair itself and also defend itself -ne-combat-inserter = A high resistant Inserter made to take some enemy punishment! - - -[entity-name] -TerraformingStation = Terraforming Station -AlienControlStation = Alien Control Station -AlienControlStation_Area = Alien Control Station -Alien_Hatchery = Alien Hatchery -tame-small-biter = Tame Small Biter -tame-medium-biter = Tame Medium Biter -tame-big-biter = Tame Big Biter -tame-behemoth-biter = Tame Behemoth Biter -tame-small-spitter = Tame Small Spitter -tame-medium-spitter = Tame Medium Spitter -tame-big-spitter = Tame Big Spitter -tame-behemoth-spitter = Tame Behemoth Spitter -small-worm-turret-player = Small Worm -medium-worm-turret-player = Medium Worm -big-worm-turret-player = Big Worm -Natural_Evolution_Biter-Spawner = Human made fully working Biter Spawner -Natural_Evolution_Spitter-Spawner = Human made fully working Spitter Spawner -small-biter-Mk2 = Infected Small Biter -small-biter-Mk3 = Mutated Small Biter -medium-biter-Mk2 = Infected Medium Biter -medium-biter-Mk3 = Mutated Medium Biter -big-biter-Mk2 = Infected Big Biter -big-biter-Mk3 = Mutated Big Biter -small-spitter-Mk2 = Infected Small Spitter -small-spitter-Mk3 = Mutated Small Spitter -medium-spitter-Mk2 = Infected Medium Spitter -medium-spitter-Mk3 = Mutated Medium Spitter -big-spitter-Mk2 = Infected Big Spitter -big-spitter-Mk3 = Mutated Big Spitter -Thumper = Thumper -ne-living-wall = Living Wall -combat-inserter = Combat Inserter - -[entity-description] -TerraformingStation = Terraforming Station -AlienControlStation = A Radar that can also control the minds of nearby enemies (CAN'T BE MOVED ONCE PLACED) -AlienControlStation_Area = A Radar that can also control the minds of nearby enemies (CAN'T BE MOVED ONCE PLACED) -Alien_Hatchery = Human Bread Aliens -tame-small-biter = Tame Small Biter -tame-medium-biter = Tame Medium Biter -tame-big-biter = Tame Big Biter -tame-behemoth-biter = Tame Behemoth Biter -tame-small-spitter = Tame Small Spitter -tame-medium-spitter = Tame Medium Spitter -tame-big-spitter = Tame Big Spitter -tame-behemoth-spitter = Tame Behemoth Spitter -small-worm-player = Small Worm -medium-worm-player = Medium Worm -big-worm-player = Big Worm -Natural_Evolution_Biter-Spawner = Will spawn tame Biters -Natural_Evolution_Spitter-Spawner = Will spawn tame Spitters -small-biter-Mk2 = Pollution Infected Biter -small-biter-Mk3 = Mutated due to Pollution Poisoning -medium-biter-Mk2 = Pollution Infected Biter -medium-biter-Mk3 = Mutated due to Pollution Poisoning -big-biter-Mk2 = Pollution Infected Biter -big-biter-Mk3 = Mutated due to Pollution Poisoning -small-spitter-Mk2 = Pollution Infected Spitter -small-spitter-Mk3 = Mutated due to Pollution Poisoning -medium-spitter-Mk2 = Pollution Infected Spitter -medium-spitter-Mk3 = Mutated due to Pollution Poisoning -big-spitter-Mk2 = Pollution Infected Spitter -big-spitter-Mk3 = Mutated due to Pollution Poisoning -Thumper = Attracts nearby Enemies -ne-living-wall = a Living Wall that can repair itself and also defend itself -combat-inserter = A tought Inserter made to take some enemy punishment! - - -[technology-name] -AlienUnderstanding = Alien Understanding -AlienUnderstanding-2 = Alien Understanding 2 -AlienUnderstanding-3 = Alien Understanding 3 -TerraformingStation = Terraforming Station -AlienControlStation = Alien Control Station -Alien_Training = Alien Training -Biter_Spawners = Biter Spawners -Spitter_Spawners = Spitter Spawners -Alien_Hatchery = Alien Hatchery -Breeding = Breeding of Aliens -Breeding-2 = Breeding of Aliens -Breeding-3 = Breeding of Aliens -Breeding-4 = Breeding of Aliens -NE_basic-alien-nutrientant = Basic Alien Nutrient -NE_alien-revitalization = Alien Revitalization -NE_enhanced-alien-nutrientant = Enhanced Alien Nutrient - -[technology-description] -TerraformingStation = Unlocks the Terraforming Station, A Radar like building that reduces Evolution per time -AlienControlStation = Unlocks the Alien Control Station. A Radar that can also control the minds of nearby enemies -AlienUnderstanding = Unlocks Alien Understanding. That gives you a better understanding of this alien world.... -Alien_Training = You're able to have 'Friendly' Alien units follow you. -Biter_Spawners = You can now build natural Biter Spawners -Spitter_Spawners = You can now build natural Spitter Spawners -Alien_Hatchery = A Man made Alien Spawner -Breeding = Breeding of Aliens (4 levels) -Breeding-2 = Breeding of Aliens (4 levels) -Breeding-3 = Breeding of Aliens (4 levels) -Breeding-4 =Breeding of Aliens (4 levels) - - -[damage-type-name] -Biological = Biological -Venom = Venom - +[item-group-name] +Natural-Evolution = Natural-Evolution + + +[item-name] +TerraformingStation = Terraforming Station +AlienControlStation = Alien Control Station +AlienControlStation_Area = Alien Control Station +attractor-on = Attract Biters - ON +attractor-off = Attract Biters - OFF +Alien_Hatchery = Alien Hatchery +Building_Materials = Building Materials +small-biter-hatching = Small Biter Hatching +medium-biter-hatching = Medium Biter Hatching +big-biter-hatching = Big Biter Hatching +behemoth-biter-hatching = Behemoth Biter Hatching +small-spitter-hatching = Small Spitter Hatching +medium-spitter-hatching = Medium Spitter Hatching +big-spitter-hatching = Big Spitter Hatching +behemoth-spitter-hatching = Behemoth Spitter Hatching +Biological-bullet-magazine = Biological Bullet Magazine +small-worm-hatching-exhausted = Exhausted small worm +medium-worm-hatching-exhausted = Exhausted medium worm +big-worm-hatching-exhausted = Exhausted big worm +Natural_Evolution_Biter-Spawner-exhausted = Exhausted human made Biter Spawner +Natural_Evolution_Spitter-Spawner-exhausted = Exhausted human made Spitter Spawner +ne-living-wall = Living Wall +ne-living-wall-exhausted = Exhausted Living Wall +combat-inserter = Combat Inserter + +[item-description] +TerraformingStation = Terraforming Station transmits radio waves, which reduce evolution per time. Each consecutive station is less effective than the one before +AlienControlStation = A Radar that can also control the minds of nearby enemies +AlienControlStation_Area = A Radar that can also control the minds of nearby enemies +Alien_Hatchery = Human Bread Aliens +attractor-on = Have Aliens follow you +attractor-off = Stop Aliens from following you +Building_Materials = The needed materials to build something +small-biter-hatching = Small Biter Hatching +medium-biter-hatching = Medium Biter Hatching +big-biter-hatching = Big Biter Hatching +behemoth-biter-hatching = Behemoth Biter Hatching +small-spitter-hatching = Small Spitter Hatching +medium-spitter-hatching = Medium Spitter Hatching +big-spitter-hatching = Big Spitter Hatching +behemoth-spitter-hatching = Behemoth Spitter Hatching +Biological-bullet-magazine = Extremely Deadly to Aliens! +small-worm-hatching-exhausted = This poor little guy needs a shot of Alien Revitalization Solution +medium-worm-hatching-exhausted = This poor little guy needs a shot of Alien Revitalization Solution +big-worm-hatching-exhausted = This poor little guy needs a shot of Alien Revitalization Solution +Natural_Evolution_Biter-Spawner-exhausted = This uprooted building needs a shot of Alien Revitalization Solution +Natural_Evolution_Spitter-Spawner-exhausted = This uprooted building needs a shot of Alien Revitalization Solution +ne-living-wall = a Living Wall that can repair itself and also defend itself +ne-living-wall-exhausted = This uprooted wall needs a shot of Alien Revitalization Solution +combat-inserter = A high resistant Inserter made to take some enemy punishment! + + +[fluid-name] +NE_nutrient-solution = Basic Nutrient Solution +NE_revitalization-solution = Alien Revitalization Solution +NE_alien-revitalization = to revitalize uprooted alien structures / Alien Toxin for killing... +NE_enhanced-nutrient-solution = Enhanced Nutrient Solution +NE_alien_toxin = Alien Toxin + +[fluid-description] +NE_nutrient-solution = for growing basic alien lifeforms / structures +NE_revitalization-solution = to revitalize uprooted alien structures +NE_alien-revitalization = to revitalize uprooted alien structures / Alien Toxin for killing... +NE_enhanced-nutrient-solution = for growing advanced alien liveforms / strucutures +NE_alien_toxin = Extremely deadly Alien poison + + +[recipe-name] +NE_basic-alien-nutrientant = Basic Nutrient Solution +NE_alien-revitalization = Alien Revitalization Solution +NE_enhanced-alien-nutrientant = Enhanced Nutrient Solution +ne-living-wall = Living Wall +ne-combat-inserter = Combat Inserter + +[recipe-description] +NE_basic-alien-nutrientant = for growing basic alien lifeforms / structures +NE_alien-revitalization = to revitalize uprooted alien structures / Alien Toxin for killing... +NE_enhanced-alien-nutrientant = Enhanced Alien Nutrient for growing +ne-living-wall = a Living Wall that can repair itself and also defend itself +ne-combat-inserter = A high resistant Inserter made to take some enemy punishment! + + +[entity-name] +TerraformingStation = Terraforming Station +AlienControlStation = Alien Control Station +AlienControlStation_Area = Alien Control Station +Alien_Hatchery = Alien Hatchery +tame-small-biter = Tame Small Biter +tame-medium-biter = Tame Medium Biter +tame-big-biter = Tame Big Biter +tame-behemoth-biter = Tame Behemoth Biter +tame-small-spitter = Tame Small Spitter +tame-medium-spitter = Tame Medium Spitter +tame-big-spitter = Tame Big Spitter +tame-behemoth-spitter = Tame Behemoth Spitter +small-worm-turret-player = Small Worm +medium-worm-turret-player = Medium Worm +big-worm-turret-player = Big Worm +Natural_Evolution_Biter-Spawner = Human made fully working Biter Spawner +Natural_Evolution_Spitter-Spawner = Human made fully working Spitter Spawner +small-biter-Mk2 = Infected Small Biter +small-biter-Mk3 = Mutated Small Biter +medium-biter-Mk2 = Infected Medium Biter +medium-biter-Mk3 = Mutated Medium Biter +big-biter-Mk2 = Infected Big Biter +big-biter-Mk3 = Mutated Big Biter +small-spitter-Mk2 = Infected Small Spitter +small-spitter-Mk3 = Mutated Small Spitter +medium-spitter-Mk2 = Infected Medium Spitter +medium-spitter-Mk3 = Mutated Medium Spitter +big-spitter-Mk2 = Infected Big Spitter +big-spitter-Mk3 = Mutated Big Spitter +Thumper = Thumper +ne-living-wall = Living Wall +combat-inserter = Combat Inserter + +[entity-description] +TerraformingStation = Terraforming Station +AlienControlStation = A Radar that can also control the minds of nearby enemies (CAN'T BE MOVED ONCE PLACED) +AlienControlStation_Area = A Radar that can also control the minds of nearby enemies (CAN'T BE MOVED ONCE PLACED) +Alien_Hatchery = Human Bread Aliens +tame-small-biter = Tame Small Biter +tame-medium-biter = Tame Medium Biter +tame-big-biter = Tame Big Biter +tame-behemoth-biter = Tame Behemoth Biter +tame-small-spitter = Tame Small Spitter +tame-medium-spitter = Tame Medium Spitter +tame-big-spitter = Tame Big Spitter +tame-behemoth-spitter = Tame Behemoth Spitter +small-worm-player = Small Worm +medium-worm-player = Medium Worm +big-worm-player = Big Worm +Natural_Evolution_Biter-Spawner = Will spawn tame Biters +Natural_Evolution_Spitter-Spawner = Will spawn tame Spitters +small-biter-Mk2 = Pollution Infected Biter +small-biter-Mk3 = Mutated due to Pollution Poisoning +medium-biter-Mk2 = Pollution Infected Biter +medium-biter-Mk3 = Mutated due to Pollution Poisoning +big-biter-Mk2 = Pollution Infected Biter +big-biter-Mk3 = Mutated due to Pollution Poisoning +small-spitter-Mk2 = Pollution Infected Spitter +small-spitter-Mk3 = Mutated due to Pollution Poisoning +medium-spitter-Mk2 = Pollution Infected Spitter +medium-spitter-Mk3 = Mutated due to Pollution Poisoning +big-spitter-Mk2 = Pollution Infected Spitter +big-spitter-Mk3 = Mutated due to Pollution Poisoning +Thumper = Attracts nearby Enemies +ne-living-wall = a Living Wall that can repair itself and also defend itself +combat-inserter = A tought Inserter made to take some enemy punishment! + + +[technology-name] +AlienUnderstanding = Alien Understanding +AlienUnderstanding-2 = Alien Understanding 2 +AlienUnderstanding-3 = Alien Understanding 3 +TerraformingStation = Terraforming Station +AlienControlStation = Alien Control Station +Alien_Training = Alien Training +Biter_Spawners = Biter Spawners +Spitter_Spawners = Spitter Spawners +Alien_Hatchery = Alien Hatchery +Breeding = Breeding of Aliens +Breeding-2 = Breeding of Aliens +Breeding-3 = Breeding of Aliens +Breeding-4 = Breeding of Aliens +NE_basic-alien-nutrientant = Basic Alien Nutrient +NE_alien-revitalization = Alien Revitalization +NE_enhanced-alien-nutrientant = Enhanced Alien Nutrient + +[technology-description] +TerraformingStation = Unlocks the Terraforming Station, A Radar like building that reduces Evolution per time +AlienControlStation = Unlocks the Alien Control Station. A Radar that can also control the minds of nearby enemies +AlienUnderstanding = Unlocks Alien Understanding. That gives you a better understanding of this alien world.... +Alien_Training = You're able to have 'Friendly' Alien units follow you. +Biter_Spawners = You can now build natural Biter Spawners +Spitter_Spawners = You can now build natural Spitter Spawners +Alien_Hatchery = A Man made Alien Spawner +Breeding = Breeding of Aliens (4 levels) +Breeding-2 = Breeding of Aliens (4 levels) +Breeding-3 = Breeding of Aliens (4 levels) +Breeding-4 =Breeding of Aliens (4 levels) + + +[damage-type-name] +Biological = Biological +Venom = Venom + diff --git a/Natural_Evolution_Buildings_6.3.0/migrations/Natural_Evolution_Buildings_5.3.2.lua b/Natural_Evolution_Buildings_6.3.1/migrations/Natural_Evolution_Buildings_5.3.2.lua similarity index 94% rename from Natural_Evolution_Buildings_6.3.0/migrations/Natural_Evolution_Buildings_5.3.2.lua rename to Natural_Evolution_Buildings_6.3.1/migrations/Natural_Evolution_Buildings_5.3.2.lua index ee5e751..e551c5e 100644 --- a/Natural_Evolution_Buildings_6.3.0/migrations/Natural_Evolution_Buildings_5.3.2.lua +++ b/Natural_Evolution_Buildings_6.3.1/migrations/Natural_Evolution_Buildings_5.3.2.lua @@ -1,19 +1,19 @@ - -game.reload_script() - - -for index, force in pairs(game.forces) do - local technologies = force.technologies; - local recipes = force.recipes; - - force.reset_recipes() - force.reset_technologies() - - - if technologies["AlienUnderstanding"].researched then - recipes["Building_Materials"].enabled = true - recipes["Building_Materials"].reload() - end - - -end + +game.reload_script() + + +for index, force in pairs(game.forces) do + local technologies = force.technologies; + local recipes = force.recipes; + + force.reset_recipes() + force.reset_technologies() + + + if technologies["AlienUnderstanding"].researched then + recipes["Building_Materials"].enabled = true + recipes["Building_Materials"].reload() + end + + +end diff --git a/Natural_Evolution_Buildings_6.3.0/migrations/Natural_Evolution_Buildings_6.0.0.lua b/Natural_Evolution_Buildings_6.3.1/migrations/Natural_Evolution_Buildings_6.0.0.lua similarity index 94% rename from Natural_Evolution_Buildings_6.3.0/migrations/Natural_Evolution_Buildings_6.0.0.lua rename to Natural_Evolution_Buildings_6.3.1/migrations/Natural_Evolution_Buildings_6.0.0.lua index ee5e751..e551c5e 100644 --- a/Natural_Evolution_Buildings_6.3.0/migrations/Natural_Evolution_Buildings_6.0.0.lua +++ b/Natural_Evolution_Buildings_6.3.1/migrations/Natural_Evolution_Buildings_6.0.0.lua @@ -1,19 +1,19 @@ - -game.reload_script() - - -for index, force in pairs(game.forces) do - local technologies = force.technologies; - local recipes = force.recipes; - - force.reset_recipes() - force.reset_technologies() - - - if technologies["AlienUnderstanding"].researched then - recipes["Building_Materials"].enabled = true - recipes["Building_Materials"].reload() - end - - -end + +game.reload_script() + + +for index, force in pairs(game.forces) do + local technologies = force.technologies; + local recipes = force.recipes; + + force.reset_recipes() + force.reset_technologies() + + + if technologies["AlienUnderstanding"].researched then + recipes["Building_Materials"].enabled = true + recipes["Building_Materials"].reload() + end + + +end diff --git a/Natural_Evolution_Buildings_6.3.0/migrations/Natural_Evolution_Buildings_6.0.1.lua b/Natural_Evolution_Buildings_6.3.1/migrations/Natural_Evolution_Buildings_6.0.1.lua similarity index 94% rename from Natural_Evolution_Buildings_6.3.0/migrations/Natural_Evolution_Buildings_6.0.1.lua rename to Natural_Evolution_Buildings_6.3.1/migrations/Natural_Evolution_Buildings_6.0.1.lua index ee5e751..e551c5e 100644 --- a/Natural_Evolution_Buildings_6.3.0/migrations/Natural_Evolution_Buildings_6.0.1.lua +++ b/Natural_Evolution_Buildings_6.3.1/migrations/Natural_Evolution_Buildings_6.0.1.lua @@ -1,19 +1,19 @@ - -game.reload_script() - - -for index, force in pairs(game.forces) do - local technologies = force.technologies; - local recipes = force.recipes; - - force.reset_recipes() - force.reset_technologies() - - - if technologies["AlienUnderstanding"].researched then - recipes["Building_Materials"].enabled = true - recipes["Building_Materials"].reload() - end - - -end + +game.reload_script() + + +for index, force in pairs(game.forces) do + local technologies = force.technologies; + local recipes = force.recipes; + + force.reset_recipes() + force.reset_technologies() + + + if technologies["AlienUnderstanding"].researched then + recipes["Building_Materials"].enabled = true + recipes["Building_Materials"].reload() + end + + +end diff --git a/Natural_Evolution_Buildings_6.3.0/migrations/Natural_Evolution_Buildings_6.0.4.lua b/Natural_Evolution_Buildings_6.3.1/migrations/Natural_Evolution_Buildings_6.0.4.lua similarity index 94% rename from Natural_Evolution_Buildings_6.3.0/migrations/Natural_Evolution_Buildings_6.0.4.lua rename to Natural_Evolution_Buildings_6.3.1/migrations/Natural_Evolution_Buildings_6.0.4.lua index ee5e751..e551c5e 100644 --- a/Natural_Evolution_Buildings_6.3.0/migrations/Natural_Evolution_Buildings_6.0.4.lua +++ b/Natural_Evolution_Buildings_6.3.1/migrations/Natural_Evolution_Buildings_6.0.4.lua @@ -1,19 +1,19 @@ - -game.reload_script() - - -for index, force in pairs(game.forces) do - local technologies = force.technologies; - local recipes = force.recipes; - - force.reset_recipes() - force.reset_technologies() - - - if technologies["AlienUnderstanding"].researched then - recipes["Building_Materials"].enabled = true - recipes["Building_Materials"].reload() - end - - -end + +game.reload_script() + + +for index, force in pairs(game.forces) do + local technologies = force.technologies; + local recipes = force.recipes; + + force.reset_recipes() + force.reset_technologies() + + + if technologies["AlienUnderstanding"].researched then + recipes["Building_Materials"].enabled = true + recipes["Building_Materials"].reload() + end + + +end diff --git a/Natural_Evolution_Buildings_6.3.0/migrations/Natural_Evolution_Buildings_6.1.1.lua b/Natural_Evolution_Buildings_6.3.1/migrations/Natural_Evolution_Buildings_6.1.1.lua similarity index 94% rename from Natural_Evolution_Buildings_6.3.0/migrations/Natural_Evolution_Buildings_6.1.1.lua rename to Natural_Evolution_Buildings_6.3.1/migrations/Natural_Evolution_Buildings_6.1.1.lua index a26250c..9eaee35 100644 --- a/Natural_Evolution_Buildings_6.3.0/migrations/Natural_Evolution_Buildings_6.1.1.lua +++ b/Natural_Evolution_Buildings_6.3.1/migrations/Natural_Evolution_Buildings_6.1.1.lua @@ -1,13 +1,13 @@ - -game.reload_script() - - -for index, force in pairs(game.forces) do - local technologies = force.technologies; - local recipes = force.recipes; - - force.reset_recipes() - force.reset_technologies() - - -end + +game.reload_script() + + +for index, force in pairs(game.forces) do + local technologies = force.technologies; + local recipes = force.recipes; + + force.reset_recipes() + force.reset_technologies() + + +end diff --git a/Natural_Evolution_Buildings_6.3.0/migrations/Natural_Evolution_Buildings_6.1.6.lua b/Natural_Evolution_Buildings_6.3.1/migrations/Natural_Evolution_Buildings_6.1.6.lua similarity index 95% rename from Natural_Evolution_Buildings_6.3.0/migrations/Natural_Evolution_Buildings_6.1.6.lua rename to Natural_Evolution_Buildings_6.3.1/migrations/Natural_Evolution_Buildings_6.1.6.lua index 877d11f..8f6550b 100644 --- a/Natural_Evolution_Buildings_6.3.0/migrations/Natural_Evolution_Buildings_6.1.6.lua +++ b/Natural_Evolution_Buildings_6.3.1/migrations/Natural_Evolution_Buildings_6.1.6.lua @@ -1,18 +1,18 @@ - -game.reload_script() - - -for index, force in pairs(game.forces) do - local technologies = force.technologies; - local recipes = force.recipes; - - force.reset_recipes() - force.reset_technologies() - - - if technologies["AlienUnderstanding"].researched then - recipes["ne-combat-inserter"].enabled = true - recipes["ne-combat-inserter"].reload() - end - -end + +game.reload_script() + + +for index, force in pairs(game.forces) do + local technologies = force.technologies; + local recipes = force.recipes; + + force.reset_recipes() + force.reset_technologies() + + + if technologies["AlienUnderstanding"].researched then + recipes["ne-combat-inserter"].enabled = true + recipes["ne-combat-inserter"].reload() + end + +end diff --git a/Natural_Evolution_Buildings_6.3.0/migrations/Natural_Evolution_Buildings_6.2.0.lua b/Natural_Evolution_Buildings_6.3.1/migrations/Natural_Evolution_Buildings_6.2.0.lua similarity index 95% rename from Natural_Evolution_Buildings_6.3.0/migrations/Natural_Evolution_Buildings_6.2.0.lua rename to Natural_Evolution_Buildings_6.3.1/migrations/Natural_Evolution_Buildings_6.2.0.lua index 877d11f..8f6550b 100644 --- a/Natural_Evolution_Buildings_6.3.0/migrations/Natural_Evolution_Buildings_6.2.0.lua +++ b/Natural_Evolution_Buildings_6.3.1/migrations/Natural_Evolution_Buildings_6.2.0.lua @@ -1,18 +1,18 @@ - -game.reload_script() - - -for index, force in pairs(game.forces) do - local technologies = force.technologies; - local recipes = force.recipes; - - force.reset_recipes() - force.reset_technologies() - - - if technologies["AlienUnderstanding"].researched then - recipes["ne-combat-inserter"].enabled = true - recipes["ne-combat-inserter"].reload() - end - -end + +game.reload_script() + + +for index, force in pairs(game.forces) do + local technologies = force.technologies; + local recipes = force.recipes; + + force.reset_recipes() + force.reset_technologies() + + + if technologies["AlienUnderstanding"].researched then + recipes["ne-combat-inserter"].enabled = true + recipes["ne-combat-inserter"].reload() + end + +end diff --git a/Natural_Evolution_Buildings_6.3.0/migrations/Natural_Evolution_Buildings_6.2.1.lua b/Natural_Evolution_Buildings_6.3.1/migrations/Natural_Evolution_Buildings_6.2.1.lua similarity index 95% rename from Natural_Evolution_Buildings_6.3.0/migrations/Natural_Evolution_Buildings_6.2.1.lua rename to Natural_Evolution_Buildings_6.3.1/migrations/Natural_Evolution_Buildings_6.2.1.lua index d1a2a44..b123d35 100644 --- a/Natural_Evolution_Buildings_6.3.0/migrations/Natural_Evolution_Buildings_6.2.1.lua +++ b/Natural_Evolution_Buildings_6.3.1/migrations/Natural_Evolution_Buildings_6.2.1.lua @@ -1,20 +1,20 @@ - -game.reload_script() - - -for index, force in pairs(game.forces) do - local technologies = force.technologies; - local recipes = force.recipes; - - force.reset_recipes() - force.reset_technologies() - - - if technologies["Alien_Hatchery"].researched then - recipes["ne-living-wall"].enabled = true - recipes["ne-living-wall"].reload() - recipes["ne-living-wall-refresh"].enabled = true - recipes["ne-living-wall-refresh"].reload() - end - -end + +game.reload_script() + + +for index, force in pairs(game.forces) do + local technologies = force.technologies; + local recipes = force.recipes; + + force.reset_recipes() + force.reset_technologies() + + + if technologies["Alien_Hatchery"].researched then + recipes["ne-living-wall"].enabled = true + recipes["ne-living-wall"].reload() + recipes["ne-living-wall-refresh"].enabled = true + recipes["ne-living-wall-refresh"].reload() + end + +end diff --git a/Natural_Evolution_Buildings_6.3.0/migrations/Natural_Evolution_Buildings_6.3.0.lua b/Natural_Evolution_Buildings_6.3.1/migrations/Natural_Evolution_Buildings_6.3.0.lua similarity index 93% rename from Natural_Evolution_Buildings_6.3.0/migrations/Natural_Evolution_Buildings_6.3.0.lua rename to Natural_Evolution_Buildings_6.3.1/migrations/Natural_Evolution_Buildings_6.3.0.lua index 172625f..740946e 100644 --- a/Natural_Evolution_Buildings_6.3.0/migrations/Natural_Evolution_Buildings_6.3.0.lua +++ b/Natural_Evolution_Buildings_6.3.1/migrations/Natural_Evolution_Buildings_6.3.0.lua @@ -1,14 +1,14 @@ - -game.reload_script() - - -for index, force in pairs(game.forces) do - local technologies = force.technologies; - local recipes = force.recipes; - - force.reset_recipes() - force.reset_technologies() - - - -end + +game.reload_script() + + +for index, force in pairs(game.forces) do + local technologies = force.technologies; + local recipes = force.recipes; + + force.reset_recipes() + force.reset_technologies() + + + +end diff --git a/Natural_Evolution_Buildings_6.3.0/prototypes/Alien_Control_Station/entity.lua b/Natural_Evolution_Buildings_6.3.1/prototypes/Alien_Control_Station/entity.lua similarity index 96% rename from Natural_Evolution_Buildings_6.3.0/prototypes/Alien_Control_Station/entity.lua rename to Natural_Evolution_Buildings_6.3.1/prototypes/Alien_Control_Station/entity.lua index c64d899..eab73ea 100644 --- a/Natural_Evolution_Buildings_6.3.0/prototypes/Alien_Control_Station/entity.lua +++ b/Natural_Evolution_Buildings_6.3.1/prototypes/Alien_Control_Station/entity.lua @@ -1,96 +1,96 @@ - - - -data:extend({ - - - ---- Alien Control Station - - { - type = "radar", - name = "AlienControlStation_Area", - icon = "__Natural_Evolution_Buildings__/graphics/icons/AlienControlStation.png", - flags = {"placeable-neutral", "placeable-player", "player-creation"}, - minable = {hardness = 0.8, mining_time = 1.5, result = "AlienControlStation_Area"}, - max_health = 250, - corpse = "big-remnants", - dying_explosion = "medium-explosion", - resistances = - { - { - type = "fire", - percent = 70 - } - }, - collision_box = {{-1.4, -1.4}, {1.4, 1.4}}, - selection_box = {{0, 0}, {0, 0}}, - energy_per_sector = "15MJ", - max_distance_of_nearby_sector_revealed = 5, - max_distance_of_sector_revealed = 15, - energy_per_nearby_scan = "250kJ", - energy_source = - { - type = "electric", - usage_priority = "secondary-input" - }, - energy_usage = "500kW", - pictures = - { - filename = "__Natural_Evolution_Buildings__/graphics/entity/AlienControlStation_Area.png", - priority = "extra-high", - width = 1130, - height = 1130, - axially_symmetrical = false, - apply_projection = false, - direction_count = 1, - line_length = 1, - scale = 2, - }, - }, - - - ---- Alien Control Station - { - type = "radar", - name = "AlienControlStation", - icon = "__Natural_Evolution_Buildings__/graphics/icons/AlienControlStation.png", - flags = {"placeable-neutral", "placeable-player", "player-creation"}, - minable = {hardness = 0.8, mining_time = 1.5, results = {{type="item", name="Building_Materials", amount=5},}}, - --- NOTE, when mined, you will lose the Alien artifacts! ---- - max_health = 250, - corpse = "big-remnants", - dying_explosion = "medium-explosion", - resistances = - { - { - type = "fire", - percent = 70 - } - }, - collision_box = {{-1.4, -1.4}, {1.4, 1.4}}, - selection_box = {{-1.5, -1.5}, {1.5, 1.5}}, - energy_per_sector = "15MJ", - max_distance_of_nearby_sector_revealed = 5, - max_distance_of_sector_revealed = 15, - energy_per_nearby_scan = "250kJ", - energy_source = - { - type = "electric", - usage_priority = "secondary-input" - }, - energy_usage = "500kW", - pictures = - { - filename = "__Natural_Evolution_Buildings__/graphics/entity/AlienControlStation.png", - priority = "high", - width = 128, - height = 128, - axially_symmetrical = false, - apply_projection = false, - direction_count = 16, - line_length = 4, - shift = {0.225, -0.3}, - }, - }, - -}) + + + +data:extend({ + + + ---- Alien Control Station + + { + type = "radar", + name = "AlienControlStation_Area", + icon = "__Natural_Evolution_Buildings__/graphics/icons/AlienControlStation.png", + flags = {"placeable-neutral", "placeable-player", "player-creation"}, + minable = {hardness = 0.8, mining_time = 1.5, result = "AlienControlStation_Area"}, + max_health = 250, + corpse = "big-remnants", + dying_explosion = "medium-explosion", + resistances = + { + { + type = "fire", + percent = 70 + } + }, + collision_box = {{-1.4, -1.4}, {1.4, 1.4}}, + selection_box = {{0, 0}, {0, 0}}, + energy_per_sector = "15MJ", + max_distance_of_nearby_sector_revealed = 5, + max_distance_of_sector_revealed = 15, + energy_per_nearby_scan = "250kJ", + energy_source = + { + type = "electric", + usage_priority = "secondary-input" + }, + energy_usage = "500kW", + pictures = + { + filename = "__Natural_Evolution_Buildings__/graphics/entity/AlienControlStation_Area.png", + priority = "extra-high", + width = 1130, + height = 1130, + axially_symmetrical = false, + apply_projection = false, + direction_count = 1, + line_length = 1, + scale = 2, + }, + }, + + + ---- Alien Control Station + { + type = "radar", + name = "AlienControlStation", + icon = "__Natural_Evolution_Buildings__/graphics/icons/AlienControlStation.png", + flags = {"placeable-neutral", "placeable-player", "player-creation"}, + minable = {hardness = 0.8, mining_time = 1.5, results = {{type="item", name="Building_Materials", amount=5},}}, + --- NOTE, when mined, you will lose the Alien artifacts! ---- + max_health = 250, + corpse = "big-remnants", + dying_explosion = "medium-explosion", + resistances = + { + { + type = "fire", + percent = 70 + } + }, + collision_box = {{-1.4, -1.4}, {1.4, 1.4}}, + selection_box = {{-1.5, -1.5}, {1.5, 1.5}}, + energy_per_sector = "15MJ", + max_distance_of_nearby_sector_revealed = 5, + max_distance_of_sector_revealed = 15, + energy_per_nearby_scan = "250kJ", + energy_source = + { + type = "electric", + usage_priority = "secondary-input" + }, + energy_usage = "500kW", + pictures = + { + filename = "__Natural_Evolution_Buildings__/graphics/entity/AlienControlStation.png", + priority = "high", + width = 128, + height = 128, + axially_symmetrical = false, + apply_projection = false, + direction_count = 16, + line_length = 4, + shift = {0.225, -0.3}, + }, + }, + +}) diff --git a/Natural_Evolution_Buildings_6.3.0/prototypes/Alien_Control_Station/item.lua b/Natural_Evolution_Buildings_6.3.1/prototypes/Alien_Control_Station/item.lua similarity index 96% rename from Natural_Evolution_Buildings_6.3.0/prototypes/Alien_Control_Station/item.lua rename to Natural_Evolution_Buildings_6.3.1/prototypes/Alien_Control_Station/item.lua index c7f566f..2391bc9 100644 --- a/Natural_Evolution_Buildings_6.3.0/prototypes/Alien_Control_Station/item.lua +++ b/Natural_Evolution_Buildings_6.3.1/prototypes/Alien_Control_Station/item.lua @@ -1,28 +1,28 @@ -data:extend({ - - - --- Alien Control Station Area - { - type = "item", - name = "AlienControlStation_Area", - icon = "__Natural_Evolution_Buildings__/graphics/icons/AlienControlStation_32.png", - flags = {"goes-to-quickbar"}, - subgroup = "Natural-Evolution", - order = "b[AlienControlStation]-a[AlienControlStation]", - place_result = "AlienControlStation_Area", - stack_size = 10 - }, - - --- Alien Control Station - { - type = "item", - name = "AlienControlStation", - icon = "__Natural_Evolution_Buildings__/graphics/icons/AlienControlStation_32.png", - flags = {"goes-to-quickbar"}, - subgroup = "Natural-Evolution", - order = "b[AlienControlStation]-b[AlienControlStation]", - place_result = "AlienControlStation", - stack_size = 10 - }, - -}) +data:extend({ + + + --- Alien Control Station Area + { + type = "item", + name = "AlienControlStation_Area", + icon = "__Natural_Evolution_Buildings__/graphics/icons/AlienControlStation_32.png", + flags = {"goes-to-quickbar"}, + subgroup = "Natural-Evolution", + order = "b[AlienControlStation]-a[AlienControlStation]", + place_result = "AlienControlStation_Area", + stack_size = 10 + }, + + --- Alien Control Station + { + type = "item", + name = "AlienControlStation", + icon = "__Natural_Evolution_Buildings__/graphics/icons/AlienControlStation_32.png", + flags = {"goes-to-quickbar"}, + subgroup = "Natural-Evolution", + order = "b[AlienControlStation]-b[AlienControlStation]", + place_result = "AlienControlStation", + stack_size = 10 + }, + +}) diff --git a/Natural_Evolution_Buildings_6.3.0/prototypes/Alien_Control_Station/recipe.lua b/Natural_Evolution_Buildings_6.3.1/prototypes/Alien_Control_Station/recipe.lua similarity index 94% rename from Natural_Evolution_Buildings_6.3.0/prototypes/Alien_Control_Station/recipe.lua rename to Natural_Evolution_Buildings_6.3.1/prototypes/Alien_Control_Station/recipe.lua index a375d8b..7a03784 100644 --- a/Natural_Evolution_Buildings_6.3.0/prototypes/Alien_Control_Station/recipe.lua +++ b/Natural_Evolution_Buildings_6.3.1/prototypes/Alien_Control_Station/recipe.lua @@ -1,33 +1,33 @@ -data:extend({ - - - --- Alien Control Station Area - { - type = "recipe", - name = "AlienControlStation", - energy_required = 20, - enabled = false, - ingredients = - { - {"Building_Materials", 10}, - {"alien-artifact", 10}, - }, - result = "AlienControlStation_Area" - }, ---[[ - --- Alien Control Station - { - type = "recipe", - name = "AlienControlStation", - energy_required = 20, - enabled = false, - ingredients = - { - {"Building_Materials", 10}, - {"alien-artifact", 10}, - }, - result = "AlienControlStation" - }, -]] - +data:extend({ + + + --- Alien Control Station Area + { + type = "recipe", + name = "AlienControlStation", + energy_required = 20, + enabled = false, + ingredients = + { + {"Building_Materials", 10}, + {"alien-artifact", 10}, + }, + result = "AlienControlStation_Area" + }, +--[[ + --- Alien Control Station + { + type = "recipe", + name = "AlienControlStation", + energy_required = 20, + enabled = false, + ingredients = + { + {"Building_Materials", 10}, + {"alien-artifact", 10}, + }, + result = "AlienControlStation" + }, +]] + }) \ No newline at end of file diff --git a/Natural_Evolution_Buildings_6.3.0/prototypes/Alien_Hatchery/biters.lua b/Natural_Evolution_Buildings_6.3.1/prototypes/Alien_Hatchery/biters.lua similarity index 96% rename from Natural_Evolution_Buildings_6.3.0/prototypes/Alien_Hatchery/biters.lua rename to Natural_Evolution_Buildings_6.3.1/prototypes/Alien_Hatchery/biters.lua index 20778a8..046abf5 100644 --- a/Natural_Evolution_Buildings_6.3.0/prototypes/Alien_Hatchery/biters.lua +++ b/Natural_Evolution_Buildings_6.3.1/prototypes/Alien_Hatchery/biters.lua @@ -1,195 +1,195 @@ -data:extend( -{ - - { - type = "unit", - name = "tame-small-biter", - icon = "__base__/graphics/icons/creeper.png", - flags = {"placeable-player", "placeable-enemy", "placeable-off-grid", "breaths-air"}, - max_health = 15, - order = "001", - subgroup="enemies", - resistances = - { - { - type = "physical", - percent = 10, - }, - }, - healing_per_tick = 0.0001, - collision_box = {{-0.2, -0.2}, {0.2, 0.2}}, - selection_box = {{-0.4, -0.7}, {0.7, 0.4}}, - attack_parameters = - { - type = "projectile", - range = 0.5, - cooldown = 35, - ammo_category = "melee", - ammo_type = make_unit_melee_ammo_type(1), - sound = make_biter_roars(0.8), - animation = biterattackanimation(smallbiterscale, small_biter_tint1, small_biter_tint2) - }, - vision_distance = 30, - movement_speed = 0.2, - distance_per_frame = 0.1, - pollution_to_join_attack = 200, - distraction_cooldown = 300, - corpse = "small-biter-corpse", - dying_explosion = "blood-explosion-small", - dying_sound = make_biter_dying_sounds(1.0), - working_sound = make_biter_calls(0.7), - run_animation = biterrunanimation(smallbiterscale, small_biter_tint1, small_biter_tint2) - }, - { - type = "unit", - name = "tame-medium-biter", - icon = "__base__/graphics/icons/creeper.png", - flags = {"placeable-player", "placeable-enemy", "placeable-off-grid", "breaths-air", "not-repairable"}, - max_health = 75, - order = "002", - subgroup="enemies", - resistances = - { - { - type = "physical", - percent = 30, - }, - { - type = "acid", - percent = 30, - }, - { - type = "explosion", - percent = 10 - }, - }, - healing_per_tick = 0.0001, - collision_box = {{-0.3, -0.3}, {0.3, 0.3}}, - selection_box = {{-0.7, -1.5}, {0.7, 0.3}}, - sticker_box = {{-0.3, -0.5}, {0.3, 0.1}}, - distraction_cooldown = 300, - attack_parameters = - { - type = "projectile", - ammo_category = "melee", - ammo_type = make_unit_melee_ammo_type(15), - range = 1, - cooldown = 35, - sound = make_biter_roars(0.8), - animation = biterattackanimation(mediumbiterscale, medium_biter_tint1, medium_biter_tint2) - }, - vision_distance = 30, - movement_speed = 0.185, - distance_per_frame = 0.15, - -- in pu - pollution_to_join_attack = 1000, - corpse = "medium-biter-corpse", - dying_explosion = "blood-explosion-small", - dying_sound = make_biter_dying_sounds(1.0), - working_sound = make_biter_calls(0.7), - run_animation = biterrunanimation(mediumbiterscale, medium_biter_tint1, medium_biter_tint2) - }, - { - type = "unit", - name = "tame-big-biter", - order = "003", - icon = "__base__/graphics/icons/creeper.png", - flags = {"placeable-player", "placeable-enemy", "placeable-off-grid", "breaths-air", "not-repairable"}, - max_health = 375, - subgroup="enemies", - resistances = - { - { - type = "physical", - percent = 50, - }, - { - type = "laser", - percent = 50, - }, - { - type = "acid", - percent = 50, - }, - { - type = "explosion", - percent = 10 - } - }, - spawning_time_modifier = 2, - healing_per_tick = 0.0002, - collision_box = {{-0.4, -0.4}, {0.4, 0.4}}, - selection_box = {{-0.7, -1.5}, {0.7, 0.3}}, - sticker_box = {{-0.6, -0.8}, {0.6, 0}}, - distraction_cooldown = 300, - attack_parameters = - { - type = "projectile", - range = 1.5, - cooldown = 35, - ammo_category = "melee", - ammo_type = make_unit_melee_ammo_type(30), - sound = make_biter_roars(0.8), - animation = biterattackanimation(bigbiterscale, big_biter_tint1, big_biter_tint2) - }, - vision_distance = 30, - movement_speed = 0.17, - distance_per_frame = 0.2, - -- in pu - pollution_to_join_attack = 1000, - corpse = "big-biter-corpse", - dying_explosion = "blood-explosion-big", - dying_sound = make_biter_dying_sounds(1.0), - working_sound = make_biter_calls(0.7), - run_animation = biterrunanimation(bigbiterscale, big_biter_tint1, big_biter_tint2) - }, - { - type = "unit", - name = "tame-behemoth-biter", - order = "204", - icon = "__base__/graphics/icons/creeper.png", - flags = {"placeable-player", "placeable-enemy", "placeable-off-grid", "breaths-air", "not-repairable"}, - max_health = 5000, - subgroup="enemies", - resistances = - { - { - type = "physical", - decrease = 8, - percent = 20 - }, - { - type = "explosion", - decrease = 10, - percent = 20 - } - }, - spawning_time_modifier = 8, - healing_per_tick = 0.0001, - collision_box = {{-0.4, -0.4}, {0.4, 0.4}}, - selection_box = {{-0.7, -1.5}, {0.7, 0.3}}, - sticker_box = {{-0.6, -0.8}, {0.6, 0}}, - distraction_cooldown = 300, - attack_parameters = - { - type = "projectile", - range = 1.5, - cooldown = 50, - ammo_category = "melee", - ammo_type = make_unit_melee_ammo_type(100), - sound = make_biter_roars(0.8), - animation = biterattackanimation(behemothbiterscale, behemoth_biter_tint1, behemoth_biter_tint2) - }, - vision_distance = 30, - movement_speed = 0.17, - distance_per_frame = 0.2, - -- in pu - pollution_to_join_attack = 20000, - corpse = "behemoth-biter-corpse", - dying_explosion = "blood-explosion-big", - working_sound = make_biter_calls(1.2), - dying_sound = make_biter_dying_sounds(1.0), - run_animation = biterrunanimation(behemothbiterscale, behemoth_biter_tint1, behemoth_biter_tint2) - }, - -}) +data:extend( +{ + + { + type = "unit", + name = "tame-small-biter", + icon = "__base__/graphics/icons/creeper.png", + flags = {"placeable-player", "placeable-enemy", "placeable-off-grid", "breaths-air"}, + max_health = 15, + order = "001", + subgroup="enemies", + resistances = + { + { + type = "physical", + percent = 10, + }, + }, + healing_per_tick = 0.0001, + collision_box = {{-0.2, -0.2}, {0.2, 0.2}}, + selection_box = {{-0.4, -0.7}, {0.7, 0.4}}, + attack_parameters = + { + type = "projectile", + range = 0.5, + cooldown = 35, + ammo_category = "melee", + ammo_type = make_unit_melee_ammo_type(1), + sound = make_biter_roars(0.8), + animation = biterattackanimation(smallbiterscale, small_biter_tint1, small_biter_tint2) + }, + vision_distance = 30, + movement_speed = 0.2, + distance_per_frame = 0.1, + pollution_to_join_attack = 200, + distraction_cooldown = 300, + corpse = "small-biter-corpse", + dying_explosion = "blood-explosion-small", + dying_sound = make_biter_dying_sounds(1.0), + working_sound = make_biter_calls(0.7), + run_animation = biterrunanimation(smallbiterscale, small_biter_tint1, small_biter_tint2) + }, + { + type = "unit", + name = "tame-medium-biter", + icon = "__base__/graphics/icons/creeper.png", + flags = {"placeable-player", "placeable-enemy", "placeable-off-grid", "breaths-air", "not-repairable"}, + max_health = 75, + order = "002", + subgroup="enemies", + resistances = + { + { + type = "physical", + percent = 30, + }, + { + type = "acid", + percent = 30, + }, + { + type = "explosion", + percent = 10 + }, + }, + healing_per_tick = 0.0001, + collision_box = {{-0.3, -0.3}, {0.3, 0.3}}, + selection_box = {{-0.7, -1.5}, {0.7, 0.3}}, + sticker_box = {{-0.3, -0.5}, {0.3, 0.1}}, + distraction_cooldown = 300, + attack_parameters = + { + type = "projectile", + ammo_category = "melee", + ammo_type = make_unit_melee_ammo_type(15), + range = 1, + cooldown = 35, + sound = make_biter_roars(0.8), + animation = biterattackanimation(mediumbiterscale, medium_biter_tint1, medium_biter_tint2) + }, + vision_distance = 30, + movement_speed = 0.185, + distance_per_frame = 0.15, + -- in pu + pollution_to_join_attack = 1000, + corpse = "medium-biter-corpse", + dying_explosion = "blood-explosion-small", + dying_sound = make_biter_dying_sounds(1.0), + working_sound = make_biter_calls(0.7), + run_animation = biterrunanimation(mediumbiterscale, medium_biter_tint1, medium_biter_tint2) + }, + { + type = "unit", + name = "tame-big-biter", + order = "003", + icon = "__base__/graphics/icons/creeper.png", + flags = {"placeable-player", "placeable-enemy", "placeable-off-grid", "breaths-air", "not-repairable"}, + max_health = 375, + subgroup="enemies", + resistances = + { + { + type = "physical", + percent = 50, + }, + { + type = "laser", + percent = 50, + }, + { + type = "acid", + percent = 50, + }, + { + type = "explosion", + percent = 10 + } + }, + spawning_time_modifier = 2, + healing_per_tick = 0.0002, + collision_box = {{-0.4, -0.4}, {0.4, 0.4}}, + selection_box = {{-0.7, -1.5}, {0.7, 0.3}}, + sticker_box = {{-0.6, -0.8}, {0.6, 0}}, + distraction_cooldown = 300, + attack_parameters = + { + type = "projectile", + range = 1.5, + cooldown = 35, + ammo_category = "melee", + ammo_type = make_unit_melee_ammo_type(30), + sound = make_biter_roars(0.8), + animation = biterattackanimation(bigbiterscale, big_biter_tint1, big_biter_tint2) + }, + vision_distance = 30, + movement_speed = 0.17, + distance_per_frame = 0.2, + -- in pu + pollution_to_join_attack = 1000, + corpse = "big-biter-corpse", + dying_explosion = "blood-explosion-big", + dying_sound = make_biter_dying_sounds(1.0), + working_sound = make_biter_calls(0.7), + run_animation = biterrunanimation(bigbiterscale, big_biter_tint1, big_biter_tint2) + }, + { + type = "unit", + name = "tame-behemoth-biter", + order = "204", + icon = "__base__/graphics/icons/creeper.png", + flags = {"placeable-player", "placeable-enemy", "placeable-off-grid", "breaths-air", "not-repairable"}, + max_health = 5000, + subgroup="enemies", + resistances = + { + { + type = "physical", + decrease = 8, + percent = 20 + }, + { + type = "explosion", + decrease = 10, + percent = 20 + } + }, + spawning_time_modifier = 8, + healing_per_tick = 0.0001, + collision_box = {{-0.4, -0.4}, {0.4, 0.4}}, + selection_box = {{-0.7, -1.5}, {0.7, 0.3}}, + sticker_box = {{-0.6, -0.8}, {0.6, 0}}, + distraction_cooldown = 300, + attack_parameters = + { + type = "projectile", + range = 1.5, + cooldown = 50, + ammo_category = "melee", + ammo_type = make_unit_melee_ammo_type(100), + sound = make_biter_roars(0.8), + animation = biterattackanimation(behemothbiterscale, behemoth_biter_tint1, behemoth_biter_tint2) + }, + vision_distance = 30, + movement_speed = 0.17, + distance_per_frame = 0.2, + -- in pu + pollution_to_join_attack = 20000, + corpse = "behemoth-biter-corpse", + dying_explosion = "blood-explosion-big", + working_sound = make_biter_calls(1.2), + dying_sound = make_biter_dying_sounds(1.0), + run_animation = biterrunanimation(behemothbiterscale, behemoth_biter_tint1, behemoth_biter_tint2) + }, + +}) diff --git a/Natural_Evolution_Buildings_6.3.0/prototypes/Alien_Hatchery/entity.lua b/Natural_Evolution_Buildings_6.3.1/prototypes/Alien_Hatchery/entity.lua similarity index 96% rename from Natural_Evolution_Buildings_6.3.0/prototypes/Alien_Hatchery/entity.lua rename to Natural_Evolution_Buildings_6.3.1/prototypes/Alien_Hatchery/entity.lua index 5327a00..73a21bf 100644 --- a/Natural_Evolution_Buildings_6.3.0/prototypes/Alien_Hatchery/entity.lua +++ b/Natural_Evolution_Buildings_6.3.1/prototypes/Alien_Hatchery/entity.lua @@ -1,1112 +1,1112 @@ -require ("prototypes.Alien_Hatchery.walls_pictures") - -Natural_Evolution_Biter_Spawner_tint = {r=0.92, g=0.54, b=0, a=0.5} -Natural_Evolution_Spitter_Spawner_tint = {r=0.54, g=0.92, b=0.3, a=1.0} - -Living_Wall = {} - - -data:extend({ - - - ---- Alien Hatchery - { - type = "assembling-machine", - name = "Alien_Hatchery", - icon = "__Natural_Evolution_Buildings__/graphics/icons/Alien_Hatchery_32.png", - flags = {"placeable-neutral","placeable-player", "player-creation"}, - minable = {hardness = 0.2, mining_time = 0.5, result = "Alien_Hatchery"}, - max_health = 300, - 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 = {0, -2} }} - }, - { - production_type = "output", - pipe_picture = assembler3pipepictures(), - pipe_covers = pipecoverspictures(), - base_area = 10, - base_level = 1, - pipe_connections = {{ type="output", position = {0, 2} }} - }, - off_when_no_fluid_recipe = true - }, - 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 = { filename = "__base__/sound/car-metal-impact.ogg", volume = 0.65 }, - working_sound = - { - sound = { - { - filename = "__base__/sound/assembling-machine-t3-1.ogg", - volume = 0.8 - }, - { - filename = "__base__/sound/assembling-machine-t3-2.ogg", - volume = 0.8 - }, - }, - idle_sound = { filename = "__base__/sound/idle1.ogg", volume = 0.6 }, - apparent_volume = 1.5, - }, - collision_box = {{-1.2, -1.2}, {1.2, 1.2}}, - selection_box = {{-1.5, -1.5}, {1.5, 1.5}}, - fast_replaceable_group = "assembling-machine", - animation = - { - filename = "__Natural_Evolution_Buildings__/graphics/entity/Alien_Hatchery.png", - priority = "high", - width = 128, - height = 128, - frame_count = 16, - line_length = 4, - shift = {0.225, -0.3}, - animation_speed=0.5, - }, - crafting_categories = {"Hatchery"}, - crafting_speed = 1.25, - energy_source = - { - type = "electric", - usage_priority = "secondary-input", - emissions = 0.03 / 3.5 - }, - energy_usage = "210kW", - ingredient_count = 6, - module_specification = - { - module_slots = 4 - }, - allowed_effects = {"speed", "productivity", "pollution"} - }, - - --- Capsules - --- Capsules - Small Biter - { - type = "capsule", - name = "small-biter-hatching", - icon = "__base__/graphics/icons/small-biter.png", - flags = {"goes-to-quickbar"}, - capsule_action = - { - type = "throw", - attack_parameters = - { - type = "projectile", - ammo_category = "capsule", - cooldown = 15, - projectile_creation_distance = 0.6, - range = 10, - ammo_type = - { - category = "capsule", - target_type = "position", - action = - { - type = "direct", - action_delivery = - { - type = "projectile", - projectile = "small-biter-projectile", - starting_speed = 0.3 - } - } - } - } - }, - subgroup = "biters", - order = "a[small-biter-hatching]", - stack_size = 50 - }, - - --- Capsules - Small Spitter - { - type = "capsule", - name = "small-spitter-hatching", - icon = "__Natural_Evolution_Buildings__/graphics/icons/small-spitter_32.png", - flags = {"goes-to-quickbar"}, - capsule_action = - { - type = "throw", - attack_parameters = - { - type = "projectile", - ammo_category = "capsule", - cooldown = 15, - projectile_creation_distance = 0.6, - range = 10, - ammo_type = - { - category = "capsule", - target_type = "position", - action = - { - type = "direct", - action_delivery = - { - type = "projectile", - projectile = "small-spitter-projectile", - starting_speed = 0.3 - } - } - } - } - }, - subgroup = "spitters", - order = "a[small-spitter-hatching]", - stack_size = 50 - }, - - --- Capsules - Medium Biter - { - type = "capsule", - name = "medium-biter-hatching", - icon = "__base__/graphics/icons/medium-biter.png", - flags = {"goes-to-quickbar"}, - capsule_action = - { - type = "throw", - attack_parameters = - { - type = "projectile", - ammo_category = "capsule", - cooldown = 15, - projectile_creation_distance = 0.6, - range = 10, - ammo_type = - { - category = "capsule", - target_type = "position", - action = - { - type = "direct", - action_delivery = - { - type = "projectile", - projectile = "medium-biter-projectile", - starting_speed = 0.3 - } - } - } - } - }, - subgroup = "biters", - order = "b[medium-biter-hatching]", - stack_size = 50 - }, - - --- Capsules - Medium Spitter - { - type = "capsule", - name = "medium-spitter-hatching", - icon = "__Natural_Evolution_Buildings__/graphics/icons/medium-spitter_32.png", - flags = {"goes-to-quickbar"}, - capsule_action = - { - type = "throw", - attack_parameters = - { - type = "projectile", - ammo_category = "capsule", - cooldown = 15, - projectile_creation_distance = 0.6, - range = 10, - ammo_type = - { - category = "capsule", - target_type = "position", - action = - { - type = "direct", - action_delivery = - { - type = "projectile", - projectile = "medium-spitter-projectile", - starting_speed = 0.3 - } - } - } - } - }, - subgroup = "spitters", - order = "b[medium-spitter-hatching]", - stack_size = 50 - }, - - --- Capsules - Big Biter - { - type = "capsule", - name = "big-biter-hatching", - icon = "__base__/graphics/icons/big-biter.png", - flags = {"goes-to-quickbar"}, - capsule_action = - { - type = "throw", - attack_parameters = - { - type = "projectile", - ammo_category = "capsule", - cooldown = 15, - projectile_creation_distance = 0.6, - range = 10, - ammo_type = - { - category = "capsule", - target_type = "position", - action = - { - type = "direct", - action_delivery = - { - type = "projectile", - projectile = "big-biter-projectile", - starting_speed = 0.3 - } - } - } - } - }, - subgroup = "biters", - order = "c[big-biter-hatching]", - stack_size = 50 - }, - - --- Capsules - Big Spitter - { - type = "capsule", - name = "big-spitter-hatching", - icon = "__Natural_Evolution_Buildings__/graphics/icons/big-spitter_32.png", - flags = {"goes-to-quickbar"}, - capsule_action = - { - type = "throw", - attack_parameters = - { - type = "projectile", - ammo_category = "capsule", - cooldown = 15, - projectile_creation_distance = 0.6, - range = 10, - ammo_type = - { - category = "capsule", - target_type = "position", - action = - { - type = "direct", - action_delivery = - { - type = "projectile", - projectile = "big-spitter-projectile", - starting_speed = 0.3 - } - } - } - } - }, - subgroup = "spitters", - order = "c[big-spitter-hatching]", - stack_size = 50 - }, - - --- Capsules - Behemoth Biter - { - type = "capsule", - name = "behemoth-biter-hatching", - icon = "__base__/graphics/icons/behemoth-biter.png", - flags = {"goes-to-quickbar"}, - capsule_action = - { - type = "throw", - attack_parameters = - { - type = "projectile", - ammo_category = "capsule", - cooldown = 15, - projectile_creation_distance = 0.6, - range = 10, - ammo_type = - { - category = "capsule", - target_type = "position", - action = - { - type = "direct", - action_delivery = - { - type = "projectile", - projectile = "behemoth-biter-projectile", - starting_speed = 0.3 - } - } - } - } - }, - subgroup = "biters", - order = "d[behemoth-biter-hatching]", - stack_size = 50 - }, - - --- Capsules - Behemoth Spitter - { - type = "capsule", - name = "behemoth-spitter-hatching", - icon = "__Natural_Evolution_Buildings__/graphics/icons/behemoth-spitter_32.png", - flags = {"goes-to-quickbar"}, - capsule_action = - { - type = "throw", - attack_parameters = - { - type = "projectile", - ammo_category = "capsule", - cooldown = 15, - projectile_creation_distance = 0.6, - range = 10, - ammo_type = - { - category = "capsule", - target_type = "position", - action = - { - type = "direct", - action_delivery = - { - type = "projectile", - projectile = "behemoth-spitter-projectile", - starting_speed = 0.3 - } - } - } - } - }, - subgroup = "spitters", - order = "d[behemoth-spitter-hatching]", - stack_size = 50 - }, - - ----- Projectiles - ----- Projectiles - Small Biter - { - type = "projectile", - name = "small-biter-projectile", - flags = {"not-on-map"}, - acceleration = 1, - action = - { - type = "direct", - action_delivery = - { - type = "instant", - target_effects = - { - { - type = "create-entity", - entity_name = "small-biter", - }, - } - } - }, - light = {intensity = 0.5, size = 4}, - animation = - { - filename = "__base__/graphics/entity/combat-robot-capsule/defender-capsule.png", - frame_count = 1, - width = 32, - height = 32, - priority = "high" - }, - shadow = - { - filename = "__base__/graphics/entity/combat-robot-capsule/combat-robot-capsule-shadow.png", - frame_count = 1, - width = 32, - height = 32, - priority = "high" - }, - smoke = capsule_smoke, - }, - - ----- Projectiles - Small Spitter - { - type = "projectile", - name = "small-spitter-projectile", - flags = {"not-on-map"}, - acceleration = 1, - action = - { - type = "direct", - action_delivery = - { - type = "instant", - target_effects = - { - { - type = "create-entity", - entity_name = "small-spitter", - }, - } - } - }, - light = {intensity = 0.5, size = 4}, - animation = - { - filename = "__base__/graphics/entity/combat-robot-capsule/defender-capsule.png", - frame_count = 1, - width = 32, - height = 32, - priority = "high" - }, - shadow = - { - filename = "__base__/graphics/entity/combat-robot-capsule/combat-robot-capsule-shadow.png", - frame_count = 1, - width = 32, - height = 32, - priority = "high" - }, - smoke = capsule_smoke, - }, - - ----- Projectiles - Medium Biter - { - type = "projectile", - name = "medium-biter-projectile", - flags = {"not-on-map"}, - acceleration = 1, - action = - { - type = "direct", - action_delivery = - { - type = "instant", - target_effects = - { - { - type = "create-entity", - entity_name = "medium-biter", - }, - } - } - }, - light = {intensity = 0.5, size = 4}, - animation = - { - filename = "__base__/graphics/entity/combat-robot-capsule/defender-capsule.png", - frame_count = 1, - width = 32, - height = 32, - priority = "high" - }, - shadow = - { - filename = "__base__/graphics/entity/combat-robot-capsule/combat-robot-capsule-shadow.png", - frame_count = 1, - width = 32, - height = 32, - priority = "high" - }, - smoke = capsule_smoke, - }, - - ----- Projectiles - Medium Spitter - { - type = "projectile", - name = "medium-spitter-projectile", - flags = {"not-on-map"}, - acceleration = 1, - action = - { - type = "direct", - action_delivery = - { - type = "instant", - target_effects = - { - { - type = "create-entity", - entity_name = "medium-spitter", - }, - } - } - }, - light = {intensity = 0.5, size = 4}, - animation = - { - filename = "__base__/graphics/entity/combat-robot-capsule/defender-capsule.png", - frame_count = 1, - width = 32, - height = 32, - priority = "high" - }, - shadow = - { - filename = "__base__/graphics/entity/combat-robot-capsule/combat-robot-capsule-shadow.png", - frame_count = 1, - width = 32, - height = 32, - priority = "high" - }, - smoke = capsule_smoke, - }, - - ----- Projectiles - Big Biter - { - type = "projectile", - name = "big-biter-projectile", - flags = {"not-on-map"}, - acceleration = 1, - action = - { - type = "direct", - action_delivery = - { - type = "instant", - target_effects = - { - { - type = "create-entity", - entity_name = "big-biter", - }, - } - } - }, - light = {intensity = 0.5, size = 4}, - animation = - { - filename = "__base__/graphics/entity/combat-robot-capsule/defender-capsule.png", - frame_count = 1, - width = 32, - height = 32, - priority = "high" - }, - shadow = - { - filename = "__base__/graphics/entity/combat-robot-capsule/combat-robot-capsule-shadow.png", - frame_count = 1, - width = 32, - height = 32, - priority = "high" - }, - smoke = capsule_smoke, - }, - - ----- Projectiles - Big Spitter - { - type = "projectile", - name = "big-spitter-projectile", - flags = {"not-on-map"}, - acceleration = 1, - action = - { - type = "direct", - action_delivery = - { - type = "instant", - target_effects = - { - { - type = "create-entity", - entity_name = "big-spitter", - }, - } - } - }, - light = {intensity = 0.5, size = 4}, - animation = - { - filename = "__base__/graphics/entity/combat-robot-capsule/defender-capsule.png", - frame_count = 1, - width = 32, - height = 32, - priority = "high" - }, - shadow = - { - filename = "__base__/graphics/entity/combat-robot-capsule/combat-robot-capsule-shadow.png", - frame_count = 1, - width = 32, - height = 32, - priority = "high" - }, - smoke = capsule_smoke, - }, - - ----- Projectiles - Behemoth Biter - { - type = "projectile", - name = "behemoth-biter-projectile", - flags = {"not-on-map"}, - acceleration = 1, - action = - { - type = "direct", - action_delivery = - { - type = "instant", - target_effects = - { - { - type = "create-entity", - entity_name = "behemoth-biter", - }, - } - } - }, - light = {intensity = 0.5, size = 4}, - animation = - { - filename = "__base__/graphics/entity/combat-robot-capsule/defender-capsule.png", - frame_count = 1, - width = 32, - height = 32, - priority = "high" - }, - shadow = - { - filename = "__base__/graphics/entity/combat-robot-capsule/combat-robot-capsule-shadow.png", - frame_count = 1, - width = 32, - height = 32, - priority = "high" - }, - smoke = capsule_smoke, - }, - - ----- Projectiles - Behemoth Spitter - { - type = "projectile", - name = "behemoth-spitter-projectile", - flags = {"not-on-map"}, - acceleration = 1, - action = - { - type = "direct", - action_delivery = - { - type = "instant", - target_effects = - { - { - type = "create-entity", - entity_name = "behemoth-spitter", - }, - } - } - }, - light = {intensity = 0.5, size = 4}, - animation = - { - filename = "__base__/graphics/entity/combat-robot-capsule/defender-capsule.png", - frame_count = 1, - width = 32, - height = 32, - priority = "high" - }, - shadow = - { - filename = "__base__/graphics/entity/combat-robot-capsule/combat-robot-capsule-shadow.png", - frame_count = 1, - width = 32, - height = 32, - priority = "high" - }, - smoke = capsule_smoke, - }, - - - ---- Natural_Evolution_Spawners - ---- Biters - - { - type = "unit-spawner", - name = "Natural_Evolution_Biter-Spawner", - icon = "__Natural_Evolution_Buildings__/graphics/icons/biter-spawner.png", - flags = {"placeable-neutral","placeable-player", "not-repairable", "player-creation"}, - minable = {hardness = 0.2, mining_time = 0.5, result = "Natural_Evolution_Biter-Spawner-exhausted"}, - max_health = 750, - order="b-b-i", - working_sound = - { - sound = - { - { - filename = "__base__/sound/creatures/spawner.ogg", - volume = 1.0 - } - }, - apparent_volume = 2 - }, - dying_sound = - { - { - filename = "__base__/sound/creatures/spawner-death-1.ogg", - volume = 1.0 - }, - { - filename = "__base__/sound/creatures/spawner-death-2.ogg", - volume = 1.0 - } - }, - resistances = - { - { - type = "physical", - decrease = 2, - }, - { - type = "explosion", - percent = 20, - }, - { - type = "laser", - percent = 80, - }, - { - type = "acid", - percent = 20, - }, - { - type = "poison", - percent = 20, - }, - }, - healing_per_tick = 0.02, - collision_box = {{-3.2, -2.2}, {2.2, 2.2}}, - selection_box = {{-3.5, -2.5}, {2.5, 2.5}}, - - pollution_absorbtion_absolute = 20, - pollution_absorbtion_proportional = 0.01, - pollution_to_enhance_spawning = 30000, - corpse = "Natural_Evolution_Biter-Spawner-corpse", - dying_explosion = "blood-explosion-huge", - loot = - { - { - count_min = 1, - count_max = 1, - item = "alien-artifact", - probability = 1 - }, - }, - max_count_of_owned_units = 10, - max_friends_around_to_spawn = 5, - animations = - { - spawner_idle_animation(0, Natural_Evolution_Biter_Spawner_tint), - spawner_idle_animation(1, Natural_Evolution_Biter_Spawner_tint), - spawner_idle_animation(2, Natural_Evolution_Biter_Spawner_tint), - spawner_idle_animation(3, Natural_Evolution_Biter_Spawner_tint) - }, - result_units = (function() - local res = {} - res[1] = {"tame-small-biter", {{0.0, 0.3}, {0.7, 0.0}}} - - -- from evolution_factor 0.3 the weight for medium-biter is linearly rising from 0 to 0.3 - -- this means for example that when the evolution_factor is 0.45 the probability of spawning - -- a small biter is 66% while probability for medium biter is 33%. - res[2] = {"tame-medium-biter", {{0.3, 0.0}, {0.6, 0.3}, {0.8, 0.1}}} - -- for evolution factor of 1 the spawning probabilities are: small-biter 0%, medium-biter 1/7, big-biter 4/7, behemoth biter 3/7 - res[3] = {"tame-big-biter", {{0.6, 0.0}, {1.0, 0.4}}} - res[4] = {"tame-behemoth-biter", {{0.99, 0.0}, {1.0, 0.3}}} - - return res - end)(), - -- With zero evolution the spawn rate is 5 seconds, with max evolution it is 2 seconds - spawning_cooldown = {300, 120}, - spawning_radius = 10, - spawning_spacing = 3, - max_spawn_shift = 0, - max_richness_for_spawn_shift = 100, - call_for_help_radius = 50, - }, - - { - type = "corpse", - name = "Natural_Evolution_Biter-Spawner-corpse", - flags = {"placeable-neutral", "placeable-off-grid", "not-on-map"}, - icon = "__base__/graphics/icons/biter-spawner-corpse.png", - collision_box = {{-2, -2}, {2, 2}}, - selection_box = {{-2, -2}, {2, 2}}, - selectable_in_game = false, - dying_speed = 0.04, - subgroup="corpses", - order = "c[corpse]-d[Natural_Evolution_Biter-Spawner]", - final_render_layer = "corpse", - animation = - { - spawner_die_animation(0, Natural_Evolution_Biter_Spawner_tint), - spawner_die_animation(1, Natural_Evolution_Biter_Spawner_tint), - spawner_die_animation(2, Natural_Evolution_Biter_Spawner_tint), - spawner_die_animation(3, Natural_Evolution_Biter_Spawner_tint) - } - }, - - ---- Spitter - { - type = "unit-spawner", - name = "Natural_Evolution_Spitter-Spawner", - icon = "__Natural_Evolution_Buildings__/graphics/icons/spitter-spawner.png", - flags = {"placeable-neutral","placeable-player", "not-repairable", "player-creation"}, - minable = {hardness = 0.2, mining_time = 0.5, result = "Natural_Evolution_Spitter-Spawner-exhausted"}, - max_health = 750, - order="b-b-j", - working_sound = - { - sound = - { - { - filename = "__base__/sound/creatures/spawner.ogg", - volume = 1.0 - } - }, - apparent_volume = 2 - }, - dying_sound = - { - { - filename = "__base__/sound/creatures/spawner-death-1.ogg", - volume = 1.0 - }, - { - filename = "__base__/sound/creatures/spawner-death-2.ogg", - volume = 1.0 - } - }, - resistances = - { - { - type = "physical", - decrease = 2, - }, - { - type = "explosion", - decrease = 5, - percent = 25, - }, - { - type = "laser", - percent = 80, - }, - { - type = "fire", - percent = 20, - }, - }, - healing_per_tick = 0.02, - collision_box = {{-3.2, -2.2}, {2.2, 2.2}}, - selection_box = {{-3.5, -2.5}, {2.5, 2.5}}, - pollution_absorbtion_absolute = 20, - pollution_absorbtion_proportional = 0.01, - pollution_to_enhance_spawning = 30000, - corpse = "Natural_Evolution_Spitter-Spawner-corpse", - dying_explosion = "blood-explosion-huge", - loot = - { - { - count_min = 1, - count_max = 1, - item = "alien-artifact", - probability = 1 - }, - }, - max_count_of_owned_units = 10, - max_friends_around_to_spawn = 5, - animations = - { - spawner_idle_animation(0, Natural_Evolution_Spitter_Spawner_tint), - spawner_idle_animation(1, Natural_Evolution_Spitter_Spawner_tint), - spawner_idle_animation(2, Natural_Evolution_Spitter_Spawner_tint), - spawner_idle_animation(3, Natural_Evolution_Spitter_Spawner_tint) - }, - result_units = (function() - local res = {} - res[1] = {"tame-small-spitter", {{0.0, 0.3}, {0.7, 0.0}}} - - -- from evolution_factor 0.3 the weight for medium-spitter is linearly rising from 0 to 0.3 - -- this means for example that when the evolution_factor is 0.45 the probability of spawning - -- a small spitter is 66% while probability for medium spitter is 33%. - res[2] = {"tame-medium-spitter", {{0.3, 0.0}, {0.6, 0.3}, {0.8, 0.1}}} - -- for evolution factor of 1 the spawning probabilities are: small-spitter 0%, medium-spitter 1/7, big-spitter 4/7, behemoth spitter 3/7 - res[3] = {"tame-big-spitter", {{0.6, 0.0}, {1.0, 0.4}}} - res[4] = {"tame-behemoth-spitter", {{0.99, 0.0}, {1.0, 0.3}}} - - return res - end)(), - -- With zero evolution the spawn rate is 5 seconds, with max evolution it is 2 seconds - spawning_cooldown = {300, 120}, - spawning_radius = 10, - spawning_spacing = 3, - max_spawn_shift = 0, - max_richness_for_spawn_shift = 100, - call_for_help_radius = 50, - }, - - { - type = "corpse", - name = "Natural_Evolution_Spitter-Spawner-corpse", - flags = {"placeable-neutral", "placeable-off-grid", "not-on-map"}, - icon = "__base__/graphics/icons/biter-spawner-corpse.png", - collision_box = {{-2, -2}, {2, 2}}, - selection_box = {{-2, -2}, {2, 2}}, - selectable_in_game = false, - dying_speed = 0.04, - subgroup="corpses", - order = "c[corpse]-c[Natural_Evolution_Spitter-Spawner]", - final_render_layer = "corpse", - animation = - { - spawner_die_animation(0, Natural_Evolution_Spitter_Spawner_tint), - spawner_die_animation(1, Natural_Evolution_Spitter_Spawner_tint), - spawner_die_animation(2, Natural_Evolution_Spitter_Spawner_tint), - spawner_die_animation(3, Natural_Evolution_Spitter_Spawner_tint) - } - }, - - ---- Living Wall - { - type = "wall", - name = "ne-living-wall", - icon = "__Natural_Evolution_Buildings__/graphics/icons/living_wall.png", - flags = {"placeable-neutral", "player-creation", "breaths-air", "not-repairable"}, - collision_box = {{-0.29, -0.29}, {0.29, 0.29}}, - selection_box = {{-0.5, -0.5}, {0.5, 0.5}}, - minable = {mining_time = 0.5, result = "ne-living-wall-exhausted"}, - fast_replaceable_group = "wall", - max_health = 600, - repair_speed_modifier = 2, - corpse = "wall-remnants", - repair_sound = { filename = "__base__/sound/manual-repair-simple.ogg" }, - mined_sound = { filename = "__base__/sound/deconstruct-bricks.ogg" }, - vehicle_impact_sound = { filename = "__base__/sound/car-stone-impact.ogg", volume = 1.0 }, - -- this kind of code can be used for having walls mirror the effect - -- there can be multiple reaction items - attack_reaction = - { - { - ---- how far the mirroring works - range = 4, - ---- what kind of damage triggers the mirroring - ---- if not present then anything triggers the mirroring - --damage_type = "physical", - ---- caused damage will be multiplied by this and added to the subsequent damages - reaction_modifier = 0.2, - action = - { - type = "direct", - action_delivery = - { - type = "instant", - target_effects = - { - type = "damage", - ---- always use at least 0.1 damage - damage = {amount = 5, type = "Biological"} - } - } - }, - } - }, - connected_gate_visualization = - { - filename = "__core__/graphics/arrows/underground-lines.png", - priority = "high", - width = 64, - height = 64, - scale = 0.5 - }, - resistances = - { - { - type = "physical", - decrease = 5, - percent = 25 - }, - { - type = "impact", - decrease = 45, - percent = 60 - }, - { - type = "explosion", - decrease = 10, - percent = 30 - }, - { - type = "fire", - percent = 80 - }, - { - type = "laser", - percent = 20 - } - }, - pictures = WallSetup(Living_Wall), - - wall_diode_green = - { - filename = "__base__/graphics/entity/gate/wall-diode-green.png", - width = 21, - height = 22, - shift = {0, -0.78125} - }, - wall_diode_green_light = - { - minimum_darkness = 0.3, - color = {g=1}, - shift = {0, -0.78125}, - size = 1, - intensity = 0.3 - }, - wall_diode_red = - { - filename = "__base__/graphics/entity/gate/wall-diode-red.png", - width = 21, - height = 22, - shift = {0, -0.78125} - }, - wall_diode_red_light = - { - minimum_darkness = 0.3, - color = {r=1}, - shift = {0, -0.78125}, - size = 1, - intensity = 0.3 - }, - - circuit_wire_connection_point = - { - shadow = - { - red = {0.890625, 0.828125}, - green = {0.890625, 0.703125} - }, - wire = - { - red = {-0.28125, -0.71875}, - green = {-0.28125, -0.84375} - } - }, - circuit_wire_max_distance = 7.5, - circuit_connector_sprites = get_circuit_connector_sprites({0, -0.59375}, nil, 6), - default_output_signal = "signal-G" - }, - - - -}) +require ("prototypes.Alien_Hatchery.walls_pictures") + +Natural_Evolution_Biter_Spawner_tint = {r=0.92, g=0.54, b=0, a=0.5} +Natural_Evolution_Spitter_Spawner_tint = {r=0.54, g=0.92, b=0.3, a=1.0} + +Living_Wall = {} + + +data:extend({ + + + ---- Alien Hatchery + { + type = "assembling-machine", + name = "Alien_Hatchery", + icon = "__Natural_Evolution_Buildings__/graphics/icons/Alien_Hatchery_32.png", + flags = {"placeable-neutral","placeable-player", "player-creation"}, + minable = {hardness = 0.2, mining_time = 0.5, result = "Alien_Hatchery"}, + max_health = 300, + 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 = {0, -2} }} + }, + { + production_type = "output", + pipe_picture = assembler3pipepictures(), + pipe_covers = pipecoverspictures(), + base_area = 10, + base_level = 1, + pipe_connections = {{ type="output", position = {0, 2} }} + }, + off_when_no_fluid_recipe = true + }, + 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 = { filename = "__base__/sound/car-metal-impact.ogg", volume = 0.65 }, + working_sound = + { + sound = { + { + filename = "__base__/sound/assembling-machine-t3-1.ogg", + volume = 0.8 + }, + { + filename = "__base__/sound/assembling-machine-t3-2.ogg", + volume = 0.8 + }, + }, + idle_sound = { filename = "__base__/sound/idle1.ogg", volume = 0.6 }, + apparent_volume = 1.5, + }, + collision_box = {{-1.2, -1.2}, {1.2, 1.2}}, + selection_box = {{-1.5, -1.5}, {1.5, 1.5}}, + fast_replaceable_group = "assembling-machine", + animation = + { + filename = "__Natural_Evolution_Buildings__/graphics/entity/Alien_Hatchery.png", + priority = "high", + width = 128, + height = 128, + frame_count = 16, + line_length = 4, + shift = {0.225, -0.3}, + animation_speed=0.5, + }, + crafting_categories = {"Hatchery"}, + crafting_speed = 1.25, + energy_source = + { + type = "electric", + usage_priority = "secondary-input", + emissions = 0.03 / 3.5 + }, + energy_usage = "210kW", + ingredient_count = 6, + module_specification = + { + module_slots = 4 + }, + allowed_effects = {"speed", "productivity", "pollution"} + }, + + --- Capsules + --- Capsules - Small Biter + { + type = "capsule", + name = "small-biter-hatching", + icon = "__base__/graphics/icons/small-biter.png", + flags = {"goes-to-quickbar"}, + capsule_action = + { + type = "throw", + attack_parameters = + { + type = "projectile", + ammo_category = "capsule", + cooldown = 15, + projectile_creation_distance = 0.6, + range = 10, + ammo_type = + { + category = "capsule", + target_type = "position", + action = + { + type = "direct", + action_delivery = + { + type = "projectile", + projectile = "small-biter-projectile", + starting_speed = 0.3 + } + } + } + } + }, + subgroup = "biters", + order = "a[small-biter-hatching]", + stack_size = 50 + }, + + --- Capsules - Small Spitter + { + type = "capsule", + name = "small-spitter-hatching", + icon = "__Natural_Evolution_Buildings__/graphics/icons/small-spitter_32.png", + flags = {"goes-to-quickbar"}, + capsule_action = + { + type = "throw", + attack_parameters = + { + type = "projectile", + ammo_category = "capsule", + cooldown = 15, + projectile_creation_distance = 0.6, + range = 10, + ammo_type = + { + category = "capsule", + target_type = "position", + action = + { + type = "direct", + action_delivery = + { + type = "projectile", + projectile = "small-spitter-projectile", + starting_speed = 0.3 + } + } + } + } + }, + subgroup = "spitters", + order = "a[small-spitter-hatching]", + stack_size = 50 + }, + + --- Capsules - Medium Biter + { + type = "capsule", + name = "medium-biter-hatching", + icon = "__base__/graphics/icons/medium-biter.png", + flags = {"goes-to-quickbar"}, + capsule_action = + { + type = "throw", + attack_parameters = + { + type = "projectile", + ammo_category = "capsule", + cooldown = 15, + projectile_creation_distance = 0.6, + range = 10, + ammo_type = + { + category = "capsule", + target_type = "position", + action = + { + type = "direct", + action_delivery = + { + type = "projectile", + projectile = "medium-biter-projectile", + starting_speed = 0.3 + } + } + } + } + }, + subgroup = "biters", + order = "b[medium-biter-hatching]", + stack_size = 50 + }, + + --- Capsules - Medium Spitter + { + type = "capsule", + name = "medium-spitter-hatching", + icon = "__Natural_Evolution_Buildings__/graphics/icons/medium-spitter_32.png", + flags = {"goes-to-quickbar"}, + capsule_action = + { + type = "throw", + attack_parameters = + { + type = "projectile", + ammo_category = "capsule", + cooldown = 15, + projectile_creation_distance = 0.6, + range = 10, + ammo_type = + { + category = "capsule", + target_type = "position", + action = + { + type = "direct", + action_delivery = + { + type = "projectile", + projectile = "medium-spitter-projectile", + starting_speed = 0.3 + } + } + } + } + }, + subgroup = "spitters", + order = "b[medium-spitter-hatching]", + stack_size = 50 + }, + + --- Capsules - Big Biter + { + type = "capsule", + name = "big-biter-hatching", + icon = "__base__/graphics/icons/big-biter.png", + flags = {"goes-to-quickbar"}, + capsule_action = + { + type = "throw", + attack_parameters = + { + type = "projectile", + ammo_category = "capsule", + cooldown = 15, + projectile_creation_distance = 0.6, + range = 10, + ammo_type = + { + category = "capsule", + target_type = "position", + action = + { + type = "direct", + action_delivery = + { + type = "projectile", + projectile = "big-biter-projectile", + starting_speed = 0.3 + } + } + } + } + }, + subgroup = "biters", + order = "c[big-biter-hatching]", + stack_size = 50 + }, + + --- Capsules - Big Spitter + { + type = "capsule", + name = "big-spitter-hatching", + icon = "__Natural_Evolution_Buildings__/graphics/icons/big-spitter_32.png", + flags = {"goes-to-quickbar"}, + capsule_action = + { + type = "throw", + attack_parameters = + { + type = "projectile", + ammo_category = "capsule", + cooldown = 15, + projectile_creation_distance = 0.6, + range = 10, + ammo_type = + { + category = "capsule", + target_type = "position", + action = + { + type = "direct", + action_delivery = + { + type = "projectile", + projectile = "big-spitter-projectile", + starting_speed = 0.3 + } + } + } + } + }, + subgroup = "spitters", + order = "c[big-spitter-hatching]", + stack_size = 50 + }, + + --- Capsules - Behemoth Biter + { + type = "capsule", + name = "behemoth-biter-hatching", + icon = "__base__/graphics/icons/behemoth-biter.png", + flags = {"goes-to-quickbar"}, + capsule_action = + { + type = "throw", + attack_parameters = + { + type = "projectile", + ammo_category = "capsule", + cooldown = 15, + projectile_creation_distance = 0.6, + range = 10, + ammo_type = + { + category = "capsule", + target_type = "position", + action = + { + type = "direct", + action_delivery = + { + type = "projectile", + projectile = "behemoth-biter-projectile", + starting_speed = 0.3 + } + } + } + } + }, + subgroup = "biters", + order = "d[behemoth-biter-hatching]", + stack_size = 50 + }, + + --- Capsules - Behemoth Spitter + { + type = "capsule", + name = "behemoth-spitter-hatching", + icon = "__Natural_Evolution_Buildings__/graphics/icons/behemoth-spitter_32.png", + flags = {"goes-to-quickbar"}, + capsule_action = + { + type = "throw", + attack_parameters = + { + type = "projectile", + ammo_category = "capsule", + cooldown = 15, + projectile_creation_distance = 0.6, + range = 10, + ammo_type = + { + category = "capsule", + target_type = "position", + action = + { + type = "direct", + action_delivery = + { + type = "projectile", + projectile = "behemoth-spitter-projectile", + starting_speed = 0.3 + } + } + } + } + }, + subgroup = "spitters", + order = "d[behemoth-spitter-hatching]", + stack_size = 50 + }, + + ----- Projectiles + ----- Projectiles - Small Biter + { + type = "projectile", + name = "small-biter-projectile", + flags = {"not-on-map"}, + acceleration = 1, + action = + { + type = "direct", + action_delivery = + { + type = "instant", + target_effects = + { + { + type = "create-entity", + entity_name = "small-biter", + }, + } + } + }, + light = {intensity = 0.5, size = 4}, + animation = + { + filename = "__base__/graphics/entity/combat-robot-capsule/defender-capsule.png", + frame_count = 1, + width = 32, + height = 32, + priority = "high" + }, + shadow = + { + filename = "__base__/graphics/entity/combat-robot-capsule/combat-robot-capsule-shadow.png", + frame_count = 1, + width = 32, + height = 32, + priority = "high" + }, + smoke = capsule_smoke, + }, + + ----- Projectiles - Small Spitter + { + type = "projectile", + name = "small-spitter-projectile", + flags = {"not-on-map"}, + acceleration = 1, + action = + { + type = "direct", + action_delivery = + { + type = "instant", + target_effects = + { + { + type = "create-entity", + entity_name = "small-spitter", + }, + } + } + }, + light = {intensity = 0.5, size = 4}, + animation = + { + filename = "__base__/graphics/entity/combat-robot-capsule/defender-capsule.png", + frame_count = 1, + width = 32, + height = 32, + priority = "high" + }, + shadow = + { + filename = "__base__/graphics/entity/combat-robot-capsule/combat-robot-capsule-shadow.png", + frame_count = 1, + width = 32, + height = 32, + priority = "high" + }, + smoke = capsule_smoke, + }, + + ----- Projectiles - Medium Biter + { + type = "projectile", + name = "medium-biter-projectile", + flags = {"not-on-map"}, + acceleration = 1, + action = + { + type = "direct", + action_delivery = + { + type = "instant", + target_effects = + { + { + type = "create-entity", + entity_name = "medium-biter", + }, + } + } + }, + light = {intensity = 0.5, size = 4}, + animation = + { + filename = "__base__/graphics/entity/combat-robot-capsule/defender-capsule.png", + frame_count = 1, + width = 32, + height = 32, + priority = "high" + }, + shadow = + { + filename = "__base__/graphics/entity/combat-robot-capsule/combat-robot-capsule-shadow.png", + frame_count = 1, + width = 32, + height = 32, + priority = "high" + }, + smoke = capsule_smoke, + }, + + ----- Projectiles - Medium Spitter + { + type = "projectile", + name = "medium-spitter-projectile", + flags = {"not-on-map"}, + acceleration = 1, + action = + { + type = "direct", + action_delivery = + { + type = "instant", + target_effects = + { + { + type = "create-entity", + entity_name = "medium-spitter", + }, + } + } + }, + light = {intensity = 0.5, size = 4}, + animation = + { + filename = "__base__/graphics/entity/combat-robot-capsule/defender-capsule.png", + frame_count = 1, + width = 32, + height = 32, + priority = "high" + }, + shadow = + { + filename = "__base__/graphics/entity/combat-robot-capsule/combat-robot-capsule-shadow.png", + frame_count = 1, + width = 32, + height = 32, + priority = "high" + }, + smoke = capsule_smoke, + }, + + ----- Projectiles - Big Biter + { + type = "projectile", + name = "big-biter-projectile", + flags = {"not-on-map"}, + acceleration = 1, + action = + { + type = "direct", + action_delivery = + { + type = "instant", + target_effects = + { + { + type = "create-entity", + entity_name = "big-biter", + }, + } + } + }, + light = {intensity = 0.5, size = 4}, + animation = + { + filename = "__base__/graphics/entity/combat-robot-capsule/defender-capsule.png", + frame_count = 1, + width = 32, + height = 32, + priority = "high" + }, + shadow = + { + filename = "__base__/graphics/entity/combat-robot-capsule/combat-robot-capsule-shadow.png", + frame_count = 1, + width = 32, + height = 32, + priority = "high" + }, + smoke = capsule_smoke, + }, + + ----- Projectiles - Big Spitter + { + type = "projectile", + name = "big-spitter-projectile", + flags = {"not-on-map"}, + acceleration = 1, + action = + { + type = "direct", + action_delivery = + { + type = "instant", + target_effects = + { + { + type = "create-entity", + entity_name = "big-spitter", + }, + } + } + }, + light = {intensity = 0.5, size = 4}, + animation = + { + filename = "__base__/graphics/entity/combat-robot-capsule/defender-capsule.png", + frame_count = 1, + width = 32, + height = 32, + priority = "high" + }, + shadow = + { + filename = "__base__/graphics/entity/combat-robot-capsule/combat-robot-capsule-shadow.png", + frame_count = 1, + width = 32, + height = 32, + priority = "high" + }, + smoke = capsule_smoke, + }, + + ----- Projectiles - Behemoth Biter + { + type = "projectile", + name = "behemoth-biter-projectile", + flags = {"not-on-map"}, + acceleration = 1, + action = + { + type = "direct", + action_delivery = + { + type = "instant", + target_effects = + { + { + type = "create-entity", + entity_name = "behemoth-biter", + }, + } + } + }, + light = {intensity = 0.5, size = 4}, + animation = + { + filename = "__base__/graphics/entity/combat-robot-capsule/defender-capsule.png", + frame_count = 1, + width = 32, + height = 32, + priority = "high" + }, + shadow = + { + filename = "__base__/graphics/entity/combat-robot-capsule/combat-robot-capsule-shadow.png", + frame_count = 1, + width = 32, + height = 32, + priority = "high" + }, + smoke = capsule_smoke, + }, + + ----- Projectiles - Behemoth Spitter + { + type = "projectile", + name = "behemoth-spitter-projectile", + flags = {"not-on-map"}, + acceleration = 1, + action = + { + type = "direct", + action_delivery = + { + type = "instant", + target_effects = + { + { + type = "create-entity", + entity_name = "behemoth-spitter", + }, + } + } + }, + light = {intensity = 0.5, size = 4}, + animation = + { + filename = "__base__/graphics/entity/combat-robot-capsule/defender-capsule.png", + frame_count = 1, + width = 32, + height = 32, + priority = "high" + }, + shadow = + { + filename = "__base__/graphics/entity/combat-robot-capsule/combat-robot-capsule-shadow.png", + frame_count = 1, + width = 32, + height = 32, + priority = "high" + }, + smoke = capsule_smoke, + }, + + + ---- Natural_Evolution_Spawners + ---- Biters + + { + type = "unit-spawner", + name = "Natural_Evolution_Biter-Spawner", + icon = "__Natural_Evolution_Buildings__/graphics/icons/biter-spawner.png", + flags = {"placeable-neutral","placeable-player", "not-repairable", "player-creation"}, + minable = {hardness = 0.2, mining_time = 0.5, result = "Natural_Evolution_Biter-Spawner-exhausted"}, + max_health = 750, + order="b-b-i", + working_sound = + { + sound = + { + { + filename = "__base__/sound/creatures/spawner.ogg", + volume = 1.0 + } + }, + apparent_volume = 2 + }, + dying_sound = + { + { + filename = "__base__/sound/creatures/spawner-death-1.ogg", + volume = 1.0 + }, + { + filename = "__base__/sound/creatures/spawner-death-2.ogg", + volume = 1.0 + } + }, + resistances = + { + { + type = "physical", + decrease = 2, + }, + { + type = "explosion", + percent = 20, + }, + { + type = "laser", + percent = 80, + }, + { + type = "acid", + percent = 20, + }, + { + type = "poison", + percent = 20, + }, + }, + healing_per_tick = 0.02, + collision_box = {{-3.2, -2.2}, {2.2, 2.2}}, + selection_box = {{-3.5, -2.5}, {2.5, 2.5}}, + + pollution_absorbtion_absolute = 20, + pollution_absorbtion_proportional = 0.01, + pollution_to_enhance_spawning = 30000, + corpse = "Natural_Evolution_Biter-Spawner-corpse", + dying_explosion = "blood-explosion-huge", + loot = + { + { + count_min = 1, + count_max = 1, + item = "alien-artifact", + probability = 1 + }, + }, + max_count_of_owned_units = 10, + max_friends_around_to_spawn = 5, + animations = + { + spawner_idle_animation(0, Natural_Evolution_Biter_Spawner_tint), + spawner_idle_animation(1, Natural_Evolution_Biter_Spawner_tint), + spawner_idle_animation(2, Natural_Evolution_Biter_Spawner_tint), + spawner_idle_animation(3, Natural_Evolution_Biter_Spawner_tint) + }, + result_units = (function() + local res = {} + res[1] = {"tame-small-biter", {{0.0, 0.3}, {0.7, 0.0}}} + + -- from evolution_factor 0.3 the weight for medium-biter is linearly rising from 0 to 0.3 + -- this means for example that when the evolution_factor is 0.45 the probability of spawning + -- a small biter is 66% while probability for medium biter is 33%. + res[2] = {"tame-medium-biter", {{0.3, 0.0}, {0.6, 0.3}, {0.8, 0.1}}} + -- for evolution factor of 1 the spawning probabilities are: small-biter 0%, medium-biter 1/7, big-biter 4/7, behemoth biter 3/7 + res[3] = {"tame-big-biter", {{0.6, 0.0}, {1.0, 0.4}}} + res[4] = {"tame-behemoth-biter", {{0.99, 0.0}, {1.0, 0.3}}} + + return res + end)(), + -- With zero evolution the spawn rate is 5 seconds, with max evolution it is 2 seconds + spawning_cooldown = {300, 120}, + spawning_radius = 10, + spawning_spacing = 3, + max_spawn_shift = 0, + max_richness_for_spawn_shift = 100, + call_for_help_radius = 50, + }, + + { + type = "corpse", + name = "Natural_Evolution_Biter-Spawner-corpse", + flags = {"placeable-neutral", "placeable-off-grid", "not-on-map"}, + icon = "__base__/graphics/icons/biter-spawner-corpse.png", + collision_box = {{-2, -2}, {2, 2}}, + selection_box = {{-2, -2}, {2, 2}}, + selectable_in_game = false, + dying_speed = 0.04, + subgroup="corpses", + order = "c[corpse]-d[Natural_Evolution_Biter-Spawner]", + final_render_layer = "corpse", + animation = + { + spawner_die_animation(0, Natural_Evolution_Biter_Spawner_tint), + spawner_die_animation(1, Natural_Evolution_Biter_Spawner_tint), + spawner_die_animation(2, Natural_Evolution_Biter_Spawner_tint), + spawner_die_animation(3, Natural_Evolution_Biter_Spawner_tint) + } + }, + + ---- Spitter + { + type = "unit-spawner", + name = "Natural_Evolution_Spitter-Spawner", + icon = "__Natural_Evolution_Buildings__/graphics/icons/spitter-spawner.png", + flags = {"placeable-neutral","placeable-player", "not-repairable", "player-creation"}, + minable = {hardness = 0.2, mining_time = 0.5, result = "Natural_Evolution_Spitter-Spawner-exhausted"}, + max_health = 750, + order="b-b-j", + working_sound = + { + sound = + { + { + filename = "__base__/sound/creatures/spawner.ogg", + volume = 1.0 + } + }, + apparent_volume = 2 + }, + dying_sound = + { + { + filename = "__base__/sound/creatures/spawner-death-1.ogg", + volume = 1.0 + }, + { + filename = "__base__/sound/creatures/spawner-death-2.ogg", + volume = 1.0 + } + }, + resistances = + { + { + type = "physical", + decrease = 2, + }, + { + type = "explosion", + decrease = 5, + percent = 25, + }, + { + type = "laser", + percent = 80, + }, + { + type = "fire", + percent = 20, + }, + }, + healing_per_tick = 0.02, + collision_box = {{-3.2, -2.2}, {2.2, 2.2}}, + selection_box = {{-3.5, -2.5}, {2.5, 2.5}}, + pollution_absorbtion_absolute = 20, + pollution_absorbtion_proportional = 0.01, + pollution_to_enhance_spawning = 30000, + corpse = "Natural_Evolution_Spitter-Spawner-corpse", + dying_explosion = "blood-explosion-huge", + loot = + { + { + count_min = 1, + count_max = 1, + item = "alien-artifact", + probability = 1 + }, + }, + max_count_of_owned_units = 10, + max_friends_around_to_spawn = 5, + animations = + { + spawner_idle_animation(0, Natural_Evolution_Spitter_Spawner_tint), + spawner_idle_animation(1, Natural_Evolution_Spitter_Spawner_tint), + spawner_idle_animation(2, Natural_Evolution_Spitter_Spawner_tint), + spawner_idle_animation(3, Natural_Evolution_Spitter_Spawner_tint) + }, + result_units = (function() + local res = {} + res[1] = {"tame-small-spitter", {{0.0, 0.3}, {0.7, 0.0}}} + + -- from evolution_factor 0.3 the weight for medium-spitter is linearly rising from 0 to 0.3 + -- this means for example that when the evolution_factor is 0.45 the probability of spawning + -- a small spitter is 66% while probability for medium spitter is 33%. + res[2] = {"tame-medium-spitter", {{0.3, 0.0}, {0.6, 0.3}, {0.8, 0.1}}} + -- for evolution factor of 1 the spawning probabilities are: small-spitter 0%, medium-spitter 1/7, big-spitter 4/7, behemoth spitter 3/7 + res[3] = {"tame-big-spitter", {{0.6, 0.0}, {1.0, 0.4}}} + res[4] = {"tame-behemoth-spitter", {{0.99, 0.0}, {1.0, 0.3}}} + + return res + end)(), + -- With zero evolution the spawn rate is 5 seconds, with max evolution it is 2 seconds + spawning_cooldown = {300, 120}, + spawning_radius = 10, + spawning_spacing = 3, + max_spawn_shift = 0, + max_richness_for_spawn_shift = 100, + call_for_help_radius = 50, + }, + + { + type = "corpse", + name = "Natural_Evolution_Spitter-Spawner-corpse", + flags = {"placeable-neutral", "placeable-off-grid", "not-on-map"}, + icon = "__base__/graphics/icons/biter-spawner-corpse.png", + collision_box = {{-2, -2}, {2, 2}}, + selection_box = {{-2, -2}, {2, 2}}, + selectable_in_game = false, + dying_speed = 0.04, + subgroup="corpses", + order = "c[corpse]-c[Natural_Evolution_Spitter-Spawner]", + final_render_layer = "corpse", + animation = + { + spawner_die_animation(0, Natural_Evolution_Spitter_Spawner_tint), + spawner_die_animation(1, Natural_Evolution_Spitter_Spawner_tint), + spawner_die_animation(2, Natural_Evolution_Spitter_Spawner_tint), + spawner_die_animation(3, Natural_Evolution_Spitter_Spawner_tint) + } + }, + + ---- Living Wall + { + type = "wall", + name = "ne-living-wall", + icon = "__Natural_Evolution_Buildings__/graphics/icons/living_wall.png", + flags = {"placeable-neutral", "player-creation", "breaths-air", "not-repairable"}, + collision_box = {{-0.29, -0.29}, {0.29, 0.29}}, + selection_box = {{-0.5, -0.5}, {0.5, 0.5}}, + minable = {mining_time = 0.5, result = "ne-living-wall-exhausted"}, + fast_replaceable_group = "wall", + max_health = 600, + repair_speed_modifier = 2, + corpse = "wall-remnants", + repair_sound = { filename = "__base__/sound/manual-repair-simple.ogg" }, + mined_sound = { filename = "__base__/sound/deconstruct-bricks.ogg" }, + vehicle_impact_sound = { filename = "__base__/sound/car-stone-impact.ogg", volume = 1.0 }, + -- this kind of code can be used for having walls mirror the effect + -- there can be multiple reaction items + attack_reaction = + { + { + ---- how far the mirroring works + range = 4, + ---- what kind of damage triggers the mirroring + ---- if not present then anything triggers the mirroring + --damage_type = "physical", + ---- caused damage will be multiplied by this and added to the subsequent damages + reaction_modifier = 0.2, + action = + { + type = "direct", + action_delivery = + { + type = "instant", + target_effects = + { + type = "damage", + ---- always use at least 0.1 damage + damage = {amount = 5, type = "Biological"} + } + } + }, + } + }, + connected_gate_visualization = + { + filename = "__core__/graphics/arrows/underground-lines.png", + priority = "high", + width = 64, + height = 64, + scale = 0.5 + }, + resistances = + { + { + type = "physical", + decrease = 5, + percent = 25 + }, + { + type = "impact", + decrease = 45, + percent = 60 + }, + { + type = "explosion", + decrease = 10, + percent = 30 + }, + { + type = "fire", + percent = 80 + }, + { + type = "laser", + percent = 20 + } + }, + pictures = WallSetup(Living_Wall), + + wall_diode_green = + { + filename = "__base__/graphics/entity/gate/wall-diode-green.png", + width = 21, + height = 22, + shift = {0, -0.78125} + }, + wall_diode_green_light = + { + minimum_darkness = 0.3, + color = {g=1}, + shift = {0, -0.78125}, + size = 1, + intensity = 0.3 + }, + wall_diode_red = + { + filename = "__base__/graphics/entity/gate/wall-diode-red.png", + width = 21, + height = 22, + shift = {0, -0.78125} + }, + wall_diode_red_light = + { + minimum_darkness = 0.3, + color = {r=1}, + shift = {0, -0.78125}, + size = 1, + intensity = 0.3 + }, + + circuit_wire_connection_point = + { + shadow = + { + red = {0.890625, 0.828125}, + green = {0.890625, 0.703125} + }, + wire = + { + red = {-0.28125, -0.71875}, + green = {-0.28125, -0.84375} + } + }, + circuit_wire_max_distance = 7.5, + circuit_connector_sprites = get_circuit_connector_sprites({0, -0.59375}, nil, 6), + default_output_signal = "signal-G" + }, + + + +}) diff --git a/Natural_Evolution_Buildings_6.3.0/prototypes/Alien_Hatchery/fluid.lua b/Natural_Evolution_Buildings_6.3.1/prototypes/Alien_Hatchery/fluid.lua similarity index 96% rename from Natural_Evolution_Buildings_6.3.0/prototypes/Alien_Hatchery/fluid.lua rename to Natural_Evolution_Buildings_6.3.1/prototypes/Alien_Hatchery/fluid.lua index 9c05e36..05125d0 100644 --- a/Natural_Evolution_Buildings_6.3.0/prototypes/Alien_Hatchery/fluid.lua +++ b/Natural_Evolution_Buildings_6.3.1/prototypes/Alien_Hatchery/fluid.lua @@ -1,57 +1,57 @@ - -data:extend({ - { - type = "fluid", - name = "NE_nutrient-solution", - default_temperature = 25, - max_temperature = 100, - heat_capacity = "1KJ", - base_color = {r=0.61, g=0.49, b=0.31}, - flow_color = {r=0.7, g=0.7, b=0.7}, - icon = "__Natural_Evolution_Buildings__/graphics/icons/fluid/basic-alien-nutrientant.png", - --order = "a[fluid]-a[water]", - pressure_to_speed_ratio = 0.4, - flow_to_energy_ratio = 0.59, - }, - { - type = "fluid", - name = "NE_revitalization-solution", - default_temperature = 25, - max_temperature = 100, - heat_capacity = "1KJ", - base_color = {r=0.78, g=0.14, b=0.67}, - flow_color = {r=0.7, g=0.7, b=0.7}, - icon = "__Natural_Evolution_Buildings__/graphics/icons/fluid/alien-revitalization.png", - --order = "a[fluid]-a[water]", - pressure_to_speed_ratio = 0.4, - flow_to_energy_ratio = 0.59, - }, - { - type = "fluid", - name = "NE_enhanced-nutrient-solution", - default_temperature = 25, - max_temperature = 100, - heat_capacity = "1KJ", - base_color = {r=0.71, g=0.32, b=0.49}, - flow_color = {r=0.7, g=0.7, b=0.7}, - icon = "__Natural_Evolution_Buildings__/graphics/icons/fluid/enhanced-alien-nutrientant.png", - --order = "a[fluid]-a[water]", - pressure_to_speed_ratio = 0.4, - flow_to_energy_ratio = 0.59, - }, - { - type = "fluid", - name = "NE_alien_toxin", - default_temperature = 25, - max_temperature = 100, - heat_capacity = "1KJ", - base_color = {r=1.0, g=1.0, b=0.0}, - flow_color = {r=1.0, g=1.0, b=0.5}, - icon = "__Natural_Evolution_Buildings__/graphics/icons/fluid/alien-toxin.png", - --order = "a[fluid]-a[water]", - pressure_to_speed_ratio = 0.4, - flow_to_energy_ratio = 0.59, - }, - - -}) + +data:extend({ + { + type = "fluid", + name = "NE_nutrient-solution", + default_temperature = 25, + max_temperature = 100, + heat_capacity = "1KJ", + base_color = {r=0.61, g=0.49, b=0.31}, + flow_color = {r=0.7, g=0.7, b=0.7}, + icon = "__Natural_Evolution_Buildings__/graphics/icons/fluid/basic-alien-nutrientant.png", + --order = "a[fluid]-a[water]", + pressure_to_speed_ratio = 0.4, + flow_to_energy_ratio = 0.59, + }, + { + type = "fluid", + name = "NE_revitalization-solution", + default_temperature = 25, + max_temperature = 100, + heat_capacity = "1KJ", + base_color = {r=0.78, g=0.14, b=0.67}, + flow_color = {r=0.7, g=0.7, b=0.7}, + icon = "__Natural_Evolution_Buildings__/graphics/icons/fluid/alien-revitalization.png", + --order = "a[fluid]-a[water]", + pressure_to_speed_ratio = 0.4, + flow_to_energy_ratio = 0.59, + }, + { + type = "fluid", + name = "NE_enhanced-nutrient-solution", + default_temperature = 25, + max_temperature = 100, + heat_capacity = "1KJ", + base_color = {r=0.71, g=0.32, b=0.49}, + flow_color = {r=0.7, g=0.7, b=0.7}, + icon = "__Natural_Evolution_Buildings__/graphics/icons/fluid/enhanced-alien-nutrientant.png", + --order = "a[fluid]-a[water]", + pressure_to_speed_ratio = 0.4, + flow_to_energy_ratio = 0.59, + }, + { + type = "fluid", + name = "NE_alien_toxin", + default_temperature = 25, + max_temperature = 100, + heat_capacity = "1KJ", + base_color = {r=1.0, g=1.0, b=0.0}, + flow_color = {r=1.0, g=1.0, b=0.5}, + icon = "__Natural_Evolution_Buildings__/graphics/icons/fluid/alien-toxin.png", + --order = "a[fluid]-a[water]", + pressure_to_speed_ratio = 0.4, + flow_to_energy_ratio = 0.59, + }, + + +}) diff --git a/Natural_Evolution_Buildings_6.3.0/prototypes/Alien_Hatchery/item.lua b/Natural_Evolution_Buildings_6.3.1/prototypes/Alien_Hatchery/item.lua similarity index 95% rename from Natural_Evolution_Buildings_6.3.0/prototypes/Alien_Hatchery/item.lua rename to Natural_Evolution_Buildings_6.3.1/prototypes/Alien_Hatchery/item.lua index 7729c50..076e723 100644 --- a/Natural_Evolution_Buildings_6.3.0/prototypes/Alien_Hatchery/item.lua +++ b/Natural_Evolution_Buildings_6.3.1/prototypes/Alien_Hatchery/item.lua @@ -1,40 +1,40 @@ -data:extend({ - - - ---- Alien Hatchery - { - type = "item", - name = "Alien_Hatchery", - icon = "__Natural_Evolution_Buildings__/graphics/icons/Alien_Hatchery_32.png", - flags = {"goes-to-quickbar"}, - subgroup = "Natural-Evolution", - order = "a[Alien_Hatchery]", - place_result = "Alien_Hatchery", - stack_size = 10, - }, - - - ---- Living Wall - { - type = "item", - name = "ne-living-wall", - icon = "__Natural_Evolution_Buildings__/graphics/icons/living_wall.png", - flags = {"goes-to-quickbar"}, - subgroup = "defensive-structure", - order = "a[stone-wall]-a[living-wall]", - place_result = "ne-living-wall", - stack_size = 50 - }, - - { - type = "item", - name = "ne-living-wall-exhausted", - icon = "__Natural_Evolution_Buildings__/graphics/icons/living_wall_exhausted.png", - flags = {"goes-to-quickbar"}, - subgroup = "defensive-structure", - order = "a[stone-wall]-a[living-wall]", - stack_size = 50 - }, - - -}) +data:extend({ + + + ---- Alien Hatchery + { + type = "item", + name = "Alien_Hatchery", + icon = "__Natural_Evolution_Buildings__/graphics/icons/Alien_Hatchery_32.png", + flags = {"goes-to-quickbar"}, + subgroup = "Natural-Evolution", + order = "a[Alien_Hatchery]", + place_result = "Alien_Hatchery", + stack_size = 10, + }, + + + ---- Living Wall + { + type = "item", + name = "ne-living-wall", + icon = "__Natural_Evolution_Buildings__/graphics/icons/living_wall.png", + flags = {"goes-to-quickbar"}, + subgroup = "defensive-structure", + order = "a[stone-wall]-a[living-wall]", + place_result = "ne-living-wall", + stack_size = 50 + }, + + { + type = "item", + name = "ne-living-wall-exhausted", + icon = "__Natural_Evolution_Buildings__/graphics/icons/living_wall_exhausted.png", + flags = {"goes-to-quickbar"}, + subgroup = "defensive-structure", + order = "a[stone-wall]-a[living-wall]", + stack_size = 50 + }, + + +}) diff --git a/Natural_Evolution_Buildings_6.3.0/prototypes/Alien_Hatchery/recipe.lua b/Natural_Evolution_Buildings_6.3.1/prototypes/Alien_Hatchery/recipe.lua similarity index 96% rename from Natural_Evolution_Buildings_6.3.0/prototypes/Alien_Hatchery/recipe.lua rename to Natural_Evolution_Buildings_6.3.1/prototypes/Alien_Hatchery/recipe.lua index 023e072..b4c0672 100644 --- a/Natural_Evolution_Buildings_6.3.0/prototypes/Alien_Hatchery/recipe.lua +++ b/Natural_Evolution_Buildings_6.3.1/prototypes/Alien_Hatchery/recipe.lua @@ -1,395 +1,395 @@ - -data:extend({ - - ---- Alien Hatchery - { - type = "recipe", - name = "Alien_Hatchery", - enabled = false, - ingredients = - { - {"Building_Materials", 5}, - }, - result = "Alien_Hatchery" - }, - ----- Living Wall - { - type = "recipe", - name = "ne-living-wall", - icon = "__Natural_Evolution_Buildings__/graphics/icons/living_wall.png", - enabled = false, - category = "Hatchery", - ingredients = - { - {"stone-wall", 1}, - {type="fluid", name="NE_alien_toxin", amount=2}, - }, - result = "ne-living-wall", - energy_required = 10, - requester_paste_multiplier = 10 - }, - - - { - type = "recipe", - name = "ne-living-wall-refresh", - icon = "__Natural_Evolution_Buildings__/graphics/icons/living_wall-r.png", - enabled = false, - category = "Hatchery", - ingredients = - { - {"ne-living-wall-exhausted", 1}, - {type="fluid", name="NE_revitalization-solution", amount=2}, - }, - result = "ne-living-wall", - energy_required = 6, - requester_paste_multiplier = 10 - }, - - - - - --- Small Biter Hatching - { - type = "recipe", - name = "small-biter-hatching", - category = "Hatchery", - enabled = false, - ingredients = - { - {"alien-artifact", 2}, - {type="fluid", name="NE_nutrient-solution", amount=25}, - }, - result = "small-biter-hatching", - energy_required = 50, - }, - - --- Medium Biter Hatching - { - type = "recipe", - name = "medium-biter-hatching", - category = "Hatchery", - enabled = false, - ingredients = - { - {"small-biter-hatching", 1}, - {type="fluid", name="NE_enhanced-nutrient-solution", amount=25}, - }, - result = "medium-biter-hatching", - energy_required = 100, - }, - - --- Big Biter Hatching - { - type = "recipe", - name = "big-biter-hatching", - category = "Hatchery", - enabled = false, - ingredients = - { - {"medium-biter-hatching", 1}, - {type="fluid", name="NE_enhanced-nutrient-solution", amount=50}, - }, - result = "big-biter-hatching", - energy_required = 150, - }, - - --- Behemoth Biter Hatching - { - type = "recipe", - name = "behemoth-biter-hatching", - category = "Hatchery", - enabled = false, - ingredients = - { - {"big-biter-hatching", 1}, - {type="fluid", name="NE_enhanced-nutrient-solution", amount=100}, - }, - result = "behemoth-biter-hatching", - energy_required = 200, - }, - - - --- Small Spitter Hatching - { - type = "recipe", - name = "small-spitter-hatching", - category = "Hatchery", - enabled = false, - ingredients = - { - {"alien-artifact", 2}, - {type="fluid", name="NE_nutrient-solution", amount=25}, - }, - result = "small-spitter-hatching", - energy_required = 50, - }, - - --- Medium Spitter Hatching - { - type = "recipe", - name = "medium-spitter-hatching", - category = "Hatchery", - enabled = false, - ingredients = - { - {"small-spitter-hatching", 1}, - {type="fluid", name="NE_enhanced-nutrient-solution", amount=25}, - }, - result = "medium-spitter-hatching", - energy_required = 100, - }, - - --- Big Spitter Hatching - { - type = "recipe", - name = "big-spitter-hatching", - category = "Hatchery", - enabled = false, - ingredients = - { - {"medium-spitter-hatching", 1}, - {type="fluid", name="NE_enhanced-nutrient-solution", amount=50}, - }, - result = "big-spitter-hatching", - energy_required = 150, - }, - - --- Behemoth Spitter Hatching - { - type = "recipe", - name = "behemoth-spitter-hatching", - category = "Hatchery", - enabled = false, - ingredients = - { - {"big-spitter-hatching", 1}, - {type="fluid", name="NE_enhanced-nutrient-solution", amount=100}, - }, - result = "behemoth-spitter-hatching", - energy_required = 200, - }, - - - --- Small Worm Hatching - { - type = "recipe", - name = "small-worm-hatching", - icon = "__Natural_Evolution_Buildings__/graphics/icons/small-worm.png", - category = "Hatchery", - enabled = false, - ingredients = - { - {"alien-artifact", 2}, - {type="fluid", name="NE_nutrient-solution", amount=50}, - }, - result = "small-worm-hatching", - energy_required = 50, - }, - - { - type = "recipe", - name = "small-worm-hatching-refresh", - icon = "__Natural_Evolution_Buildings__/graphics/icons/small-worm-r.png", - category = "Hatchery", - enabled = false, - ingredients = - { - {"small-worm-hatching-exhausted", 1}, - {type="fluid", name="NE_revitalization-solution", amount=10}, - }, - result = "small-worm-hatching", - energy_required = 25, - }, - - --- Medium Worm Hatching - { - type = "recipe", - name = "medium-worm-hatching", - icon = "__Natural_Evolution_Buildings__/graphics/icons/medium-worm.png", - category = "Hatchery", - enabled = false, - ingredients = - { - {"small-worm-hatching", 1}, - {type="fluid", name="NE_enhanced-nutrient-solution", amount=50}, - }, - result = "medium-worm-hatching", - energy_required = 70, - }, - - { - type = "recipe", - name = "medium-worm-hatching-refresh", - icon = "__Natural_Evolution_Buildings__/graphics/icons/medium-worm-r.png", - category = "Hatchery", - enabled = false, - ingredients = - { - {"medium-worm-hatching-exhausted", 1}, - {type="fluid", name="NE_revitalization-solution", amount=20}, - }, - result = "medium-worm-hatching", - energy_required = 35, - }, - - --- Big Worm Hatching - { - type = "recipe", - name = "big-worm-hatching", - icon = "__Natural_Evolution_Buildings__/graphics/icons/big-worm.png", - category = "Hatchery", - enabled = false, - ingredients = - { - {"medium-worm-hatching", 1}, - {type="fluid", name="NE_enhanced-nutrient-solution", amount=100}, - }, - result = "big-worm-hatching", - energy_required = 100, - }, - - { - type = "recipe", - name = "big-worm-hatching-refresh", - icon = "__Natural_Evolution_Buildings__/graphics/icons/big-worm-r.png", - category = "Hatchery", - enabled = false, - ingredients = - { - {"big-worm-hatching-exhausted", 1}, - {type="fluid", name="NE_revitalization-solution", amount=40}, - }, - result = "big-worm-hatching", - energy_required = 50, - }, - - --- Spawner Biter - { - type = "recipe", - name = "Natural_Evolution_Biter-Spawner", - icon = "__Natural_Evolution_Buildings__/graphics/icons/biter-spawner.png", - category = "Hatchery", - enabled = false, - ingredients = - { - {"Building_Materials", 4}, - {"alien-artifact", 50}, - {type="fluid", name="NE_enhanced-nutrient-solution", amount=500}, - }, - result = "Natural_Evolution_Biter-Spawner", - energy_required = 150, - }, - - { - type = "recipe", - name = "Natural_Evolution_Biter-Spawner-refresh", - icon = "__Natural_Evolution_Buildings__/graphics/icons/biter-spawner-r.png", - category = "Hatchery", - enabled = false, - ingredients = - { - {"Natural_Evolution_Biter-Spawner-exhausted", 1}, - {type="fluid", name="NE_revitalization-solution", amount=250}, - }, - result = "Natural_Evolution_Biter-Spawner", - energy_required = 75, - }, - - --- Spawner Spitter - { - type = "recipe", - name = "Natural_Evolution_Spitter-Spawner", - icon = "__Natural_Evolution_Buildings__/graphics/icons/spitter-spawner.png", - category = "Hatchery", - enabled = false, - ingredients = - { - {"Building_Materials", 4}, - {"alien-artifact", 50}, - {type="fluid", name="NE_enhanced-nutrient-solution", amount=500}, - }, - result = "Natural_Evolution_Spitter-Spawner", - energy_required = 150, - }, - - { - type = "recipe", - name = "Natural_Evolution_Spitter-Spawner-refresh", - icon = "__Natural_Evolution_Buildings__/graphics/icons/spitter-spawner-r.png", - category = "Hatchery", - enabled = false, - ingredients = - { - {"Natural_Evolution_Spitter-Spawner-exhausted", 1}, - {type="fluid", name="NE_revitalization-solution", amount=250}, - }, - result = "Natural_Evolution_Spitter-Spawner", - energy_required = 75, - }, - -}) - - - -data:extend({ - - ---- special liquids for hatchery operation - { - type = "recipe", - name = "NE_alien-revitalization", - icon = "__Natural_Evolution_Buildings__/graphics/icons/fluid/enhanced-alien-nutrientant_toxin.png", - category = "chemistry", - energy_required = 10, - enabled = false, - ingredients = - { - {type="item", name="alien-artifact", amount=1}, - {type="fluid", name="water", amount=25} - }, - results= - { - {type="fluid", name="NE_revitalization-solution", amount=10}, - {type="fluid", name="NE_alien_toxin", amount=5}, - }, - subgroup = "Evolution-fluids" - }, - - { - type = "recipe", - name = "NE_basic-alien-nutrientant", - category = "chemistry", - energy_required = 10, - enabled = false, - ingredients = - { - {type="item", name="stone", amount=5}, - {type="fluid", name="sulfuric-acid", amount=10} - }, - results= - { - {type="fluid", name="NE_nutrient-solution", amount=10}, - }, - subgroup = "Evolution-fluids" - }, - - { - type = "recipe", - name = "NE_enhanced-alien-nutrientant", - category = "chemistry", - energy_required = 10, - enabled = false, - ingredients = - { - {type="fluid", name="NE_nutrient-solution", amount=10}, - {type="fluid", name="NE_revitalization-solution", amount=10}, - }, - results= - { - {type="fluid", name="NE_enhanced-nutrient-solution", amount=10}, - }, - - subgroup = "Evolution-fluids" - }, + +data:extend({ + + ---- Alien Hatchery + { + type = "recipe", + name = "Alien_Hatchery", + enabled = false, + ingredients = + { + {"Building_Materials", 5}, + }, + result = "Alien_Hatchery" + }, + +---- Living Wall + { + type = "recipe", + name = "ne-living-wall", + icon = "__Natural_Evolution_Buildings__/graphics/icons/living_wall.png", + enabled = false, + category = "Hatchery", + ingredients = + { + {"stone-wall", 1}, + {type="fluid", name="NE_alien_toxin", amount=2}, + }, + result = "ne-living-wall", + energy_required = 10, + requester_paste_multiplier = 10 + }, + + + { + type = "recipe", + name = "ne-living-wall-refresh", + icon = "__Natural_Evolution_Buildings__/graphics/icons/living_wall-r.png", + enabled = false, + category = "Hatchery", + ingredients = + { + {"ne-living-wall-exhausted", 1}, + {type="fluid", name="NE_revitalization-solution", amount=2}, + }, + result = "ne-living-wall", + energy_required = 6, + requester_paste_multiplier = 10 + }, + + + + + --- Small Biter Hatching + { + type = "recipe", + name = "small-biter-hatching", + category = "Hatchery", + enabled = false, + ingredients = + { + {"alien-artifact", 2}, + {type="fluid", name="NE_nutrient-solution", amount=25}, + }, + result = "small-biter-hatching", + energy_required = 50, + }, + + --- Medium Biter Hatching + { + type = "recipe", + name = "medium-biter-hatching", + category = "Hatchery", + enabled = false, + ingredients = + { + {"small-biter-hatching", 1}, + {type="fluid", name="NE_enhanced-nutrient-solution", amount=25}, + }, + result = "medium-biter-hatching", + energy_required = 100, + }, + + --- Big Biter Hatching + { + type = "recipe", + name = "big-biter-hatching", + category = "Hatchery", + enabled = false, + ingredients = + { + {"medium-biter-hatching", 1}, + {type="fluid", name="NE_enhanced-nutrient-solution", amount=50}, + }, + result = "big-biter-hatching", + energy_required = 150, + }, + + --- Behemoth Biter Hatching + { + type = "recipe", + name = "behemoth-biter-hatching", + category = "Hatchery", + enabled = false, + ingredients = + { + {"big-biter-hatching", 1}, + {type="fluid", name="NE_enhanced-nutrient-solution", amount=100}, + }, + result = "behemoth-biter-hatching", + energy_required = 200, + }, + + + --- Small Spitter Hatching + { + type = "recipe", + name = "small-spitter-hatching", + category = "Hatchery", + enabled = false, + ingredients = + { + {"alien-artifact", 2}, + {type="fluid", name="NE_nutrient-solution", amount=25}, + }, + result = "small-spitter-hatching", + energy_required = 50, + }, + + --- Medium Spitter Hatching + { + type = "recipe", + name = "medium-spitter-hatching", + category = "Hatchery", + enabled = false, + ingredients = + { + {"small-spitter-hatching", 1}, + {type="fluid", name="NE_enhanced-nutrient-solution", amount=25}, + }, + result = "medium-spitter-hatching", + energy_required = 100, + }, + + --- Big Spitter Hatching + { + type = "recipe", + name = "big-spitter-hatching", + category = "Hatchery", + enabled = false, + ingredients = + { + {"medium-spitter-hatching", 1}, + {type="fluid", name="NE_enhanced-nutrient-solution", amount=50}, + }, + result = "big-spitter-hatching", + energy_required = 150, + }, + + --- Behemoth Spitter Hatching + { + type = "recipe", + name = "behemoth-spitter-hatching", + category = "Hatchery", + enabled = false, + ingredients = + { + {"big-spitter-hatching", 1}, + {type="fluid", name="NE_enhanced-nutrient-solution", amount=100}, + }, + result = "behemoth-spitter-hatching", + energy_required = 200, + }, + + + --- Small Worm Hatching + { + type = "recipe", + name = "small-worm-hatching", + icon = "__Natural_Evolution_Buildings__/graphics/icons/small-worm.png", + category = "Hatchery", + enabled = false, + ingredients = + { + {"alien-artifact", 2}, + {type="fluid", name="NE_nutrient-solution", amount=50}, + }, + result = "small-worm-hatching", + energy_required = 50, + }, + + { + type = "recipe", + name = "small-worm-hatching-refresh", + icon = "__Natural_Evolution_Buildings__/graphics/icons/small-worm-r.png", + category = "Hatchery", + enabled = false, + ingredients = + { + {"small-worm-hatching-exhausted", 1}, + {type="fluid", name="NE_revitalization-solution", amount=10}, + }, + result = "small-worm-hatching", + energy_required = 25, + }, + + --- Medium Worm Hatching + { + type = "recipe", + name = "medium-worm-hatching", + icon = "__Natural_Evolution_Buildings__/graphics/icons/medium-worm.png", + category = "Hatchery", + enabled = false, + ingredients = + { + {"small-worm-hatching", 1}, + {type="fluid", name="NE_enhanced-nutrient-solution", amount=50}, + }, + result = "medium-worm-hatching", + energy_required = 70, + }, + + { + type = "recipe", + name = "medium-worm-hatching-refresh", + icon = "__Natural_Evolution_Buildings__/graphics/icons/medium-worm-r.png", + category = "Hatchery", + enabled = false, + ingredients = + { + {"medium-worm-hatching-exhausted", 1}, + {type="fluid", name="NE_revitalization-solution", amount=20}, + }, + result = "medium-worm-hatching", + energy_required = 35, + }, + + --- Big Worm Hatching + { + type = "recipe", + name = "big-worm-hatching", + icon = "__Natural_Evolution_Buildings__/graphics/icons/big-worm.png", + category = "Hatchery", + enabled = false, + ingredients = + { + {"medium-worm-hatching", 1}, + {type="fluid", name="NE_enhanced-nutrient-solution", amount=100}, + }, + result = "big-worm-hatching", + energy_required = 100, + }, + + { + type = "recipe", + name = "big-worm-hatching-refresh", + icon = "__Natural_Evolution_Buildings__/graphics/icons/big-worm-r.png", + category = "Hatchery", + enabled = false, + ingredients = + { + {"big-worm-hatching-exhausted", 1}, + {type="fluid", name="NE_revitalization-solution", amount=40}, + }, + result = "big-worm-hatching", + energy_required = 50, + }, + + --- Spawner Biter + { + type = "recipe", + name = "Natural_Evolution_Biter-Spawner", + icon = "__Natural_Evolution_Buildings__/graphics/icons/biter-spawner.png", + category = "Hatchery", + enabled = false, + ingredients = + { + {"Building_Materials", 4}, + {"alien-artifact", 50}, + {type="fluid", name="NE_enhanced-nutrient-solution", amount=500}, + }, + result = "Natural_Evolution_Biter-Spawner", + energy_required = 150, + }, + + { + type = "recipe", + name = "Natural_Evolution_Biter-Spawner-refresh", + icon = "__Natural_Evolution_Buildings__/graphics/icons/biter-spawner-r.png", + category = "Hatchery", + enabled = false, + ingredients = + { + {"Natural_Evolution_Biter-Spawner-exhausted", 1}, + {type="fluid", name="NE_revitalization-solution", amount=250}, + }, + result = "Natural_Evolution_Biter-Spawner", + energy_required = 75, + }, + + --- Spawner Spitter + { + type = "recipe", + name = "Natural_Evolution_Spitter-Spawner", + icon = "__Natural_Evolution_Buildings__/graphics/icons/spitter-spawner.png", + category = "Hatchery", + enabled = false, + ingredients = + { + {"Building_Materials", 4}, + {"alien-artifact", 50}, + {type="fluid", name="NE_enhanced-nutrient-solution", amount=500}, + }, + result = "Natural_Evolution_Spitter-Spawner", + energy_required = 150, + }, + + { + type = "recipe", + name = "Natural_Evolution_Spitter-Spawner-refresh", + icon = "__Natural_Evolution_Buildings__/graphics/icons/spitter-spawner-r.png", + category = "Hatchery", + enabled = false, + ingredients = + { + {"Natural_Evolution_Spitter-Spawner-exhausted", 1}, + {type="fluid", name="NE_revitalization-solution", amount=250}, + }, + result = "Natural_Evolution_Spitter-Spawner", + energy_required = 75, + }, + +}) + + + +data:extend({ + + ---- special liquids for hatchery operation + { + type = "recipe", + name = "NE_alien-revitalization", + icon = "__Natural_Evolution_Buildings__/graphics/icons/fluid/enhanced-alien-nutrientant_toxin.png", + category = "chemistry", + energy_required = 10, + enabled = false, + ingredients = + { + {type="item", name="alien-artifact", amount=1}, + {type="fluid", name="water", amount=25} + }, + results= + { + {type="fluid", name="NE_revitalization-solution", amount=10}, + {type="fluid", name="NE_alien_toxin", amount=5}, + }, + subgroup = "Evolution-fluids" + }, + + { + type = "recipe", + name = "NE_basic-alien-nutrientant", + category = "chemistry", + energy_required = 10, + enabled = false, + ingredients = + { + {type="item", name="stone", amount=5}, + {type="fluid", name="sulfuric-acid", amount=10} + }, + results= + { + {type="fluid", name="NE_nutrient-solution", amount=10}, + }, + subgroup = "Evolution-fluids" + }, + + { + type = "recipe", + name = "NE_enhanced-alien-nutrientant", + category = "chemistry", + energy_required = 10, + enabled = false, + ingredients = + { + {type="fluid", name="NE_nutrient-solution", amount=10}, + {type="fluid", name="NE_revitalization-solution", amount=10}, + }, + results= + { + {type="fluid", name="NE_enhanced-nutrient-solution", amount=10}, + }, + + subgroup = "Evolution-fluids" + }, }) \ No newline at end of file diff --git a/Natural_Evolution_Buildings_6.3.0/prototypes/Alien_Hatchery/spawner.lua b/Natural_Evolution_Buildings_6.3.1/prototypes/Alien_Hatchery/spawner.lua similarity index 96% rename from Natural_Evolution_Buildings_6.3.0/prototypes/Alien_Hatchery/spawner.lua rename to Natural_Evolution_Buildings_6.3.1/prototypes/Alien_Hatchery/spawner.lua index 5b5b2ff..9e8fa25 100644 --- a/Natural_Evolution_Buildings_6.3.0/prototypes/Alien_Hatchery/spawner.lua +++ b/Natural_Evolution_Buildings_6.3.1/prototypes/Alien_Hatchery/spawner.lua @@ -1,43 +1,43 @@ -data:extend( -{ - --- Spawners - { - type = "item", - name = "Natural_Evolution_Biter-Spawner", - icon = "__Natural_Evolution_Buildings__/graphics/icons/biter-spawner.png", - flags = {"goes-to-quickbar"}, - subgroup = "Spawners", - order = "a[Natural_Evolution_Biter-Spawner]", - place_result = "Natural_Evolution_Biter-Spawner", - stack_size = 10 - }, - { - type = "item", - name = "Natural_Evolution_Biter-Spawner-exhausted", - icon = "__Natural_Evolution_Buildings__/graphics/icons/biter-spawner-exhausted.png", - flags = {"goes-to-quickbar"}, - subgroup = "Spawners", - order = "a[Natural_Evolution_Biter-Spawner]", - stack_size = 10 - }, - { - type = "item", - name = "Natural_Evolution_Spitter-Spawner", - icon = "__Natural_Evolution_Buildings__/graphics/icons/spitter-spawner.png", - flags = {"goes-to-quickbar"}, - subgroup = "Spawners", - order = "b[Natural_Evolution_Biter-Spawner]", - place_result = "Natural_Evolution_Spitter-Spawner", - stack_size = 10 - }, - { - type = "item", - name = "Natural_Evolution_Spitter-Spawner-exhausted", - icon = "__Natural_Evolution_Buildings__/graphics/icons/spitter-spawner-exhausted.png", - flags = {"goes-to-quickbar"}, - subgroup = "Spawners", - order = "b[Natural_Evolution_Biter-Spawner]", - stack_size = 10 - }, - +data:extend( +{ + --- Spawners + { + type = "item", + name = "Natural_Evolution_Biter-Spawner", + icon = "__Natural_Evolution_Buildings__/graphics/icons/biter-spawner.png", + flags = {"goes-to-quickbar"}, + subgroup = "Spawners", + order = "a[Natural_Evolution_Biter-Spawner]", + place_result = "Natural_Evolution_Biter-Spawner", + stack_size = 10 + }, + { + type = "item", + name = "Natural_Evolution_Biter-Spawner-exhausted", + icon = "__Natural_Evolution_Buildings__/graphics/icons/biter-spawner-exhausted.png", + flags = {"goes-to-quickbar"}, + subgroup = "Spawners", + order = "a[Natural_Evolution_Biter-Spawner]", + stack_size = 10 + }, + { + type = "item", + name = "Natural_Evolution_Spitter-Spawner", + icon = "__Natural_Evolution_Buildings__/graphics/icons/spitter-spawner.png", + flags = {"goes-to-quickbar"}, + subgroup = "Spawners", + order = "b[Natural_Evolution_Biter-Spawner]", + place_result = "Natural_Evolution_Spitter-Spawner", + stack_size = 10 + }, + { + type = "item", + name = "Natural_Evolution_Spitter-Spawner-exhausted", + icon = "__Natural_Evolution_Buildings__/graphics/icons/spitter-spawner-exhausted.png", + flags = {"goes-to-quickbar"}, + subgroup = "Spawners", + order = "b[Natural_Evolution_Biter-Spawner]", + stack_size = 10 + }, + }) \ No newline at end of file diff --git a/Natural_Evolution_Buildings_6.3.0/prototypes/Alien_Hatchery/spitters.lua b/Natural_Evolution_Buildings_6.3.1/prototypes/Alien_Hatchery/spitters.lua similarity index 97% rename from Natural_Evolution_Buildings_6.3.0/prototypes/Alien_Hatchery/spitters.lua rename to Natural_Evolution_Buildings_6.3.1/prototypes/Alien_Hatchery/spitters.lua index 4c23e48..43d12c6 100644 --- a/Natural_Evolution_Buildings_6.3.0/prototypes/Alien_Hatchery/spitters.lua +++ b/Natural_Evolution_Buildings_6.3.1/prototypes/Alien_Hatchery/spitters.lua @@ -1,170 +1,170 @@ -data:extend( -{ - - { - type = "unit", - name = "tame-small-spitter", - icon = "__base__/graphics/icons/creeper.png", - flags = {"placeable-player", "placeable-enemy", "placeable-off-grid", "breaths-air", "not-repairable"}, - max_health = 10, - order = "001", - subgroup="enemies", - resistances = - { - { - type = "physical", - percent = 15, - }, - }, - healing_per_tick = 0.0001, - collision_box = {{-0.3, -0.3}, {0.3, 0.3}}, - selection_box = {{-0.4, -0.4}, {0.4, 0.4}}, - sticker_box = {{-0.3, -0.5}, {0.3, 0.1}}, - distraction_cooldown = 300, - attack_parameters = spitterattackparameters({range=15, - cooldown=100, - damage_modifier=1, - scale=smallspitterscale, - tint=smallspittertint, - roarvolume=0.7}), - vision_distance = 30, - movement_speed = 0.185, - distance_per_frame = 0.05, - -- in pu - pollution_to_join_attack = 200, - corpse = "small-spitter-corpse", - dying_explosion = "blood-explosion-small", - dying_sound = make_spitter_dying_sounds(1.0), - run_animation = spitterrunanimation(smallspitterscale, smallspittertint) - }, - { - type = "unit", - name = "tame-medium-spitter", - icon = "__base__/graphics/icons/creeper.png", - flags = {"placeable-player", "placeable-enemy", "placeable-off-grid", "breaths-air", "not-repairable"}, - max_health = 50, - order = "002", - subgroup="enemies", - resistances = - { - { - type = "physical", - percent = 30, - }, - { - type = "acid", - percent = 30, - }, - { - type = "explosion", - percent = 15 - } - }, - healing_per_tick = 0.0001, - collision_box = {{-0.4, -0.4}, {0.4, 0.4}}, - selection_box = {{-0.5, -0.7}, {0.5, 0.7}}, - sticker_box = {{-0.3, -0.5}, {0.3, 0.1}}, - distraction_cooldown = 300, - attack_parameters = spitterattackparameters({range=15, - cooldown=100, - damage_modifier=2, - scale=mediumspitterscale, - tint=mediumspittertint, - roarvolume=0.85}), - vision_distance = 30, - movement_speed = 0.165, - distance_per_frame = 0.05, - -- in pu - pollution_to_join_attack = 600, - corpse = "medium-spitter-corpse", - dying_explosion = "blood-explosion-small", - dying_sound = make_spitter_dying_sounds(1.0), - run_animation = spitterrunanimation(mediumspitterscale, mediumspittertint) - }, - { - type = "unit", - name = "tame-big-spitter", - icon = "__base__/graphics/icons/creeper.png", - flags = {"placeable-player", "placeable-enemy", "placeable-off-grid", "breaths-air", "not-repairable"}, - max_health = 200, - order = "003", - subgroup="enemies", - resistances = - { - { - type = "physical", - percent = 50, - }, - { - type = "laser", - percent = 50, - }, - { - type = "acid", - percent = 50, - }, - { - type = "explosion", - percent = 30 - } - }, - spawning_time_modifier = 2, - healing_per_tick = 0.0001, - collision_box = {{0, -0.01}, {0, 0.01}}, - selection_box = {{-0.7, -1.0}, {0.7, 1.0}}, - sticker_box = {{-0.3, -0.5}, {0.3, 0.1}}, - distraction_cooldown = 300, - attack_parameters = spitterattackparameters({range=15, - cooldown=100, - damage_modifier=3, - scale=bigspitterscale, - tint=bigspittertint, - roarvolume=0.95}), - vision_distance = 30, - movement_speed = 0.15, - distance_per_frame = 0.05, - -- in pu - pollution_to_join_attack = 600, - corpse = "big-spitter-corpse", - dying_explosion = "blood-explosion-big", - dying_sound = make_spitter_dying_sounds(1.0), - run_animation = spitterrunanimation(bigspitterscale, bigspittertint) - }, - { - type = "unit", - name = "tame-behemoth-spitter", - icon = "__base__/graphics/icons/creeper.png", - flags = {"placeable-player", "placeable-enemy", "placeable-off-grid", "breaths-air", "not-repairable"}, - max_health = 2000, - order = "204", - subgroup="enemies", - resistances = - { - { - type = "explosion", - percent = 35 - } - }, - spawning_time_modifier = 8, - healing_per_tick = 0.0001, - collision_box = {{-0.5, -0.5}, {0.5, 0.5}}, - selection_box = {{-0.7, -1.0}, {0.7, 1.0}}, - sticker_box = {{-0.3, -0.5}, {0.3, 0.1}}, - distraction_cooldown = 300, - attack_parameters = spitterattackparameters({range=15, - cooldown=100, - damage_modifier=5, - scale=behemothspitterscale, - tint=behemothspittertint}), - vision_distance = 30, - movement_speed = 0.15, - distance_per_frame = 0.05, - -- in pu - pollution_to_join_attack = 10000, - corpse = "behemoth-spitter-corpse", - dying_explosion = "blood-explosion-big", - dying_sound = make_spitter_dying_sounds(1.0), - run_animation = spitterrunanimation(behemothspitterscale, behemothspittertint) - }, - -}) +data:extend( +{ + + { + type = "unit", + name = "tame-small-spitter", + icon = "__base__/graphics/icons/creeper.png", + flags = {"placeable-player", "placeable-enemy", "placeable-off-grid", "breaths-air", "not-repairable"}, + max_health = 10, + order = "001", + subgroup="enemies", + resistances = + { + { + type = "physical", + percent = 15, + }, + }, + healing_per_tick = 0.0001, + collision_box = {{-0.3, -0.3}, {0.3, 0.3}}, + selection_box = {{-0.4, -0.4}, {0.4, 0.4}}, + sticker_box = {{-0.3, -0.5}, {0.3, 0.1}}, + distraction_cooldown = 300, + attack_parameters = spitterattackparameters({range=15, + cooldown=100, + damage_modifier=1, + scale=smallspitterscale, + tint=smallspittertint, + roarvolume=0.7}), + vision_distance = 30, + movement_speed = 0.185, + distance_per_frame = 0.05, + -- in pu + pollution_to_join_attack = 200, + corpse = "small-spitter-corpse", + dying_explosion = "blood-explosion-small", + dying_sound = make_spitter_dying_sounds(1.0), + run_animation = spitterrunanimation(smallspitterscale, smallspittertint) + }, + { + type = "unit", + name = "tame-medium-spitter", + icon = "__base__/graphics/icons/creeper.png", + flags = {"placeable-player", "placeable-enemy", "placeable-off-grid", "breaths-air", "not-repairable"}, + max_health = 50, + order = "002", + subgroup="enemies", + resistances = + { + { + type = "physical", + percent = 30, + }, + { + type = "acid", + percent = 30, + }, + { + type = "explosion", + percent = 15 + } + }, + healing_per_tick = 0.0001, + collision_box = {{-0.4, -0.4}, {0.4, 0.4}}, + selection_box = {{-0.5, -0.7}, {0.5, 0.7}}, + sticker_box = {{-0.3, -0.5}, {0.3, 0.1}}, + distraction_cooldown = 300, + attack_parameters = spitterattackparameters({range=15, + cooldown=100, + damage_modifier=2, + scale=mediumspitterscale, + tint=mediumspittertint, + roarvolume=0.85}), + vision_distance = 30, + movement_speed = 0.165, + distance_per_frame = 0.05, + -- in pu + pollution_to_join_attack = 600, + corpse = "medium-spitter-corpse", + dying_explosion = "blood-explosion-small", + dying_sound = make_spitter_dying_sounds(1.0), + run_animation = spitterrunanimation(mediumspitterscale, mediumspittertint) + }, + { + type = "unit", + name = "tame-big-spitter", + icon = "__base__/graphics/icons/creeper.png", + flags = {"placeable-player", "placeable-enemy", "placeable-off-grid", "breaths-air", "not-repairable"}, + max_health = 200, + order = "003", + subgroup="enemies", + resistances = + { + { + type = "physical", + percent = 50, + }, + { + type = "laser", + percent = 50, + }, + { + type = "acid", + percent = 50, + }, + { + type = "explosion", + percent = 30 + } + }, + spawning_time_modifier = 2, + healing_per_tick = 0.0001, + collision_box = {{0, -0.01}, {0, 0.01}}, + selection_box = {{-0.7, -1.0}, {0.7, 1.0}}, + sticker_box = {{-0.3, -0.5}, {0.3, 0.1}}, + distraction_cooldown = 300, + attack_parameters = spitterattackparameters({range=15, + cooldown=100, + damage_modifier=3, + scale=bigspitterscale, + tint=bigspittertint, + roarvolume=0.95}), + vision_distance = 30, + movement_speed = 0.15, + distance_per_frame = 0.05, + -- in pu + pollution_to_join_attack = 600, + corpse = "big-spitter-corpse", + dying_explosion = "blood-explosion-big", + dying_sound = make_spitter_dying_sounds(1.0), + run_animation = spitterrunanimation(bigspitterscale, bigspittertint) + }, + { + type = "unit", + name = "tame-behemoth-spitter", + icon = "__base__/graphics/icons/creeper.png", + flags = {"placeable-player", "placeable-enemy", "placeable-off-grid", "breaths-air", "not-repairable"}, + max_health = 2000, + order = "204", + subgroup="enemies", + resistances = + { + { + type = "explosion", + percent = 35 + } + }, + spawning_time_modifier = 8, + healing_per_tick = 0.0001, + collision_box = {{-0.5, -0.5}, {0.5, 0.5}}, + selection_box = {{-0.7, -1.0}, {0.7, 1.0}}, + sticker_box = {{-0.3, -0.5}, {0.3, 0.1}}, + distraction_cooldown = 300, + attack_parameters = spitterattackparameters({range=15, + cooldown=100, + damage_modifier=5, + scale=behemothspitterscale, + tint=behemothspittertint}), + vision_distance = 30, + movement_speed = 0.15, + distance_per_frame = 0.05, + -- in pu + pollution_to_join_attack = 10000, + corpse = "behemoth-spitter-corpse", + dying_explosion = "blood-explosion-big", + dying_sound = make_spitter_dying_sounds(1.0), + run_animation = spitterrunanimation(behemothspitterscale, behemothspittertint) + }, + +}) diff --git a/Natural_Evolution_Buildings_6.3.0/prototypes/Alien_Hatchery/walls_pictures.lua b/Natural_Evolution_Buildings_6.3.1/prototypes/Alien_Hatchery/walls_pictures.lua similarity index 96% rename from Natural_Evolution_Buildings_6.3.0/prototypes/Alien_Hatchery/walls_pictures.lua rename to Natural_Evolution_Buildings_6.3.1/prototypes/Alien_Hatchery/walls_pictures.lua index aa5d987..03605a7 100644 --- a/Natural_Evolution_Buildings_6.3.0/prototypes/Alien_Hatchery/walls_pictures.lua +++ b/Natural_Evolution_Buildings_6.3.1/prototypes/Alien_Hatchery/walls_pictures.lua @@ -1,964 +1,964 @@ -function WallSetup(Tint) -return - { - single = - { - layers = - { - { - filename = "__Natural_Evolution_Buildings__/graphics/entity/livingwall/biowall-single.png", - priority = "extra-high", - width = 44, - height = 84, - shift = {0, -0.15625}, - --tint = Tint, - scale = 0.5, - }, - { - filename = "__base__/graphics/entity/stone-wall/wall-single-shadow.png", - priority = "extra-high", - width = 47, - height = 32, - shift = {0.359375, 0.5}, - draw_as_shadow = true - } - } - }, - straight_vertical = - { - { - layers = - { - { - filename = "__Natural_Evolution_Buildings__/graphics/entity/livingwall/biowall-variant-1.png", - priority = "extra-high", - width = 44, - height = 84, - shift = {0, -0.15625}, - --tint = Tint, - scale = 0.5, - }, - { - filename = "__base__/graphics/entity/stone-wall/wall-straight-vertical-shadow.png", - priority = "extra-high", - width = 47, - height = 60, - shift = {0.390625, 0.625}, - draw_as_shadow = true - } - } - }, - { - layers = - { - { - filename = "__Natural_Evolution_Buildings__/graphics/entity/livingwall/biowall-variant-2.png", - priority = "extra-high", - width = 44, - height = 84, - shift = {0, -0.15625}, - --tint = Tint, - scale = 0.5, - }, - { - filename = "__base__/graphics/entity/stone-wall/wall-straight-vertical-shadow.png", - priority = "extra-high", - width = 47, - height = 60, - shift = {0.390625, 0.625}, - draw_as_shadow = true - } - } - }, - { - layers = - { - { - filename = "__Natural_Evolution_Buildings__/graphics/entity/livingwall/biowall-variant-3.png", - priority = "extra-high", - width = 44, - height = 84, - shift = {0, -0.15625}, - --tint = Tint, - scale = 0.5, - }, - { - filename = "__base__/graphics/entity/stone-wall/wall-straight-vertical-shadow.png", - priority = "extra-high", - width = 47, - height = 60, - shift = {0.390625, 0.625}, - draw_as_shadow = true - } - } - }, - { - layers = - { - { - filename = "__Natural_Evolution_Buildings__/graphics/entity/livingwall/biowall-variant-4.png", - priority = "extra-high", - width = 44, - height = 84, - shift = {0, -0.15625}, - --tint = Tint, - scale = 0.5, - }, - { - filename = "__base__/graphics/entity/stone-wall/wall-straight-vertical-shadow.png", - priority = "extra-high", - width = 47, - height = 60, - shift = {0.390625, 0.625}, - draw_as_shadow = true - } - } - }, - { - layers = - { - { - filename = "__Natural_Evolution_Buildings__/graphics/entity/livingwall/biowall-variant-5.png", - priority = "extra-high", - width = 44, - height = 84, - shift = {0, -0.15625}, - --tint = Tint, - scale = 0.5, - }, - { - filename = "__base__/graphics/entity/stone-wall/wall-straight-vertical-shadow.png", - priority = "extra-high", - width = 47, - height = 60, - shift = {0.390625, 0.625}, - draw_as_shadow = true - } - } - }, - { - layers = - { - { - filename = "__Natural_Evolution_Buildings__/graphics/entity/livingwall/biowall-variant-6.png", - priority = "extra-high", - width = 44, - height = 84, - shift = {0, -0.15625}, - --tint = Tint, - scale = 0.5, - }, - { - filename = "__base__/graphics/entity/stone-wall/wall-straight-vertical-shadow.png", - priority = "extra-high", - width = 47, - height = 60, - shift = {0.390625, 0.625}, - draw_as_shadow = true - } - } - }, - }, - straight_horizontal = - { - { - layers = - { - { - filename = "__Natural_Evolution_Buildings__/graphics/entity/livingwall/biowall-h-variant-1.png", - priority = "extra-high", - width = 64, - height = 84, - shift = {0, -0.15625}, - --tint = Tint, - scale = 0.5, - }, - { - filename = "__base__/graphics/entity/stone-wall/wall-straight-horizontal-shadow.png", - priority = "extra-high", - width = 59, - height = 32, - shift = {0.421875, 0.5}, - draw_as_shadow = true - } - } - }, - { - layers = - { - { - filename = "__Natural_Evolution_Buildings__/graphics/entity/livingwall/biowall-h-variant-2.png", - priority = "extra-high", - width = 64, - height = 84, - shift = {0, -0.15625}, - --tint = Tint, - scale = 0.5, - }, - { - filename = "__base__/graphics/entity/stone-wall/wall-straight-horizontal-shadow.png", - priority = "extra-high", - width = 59, - height = 32, - shift = {0.421875, 0.5}, - draw_as_shadow = true - } - } - }, - { - layers = - { - { - filename = "__Natural_Evolution_Buildings__/graphics/entity/livingwall/biowall-h-variant-3.png", - priority = "extra-high", - width = 64, - height = 84, - shift = {0, -0.15625}, - --tint = Tint, - scale = 0.5, - }, - { - filename = "__base__/graphics/entity/stone-wall/wall-straight-horizontal-shadow.png", - priority = "extra-high", - width = 59, - height = 32, - shift = {0.421875, 0.5}, - draw_as_shadow = true - } - } - }, - { - layers = - { - { - filename = "__Natural_Evolution_Buildings__/graphics/entity/livingwall/biowall-h-variant-4.png", - priority = "extra-high", - width = 64, - height = 84, - shift = {0, -0.15625}, - --tint = Tint, - scale = 0.5, - }, - { - filename = "__base__/graphics/entity/stone-wall/wall-straight-horizontal-shadow.png", - priority = "extra-high", - width = 59, - height = 32, - shift = {0.421875, 0.5}, - draw_as_shadow = true - } - } - }, - { - layers = - { - { - filename = "__Natural_Evolution_Buildings__/graphics/entity/livingwall/biowall-h-variant-5.png", - priority = "extra-high", - width = 64, - height = 84, - shift = {0, -0.15625}, - --tint = Tint, - scale = 0.5, - }, - { - filename = "__base__/graphics/entity/stone-wall/wall-straight-horizontal-shadow.png", - priority = "extra-high", - width = 59, - height = 32, - shift = {0.421875, 0.5}, - draw_as_shadow = true - } - } - }, - { - layers = - { - { - filename = "__Natural_Evolution_Buildings__/graphics/entity/livingwall/biowall-h-variant-6.png", - priority = "extra-high", - width = 64, - height = 84, - shift = {0, -0.15625}, - --tint = Tint, - scale = 0.5, - }, - { - filename = "__base__/graphics/entity/stone-wall/wall-straight-horizontal-shadow.png", - priority = "extra-high", - width = 59, - height = 32, - shift = {0.421875, 0.5}, - draw_as_shadow = true - } - } - }, - }, - corner_right_down = - { - layers = - { - { - filename = "__Natural_Evolution_Buildings__/graphics/entity/livingwall/biowall-cr-variant-1.png", - priority = "extra-high", - width = 54, - height = 84, - shift = {0.078125, -0.15625}, - --tint = Tint, - scale = 0.5, - }, - { - filename = "__base__/graphics/entity/stone-wall/wall-corner-right-down-shadow.png", - priority = "extra-high", - width = 53, - height = 61, - shift = {0.484375, 0.640625}, - draw_as_shadow = true - } - } - }, - { - layers = - { - { - filename = "__Natural_Evolution_Buildings__/graphics/entity/livingwall/biowall-cr-variant-2.png", - priority = "extra-high", - width = 54, - height = 84, - shift = {0.078125, -0.15625}, - --tint = Tint, - scale = 0.5, - }, - { - filename = "__base__/graphics/entity/stone-wall/wall-corner-right-down-shadow.png", - priority = "extra-high", - width = 53, - height = 61, - shift = {0.484375, 0.640625}, - draw_as_shadow = true - } - } - }, - { - layers = - { - { - filename = "__Natural_Evolution_Buildings__/graphics/entity/livingwall/biowall-cr-variant-3.png", - priority = "extra-high", - width = 54, - height = 84, - shift = {0.078125, -0.15625}, - --tint = Tint, - scale = 0.5, - }, - { - filename = "__base__/graphics/entity/stone-wall/wall-corner-right-down-shadow.png", - priority = "extra-high", - width = 53, - height = 61, - shift = {0.484375, 0.640625}, - draw_as_shadow = true - } - } - }, - { - layers = - { - { - filename = "__Natural_Evolution_Buildings__/graphics/entity/livingwall/biowall-cr-variant-4.png", - priority = "extra-high", - width = 54, - height = 84, - shift = {0.078125, -0.15625}, - --tint = Tint, - scale = 0.5, - }, - { - filename = "__base__/graphics/entity/stone-wall/wall-corner-right-down-shadow.png", - priority = "extra-high", - width = 53, - height = 61, - shift = {0.484375, 0.640625}, - draw_as_shadow = true - } - } - }, - { - layers = - { - { - filename = "__Natural_Evolution_Buildings__/graphics/entity/livingwall/biowall-cr-variant-5.png", - priority = "extra-high", - width = 54, - height = 84, - shift = {0.078125, -0.15625}, - --tint = Tint, - scale = 0.5, - }, - { - filename = "__base__/graphics/entity/stone-wall/wall-corner-right-down-shadow.png", - priority = "extra-high", - width = 53, - height = 61, - shift = {0.484375, 0.640625}, - draw_as_shadow = true - } - } - }, - { - layers = - { - { - filename = "__Natural_Evolution_Buildings__/graphics/entity/livingwall/biowall-cr-variant-6.png", - priority = "extra-high", - width = 54, - height = 84, - shift = {0.078125, -0.15625}, - --tint = Tint, - scale = 0.5, - }, - { - filename = "__base__/graphics/entity/stone-wall/wall-corner-right-down-shadow.png", - priority = "extra-high", - width = 53, - height = 61, - shift = {0.484375, 0.640625}, - draw_as_shadow = true - } - } - }, - corner_left_down = - { - layers = - { - { - filename = "__Natural_Evolution_Buildings__/graphics/entity/livingwall/biowall-cr-variant-1.png", - priority = "extra-high", - width = 54, - height = 84, - shift = {-0.078125, -0.15625}, - --tint = Tint, - scale = 0.5, - }, - { - filename = "__base__/graphics/entity/stone-wall/wall-corner-left-down-shadow.png", - priority = "extra-high", - width = 53, - height = 60, - shift = {0.328125, 0.640625}, - draw_as_shadow = true - } - } - }, - { - layers = - { - { - filename = "__Natural_Evolution_Buildings__/graphics/entity/livingwall/biowall-cr-variant-2.png", - priority = "extra-high", - width = 54, - height = 84, - shift = {-0.078125, -0.15625}, - --tint = Tint, - scale = 0.5, - }, - { - filename = "__base__/graphics/entity/stone-wall/wall-corner-left-down-shadow.png", - priority = "extra-high", - width = 53, - height = 60, - shift = {0.328125, 0.640625}, - draw_as_shadow = true - } - } - }, - { - layers = - { - { - filename = "__Natural_Evolution_Buildings__/graphics/entity/livingwall/biowall-cr-variant-3.png", - priority = "extra-high", - width = 54, - height = 84, - shift = {-0.078125, -0.15625}, - --tint = Tint, - scale = 0.5, - }, - { - filename = "__base__/graphics/entity/stone-wall/wall-corner-left-down-shadow.png", - priority = "extra-high", - width = 53, - height = 60, - shift = {0.328125, 0.640625}, - draw_as_shadow = true - } - } - }, - { - layers = - { - { - filename = "__Natural_Evolution_Buildings__/graphics/entity/livingwall/biowall-cr-variant-4.png", - priority = "extra-high", - width = 54, - height = 84, - shift = {-0.078125, -0.15625}, - --tint = Tint, - scale = 0.5, - }, - { - filename = "__base__/graphics/entity/stone-wall/wall-corner-left-down-shadow.png", - priority = "extra-high", - width = 53, - height = 60, - shift = {0.328125, 0.640625}, - draw_as_shadow = true - } - } - }, - { - layers = - { - { - filename = "__Natural_Evolution_Buildings__/graphics/entity/livingwall/biowall-cr-variant-5.png", - priority = "extra-high", - width = 54, - height = 84, - shift = {-0.078125, -0.15625}, - --tint = Tint, - scale = 0.5, - }, - { - filename = "__base__/graphics/entity/stone-wall/wall-corner-left-down-shadow.png", - priority = "extra-high", - width = 53, - height = 60, - shift = {0.328125, 0.640625}, - draw_as_shadow = true - } - } - }, - { - layers = - { - { - filename = "__Natural_Evolution_Buildings__/graphics/entity/livingwall/biowall-cr-variant-6.png", - priority = "extra-high", - width = 54, - height = 84, - shift = {-0.078125, -0.15625}, - --tint = Tint, - scale = 0.5, - }, - { - filename = "__base__/graphics/entity/stone-wall/wall-corner-left-down-shadow.png", - priority = "extra-high", - width = 53, - height = 60, - shift = {0.328125, 0.640625}, - draw_as_shadow = true - } - } - }, - t_up = - { - layers = - { - { - filename = "__Natural_Evolution_Buildings__/graphics/entity/livingwall/biowall-h-variant-1.png", - priority = "extra-high", - width = 64, - height = 84, - shift = {0, -0.15625}, - --tint = Tint, - scale = 0.5, - }, - { - filename = "__base__/graphics/entity/stone-wall/wall-t-down-shadow.png", - priority = "extra-high", - width = 71, - height = 61, - shift = {0.546875, 0.640625}, - draw_as_shadow = true - } - } - }, - { - layers = - { - { - filename = "__Natural_Evolution_Buildings__/graphics/entity/livingwall/biowall-h-variant-2.png", - priority = "extra-high", - width = 64, - height = 84, - shift = {0, -0.15625}, - --tint = Tint, - scale = 0.5, - }, - { - filename = "__base__/graphics/entity/stone-wall/wall-t-down-shadow.png", - priority = "extra-high", - width = 71, - height = 61, - shift = {0.546875, 0.640625}, - draw_as_shadow = true - } - } - }, - { - layers = - { - { - filename = "__Natural_Evolution_Buildings__/graphics/entity/livingwall/biowall-h-variant-3.png", - priority = "extra-high", - width = 64, - height = 84, - shift = {0, -0.15625}, - --tint = Tint, - scale = 0.5, - }, - { - filename = "__base__/graphics/entity/stone-wall/wall-t-down-shadow.png", - priority = "extra-high", - width = 71, - height = 61, - shift = {0.546875, 0.640625}, - draw_as_shadow = true - } - } - }, - { - layers = - { - { - filename = "__Natural_Evolution_Buildings__/graphics/entity/livingwall/biowall-h-variant-4.png", - priority = "extra-high", - width = 64, - height = 84, - shift = {0, -0.15625}, - --tint = Tint, - scale = 0.5, - }, - { - filename = "__base__/graphics/entity/stone-wall/wall-t-down-shadow.png", - priority = "extra-high", - width = 71, - height = 61, - shift = {0.546875, 0.640625}, - draw_as_shadow = true - } - } - }, - { - layers = - { - { - filename = "__Natural_Evolution_Buildings__/graphics/entity/livingwall/biowall-h-variant-5.png", - priority = "extra-high", - width = 64, - height = 84, - shift = {0, -0.15625}, - --tint = Tint, - scale = 0.5, - }, - { - filename = "__base__/graphics/entity/stone-wall/wall-t-down-shadow.png", - priority = "extra-high", - width = 71, - height = 61, - shift = {0.546875, 0.640625}, - draw_as_shadow = true - } - } - }, - { - layers = - { - { - filename = "__Natural_Evolution_Buildings__/graphics/entity/livingwall/biowall-h-variant-6.png", - priority = "extra-high", - width = 64, - height = 84, - shift = {0, -0.15625}, - --tint = Tint, - scale = 0.5, - }, - { - filename = "__base__/graphics/entity/stone-wall/wall-straight-vertical-shadow.png", - priority = "extra-high", - width = 47, - height = 60, - shift = {0.390625, 0.625}, - draw_as_shadow = true - } - } - }, - ending_right = - { - layers = - { - { - filename = "__Natural_Evolution_Buildings__/graphics/entity/livingwall/biowall-cr-variant-1.png", - priority = "extra-high", - width = 54, - height = 84, - shift = {0.078125, -0.15625}, - --tint = Tint, - scale = 0.5, - }, - { - filename = "__base__/graphics/entity/stone-wall/wall-ending-right-shadow.png", - priority = "extra-high", - width = 53, - height = 32, - shift = {0.484375, 0.5}, - draw_as_shadow = true - } - } - }, - { - layers = - { - { - filename = "__Natural_Evolution_Buildings__/graphics/entity/livingwall/biowall-cr-variant-2.png", - priority = "extra-high", - width = 54, - height = 84, - shift = {0.078125, -0.15625}, - --tint = Tint, - scale = 0.5, - }, - { - filename = "__base__/graphics/entity/stone-wall/wall-ending-right-shadow.png", - priority = "extra-high", - width = 53, - height = 32, - shift = {0.484375, 0.5}, - draw_as_shadow = true - } - } - }, - { - layers = - { - { - filename = "__Natural_Evolution_Buildings__/graphics/entity/livingwall/biowall-cr-variant-3.png", - priority = "extra-high", - width = 54, - height = 84, - shift = {0.078125, -0.15625}, - --tint = Tint, - scale = 0.5, - }, - { - filename = "__base__/graphics/entity/stone-wall/wall-ending-right-shadow.png", - priority = "extra-high", - width = 53, - height = 32, - shift = {0.484375, 0.5}, - draw_as_shadow = true - } - } - }, - { - layers = - { - { - filename = "__Natural_Evolution_Buildings__/graphics/entity/livingwall/biowall-cr-variant-4.png", - priority = "extra-high", - width = 54, - height = 84, - shift = {0.078125, -0.15625}, - --tint = Tint, - scale = 0.5, - }, - { - filename = "__base__/graphics/entity/stone-wall/wall-ending-right-shadow.png", - priority = "extra-high", - width = 53, - height = 32, - shift = {0.484375, 0.5}, - draw_as_shadow = true - } - } - }, - { - layers = - { - { - filename = "__Natural_Evolution_Buildings__/graphics/entity/livingwall/biowall-cr-variant-5.png", - priority = "extra-high", - width = 54, - height = 84, - shift = {0.078125, -0.15625}, - --tint = Tint, - scale = 0.5, - }, - { - filename = "__base__/graphics/entity/stone-wall/wall-ending-right-shadow.png", - priority = "extra-high", - width = 53, - height = 32, - shift = {0.484375, 0.5}, - draw_as_shadow = true - } - } - }, - { - layers = - { - { - filename = "__Natural_Evolution_Buildings__/graphics/entity/livingwall/biowall-cr-variant-6.png", - priority = "extra-high", - width = 54, - height = 84, - shift = {0.078125, -0.15625}, - --tint = Tint, - scale = 0.5, - }, - { - filename = "__base__/graphics/entity/stone-wall/wall-straight-vertical-shadow.png", - priority = "extra-high", - width = 47, - height = 60, - shift = {0.390625, 0.625}, - draw_as_shadow = true - } - } - }, - ending_left = - { - layers = - { - { - filename = "__Natural_Evolution_Buildings__/graphics/entity/livingwall/biowall-cr-variant-1.png", - priority = "extra-high", - width = 54, - height = 84, - shift = {-0.078125, -0.15625}, - --tint = Tint, - scale = 0.5, - }, - { - filename = "__base__/graphics/entity/stone-wall/wall-ending-left-shadow.png", - priority = "extra-high", - width = 53, - height = 32, - shift = {0.328125, 0.5}, - draw_as_shadow = true - } - } - }, - { - layers = - { - { - filename = "__Natural_Evolution_Buildings__/graphics/entity/livingwall/biowall-cr-variant-2.png", - priority = "extra-high", - width = 54, - height = 84, - shift = {-0.078125, -0.15625}, - --tint = Tint, - scale = 0.5, - }, - { - filename = "__base__/graphics/entity/stone-wall/wall-ending-left-shadow.png", - priority = "extra-high", - width = 53, - height = 32, - shift = {0.328125, 0.5}, - draw_as_shadow = true - } - } - }, - { - layers = - { - { - filename = "__Natural_Evolution_Buildings__/graphics/entity/livingwall/biowall-cr-variant-3.png", - priority = "extra-high", - width = 54, - height = 84, - shift = {-0.078125, -0.15625}, - --tint = Tint, - scale = 0.5, - }, - { - filename = "__base__/graphics/entity/stone-wall/wall-ending-left-shadow.png", - priority = "extra-high", - width = 53, - height = 32, - shift = {0.328125, 0.5}, - draw_as_shadow = true - } - } - }, - { - layers = - { - { - filename = "__Natural_Evolution_Buildings__/graphics/entity/livingwall/biowall-cr-variant-4.png", - priority = "extra-high", - width = 54, - height = 84, - shift = {-0.078125, -0.15625}, - --tint = Tint, - scale = 0.5, - }, - { - filename = "__base__/graphics/entity/stone-wall/wall-ending-left-shadow.png", - priority = "extra-high", - width = 53, - height = 32, - shift = {0.328125, 0.5}, - draw_as_shadow = true - } - } - }, - { - layers = - { - { - filename = "__Natural_Evolution_Buildings__/graphics/entity/livingwall/biowall-cr-variant-5.png", - priority = "extra-high", - width = 54, - height = 84, - shift = {-0.078125, -0.15625}, - --tint = Tint, - scale = 0.5, - }, - { - filename = "__base__/graphics/entity/stone-wall/wall-ending-left-shadow.png", - priority = "extra-high", - width = 53, - height = 32, - shift = {0.328125, 0.5}, - draw_as_shadow = true - } - } - }, - { - layers = - { - { - filename = "__Natural_Evolution_Buildings__/graphics/entity/livingwall/biowall-cr-variant-6.png", - priority = "extra-high", - width = 54, - height = 84, - shift = {-0.078125, -0.15625}, - --tint = Tint, - scale = 0.5, - }, - { - filename = "__base__/graphics/entity/stone-wall/wall-straight-vertical-shadow.png", - priority = "extra-high", - width = 47, - height = 60, - shift = {0.390625, 0.625}, - draw_as_shadow = true - } - } - }, - } -end - +function WallSetup(Tint) +return + { + single = + { + layers = + { + { + filename = "__Natural_Evolution_Buildings__/graphics/entity/livingwall/biowall-single.png", + priority = "extra-high", + width = 44, + height = 84, + shift = {0, -0.15625}, + --tint = Tint, + scale = 0.5, + }, + { + filename = "__base__/graphics/entity/stone-wall/wall-single-shadow.png", + priority = "extra-high", + width = 47, + height = 32, + shift = {0.359375, 0.5}, + draw_as_shadow = true + } + } + }, + straight_vertical = + { + { + layers = + { + { + filename = "__Natural_Evolution_Buildings__/graphics/entity/livingwall/biowall-variant-1.png", + priority = "extra-high", + width = 44, + height = 84, + shift = {0, -0.15625}, + --tint = Tint, + scale = 0.5, + }, + { + filename = "__base__/graphics/entity/stone-wall/wall-straight-vertical-shadow.png", + priority = "extra-high", + width = 47, + height = 60, + shift = {0.390625, 0.625}, + draw_as_shadow = true + } + } + }, + { + layers = + { + { + filename = "__Natural_Evolution_Buildings__/graphics/entity/livingwall/biowall-variant-2.png", + priority = "extra-high", + width = 44, + height = 84, + shift = {0, -0.15625}, + --tint = Tint, + scale = 0.5, + }, + { + filename = "__base__/graphics/entity/stone-wall/wall-straight-vertical-shadow.png", + priority = "extra-high", + width = 47, + height = 60, + shift = {0.390625, 0.625}, + draw_as_shadow = true + } + } + }, + { + layers = + { + { + filename = "__Natural_Evolution_Buildings__/graphics/entity/livingwall/biowall-variant-3.png", + priority = "extra-high", + width = 44, + height = 84, + shift = {0, -0.15625}, + --tint = Tint, + scale = 0.5, + }, + { + filename = "__base__/graphics/entity/stone-wall/wall-straight-vertical-shadow.png", + priority = "extra-high", + width = 47, + height = 60, + shift = {0.390625, 0.625}, + draw_as_shadow = true + } + } + }, + { + layers = + { + { + filename = "__Natural_Evolution_Buildings__/graphics/entity/livingwall/biowall-variant-4.png", + priority = "extra-high", + width = 44, + height = 84, + shift = {0, -0.15625}, + --tint = Tint, + scale = 0.5, + }, + { + filename = "__base__/graphics/entity/stone-wall/wall-straight-vertical-shadow.png", + priority = "extra-high", + width = 47, + height = 60, + shift = {0.390625, 0.625}, + draw_as_shadow = true + } + } + }, + { + layers = + { + { + filename = "__Natural_Evolution_Buildings__/graphics/entity/livingwall/biowall-variant-5.png", + priority = "extra-high", + width = 44, + height = 84, + shift = {0, -0.15625}, + --tint = Tint, + scale = 0.5, + }, + { + filename = "__base__/graphics/entity/stone-wall/wall-straight-vertical-shadow.png", + priority = "extra-high", + width = 47, + height = 60, + shift = {0.390625, 0.625}, + draw_as_shadow = true + } + } + }, + { + layers = + { + { + filename = "__Natural_Evolution_Buildings__/graphics/entity/livingwall/biowall-variant-6.png", + priority = "extra-high", + width = 44, + height = 84, + shift = {0, -0.15625}, + --tint = Tint, + scale = 0.5, + }, + { + filename = "__base__/graphics/entity/stone-wall/wall-straight-vertical-shadow.png", + priority = "extra-high", + width = 47, + height = 60, + shift = {0.390625, 0.625}, + draw_as_shadow = true + } + } + }, + }, + straight_horizontal = + { + { + layers = + { + { + filename = "__Natural_Evolution_Buildings__/graphics/entity/livingwall/biowall-h-variant-1.png", + priority = "extra-high", + width = 64, + height = 84, + shift = {0, -0.15625}, + --tint = Tint, + scale = 0.5, + }, + { + filename = "__base__/graphics/entity/stone-wall/wall-straight-horizontal-shadow.png", + priority = "extra-high", + width = 59, + height = 32, + shift = {0.421875, 0.5}, + draw_as_shadow = true + } + } + }, + { + layers = + { + { + filename = "__Natural_Evolution_Buildings__/graphics/entity/livingwall/biowall-h-variant-2.png", + priority = "extra-high", + width = 64, + height = 84, + shift = {0, -0.15625}, + --tint = Tint, + scale = 0.5, + }, + { + filename = "__base__/graphics/entity/stone-wall/wall-straight-horizontal-shadow.png", + priority = "extra-high", + width = 59, + height = 32, + shift = {0.421875, 0.5}, + draw_as_shadow = true + } + } + }, + { + layers = + { + { + filename = "__Natural_Evolution_Buildings__/graphics/entity/livingwall/biowall-h-variant-3.png", + priority = "extra-high", + width = 64, + height = 84, + shift = {0, -0.15625}, + --tint = Tint, + scale = 0.5, + }, + { + filename = "__base__/graphics/entity/stone-wall/wall-straight-horizontal-shadow.png", + priority = "extra-high", + width = 59, + height = 32, + shift = {0.421875, 0.5}, + draw_as_shadow = true + } + } + }, + { + layers = + { + { + filename = "__Natural_Evolution_Buildings__/graphics/entity/livingwall/biowall-h-variant-4.png", + priority = "extra-high", + width = 64, + height = 84, + shift = {0, -0.15625}, + --tint = Tint, + scale = 0.5, + }, + { + filename = "__base__/graphics/entity/stone-wall/wall-straight-horizontal-shadow.png", + priority = "extra-high", + width = 59, + height = 32, + shift = {0.421875, 0.5}, + draw_as_shadow = true + } + } + }, + { + layers = + { + { + filename = "__Natural_Evolution_Buildings__/graphics/entity/livingwall/biowall-h-variant-5.png", + priority = "extra-high", + width = 64, + height = 84, + shift = {0, -0.15625}, + --tint = Tint, + scale = 0.5, + }, + { + filename = "__base__/graphics/entity/stone-wall/wall-straight-horizontal-shadow.png", + priority = "extra-high", + width = 59, + height = 32, + shift = {0.421875, 0.5}, + draw_as_shadow = true + } + } + }, + { + layers = + { + { + filename = "__Natural_Evolution_Buildings__/graphics/entity/livingwall/biowall-h-variant-6.png", + priority = "extra-high", + width = 64, + height = 84, + shift = {0, -0.15625}, + --tint = Tint, + scale = 0.5, + }, + { + filename = "__base__/graphics/entity/stone-wall/wall-straight-horizontal-shadow.png", + priority = "extra-high", + width = 59, + height = 32, + shift = {0.421875, 0.5}, + draw_as_shadow = true + } + } + }, + }, + corner_right_down = + { + layers = + { + { + filename = "__Natural_Evolution_Buildings__/graphics/entity/livingwall/biowall-cr-variant-1.png", + priority = "extra-high", + width = 54, + height = 84, + shift = {0.078125, -0.15625}, + --tint = Tint, + scale = 0.5, + }, + { + filename = "__base__/graphics/entity/stone-wall/wall-corner-right-down-shadow.png", + priority = "extra-high", + width = 53, + height = 61, + shift = {0.484375, 0.640625}, + draw_as_shadow = true + } + } + }, + { + layers = + { + { + filename = "__Natural_Evolution_Buildings__/graphics/entity/livingwall/biowall-cr-variant-2.png", + priority = "extra-high", + width = 54, + height = 84, + shift = {0.078125, -0.15625}, + --tint = Tint, + scale = 0.5, + }, + { + filename = "__base__/graphics/entity/stone-wall/wall-corner-right-down-shadow.png", + priority = "extra-high", + width = 53, + height = 61, + shift = {0.484375, 0.640625}, + draw_as_shadow = true + } + } + }, + { + layers = + { + { + filename = "__Natural_Evolution_Buildings__/graphics/entity/livingwall/biowall-cr-variant-3.png", + priority = "extra-high", + width = 54, + height = 84, + shift = {0.078125, -0.15625}, + --tint = Tint, + scale = 0.5, + }, + { + filename = "__base__/graphics/entity/stone-wall/wall-corner-right-down-shadow.png", + priority = "extra-high", + width = 53, + height = 61, + shift = {0.484375, 0.640625}, + draw_as_shadow = true + } + } + }, + { + layers = + { + { + filename = "__Natural_Evolution_Buildings__/graphics/entity/livingwall/biowall-cr-variant-4.png", + priority = "extra-high", + width = 54, + height = 84, + shift = {0.078125, -0.15625}, + --tint = Tint, + scale = 0.5, + }, + { + filename = "__base__/graphics/entity/stone-wall/wall-corner-right-down-shadow.png", + priority = "extra-high", + width = 53, + height = 61, + shift = {0.484375, 0.640625}, + draw_as_shadow = true + } + } + }, + { + layers = + { + { + filename = "__Natural_Evolution_Buildings__/graphics/entity/livingwall/biowall-cr-variant-5.png", + priority = "extra-high", + width = 54, + height = 84, + shift = {0.078125, -0.15625}, + --tint = Tint, + scale = 0.5, + }, + { + filename = "__base__/graphics/entity/stone-wall/wall-corner-right-down-shadow.png", + priority = "extra-high", + width = 53, + height = 61, + shift = {0.484375, 0.640625}, + draw_as_shadow = true + } + } + }, + { + layers = + { + { + filename = "__Natural_Evolution_Buildings__/graphics/entity/livingwall/biowall-cr-variant-6.png", + priority = "extra-high", + width = 54, + height = 84, + shift = {0.078125, -0.15625}, + --tint = Tint, + scale = 0.5, + }, + { + filename = "__base__/graphics/entity/stone-wall/wall-corner-right-down-shadow.png", + priority = "extra-high", + width = 53, + height = 61, + shift = {0.484375, 0.640625}, + draw_as_shadow = true + } + } + }, + corner_left_down = + { + layers = + { + { + filename = "__Natural_Evolution_Buildings__/graphics/entity/livingwall/biowall-cr-variant-1.png", + priority = "extra-high", + width = 54, + height = 84, + shift = {-0.078125, -0.15625}, + --tint = Tint, + scale = 0.5, + }, + { + filename = "__base__/graphics/entity/stone-wall/wall-corner-left-down-shadow.png", + priority = "extra-high", + width = 53, + height = 60, + shift = {0.328125, 0.640625}, + draw_as_shadow = true + } + } + }, + { + layers = + { + { + filename = "__Natural_Evolution_Buildings__/graphics/entity/livingwall/biowall-cr-variant-2.png", + priority = "extra-high", + width = 54, + height = 84, + shift = {-0.078125, -0.15625}, + --tint = Tint, + scale = 0.5, + }, + { + filename = "__base__/graphics/entity/stone-wall/wall-corner-left-down-shadow.png", + priority = "extra-high", + width = 53, + height = 60, + shift = {0.328125, 0.640625}, + draw_as_shadow = true + } + } + }, + { + layers = + { + { + filename = "__Natural_Evolution_Buildings__/graphics/entity/livingwall/biowall-cr-variant-3.png", + priority = "extra-high", + width = 54, + height = 84, + shift = {-0.078125, -0.15625}, + --tint = Tint, + scale = 0.5, + }, + { + filename = "__base__/graphics/entity/stone-wall/wall-corner-left-down-shadow.png", + priority = "extra-high", + width = 53, + height = 60, + shift = {0.328125, 0.640625}, + draw_as_shadow = true + } + } + }, + { + layers = + { + { + filename = "__Natural_Evolution_Buildings__/graphics/entity/livingwall/biowall-cr-variant-4.png", + priority = "extra-high", + width = 54, + height = 84, + shift = {-0.078125, -0.15625}, + --tint = Tint, + scale = 0.5, + }, + { + filename = "__base__/graphics/entity/stone-wall/wall-corner-left-down-shadow.png", + priority = "extra-high", + width = 53, + height = 60, + shift = {0.328125, 0.640625}, + draw_as_shadow = true + } + } + }, + { + layers = + { + { + filename = "__Natural_Evolution_Buildings__/graphics/entity/livingwall/biowall-cr-variant-5.png", + priority = "extra-high", + width = 54, + height = 84, + shift = {-0.078125, -0.15625}, + --tint = Tint, + scale = 0.5, + }, + { + filename = "__base__/graphics/entity/stone-wall/wall-corner-left-down-shadow.png", + priority = "extra-high", + width = 53, + height = 60, + shift = {0.328125, 0.640625}, + draw_as_shadow = true + } + } + }, + { + layers = + { + { + filename = "__Natural_Evolution_Buildings__/graphics/entity/livingwall/biowall-cr-variant-6.png", + priority = "extra-high", + width = 54, + height = 84, + shift = {-0.078125, -0.15625}, + --tint = Tint, + scale = 0.5, + }, + { + filename = "__base__/graphics/entity/stone-wall/wall-corner-left-down-shadow.png", + priority = "extra-high", + width = 53, + height = 60, + shift = {0.328125, 0.640625}, + draw_as_shadow = true + } + } + }, + t_up = + { + layers = + { + { + filename = "__Natural_Evolution_Buildings__/graphics/entity/livingwall/biowall-h-variant-1.png", + priority = "extra-high", + width = 64, + height = 84, + shift = {0, -0.15625}, + --tint = Tint, + scale = 0.5, + }, + { + filename = "__base__/graphics/entity/stone-wall/wall-t-down-shadow.png", + priority = "extra-high", + width = 71, + height = 61, + shift = {0.546875, 0.640625}, + draw_as_shadow = true + } + } + }, + { + layers = + { + { + filename = "__Natural_Evolution_Buildings__/graphics/entity/livingwall/biowall-h-variant-2.png", + priority = "extra-high", + width = 64, + height = 84, + shift = {0, -0.15625}, + --tint = Tint, + scale = 0.5, + }, + { + filename = "__base__/graphics/entity/stone-wall/wall-t-down-shadow.png", + priority = "extra-high", + width = 71, + height = 61, + shift = {0.546875, 0.640625}, + draw_as_shadow = true + } + } + }, + { + layers = + { + { + filename = "__Natural_Evolution_Buildings__/graphics/entity/livingwall/biowall-h-variant-3.png", + priority = "extra-high", + width = 64, + height = 84, + shift = {0, -0.15625}, + --tint = Tint, + scale = 0.5, + }, + { + filename = "__base__/graphics/entity/stone-wall/wall-t-down-shadow.png", + priority = "extra-high", + width = 71, + height = 61, + shift = {0.546875, 0.640625}, + draw_as_shadow = true + } + } + }, + { + layers = + { + { + filename = "__Natural_Evolution_Buildings__/graphics/entity/livingwall/biowall-h-variant-4.png", + priority = "extra-high", + width = 64, + height = 84, + shift = {0, -0.15625}, + --tint = Tint, + scale = 0.5, + }, + { + filename = "__base__/graphics/entity/stone-wall/wall-t-down-shadow.png", + priority = "extra-high", + width = 71, + height = 61, + shift = {0.546875, 0.640625}, + draw_as_shadow = true + } + } + }, + { + layers = + { + { + filename = "__Natural_Evolution_Buildings__/graphics/entity/livingwall/biowall-h-variant-5.png", + priority = "extra-high", + width = 64, + height = 84, + shift = {0, -0.15625}, + --tint = Tint, + scale = 0.5, + }, + { + filename = "__base__/graphics/entity/stone-wall/wall-t-down-shadow.png", + priority = "extra-high", + width = 71, + height = 61, + shift = {0.546875, 0.640625}, + draw_as_shadow = true + } + } + }, + { + layers = + { + { + filename = "__Natural_Evolution_Buildings__/graphics/entity/livingwall/biowall-h-variant-6.png", + priority = "extra-high", + width = 64, + height = 84, + shift = {0, -0.15625}, + --tint = Tint, + scale = 0.5, + }, + { + filename = "__base__/graphics/entity/stone-wall/wall-straight-vertical-shadow.png", + priority = "extra-high", + width = 47, + height = 60, + shift = {0.390625, 0.625}, + draw_as_shadow = true + } + } + }, + ending_right = + { + layers = + { + { + filename = "__Natural_Evolution_Buildings__/graphics/entity/livingwall/biowall-cr-variant-1.png", + priority = "extra-high", + width = 54, + height = 84, + shift = {0.078125, -0.15625}, + --tint = Tint, + scale = 0.5, + }, + { + filename = "__base__/graphics/entity/stone-wall/wall-ending-right-shadow.png", + priority = "extra-high", + width = 53, + height = 32, + shift = {0.484375, 0.5}, + draw_as_shadow = true + } + } + }, + { + layers = + { + { + filename = "__Natural_Evolution_Buildings__/graphics/entity/livingwall/biowall-cr-variant-2.png", + priority = "extra-high", + width = 54, + height = 84, + shift = {0.078125, -0.15625}, + --tint = Tint, + scale = 0.5, + }, + { + filename = "__base__/graphics/entity/stone-wall/wall-ending-right-shadow.png", + priority = "extra-high", + width = 53, + height = 32, + shift = {0.484375, 0.5}, + draw_as_shadow = true + } + } + }, + { + layers = + { + { + filename = "__Natural_Evolution_Buildings__/graphics/entity/livingwall/biowall-cr-variant-3.png", + priority = "extra-high", + width = 54, + height = 84, + shift = {0.078125, -0.15625}, + --tint = Tint, + scale = 0.5, + }, + { + filename = "__base__/graphics/entity/stone-wall/wall-ending-right-shadow.png", + priority = "extra-high", + width = 53, + height = 32, + shift = {0.484375, 0.5}, + draw_as_shadow = true + } + } + }, + { + layers = + { + { + filename = "__Natural_Evolution_Buildings__/graphics/entity/livingwall/biowall-cr-variant-4.png", + priority = "extra-high", + width = 54, + height = 84, + shift = {0.078125, -0.15625}, + --tint = Tint, + scale = 0.5, + }, + { + filename = "__base__/graphics/entity/stone-wall/wall-ending-right-shadow.png", + priority = "extra-high", + width = 53, + height = 32, + shift = {0.484375, 0.5}, + draw_as_shadow = true + } + } + }, + { + layers = + { + { + filename = "__Natural_Evolution_Buildings__/graphics/entity/livingwall/biowall-cr-variant-5.png", + priority = "extra-high", + width = 54, + height = 84, + shift = {0.078125, -0.15625}, + --tint = Tint, + scale = 0.5, + }, + { + filename = "__base__/graphics/entity/stone-wall/wall-ending-right-shadow.png", + priority = "extra-high", + width = 53, + height = 32, + shift = {0.484375, 0.5}, + draw_as_shadow = true + } + } + }, + { + layers = + { + { + filename = "__Natural_Evolution_Buildings__/graphics/entity/livingwall/biowall-cr-variant-6.png", + priority = "extra-high", + width = 54, + height = 84, + shift = {0.078125, -0.15625}, + --tint = Tint, + scale = 0.5, + }, + { + filename = "__base__/graphics/entity/stone-wall/wall-straight-vertical-shadow.png", + priority = "extra-high", + width = 47, + height = 60, + shift = {0.390625, 0.625}, + draw_as_shadow = true + } + } + }, + ending_left = + { + layers = + { + { + filename = "__Natural_Evolution_Buildings__/graphics/entity/livingwall/biowall-cr-variant-1.png", + priority = "extra-high", + width = 54, + height = 84, + shift = {-0.078125, -0.15625}, + --tint = Tint, + scale = 0.5, + }, + { + filename = "__base__/graphics/entity/stone-wall/wall-ending-left-shadow.png", + priority = "extra-high", + width = 53, + height = 32, + shift = {0.328125, 0.5}, + draw_as_shadow = true + } + } + }, + { + layers = + { + { + filename = "__Natural_Evolution_Buildings__/graphics/entity/livingwall/biowall-cr-variant-2.png", + priority = "extra-high", + width = 54, + height = 84, + shift = {-0.078125, -0.15625}, + --tint = Tint, + scale = 0.5, + }, + { + filename = "__base__/graphics/entity/stone-wall/wall-ending-left-shadow.png", + priority = "extra-high", + width = 53, + height = 32, + shift = {0.328125, 0.5}, + draw_as_shadow = true + } + } + }, + { + layers = + { + { + filename = "__Natural_Evolution_Buildings__/graphics/entity/livingwall/biowall-cr-variant-3.png", + priority = "extra-high", + width = 54, + height = 84, + shift = {-0.078125, -0.15625}, + --tint = Tint, + scale = 0.5, + }, + { + filename = "__base__/graphics/entity/stone-wall/wall-ending-left-shadow.png", + priority = "extra-high", + width = 53, + height = 32, + shift = {0.328125, 0.5}, + draw_as_shadow = true + } + } + }, + { + layers = + { + { + filename = "__Natural_Evolution_Buildings__/graphics/entity/livingwall/biowall-cr-variant-4.png", + priority = "extra-high", + width = 54, + height = 84, + shift = {-0.078125, -0.15625}, + --tint = Tint, + scale = 0.5, + }, + { + filename = "__base__/graphics/entity/stone-wall/wall-ending-left-shadow.png", + priority = "extra-high", + width = 53, + height = 32, + shift = {0.328125, 0.5}, + draw_as_shadow = true + } + } + }, + { + layers = + { + { + filename = "__Natural_Evolution_Buildings__/graphics/entity/livingwall/biowall-cr-variant-5.png", + priority = "extra-high", + width = 54, + height = 84, + shift = {-0.078125, -0.15625}, + --tint = Tint, + scale = 0.5, + }, + { + filename = "__base__/graphics/entity/stone-wall/wall-ending-left-shadow.png", + priority = "extra-high", + width = 53, + height = 32, + shift = {0.328125, 0.5}, + draw_as_shadow = true + } + } + }, + { + layers = + { + { + filename = "__Natural_Evolution_Buildings__/graphics/entity/livingwall/biowall-cr-variant-6.png", + priority = "extra-high", + width = 54, + height = 84, + shift = {-0.078125, -0.15625}, + --tint = Tint, + scale = 0.5, + }, + { + filename = "__base__/graphics/entity/stone-wall/wall-straight-vertical-shadow.png", + priority = "extra-high", + width = 47, + height = 60, + shift = {0.390625, 0.625}, + draw_as_shadow = true + } + } + }, + } +end + diff --git a/Natural_Evolution_Buildings_6.3.0/prototypes/Alien_Hatchery/worms.lua b/Natural_Evolution_Buildings_6.3.1/prototypes/Alien_Hatchery/worms.lua similarity index 96% rename from Natural_Evolution_Buildings_6.3.0/prototypes/Alien_Hatchery/worms.lua rename to Natural_Evolution_Buildings_6.3.1/prototypes/Alien_Hatchery/worms.lua index 138c8f5..f5ddacd 100644 --- a/Natural_Evolution_Buildings_6.3.0/prototypes/Alien_Hatchery/worms.lua +++ b/Natural_Evolution_Buildings_6.3.1/prototypes/Alien_Hatchery/worms.lua @@ -1,383 +1,383 @@ --- create worm attack variants with spash damage - --- http://stackoverflow.com/questions/640642/how-do-you-copy-a-lua-table-by-value -local function deepcopy(o, seen) - seen = seen or {} - if o == nil then return nil end - if seen[o] then return seen[o] end - - local no - if type(o) == 'table' then - no = {} - seen[o] = no - - for k, v in next, o, nil do - no[deepcopy(k, seen)] = deepcopy(v, seen) - end - setmetatable(no, deepcopy(getmetatable(o), seen)) - else -- number, string, boolean, etc - no = o - end - return no -end - -local SpashDmg = -{ - type = "nested-result", - action = - { - type = "area", - perimeter = 2.5, - force = "enemy", - action_delivery = - { - type = "instant", - target_effects = - { - { - type = "damage", - damage = { amount = 10 , type = "acid"} - }, - { - type = "damage", - damage = { amount = 10 , type = "explosion"} - } - } - } - } -} - ---[[ -local AcidProjectileSmallSpash = deepcopy(data.raw["projectile"]["acid-projectile-purple"]) -AcidProjectileSmallSpash.name = "acid-projectile-purple-smallSplash" -local SmallSplash = deepcopy(SpashDmg) -SmallSplash.action.perimeter = 2 -table.insert(AcidProjectileSmallSpash.action.action_delivery.target_effects, SmallSplash) -data:extend{AcidProjectileSmallSpash} ---]] - -local AcidProjectileMediumSpash = deepcopy(data.raw["projectile"]["acid-projectile-purple"]) -AcidProjectileMediumSpash.name = "acid-projectile-purple-mediumSplash" -local MediumSpash = deepcopy(SpashDmg) -MediumSpash.action.perimeter = 3 -table.insert(AcidProjectileMediumSpash.action.action_delivery.target_effects, MediumSpash) -data:extend{AcidProjectileMediumSpash} - -local AcidProjectileBigSpash = deepcopy(data.raw["projectile"]["acid-projectile-purple"]) -AcidProjectileBigSpash.name = "acid-projectile-purple-bigSplash" -local BigSplash = deepcopy(SpashDmg) -BigSplash.action.perimeter = 3.5 -table.insert(AcidProjectileBigSpash.action.action_delivery.target_effects, BigSplash) -data:extend{AcidProjectileBigSpash} - - -data:extend( -{ - - { - type = "item", - name = "small-worm-hatching-exhausted", - icon = "__base__/graphics/icons/small-worm-corpse.png", - flags = {"goes-to-quickbar"}, - subgroup = "worms", - order = "a[small-worm]", - stack_size = 50 - }, - - { - type = "item", - name = "small-worm-hatching", - icon = "__base__/graphics/icons/small-worm.png", - flags = {"goes-to-quickbar"}, - subgroup = "worms", - order = "a[small-worm]", - place_result = "small-worm-turret-player", - stack_size = 50 - }, - - { - type = "item", - name = "medium-worm-hatching-exhausted", - icon = "__base__/graphics/icons/medium-worm-corpse.png", - flags = {"goes-to-quickbar"}, - subgroup = "worms", - order = "a[medium-worm]", - stack_size = 50 - }, - - { - type = "item", - name = "medium-worm-hatching", - icon = "__base__/graphics/icons/medium-worm.png", - flags = {"goes-to-quickbar"}, - subgroup = "worms", - order = "b[medium-worm]", - place_result = "medium-worm-turret-player", - stack_size = 50 - }, - - { - type = "item", - name = "big-worm-hatching-exhausted", - icon = "__base__/graphics/icons/big-worm-corpse.png", - flags = {"goes-to-quickbar"}, - subgroup = "worms", - order = "a[big-worm]", - stack_size = 50 - }, - - { - type = "item", - name = "big-worm-hatching", - icon = "__base__/graphics/icons/big-worm.png", - flags = {"goes-to-quickbar"}, - subgroup = "worms", - order = "c[big-worm]", - place_result = "big-worm-turret-player", - stack_size = 50 - }, - -}) - ------ Worm Entities -data:extend( -{ - { - type = "turret", - name = "small-worm-turret-player", - icon = "__base__/graphics/icons/small-worm.png", - flags = {"placeable-neutral","placeable-player", "not-repairable", "player-creation", "breaths-air"}, - minable = {hardness = 1, mining_time = 1, result = "small-worm-hatching-exhausted"}, - order="b-b-d", - max_health = 400, - resistances = - { - { - type = "physical", - decrease = 3, - percent = 20 - }, - { - type = "acid", - decrease = 3, - percent = 30 - }, - { - type = "poison", - decrease = 3, - percent = 30 - }, - { - type = "explosion", - decrease = 2, - percent = 20 - } - }, - healing_per_tick = 0.0222, - collision_box = {{-0.6, -0.5 }, {0.6, 0.5}}, - selection_box = {{-0.9, -0.8 }, {0.9, 0.8}}, - shooting_cursor_size = 3, - corpse = "small-worm-corpse", - dying_explosion = "blood-explosion-big", - dying_sound = make_worm_dying_sounds(0.8), - folded_speed = 0.01, - folded_animation = worm_folded_animation(small_worm_scale, small_worm_tint), - prepare_range = 25, - preparing_speed = 0.025, - preparing_animation = worm_preparing_animation(small_worm_scale, small_worm_tint, "forward"), - prepared_speed = 0.015, - prepared_animation = worm_prepared_animation(small_worm_scale, small_worm_tint), - starting_attack_speed = 0.03, - starting_attack_animation = worm_attack_animation(small_worm_scale, small_worm_tint, "forward"), - starting_attack_sound = make_worm_roars(0.75), - ending_attack_speed = 0.03, - ending_attack_animation = worm_attack_animation(small_worm_scale, small_worm_tint, "backward"), - folding_speed = 0.015, - folding_animation = worm_preparing_animation(small_worm_scale, small_worm_tint, "backward"), - attack_parameters = - { - type = "projectile", - ammo_category = "bullet", - cooldown = 15, - range = 18, - projectile_creation_distance = 1.8, - ammo_type = - { - category = "biological", - action = - { - type = "direct", - action_delivery = - { - type = "projectile", - projectile = "acid-projectile-purple", - starting_speed = 0.5 - } - } - } - }, - call_for_help_radius = 40, - }, - - { - type = "turret", - name = "medium-worm-turret-player", - icon = "__base__/graphics/icons/medium-worm.png", - flags = {"placeable-neutral","placeable-player", "not-repairable", "player-creation", "breaths-air"}, - minable = {hardness = 1, mining_time = 1, result = "medium-worm-hatching-exhausted"}, - order="b-b-e", - max_health = 700, - resistances = - { - { - type = "physical", - decrease = 6, - percent = 30 - }, - { - type = "acid", - decrease = 5, - percent = 30 - }, - { - type = "poison", - decrease = 5, - percent = 30 - }, - { - type = "explosion", - decrease = 10, - percent = 20 - } - }, - healing_per_tick = 0.0389, - collision_box = {{-0.8, -0.7}, {0.8, 0.7}}, - selection_box = {{-1.1, -1.0}, {1.1, 1.0}}, - shooting_cursor_size = 3.5, - rotation_speed = 1, - corpse = "medium-worm-corpse", - dying_explosion = "blood-explosion-big", - dying_sound = make_worm_dying_sounds(0.9), - folded_speed = 0.01, - folded_animation = worm_folded_animation(medium_worm_scale, medium_worm_tint), - prepare_range = 25, - preparing_speed = 0.025, - preparing_animation = worm_preparing_animation(medium_worm_scale, medium_worm_tint, "forward"), - prepared_speed = 0.015, - prepared_animation = worm_prepared_animation(medium_worm_scale, medium_worm_tint), - starting_attack_speed = 0.03, - starting_attack_animation = worm_attack_animation(medium_worm_scale, medium_worm_tint, "forward"), - starting_attack_sound = make_worm_roars(0.8), - ending_attack_speed = 0.03, - ending_attack_animation = worm_attack_animation(medium_worm_scale, medium_worm_tint, "backward"), - folding_speed = 0.015, - folding_animation = worm_preparing_animation(medium_worm_scale, medium_worm_tint, "backward"), - prepare_range = 30, - attack_parameters = - { - type = "projectile", - ammo_category = "rocket", - cooldown = 60, - range = 22, - projectile_creation_distance = 1.9, - damage_modifier = 3, - ammo_type = - { - category = "biological", - action = - { - type = "direct", - action_delivery = - { - type = "projectile", - projectile = "acid-projectile-purple-mediumSplash", - starting_speed = 0.5 - } - } - } - }, - call_for_help_radius = 40, - }, - - { - type = "turret", - name = "big-worm-turret-player", - icon = "__base__/graphics/icons/big-worm.png", - flags = {"placeable-neutral","placeable-player", "not-repairable", "player-creation", "breaths-air"}, - minable = {hardness = 1, mining_time = 1, result = "big-worm-hatching-exhausted"}, - max_health = 1000, - order="b-b-f", - resistances = - { - { - type = "physical", - decrease = 8, - percent = 30 - }, - { - type = "acid", - decrease = 7, - percent = 30 - }, - { - type = "poison", - decrease = 7, - percent = 30 - }, - { - type = "explosion", - decrease = 15, - percent = 20 - } - }, - healing_per_tick = 0.0556, - collision_box = {{-1.1, -0.9}, {1.1, 0.9}}, - selection_box = {{-1.4, -1.2}, {1.4, 1.2}}, - shooting_cursor_size = 4, - rotation_speed = 1, - corpse = "big-worm-corpse", - dying_explosion = "blood-explosion-big", - dying_sound = make_worm_dying_sounds(1.0), - inventory_size = 2, - folded_speed = 0.01, - folded_animation = worm_folded_animation(big_worm_scale, big_worm_tint), - prepare_range = 25, - preparing_speed = 0.025, - preparing_animation = worm_preparing_animation(big_worm_scale, big_worm_tint, "forward"), - prepared_speed = 0.015, - prepared_animation = worm_prepared_animation(big_worm_scale, big_worm_tint), - starting_attack_speed = 0.03, - starting_attack_animation = worm_attack_animation(big_worm_scale, big_worm_tint, "forward"), - starting_attack_sound = make_worm_roars(0.95), - ending_attack_speed = 0.03, - ending_attack_animation = worm_attack_animation(big_worm_scale, big_worm_tint, "backward"), - folding_speed = 0.015, - folding_animation = worm_preparing_animation(big_worm_scale, big_worm_tint, "backward"), - prepare_range = 30, - attack_parameters = - { - type = "projectile", - ammo_category = "rocket", - cooldown = 90, - range = 28, - projectile_creation_distance = 2.1, - damage_modifier = 6, - ammo_type = - { - category = "biological", - action = - { - type = "direct", - action_delivery = - { - type = "projectile", - projectile = "acid-projectile-purple-bigSplash", - starting_speed = 0.5 - } - } - } - }, - call_for_help_radius = 40, - }, -} -) +-- create worm attack variants with spash damage + +-- http://stackoverflow.com/questions/640642/how-do-you-copy-a-lua-table-by-value +local function deepcopy(o, seen) + seen = seen or {} + if o == nil then return nil end + if seen[o] then return seen[o] end + + local no + if type(o) == 'table' then + no = {} + seen[o] = no + + for k, v in next, o, nil do + no[deepcopy(k, seen)] = deepcopy(v, seen) + end + setmetatable(no, deepcopy(getmetatable(o), seen)) + else -- number, string, boolean, etc + no = o + end + return no +end + +local SpashDmg = +{ + type = "nested-result", + action = + { + type = "area", + perimeter = 2.5, + force = "enemy", + action_delivery = + { + type = "instant", + target_effects = + { + { + type = "damage", + damage = { amount = 10 , type = "acid"} + }, + { + type = "damage", + damage = { amount = 10 , type = "explosion"} + } + } + } + } +} + +--[[ +local AcidProjectileSmallSpash = deepcopy(data.raw["projectile"]["acid-projectile-purple"]) +AcidProjectileSmallSpash.name = "acid-projectile-purple-smallSplash" +local SmallSplash = deepcopy(SpashDmg) +SmallSplash.action.perimeter = 2 +table.insert(AcidProjectileSmallSpash.action.action_delivery.target_effects, SmallSplash) +data:extend{AcidProjectileSmallSpash} +--]] + +local AcidProjectileMediumSpash = deepcopy(data.raw["projectile"]["acid-projectile-purple"]) +AcidProjectileMediumSpash.name = "acid-projectile-purple-mediumSplash" +local MediumSpash = deepcopy(SpashDmg) +MediumSpash.action.perimeter = 3 +table.insert(AcidProjectileMediumSpash.action.action_delivery.target_effects, MediumSpash) +data:extend{AcidProjectileMediumSpash} + +local AcidProjectileBigSpash = deepcopy(data.raw["projectile"]["acid-projectile-purple"]) +AcidProjectileBigSpash.name = "acid-projectile-purple-bigSplash" +local BigSplash = deepcopy(SpashDmg) +BigSplash.action.perimeter = 3.5 +table.insert(AcidProjectileBigSpash.action.action_delivery.target_effects, BigSplash) +data:extend{AcidProjectileBigSpash} + + +data:extend( +{ + + { + type = "item", + name = "small-worm-hatching-exhausted", + icon = "__base__/graphics/icons/small-worm-corpse.png", + flags = {"goes-to-quickbar"}, + subgroup = "worms", + order = "a[small-worm]", + stack_size = 50 + }, + + { + type = "item", + name = "small-worm-hatching", + icon = "__base__/graphics/icons/small-worm.png", + flags = {"goes-to-quickbar"}, + subgroup = "worms", + order = "a[small-worm]", + place_result = "small-worm-turret-player", + stack_size = 50 + }, + + { + type = "item", + name = "medium-worm-hatching-exhausted", + icon = "__base__/graphics/icons/medium-worm-corpse.png", + flags = {"goes-to-quickbar"}, + subgroup = "worms", + order = "a[medium-worm]", + stack_size = 50 + }, + + { + type = "item", + name = "medium-worm-hatching", + icon = "__base__/graphics/icons/medium-worm.png", + flags = {"goes-to-quickbar"}, + subgroup = "worms", + order = "b[medium-worm]", + place_result = "medium-worm-turret-player", + stack_size = 50 + }, + + { + type = "item", + name = "big-worm-hatching-exhausted", + icon = "__base__/graphics/icons/big-worm-corpse.png", + flags = {"goes-to-quickbar"}, + subgroup = "worms", + order = "a[big-worm]", + stack_size = 50 + }, + + { + type = "item", + name = "big-worm-hatching", + icon = "__base__/graphics/icons/big-worm.png", + flags = {"goes-to-quickbar"}, + subgroup = "worms", + order = "c[big-worm]", + place_result = "big-worm-turret-player", + stack_size = 50 + }, + +}) + +----- Worm Entities +data:extend( +{ + { + type = "turret", + name = "small-worm-turret-player", + icon = "__base__/graphics/icons/small-worm.png", + flags = {"placeable-neutral","placeable-player", "not-repairable", "player-creation", "breaths-air"}, + minable = {hardness = 1, mining_time = 1, result = "small-worm-hatching-exhausted"}, + order="b-b-d", + max_health = 400, + resistances = + { + { + type = "physical", + decrease = 3, + percent = 20 + }, + { + type = "acid", + decrease = 3, + percent = 30 + }, + { + type = "poison", + decrease = 3, + percent = 30 + }, + { + type = "explosion", + decrease = 2, + percent = 20 + } + }, + healing_per_tick = 0.0222, + collision_box = {{-0.6, -0.5 }, {0.6, 0.5}}, + selection_box = {{-0.9, -0.8 }, {0.9, 0.8}}, + shooting_cursor_size = 3, + corpse = "small-worm-corpse", + dying_explosion = "blood-explosion-big", + dying_sound = make_worm_dying_sounds(0.8), + folded_speed = 0.01, + folded_animation = worm_folded_animation(small_worm_scale, small_worm_tint), + prepare_range = 25, + preparing_speed = 0.025, + preparing_animation = worm_preparing_animation(small_worm_scale, small_worm_tint, "forward"), + prepared_speed = 0.015, + prepared_animation = worm_prepared_animation(small_worm_scale, small_worm_tint), + starting_attack_speed = 0.03, + starting_attack_animation = worm_attack_animation(small_worm_scale, small_worm_tint, "forward"), + starting_attack_sound = make_worm_roars(0.75), + ending_attack_speed = 0.03, + ending_attack_animation = worm_attack_animation(small_worm_scale, small_worm_tint, "backward"), + folding_speed = 0.015, + folding_animation = worm_preparing_animation(small_worm_scale, small_worm_tint, "backward"), + attack_parameters = + { + type = "projectile", + ammo_category = "bullet", + cooldown = 15, + range = 18, + projectile_creation_distance = 1.8, + ammo_type = + { + category = "biological", + action = + { + type = "direct", + action_delivery = + { + type = "projectile", + projectile = "acid-projectile-purple", + starting_speed = 0.5 + } + } + } + }, + call_for_help_radius = 40, + }, + + { + type = "turret", + name = "medium-worm-turret-player", + icon = "__base__/graphics/icons/medium-worm.png", + flags = {"placeable-neutral","placeable-player", "not-repairable", "player-creation", "breaths-air"}, + minable = {hardness = 1, mining_time = 1, result = "medium-worm-hatching-exhausted"}, + order="b-b-e", + max_health = 700, + resistances = + { + { + type = "physical", + decrease = 6, + percent = 30 + }, + { + type = "acid", + decrease = 5, + percent = 30 + }, + { + type = "poison", + decrease = 5, + percent = 30 + }, + { + type = "explosion", + decrease = 10, + percent = 20 + } + }, + healing_per_tick = 0.0389, + collision_box = {{-0.8, -0.7}, {0.8, 0.7}}, + selection_box = {{-1.1, -1.0}, {1.1, 1.0}}, + shooting_cursor_size = 3.5, + rotation_speed = 1, + corpse = "medium-worm-corpse", + dying_explosion = "blood-explosion-big", + dying_sound = make_worm_dying_sounds(0.9), + folded_speed = 0.01, + folded_animation = worm_folded_animation(medium_worm_scale, medium_worm_tint), + prepare_range = 25, + preparing_speed = 0.025, + preparing_animation = worm_preparing_animation(medium_worm_scale, medium_worm_tint, "forward"), + prepared_speed = 0.015, + prepared_animation = worm_prepared_animation(medium_worm_scale, medium_worm_tint), + starting_attack_speed = 0.03, + starting_attack_animation = worm_attack_animation(medium_worm_scale, medium_worm_tint, "forward"), + starting_attack_sound = make_worm_roars(0.8), + ending_attack_speed = 0.03, + ending_attack_animation = worm_attack_animation(medium_worm_scale, medium_worm_tint, "backward"), + folding_speed = 0.015, + folding_animation = worm_preparing_animation(medium_worm_scale, medium_worm_tint, "backward"), + prepare_range = 30, + attack_parameters = + { + type = "projectile", + ammo_category = "rocket", + cooldown = 60, + range = 22, + projectile_creation_distance = 1.9, + damage_modifier = 3, + ammo_type = + { + category = "biological", + action = + { + type = "direct", + action_delivery = + { + type = "projectile", + projectile = "acid-projectile-purple-mediumSplash", + starting_speed = 0.5 + } + } + } + }, + call_for_help_radius = 40, + }, + + { + type = "turret", + name = "big-worm-turret-player", + icon = "__base__/graphics/icons/big-worm.png", + flags = {"placeable-neutral","placeable-player", "not-repairable", "player-creation", "breaths-air"}, + minable = {hardness = 1, mining_time = 1, result = "big-worm-hatching-exhausted"}, + max_health = 1000, + order="b-b-f", + resistances = + { + { + type = "physical", + decrease = 8, + percent = 30 + }, + { + type = "acid", + decrease = 7, + percent = 30 + }, + { + type = "poison", + decrease = 7, + percent = 30 + }, + { + type = "explosion", + decrease = 15, + percent = 20 + } + }, + healing_per_tick = 0.0556, + collision_box = {{-1.1, -0.9}, {1.1, 0.9}}, + selection_box = {{-1.4, -1.2}, {1.4, 1.2}}, + shooting_cursor_size = 4, + rotation_speed = 1, + corpse = "big-worm-corpse", + dying_explosion = "blood-explosion-big", + dying_sound = make_worm_dying_sounds(1.0), + inventory_size = 2, + folded_speed = 0.01, + folded_animation = worm_folded_animation(big_worm_scale, big_worm_tint), + prepare_range = 25, + preparing_speed = 0.025, + preparing_animation = worm_preparing_animation(big_worm_scale, big_worm_tint, "forward"), + prepared_speed = 0.015, + prepared_animation = worm_prepared_animation(big_worm_scale, big_worm_tint), + starting_attack_speed = 0.03, + starting_attack_animation = worm_attack_animation(big_worm_scale, big_worm_tint, "forward"), + starting_attack_sound = make_worm_roars(0.95), + ending_attack_speed = 0.03, + ending_attack_animation = worm_attack_animation(big_worm_scale, big_worm_tint, "backward"), + folding_speed = 0.015, + folding_animation = worm_preparing_animation(big_worm_scale, big_worm_tint, "backward"), + prepare_range = 30, + attack_parameters = + { + type = "projectile", + ammo_category = "rocket", + cooldown = 90, + range = 28, + projectile_creation_distance = 2.1, + damage_modifier = 6, + ammo_type = + { + category = "biological", + action = + { + type = "direct", + action_delivery = + { + type = "projectile", + projectile = "acid-projectile-purple-bigSplash", + starting_speed = 0.5 + } + } + } + }, + call_for_help_radius = 40, + }, +} +) diff --git a/Natural_Evolution_Buildings_6.3.0/prototypes/Categories/recipe-category.lua b/Natural_Evolution_Buildings_6.3.1/prototypes/Categories/recipe-category.lua similarity index 90% rename from Natural_Evolution_Buildings_6.3.0/prototypes/Categories/recipe-category.lua rename to Natural_Evolution_Buildings_6.3.1/prototypes/Categories/recipe-category.lua index 7c58dcd..d9b075c 100644 --- a/Natural_Evolution_Buildings_6.3.0/prototypes/Categories/recipe-category.lua +++ b/Natural_Evolution_Buildings_6.3.1/prototypes/Categories/recipe-category.lua @@ -1,9 +1,9 @@ -data:extend( -{ - { - type = "recipe-category", - name = "Hatchery" - }, - -} -) +data:extend( +{ + { + type = "recipe-category", + name = "Hatchery" + }, + +} +) diff --git a/Natural_Evolution_Buildings_6.3.0/prototypes/Combat_Inserter/entity.lua b/Natural_Evolution_Buildings_6.3.1/prototypes/Combat_Inserter/entity.lua similarity index 96% rename from Natural_Evolution_Buildings_6.3.0/prototypes/Combat_Inserter/entity.lua rename to Natural_Evolution_Buildings_6.3.1/prototypes/Combat_Inserter/entity.lua index 25a93f1..275e46f 100644 --- a/Natural_Evolution_Buildings_6.3.0/prototypes/Combat_Inserter/entity.lua +++ b/Natural_Evolution_Buildings_6.3.1/prototypes/Combat_Inserter/entity.lua @@ -1,138 +1,138 @@ ---- Combat Inserter -Combat_Inserter_tint = {r=0, g=0, b=0, a=1} - -data:extend({ - - { - type = "inserter", - name = "combat-inserter", - icon = "__Natural_Evolution_Buildings__/graphics/icons/combat_inserter.png", - flags = {"placeable-neutral", "placeable-player", "player-creation"}, - minable = - { - hardness = 0.2, - mining_time = 0.8, - result = "combat-inserter" - }, - max_health = 100, - corpse = "small-remnants", - resistances = - { - { - type = "fire", - percent = 90 - }, - { - type = "acid", - percent = 70 - }, - { - type = "poison", - percent = 70 - }, - }, - collision_box = {{-0.15, -0.15}, {0.15, 0.15}}, - selection_box = {{-0.4, -0.35}, {0.4, 0.45}}, - pickup_position = {0, -1}, - insert_position = {0, 1.2}, - energy_per_movement = 7000, - energy_per_rotation = 7000, - energy_source = - { - type = "electric", - usage_priority = "secondary-input", - drain = "1kW" - }, - extension_speed = 0.14, - rotation_speed = 0.08, - fast_replaceable_group = "inserter", - vehicle_impact_sound = { filename = "__base__/sound/car-metal-impact.ogg", volume = 0.65 }, - working_sound = - { - match_progress_to_activity = true, - sound = - { - { - filename = "__base__/sound/inserter-fast-1.ogg", - volume = 0.75 - }, - { - filename = "__base__/sound/inserter-fast-2.ogg", - volume = 0.75 - }, - { - filename = "__base__/sound/inserter-fast-3.ogg", - volume = 0.75 - }, - { - filename = "__base__/sound/inserter-fast-4.ogg", - volume = 0.75 - }, - { - filename = "__base__/sound/inserter-fast-5.ogg", - volume = 0.75 - } - } - }, - hand_base_picture = - { - filename = "__Natural_Evolution_Buildings__/graphics/entity/combat-inserter/inserter-hand-base.png", - priority = "extra-high", - width = 8, - height = 34, - --tint = Combat_Inserter_tint - }, - hand_closed_picture = - { - filename = "__Natural_Evolution_Buildings__/graphics/entity/combat-inserter/inserter-hand-closed.png", - priority = "extra-high", - width = 18, - height = 41, - --tint = Combat_Inserter_tint - }, - hand_open_picture = - { - filename = "__Natural_Evolution_Buildings__/graphics/entity/combat-inserter/inserter-hand-open.png", - priority = "extra-high", - width = 18, - height = 41, - --tint = Combat_Inserter_tint - }, - hand_base_shadow = - { - filename = "__base__/graphics/entity/burner-inserter/burner-inserter-hand-base-shadow.png", - priority = "extra-high", - width = 8, - height = 34 - }, - hand_closed_shadow = - { - filename = "__base__/graphics/entity/burner-inserter/burner-inserter-hand-closed-shadow.png", - priority = "extra-high", - width = 18, - height = 41 - }, - hand_open_shadow = - { - filename = "__base__/graphics/entity/burner-inserter/burner-inserter-hand-open-shadow.png", - priority = "extra-high", - width = 18, - height = 41 - }, - platform_picture = - { - sheet = - { - filename = "__Natural_Evolution_Buildings__/graphics/entity/combat-inserter/inserter-platform.png", - priority = "extra-high", - width = 46, - height = 46, - --tint = Combat_Inserter_tint, - shift = {0.09375, 0} - } - }, - circuit_wire_connection_point = inserter_circuit_wire_connection_point, - circuit_connector_sprites = inserter_circuit_connector_sprites, - circuit_wire_max_distance = inserter_circuit_wire_max_distance - }, +--- Combat Inserter +Combat_Inserter_tint = {r=0, g=0, b=0, a=1} + +data:extend({ + + { + type = "inserter", + name = "combat-inserter", + icon = "__Natural_Evolution_Buildings__/graphics/icons/combat_inserter.png", + flags = {"placeable-neutral", "placeable-player", "player-creation"}, + minable = + { + hardness = 0.2, + mining_time = 0.8, + result = "combat-inserter" + }, + max_health = 100, + corpse = "small-remnants", + resistances = + { + { + type = "fire", + percent = 90 + }, + { + type = "acid", + percent = 70 + }, + { + type = "poison", + percent = 70 + }, + }, + collision_box = {{-0.15, -0.15}, {0.15, 0.15}}, + selection_box = {{-0.4, -0.35}, {0.4, 0.45}}, + pickup_position = {0, -1}, + insert_position = {0, 1.2}, + energy_per_movement = 7000, + energy_per_rotation = 7000, + energy_source = + { + type = "electric", + usage_priority = "secondary-input", + drain = "1kW" + }, + extension_speed = 0.14, + rotation_speed = 0.08, + fast_replaceable_group = "inserter", + vehicle_impact_sound = { filename = "__base__/sound/car-metal-impact.ogg", volume = 0.65 }, + working_sound = + { + match_progress_to_activity = true, + sound = + { + { + filename = "__base__/sound/inserter-fast-1.ogg", + volume = 0.75 + }, + { + filename = "__base__/sound/inserter-fast-2.ogg", + volume = 0.75 + }, + { + filename = "__base__/sound/inserter-fast-3.ogg", + volume = 0.75 + }, + { + filename = "__base__/sound/inserter-fast-4.ogg", + volume = 0.75 + }, + { + filename = "__base__/sound/inserter-fast-5.ogg", + volume = 0.75 + } + } + }, + hand_base_picture = + { + filename = "__Natural_Evolution_Buildings__/graphics/entity/combat-inserter/inserter-hand-base.png", + priority = "extra-high", + width = 8, + height = 34, + --tint = Combat_Inserter_tint + }, + hand_closed_picture = + { + filename = "__Natural_Evolution_Buildings__/graphics/entity/combat-inserter/inserter-hand-closed.png", + priority = "extra-high", + width = 18, + height = 41, + --tint = Combat_Inserter_tint + }, + hand_open_picture = + { + filename = "__Natural_Evolution_Buildings__/graphics/entity/combat-inserter/inserter-hand-open.png", + priority = "extra-high", + width = 18, + height = 41, + --tint = Combat_Inserter_tint + }, + hand_base_shadow = + { + filename = "__base__/graphics/entity/burner-inserter/burner-inserter-hand-base-shadow.png", + priority = "extra-high", + width = 8, + height = 34 + }, + hand_closed_shadow = + { + filename = "__base__/graphics/entity/burner-inserter/burner-inserter-hand-closed-shadow.png", + priority = "extra-high", + width = 18, + height = 41 + }, + hand_open_shadow = + { + filename = "__base__/graphics/entity/burner-inserter/burner-inserter-hand-open-shadow.png", + priority = "extra-high", + width = 18, + height = 41 + }, + platform_picture = + { + sheet = + { + filename = "__Natural_Evolution_Buildings__/graphics/entity/combat-inserter/inserter-platform.png", + priority = "extra-high", + width = 46, + height = 46, + --tint = Combat_Inserter_tint, + shift = {0.09375, 0} + } + }, + circuit_wire_connection_point = inserter_circuit_wire_connection_point, + circuit_connector_sprites = inserter_circuit_connector_sprites, + circuit_wire_max_distance = inserter_circuit_wire_max_distance + }, }) \ No newline at end of file diff --git a/Natural_Evolution_Buildings_6.3.0/prototypes/Combat_Inserter/item.lua b/Natural_Evolution_Buildings_6.3.1/prototypes/Combat_Inserter/item.lua similarity index 97% rename from Natural_Evolution_Buildings_6.3.0/prototypes/Combat_Inserter/item.lua rename to Natural_Evolution_Buildings_6.3.1/prototypes/Combat_Inserter/item.lua index 123f0b0..c1320c5 100644 --- a/Natural_Evolution_Buildings_6.3.0/prototypes/Combat_Inserter/item.lua +++ b/Natural_Evolution_Buildings_6.3.1/prototypes/Combat_Inserter/item.lua @@ -1,9 +1,9 @@ - ---- Combat Inserter -local combatInserter = util.table.deepcopy(data.raw["item"]["fast-inserter"]) -combatInserter.name = "combat-inserter" -combatInserter.icon = "__Natural_Evolution_Buildings__/graphics/icons/combat_inserter.png" -combatInserter.place_result = "combat-inserter" -data:extend({combatInserter}) - - + +--- Combat Inserter +local combatInserter = util.table.deepcopy(data.raw["item"]["fast-inserter"]) +combatInserter.name = "combat-inserter" +combatInserter.icon = "__Natural_Evolution_Buildings__/graphics/icons/combat_inserter.png" +combatInserter.place_result = "combat-inserter" +data:extend({combatInserter}) + + diff --git a/Natural_Evolution_Buildings_6.3.0/prototypes/Combat_Inserter/recipe.lua b/Natural_Evolution_Buildings_6.3.1/prototypes/Combat_Inserter/recipe.lua similarity index 96% rename from Natural_Evolution_Buildings_6.3.0/prototypes/Combat_Inserter/recipe.lua rename to Natural_Evolution_Buildings_6.3.1/prototypes/Combat_Inserter/recipe.lua index 653e24a..5dbff9a 100644 --- a/Natural_Evolution_Buildings_6.3.0/prototypes/Combat_Inserter/recipe.lua +++ b/Natural_Evolution_Buildings_6.3.1/prototypes/Combat_Inserter/recipe.lua @@ -1,15 +1,15 @@ - ---- Combat Inserter -local NEcombatInserter = util.table.deepcopy(data.raw["recipe"]["fast-inserter"]) -NEcombatInserter.name = "ne-combat-inserter" -NEcombatInserter.category = "advanced-crafting" -NEcombatInserter.energy_required = 30 -NEcombatInserter.ingredients = -{ - {"fast-inserter", 4}, - {"steel-plate", 4}, - {type = "fluid", name = "lubricant", amount = 4} -} -NEcombatInserter.result = "combat-inserter" -data:extend({NEcombatInserter}) - + +--- Combat Inserter +local NEcombatInserter = util.table.deepcopy(data.raw["recipe"]["fast-inserter"]) +NEcombatInserter.name = "ne-combat-inserter" +NEcombatInserter.category = "advanced-crafting" +NEcombatInserter.energy_required = 30 +NEcombatInserter.ingredients = +{ + {"fast-inserter", 4}, + {"steel-plate", 4}, + {type = "fluid", name = "lubricant", amount = 4} +} +NEcombatInserter.result = "combat-inserter" +data:extend({NEcombatInserter}) + diff --git a/Natural_Evolution_Buildings_6.3.0/prototypes/Item-Groups/item-groups.lua b/Natural_Evolution_Buildings_6.3.1/prototypes/Item-Groups/item-groups.lua similarity index 94% rename from Natural_Evolution_Buildings_6.3.0/prototypes/Item-Groups/item-groups.lua rename to Natural_Evolution_Buildings_6.3.1/prototypes/Item-Groups/item-groups.lua index 164ecd2..fab5d83 100644 --- a/Natural_Evolution_Buildings_6.3.0/prototypes/Item-Groups/item-groups.lua +++ b/Natural_Evolution_Buildings_6.3.1/prototypes/Item-Groups/item-groups.lua @@ -1,68 +1,68 @@ -data:extend( -{ - - { - type = "item-group", - name = "Natural-Evolution", - icon = "__Natural_Evolution_Buildings__/graphics/icons/AlienUnderstanding.png", - inventory_order = "y", - order = "z", - }, - - { - type = "item-subgroup", - name = "biters", - group = "Natural-Evolution", - order = "a", - }, - - { - type = "item-subgroup", - name = "spitters", - group = "Natural-Evolution", - order = "b", - }, - - { - type = "item-subgroup", - name = "Spawners", - group = "Natural-Evolution", - order = "c", - }, - - { - type = "item-subgroup", - name = "worms", - group = "Natural-Evolution", - order = "d", - }, - - { - type = "item-subgroup", - name = "Tools", - group = "Natural-Evolution", - order = "e", - }, - - { - type = "item-subgroup", - name = "Evolution-fluids", - group = "Natural-Evolution", - order = "f", - }, - - { - type = "item-subgroup", - name = "Materials", - group = "Natural-Evolution", - order = "g", - }, - - { - type = "item-subgroup", - name = "Natural-Evolution", - group = "Natural-Evolution", - order = "h", - }, - +data:extend( +{ + + { + type = "item-group", + name = "Natural-Evolution", + icon = "__Natural_Evolution_Buildings__/graphics/icons/AlienUnderstanding.png", + inventory_order = "y", + order = "z", + }, + + { + type = "item-subgroup", + name = "biters", + group = "Natural-Evolution", + order = "a", + }, + + { + type = "item-subgroup", + name = "spitters", + group = "Natural-Evolution", + order = "b", + }, + + { + type = "item-subgroup", + name = "Spawners", + group = "Natural-Evolution", + order = "c", + }, + + { + type = "item-subgroup", + name = "worms", + group = "Natural-Evolution", + order = "d", + }, + + { + type = "item-subgroup", + name = "Tools", + group = "Natural-Evolution", + order = "e", + }, + + { + type = "item-subgroup", + name = "Evolution-fluids", + group = "Natural-Evolution", + order = "f", + }, + + { + type = "item-subgroup", + name = "Materials", + group = "Natural-Evolution", + order = "g", + }, + + { + type = "item-subgroup", + name = "Natural-Evolution", + group = "Natural-Evolution", + order = "h", + }, + }) \ No newline at end of file diff --git a/Natural_Evolution_Enemies_6.3.0/prototypes/Other/damage-type.lua b/Natural_Evolution_Buildings_6.3.1/prototypes/Other/damage-type.lua similarity index 92% rename from Natural_Evolution_Enemies_6.3.0/prototypes/Other/damage-type.lua rename to Natural_Evolution_Buildings_6.3.1/prototypes/Other/damage-type.lua index c3331bb..23295ac 100644 --- a/Natural_Evolution_Enemies_6.3.0/prototypes/Other/damage-type.lua +++ b/Natural_Evolution_Buildings_6.3.1/prototypes/Other/damage-type.lua @@ -1,9 +1,9 @@ -data:extend({ - ---- Bio Damage for new Ammo - { - type = "damage-type", - name = "Biological" - }, - -}) +data:extend({ + +--- Bio Damage for new Ammo + { + type = "damage-type", + name = "Biological" + }, + +}) diff --git a/Natural_Evolution_Buildings_6.3.0/prototypes/Other/item.lua b/Natural_Evolution_Buildings_6.3.1/prototypes/Other/item.lua similarity index 95% rename from Natural_Evolution_Buildings_6.3.0/prototypes/Other/item.lua rename to Natural_Evolution_Buildings_6.3.1/prototypes/Other/item.lua index e8a7212..11f2d39 100644 --- a/Natural_Evolution_Buildings_6.3.0/prototypes/Other/item.lua +++ b/Natural_Evolution_Buildings_6.3.1/prototypes/Other/item.lua @@ -1,36 +1,36 @@ -data:extend({ - - - ---- Building Materials - { - type = "item", - name = "Building_Materials", - icon = "__Natural_Evolution_Buildings__/graphics/icons/Building_Materials.png", - flags = {"goes-to-main-inventory"}, - --subgroup = "Materials", -- NE Sub Group - subgroup = "intermediate-product", - order = "a[iron-stick]-b[Building_Materials]", - stack_size = 10 - }, - - - --- Attractor - { - type = "item", - name = "attractor-on", - icon = "__Natural_Evolution_Buildings__/graphics/entity/attractor_on.png", - flags = {"goes-to-quickbar"}, - subgroup = "Tools", - order = "a[attractor-on]", - stack_size = 1 - }, - { - type = "item", - name = "attractor-off", - icon = "__Natural_Evolution_Buildings__/graphics/entity/attractor_off.png", - flags = {"goes-to-quickbar"}, - subgroup = "Tools", - order = "b[attractor-off]", - stack_size = 1 - }, -}) +data:extend({ + + + ---- Building Materials + { + type = "item", + name = "Building_Materials", + icon = "__Natural_Evolution_Buildings__/graphics/icons/Building_Materials.png", + flags = {"goes-to-main-inventory"}, + --subgroup = "Materials", -- NE Sub Group + subgroup = "intermediate-product", + order = "a[iron-stick]-b[Building_Materials]", + stack_size = 10 + }, + + + --- Attractor + { + type = "item", + name = "attractor-on", + icon = "__Natural_Evolution_Buildings__/graphics/entity/attractor_on.png", + flags = {"goes-to-quickbar"}, + subgroup = "Tools", + order = "a[attractor-on]", + stack_size = 1 + }, + { + type = "item", + name = "attractor-off", + icon = "__Natural_Evolution_Buildings__/graphics/entity/attractor_off.png", + flags = {"goes-to-quickbar"}, + subgroup = "Tools", + order = "b[attractor-off]", + stack_size = 1 + }, +}) diff --git a/Natural_Evolution_Buildings_6.3.0/prototypes/Other/recipe.lua b/Natural_Evolution_Buildings_6.3.1/prototypes/Other/recipe.lua similarity index 94% rename from Natural_Evolution_Buildings_6.3.0/prototypes/Other/recipe.lua rename to Natural_Evolution_Buildings_6.3.1/prototypes/Other/recipe.lua index ced4b81..0448470 100644 --- a/Natural_Evolution_Buildings_6.3.0/prototypes/Other/recipe.lua +++ b/Natural_Evolution_Buildings_6.3.1/prototypes/Other/recipe.lua @@ -1,45 +1,45 @@ -data:extend({ - - - ---- Building Materials - { - type = "recipe", - name = "Building_Materials", - enabled = false, - ingredients = - { - {"advanced-circuit", 15}, - {"stone-brick", 50}, - {"steel-plate", 10}, - }, - result = "Building_Materials", - energy_required= 2.5, - }, - - --- Attractor ON - { - type = "recipe", - name = "attractor-on", - enabled = false, - ingredients = - { - {"attractor-off", 1}, - }, - result = "attractor-on", - energy_required = 0.5, - }, - - --- Attractor OFF - { - type = "recipe", - name = "attractor-off", - enabled = false, - ingredients = - { - {"attractor-on", 1}, - }, - result = "attractor-off", - energy_required = 0.5, - }, - +data:extend({ + + + ---- Building Materials + { + type = "recipe", + name = "Building_Materials", + enabled = false, + ingredients = + { + {"advanced-circuit", 15}, + {"stone-brick", 50}, + {"steel-plate", 10}, + }, + result = "Building_Materials", + energy_required= 2.5, + }, + + --- Attractor ON + { + type = "recipe", + name = "attractor-on", + enabled = false, + ingredients = + { + {"attractor-off", 1}, + }, + result = "attractor-on", + energy_required = 0.5, + }, + + --- Attractor OFF + { + type = "recipe", + name = "attractor-off", + enabled = false, + ingredients = + { + {"attractor-on", 1}, + }, + result = "attractor-off", + energy_required = 0.5, + }, + }) \ No newline at end of file diff --git a/Natural_Evolution_Buildings_6.3.0/prototypes/Technology/technology.lua b/Natural_Evolution_Buildings_6.3.1/prototypes/Technology/technology.lua similarity index 94% rename from Natural_Evolution_Buildings_6.3.0/prototypes/Technology/technology.lua rename to Natural_Evolution_Buildings_6.3.1/prototypes/Technology/technology.lua index 08b9fb9..837a230 100644 --- a/Natural_Evolution_Buildings_6.3.0/prototypes/Technology/technology.lua +++ b/Natural_Evolution_Buildings_6.3.1/prototypes/Technology/technology.lua @@ -1,440 +1,440 @@ - -data:extend({ - - --- Alien Understanding 1 - { - type = "technology", - name = "AlienUnderstanding", - icon_size = 128, - icon = "__Natural_Evolution_Buildings__/graphics/technology/AlienUnderstanding.png", - effects = - { - { - type = 'unlock-recipe', - recipe='Building_Materials' - } - }, - prerequisites = {"advanced-electronics"}, - unit = - { - count = 50, - ingredients = - { - {"science-pack-1", 2}, - {"science-pack-2", 1} - }, - time = 50 - }, - order = "a-h-a", - }, - - --- Alien Understanding 2 - { - type = "technology", - name = "AlienUnderstanding-2", - icon_size = 128, - icon = "__Natural_Evolution_Buildings__/graphics/technology/AlienUnderstanding.png", - effects = - { - { - type = 'unlock-recipe', - recipe='Thumper' - } - }, - prerequisites = {"AlienUnderstanding"}, - unit = - { - count = 100, - ingredients = - { - {"science-pack-1", 3}, - {"science-pack-2", 2}, - {"science-pack-3", 1} - }, - time = 50 - }, - upgrade = true, - order = "a-h-b", - }, - - --- Alien Understanding 3 - { - type = "technology", - name = "AlienUnderstanding-3", - icon_size = 128, - icon = "__Natural_Evolution_Buildings__/graphics/technology/AlienUnderstanding.png", - prerequisites = {"AlienUnderstanding-2"}, - unit = - { - count = 150, - ingredients = - { - {"science-pack-1", 4}, - {"science-pack-2", 3}, - {"science-pack-3", 2}, - {"alien-science-pack", 1} - }, - time = 50 - }, - upgrade = true, - order = "a-h-c", - }, - - --- Terraforming Station - { - type = "technology", - name = "TerraformingStation", - icon_size = 128, - icon = "__Natural_Evolution_Buildings__/graphics/technology/TerraformingStation.png", - effects = - { - { - type = "unlock-recipe", - recipe = "TerraformingStation" - } - }, - prerequisites = {"AlienUnderstanding"}, - unit = - { - count = 75, - ingredients = - { - {"science-pack-1", 2}, - {"science-pack-2", 1} - }, - time = 50 - }, - order = "a-h-c", - }, - - --- Alien Control Station - { - type = "technology", - name = "AlienControlStation", - icon_size = 128, - icon = "__Natural_Evolution_Buildings__/graphics/technology/AlienControlStation.png", - effects = - { - { - type = "unlock-recipe", - recipe = "AlienControlStation" - } - }, - prerequisites = {"alien-technology", "AlienUnderstanding-2", "effect-transmission"}, - unit = - { - count = 50, - ingredients = - { - {"science-pack-1", 6}, - {"science-pack-2", 6}, - {"science-pack-3", 2} - }, - time = 50 - }, - order = "a-h-c", - }, - - --- Alien Training - { - type = "technology", - name = "Alien_Training", - icon_size = 128, - icon = "__Natural_Evolution_Buildings__/graphics/technology/Alien_Training.png", - effects = - { - { - type = 'unlock-recipe', - recipe='attractor-on' - }, - - { - type = 'unlock-recipe', - recipe='attractor-off' - }, - - }, - prerequisites = {"AlienUnderstanding-2"}, - unit = - { - count = 75, - ingredients = - { - {"science-pack-1", 2}, - {"science-pack-2", 1} - }, - time = 50 - }, - order = "a-h-c", - }, - - --- Spawners - { - type = "technology", - name = "Biter_Spawners", - icon_size = 128, - icon = "__Natural_Evolution_Buildings__/graphics/technology/biter_spawner.png", - effects = - { - { - type = 'unlock-recipe', - recipe='Natural_Evolution_Biter-Spawner' - }, - { - type = 'unlock-recipe', - recipe='Natural_Evolution_Biter-Spawner-refresh' - } - }, - prerequisites = {"AlienUnderstanding-3"}, - unit = - { - count = 150, - ingredients = - { - {"science-pack-1", 4}, - {"science-pack-2", 3}, - {"science-pack-3", 2}, - {"alien-science-pack", 1} - }, - time = 50 - }, - order = "a-h-c", - }, - - - { - type = "technology", - name = "Spitter_Spawners", - icon_size = 128, - icon = "__Natural_Evolution_Buildings__/graphics/technology/spitter_spawner.png", - effects = - { - { - type = 'unlock-recipe', - recipe='Natural_Evolution_Spitter-Spawner' - }, - { - type = 'unlock-recipe', - recipe='Natural_Evolution_Spitter-Spawner-refresh' - } - }, - prerequisites = {"AlienUnderstanding-3"}, - unit = - { - count = 250, - ingredients = - { - {"science-pack-1", 4}, - {"science-pack-2", 3}, - {"science-pack-3", 2}, - {"alien-science-pack", 1} - }, - time = 50 - }, - order = "a-h-c", - }, - - -- Biter & Spitters Breeding - { - type = "technology", - name = "Breeding", - icon_size = 128, - icon = "__Natural_Evolution_Buildings__/graphics/technology/small-biter.png", - effects = - { - { - type = 'unlock-recipe', - recipe='small-biter-hatching' - }, - { - type = 'unlock-recipe', - recipe='small-spitter-hatching' - }, - { - type = 'unlock-recipe', - recipe='small-worm-hatching' - }, - { - type = 'unlock-recipe', - recipe='small-worm-hatching-refresh' - }, - - }, - prerequisites = {"Alien_Hatchery"}, - unit = - { - count = 75, - ingredients = - { - {"science-pack-1", 3}, - {"science-pack-2", 2}, - {"science-pack-3", 1} - }, - time = 50 - }, - upgrade = true, - order = "a-h-a", - }, - { - type = "technology", - name = "Breeding-2", - icon_size = 128, - icon = "__Natural_Evolution_Buildings__/graphics/technology/medium-biter.png", - effects = - { - { - type = 'unlock-recipe', - recipe='medium-biter-hatching' - }, - { - type = 'unlock-recipe', - recipe='medium-spitter-hatching' - }, - { - type = 'unlock-recipe', - recipe='medium-worm-hatching' - }, - { - type = 'unlock-recipe', - recipe='medium-worm-hatching-refresh' - } - }, - prerequisites = {"Breeding"}, - unit = - { - count = 100, - ingredients = - { - {"science-pack-1", 3}, - {"science-pack-2", 2}, - {"science-pack-3", 1} - }, - time = 50 - }, - upgrade = true, - order = "a-h-b", - }, - { - type = "technology", - name = "Breeding-3", - icon_size = 128, - icon = "__Natural_Evolution_Buildings__/graphics/technology/big-biter.png", - effects = - { - { - type = 'unlock-recipe', - recipe='big-biter-hatching' - }, - { - type = 'unlock-recipe', - recipe='big-spitter-hatching' - }, - { - type = 'unlock-recipe', - recipe='big-worm-hatching' - }, - { - type = 'unlock-recipe', - recipe='big-worm-hatching-refresh' - } - }, - prerequisites = {"Breeding-2"}, - unit = - { - count = 150, - ingredients = - { - {"science-pack-1", 3}, - {"science-pack-2", 2}, - {"science-pack-3", 1}, - {"alien-science-pack", 1} - }, - time = 50 - }, - upgrade = true, - order = "a-h-c", - }, - { - type = "technology", - name = "Breeding-4", - icon_size = 128, - icon = "__Natural_Evolution_Buildings__/graphics/technology/behemoth-biter.png", - - effects = - { - { - type = 'unlock-recipe', - recipe='behemoth-biter-hatching' - }, - { - type = 'unlock-recipe', - recipe='behemoth-spitter-hatching' - } - }, - prerequisites = {"Breeding-3"}, - unit = - { - count = 200, - ingredients = - { - {"science-pack-1", 4}, - {"science-pack-2", 3}, - {"science-pack-3", 2}, - {"alien-science-pack", 1} - }, - time = 50 - }, - upgrade = true, - order = "a-h-d", - }, - - --- Alien Hatchery - { - type = "technology", - name = "Alien_Hatchery", - icon_size = 128, - icon = "__Natural_Evolution_Buildings__/graphics/technology/Alien_Hatchery.png", - effects = - { - { - type = 'unlock-recipe', - recipe='Alien_Hatchery' - }, - { - type = 'unlock-recipe', - recipe='NE_basic-alien-nutrientant' - }, - { - type = 'unlock-recipe', - recipe='NE_alien-revitalization' - }, - { - type = 'unlock-recipe', - recipe='NE_enhanced-alien-nutrientant' - }, - { - type = 'unlock-recipe', - recipe='ne-living-wall' - }, - { - type = 'unlock-recipe', - recipe='ne-living-wall-refresh' - }, - - }, - prerequisites = {"AlienUnderstanding-2"}, - unit = - { - count = 75, - ingredients = - { - {"science-pack-1", 3}, - {"science-pack-2", 2}, - {"science-pack-3", 1} - }, - time = 50 - }, - order = "a-h-c", - }, - -}) + +data:extend({ + + --- Alien Understanding 1 + { + type = "technology", + name = "AlienUnderstanding", + icon_size = 128, + icon = "__Natural_Evolution_Buildings__/graphics/technology/AlienUnderstanding.png", + effects = + { + { + type = 'unlock-recipe', + recipe='Building_Materials' + } + }, + prerequisites = {"advanced-electronics"}, + unit = + { + count = 50, + ingredients = + { + {"science-pack-1", 2}, + {"science-pack-2", 1} + }, + time = 50 + }, + order = "a-h-a", + }, + + --- Alien Understanding 2 + { + type = "technology", + name = "AlienUnderstanding-2", + icon_size = 128, + icon = "__Natural_Evolution_Buildings__/graphics/technology/AlienUnderstanding.png", + effects = + { + { + type = 'unlock-recipe', + recipe='Thumper' + } + }, + prerequisites = {"AlienUnderstanding"}, + unit = + { + count = 100, + ingredients = + { + {"science-pack-1", 3}, + {"science-pack-2", 2}, + {"science-pack-3", 1} + }, + time = 50 + }, + upgrade = true, + order = "a-h-b", + }, + + --- Alien Understanding 3 + { + type = "technology", + name = "AlienUnderstanding-3", + icon_size = 128, + icon = "__Natural_Evolution_Buildings__/graphics/technology/AlienUnderstanding.png", + prerequisites = {"AlienUnderstanding-2"}, + unit = + { + count = 150, + ingredients = + { + {"science-pack-1", 4}, + {"science-pack-2", 3}, + {"science-pack-3", 2}, + {"alien-science-pack", 1} + }, + time = 50 + }, + upgrade = true, + order = "a-h-c", + }, + + --- Terraforming Station + { + type = "technology", + name = "TerraformingStation", + icon_size = 128, + icon = "__Natural_Evolution_Buildings__/graphics/technology/TerraformingStation.png", + effects = + { + { + type = "unlock-recipe", + recipe = "TerraformingStation" + } + }, + prerequisites = {"AlienUnderstanding"}, + unit = + { + count = 75, + ingredients = + { + {"science-pack-1", 2}, + {"science-pack-2", 1} + }, + time = 50 + }, + order = "a-h-c", + }, + + --- Alien Control Station + { + type = "technology", + name = "AlienControlStation", + icon_size = 128, + icon = "__Natural_Evolution_Buildings__/graphics/technology/AlienControlStation.png", + effects = + { + { + type = "unlock-recipe", + recipe = "AlienControlStation" + } + }, + prerequisites = {"alien-technology", "AlienUnderstanding-2", "effect-transmission"}, + unit = + { + count = 50, + ingredients = + { + {"science-pack-1", 6}, + {"science-pack-2", 6}, + {"science-pack-3", 2} + }, + time = 50 + }, + order = "a-h-c", + }, + + --- Alien Training + { + type = "technology", + name = "Alien_Training", + icon_size = 128, + icon = "__Natural_Evolution_Buildings__/graphics/technology/Alien_Training.png", + effects = + { + { + type = 'unlock-recipe', + recipe='attractor-on' + }, + + { + type = 'unlock-recipe', + recipe='attractor-off' + }, + + }, + prerequisites = {"AlienUnderstanding-2"}, + unit = + { + count = 75, + ingredients = + { + {"science-pack-1", 2}, + {"science-pack-2", 1} + }, + time = 50 + }, + order = "a-h-c", + }, + + --- Spawners + { + type = "technology", + name = "Biter_Spawners", + icon_size = 128, + icon = "__Natural_Evolution_Buildings__/graphics/technology/biter_spawner.png", + effects = + { + { + type = 'unlock-recipe', + recipe='Natural_Evolution_Biter-Spawner' + }, + { + type = 'unlock-recipe', + recipe='Natural_Evolution_Biter-Spawner-refresh' + } + }, + prerequisites = {"AlienUnderstanding-3"}, + unit = + { + count = 150, + ingredients = + { + {"science-pack-1", 4}, + {"science-pack-2", 3}, + {"science-pack-3", 2}, + {"alien-science-pack", 1} + }, + time = 50 + }, + order = "a-h-c", + }, + + + { + type = "technology", + name = "Spitter_Spawners", + icon_size = 128, + icon = "__Natural_Evolution_Buildings__/graphics/technology/spitter_spawner.png", + effects = + { + { + type = 'unlock-recipe', + recipe='Natural_Evolution_Spitter-Spawner' + }, + { + type = 'unlock-recipe', + recipe='Natural_Evolution_Spitter-Spawner-refresh' + } + }, + prerequisites = {"AlienUnderstanding-3"}, + unit = + { + count = 250, + ingredients = + { + {"science-pack-1", 4}, + {"science-pack-2", 3}, + {"science-pack-3", 2}, + {"alien-science-pack", 1} + }, + time = 50 + }, + order = "a-h-c", + }, + + -- Biter & Spitters Breeding + { + type = "technology", + name = "Breeding", + icon_size = 128, + icon = "__Natural_Evolution_Buildings__/graphics/technology/small-biter.png", + effects = + { + { + type = 'unlock-recipe', + recipe='small-biter-hatching' + }, + { + type = 'unlock-recipe', + recipe='small-spitter-hatching' + }, + { + type = 'unlock-recipe', + recipe='small-worm-hatching' + }, + { + type = 'unlock-recipe', + recipe='small-worm-hatching-refresh' + }, + + }, + prerequisites = {"Alien_Hatchery"}, + unit = + { + count = 75, + ingredients = + { + {"science-pack-1", 3}, + {"science-pack-2", 2}, + {"science-pack-3", 1} + }, + time = 50 + }, + upgrade = true, + order = "a-h-a", + }, + { + type = "technology", + name = "Breeding-2", + icon_size = 128, + icon = "__Natural_Evolution_Buildings__/graphics/technology/medium-biter.png", + effects = + { + { + type = 'unlock-recipe', + recipe='medium-biter-hatching' + }, + { + type = 'unlock-recipe', + recipe='medium-spitter-hatching' + }, + { + type = 'unlock-recipe', + recipe='medium-worm-hatching' + }, + { + type = 'unlock-recipe', + recipe='medium-worm-hatching-refresh' + } + }, + prerequisites = {"Breeding"}, + unit = + { + count = 100, + ingredients = + { + {"science-pack-1", 3}, + {"science-pack-2", 2}, + {"science-pack-3", 1} + }, + time = 50 + }, + upgrade = true, + order = "a-h-b", + }, + { + type = "technology", + name = "Breeding-3", + icon_size = 128, + icon = "__Natural_Evolution_Buildings__/graphics/technology/big-biter.png", + effects = + { + { + type = 'unlock-recipe', + recipe='big-biter-hatching' + }, + { + type = 'unlock-recipe', + recipe='big-spitter-hatching' + }, + { + type = 'unlock-recipe', + recipe='big-worm-hatching' + }, + { + type = 'unlock-recipe', + recipe='big-worm-hatching-refresh' + } + }, + prerequisites = {"Breeding-2"}, + unit = + { + count = 150, + ingredients = + { + {"science-pack-1", 3}, + {"science-pack-2", 2}, + {"science-pack-3", 1}, + {"alien-science-pack", 1} + }, + time = 50 + }, + upgrade = true, + order = "a-h-c", + }, + { + type = "technology", + name = "Breeding-4", + icon_size = 128, + icon = "__Natural_Evolution_Buildings__/graphics/technology/behemoth-biter.png", + + effects = + { + { + type = 'unlock-recipe', + recipe='behemoth-biter-hatching' + }, + { + type = 'unlock-recipe', + recipe='behemoth-spitter-hatching' + } + }, + prerequisites = {"Breeding-3"}, + unit = + { + count = 200, + ingredients = + { + {"science-pack-1", 4}, + {"science-pack-2", 3}, + {"science-pack-3", 2}, + {"alien-science-pack", 1} + }, + time = 50 + }, + upgrade = true, + order = "a-h-d", + }, + + --- Alien Hatchery + { + type = "technology", + name = "Alien_Hatchery", + icon_size = 128, + icon = "__Natural_Evolution_Buildings__/graphics/technology/Alien_Hatchery.png", + effects = + { + { + type = 'unlock-recipe', + recipe='Alien_Hatchery' + }, + { + type = 'unlock-recipe', + recipe='NE_basic-alien-nutrientant' + }, + { + type = 'unlock-recipe', + recipe='NE_alien-revitalization' + }, + { + type = 'unlock-recipe', + recipe='NE_enhanced-alien-nutrientant' + }, + { + type = 'unlock-recipe', + recipe='ne-living-wall' + }, + { + type = 'unlock-recipe', + recipe='ne-living-wall-refresh' + }, + + }, + prerequisites = {"AlienUnderstanding-2"}, + unit = + { + count = 75, + ingredients = + { + {"science-pack-1", 3}, + {"science-pack-2", 2}, + {"science-pack-3", 1} + }, + time = 50 + }, + order = "a-h-c", + }, + +}) diff --git a/Natural_Evolution_Buildings_6.3.0/prototypes/Terraforming_Station/entity.lua b/Natural_Evolution_Buildings_6.3.1/prototypes/Terraforming_Station/entity.lua similarity index 96% rename from Natural_Evolution_Buildings_6.3.0/prototypes/Terraforming_Station/entity.lua rename to Natural_Evolution_Buildings_6.3.1/prototypes/Terraforming_Station/entity.lua index 23b119f..02a6e6a 100644 --- a/Natural_Evolution_Buildings_6.3.0/prototypes/Terraforming_Station/entity.lua +++ b/Natural_Evolution_Buildings_6.3.1/prototypes/Terraforming_Station/entity.lua @@ -1,50 +1,50 @@ - - - -data:extend({ - - ---- Terraforming Station - { - type = "radar", - name = "TerraformingStation", - icon = "__Natural_Evolution_Buildings__/graphics/icons/TerraformingStation.png", - flags = {"placeable-neutral", "placeable-neutral", "player-creation"}, - minable = {hardness = 0.2, mining_time = 0.5, result = "TerraformingStation"}, - max_health = 300, - corpse = "big-remnants", - dying_explosion = "medium-explosion", - resistances = - { - { - type = "fire", - percent = 70 - } - }, - collision_box = {{-1.3, -1.7}, {3.0, 1.5}}, - selection_box = {{-1.3, -1.7}, {3.0, 1.5}}, - energy_per_sector = "22MJ", - max_distance_of_nearby_sector_revealed = 4, - max_distance_of_sector_revealed = 4, - energy_per_nearby_scan = "400kW", - energy_source = - { - type = "electric", - usage_priority = "secondary-input" - }, - energy_usage = "600kW", - pictures = - { - filename = "__Natural_Evolution_Buildings__/graphics/entity/TerraformingStation.png", - priority = "low", - width = 153, - height = 131, - axially_symmetrical = false, - apply_projection = false, - direction_count = 64, - line_length = 8, - shift = {0.875, -0.35} - }, - }, - - -}) + + + +data:extend({ + + ---- Terraforming Station + { + type = "radar", + name = "TerraformingStation", + icon = "__Natural_Evolution_Buildings__/graphics/icons/TerraformingStation.png", + flags = {"placeable-neutral", "placeable-neutral", "player-creation"}, + minable = {hardness = 0.2, mining_time = 0.5, result = "TerraformingStation"}, + max_health = 300, + corpse = "big-remnants", + dying_explosion = "medium-explosion", + resistances = + { + { + type = "fire", + percent = 70 + } + }, + collision_box = {{-1.3, -1.7}, {3.0, 1.5}}, + selection_box = {{-1.3, -1.7}, {3.0, 1.5}}, + energy_per_sector = "22MJ", + max_distance_of_nearby_sector_revealed = 4, + max_distance_of_sector_revealed = 4, + energy_per_nearby_scan = "400kW", + energy_source = + { + type = "electric", + usage_priority = "secondary-input" + }, + energy_usage = "600kW", + pictures = + { + filename = "__Natural_Evolution_Buildings__/graphics/entity/TerraformingStation.png", + priority = "low", + width = 153, + height = 131, + axially_symmetrical = false, + apply_projection = false, + direction_count = 64, + line_length = 8, + shift = {0.875, -0.35} + }, + }, + + +}) diff --git a/Natural_Evolution_Buildings_6.3.0/prototypes/Terraforming_Station/item.lua b/Natural_Evolution_Buildings_6.3.1/prototypes/Terraforming_Station/item.lua similarity index 96% rename from Natural_Evolution_Buildings_6.3.0/prototypes/Terraforming_Station/item.lua rename to Natural_Evolution_Buildings_6.3.1/prototypes/Terraforming_Station/item.lua index 91a9005..f47ed58 100644 --- a/Natural_Evolution_Buildings_6.3.0/prototypes/Terraforming_Station/item.lua +++ b/Natural_Evolution_Buildings_6.3.1/prototypes/Terraforming_Station/item.lua @@ -1,15 +1,15 @@ -data:extend({ - - --- Terraforming Station - { - type = "item", - name = "TerraformingStation", - icon = "__Natural_Evolution_Buildings__/graphics/icons/TerraformingStation.png", - flags = {"goes-to-quickbar"}, - subgroup = "Natural-Evolution", - order = "b[TerraformingStation]-a[TerraformingStation]", - place_result = "TerraformingStation", - stack_size = 10 , - }, - -}) +data:extend({ + + --- Terraforming Station + { + type = "item", + name = "TerraformingStation", + icon = "__Natural_Evolution_Buildings__/graphics/icons/TerraformingStation.png", + flags = {"goes-to-quickbar"}, + subgroup = "Natural-Evolution", + order = "b[TerraformingStation]-a[TerraformingStation]", + place_result = "TerraformingStation", + stack_size = 10 , + }, + +}) diff --git a/Natural_Evolution_Buildings_6.3.0/prototypes/Terraforming_Station/recipe.lua b/Natural_Evolution_Buildings_6.3.1/prototypes/Terraforming_Station/recipe.lua similarity index 95% rename from Natural_Evolution_Buildings_6.3.0/prototypes/Terraforming_Station/recipe.lua rename to Natural_Evolution_Buildings_6.3.1/prototypes/Terraforming_Station/recipe.lua index 905bbf5..bbfea4d 100644 --- a/Natural_Evolution_Buildings_6.3.0/prototypes/Terraforming_Station/recipe.lua +++ b/Natural_Evolution_Buildings_6.3.1/prototypes/Terraforming_Station/recipe.lua @@ -1,16 +1,16 @@ -data:extend({ - --- Terraforming Station - { - type = "recipe", - name = "TerraformingStation", - energy_required = 35, - enabled = false, - ingredients = - { - {"Building_Materials", 15}, - {"alien-artifact", 20}, - }, - result = "TerraformingStation" - }, - +data:extend({ + --- Terraforming Station + { + type = "recipe", + name = "TerraformingStation", + energy_required = 35, + enabled = false, + ingredients = + { + {"Building_Materials", 15}, + {"alien-artifact", 20}, + }, + result = "TerraformingStation" + }, + }) \ No newline at end of file diff --git a/Natural_Evolution_Buildings_6.3.0/prototypes/Thumper/entity.lua b/Natural_Evolution_Buildings_6.3.1/prototypes/Thumper/entity.lua similarity index 95% rename from Natural_Evolution_Buildings_6.3.0/prototypes/Thumper/entity.lua rename to Natural_Evolution_Buildings_6.3.1/prototypes/Thumper/entity.lua index 8bf94f4..084f4c5 100644 --- a/Natural_Evolution_Buildings_6.3.0/prototypes/Thumper/entity.lua +++ b/Natural_Evolution_Buildings_6.3.1/prototypes/Thumper/entity.lua @@ -1,50 +1,50 @@ - - - -data:extend({ - - - --- Thumper - { - type = "radar", - name = "Thumper", - icon = "__Natural_Evolution_Buildings__/graphics/icons/Thumper.png", - flags = {"placeable-neutral", "placeable-player", "player-creation"}, - minable = {hardness = 0.8, mining_time = 1, result = "Thumper"}, - max_health = 50, - corpse = "small-remnants", - dying_explosion = "medium-explosion", - resistances = - { - { - type = "fire", - percent = 70 - } - }, - collision_box = {{-0.29, -0.29}, {0.29, 0.29}}, - selection_box = {{-0.5, -0.5}, {0.5, 0.5}}, - energy_per_sector = "1MJ", - max_distance_of_nearby_sector_revealed = 1, - max_distance_of_sector_revealed = 1, - energy_per_nearby_scan = "25kJ", - energy_source = - { - type = "electric", - usage_priority = "secondary-input" - }, - energy_usage = "50kW", - pictures = - { - filename = "__Natural_Evolution_Buildings__/graphics/entity/Thumper.png", - priority = "high", - width = 60, - height = 60, - axially_symmetrical = false, - apply_projection = false, - direction_count = 25, - line_length = 5, - shift = {0.225, -0.3}, - }, - }, - -}) + + + +data:extend({ + + + --- Thumper + { + type = "radar", + name = "Thumper", + icon = "__Natural_Evolution_Buildings__/graphics/icons/Thumper.png", + flags = {"placeable-neutral", "placeable-player", "player-creation"}, + minable = {hardness = 0.8, mining_time = 1, result = "Thumper"}, + max_health = 50, + corpse = "small-remnants", + dying_explosion = "medium-explosion", + resistances = + { + { + type = "fire", + percent = 70 + } + }, + collision_box = {{-0.29, -0.29}, {0.29, 0.29}}, + selection_box = {{-0.5, -0.5}, {0.5, 0.5}}, + energy_per_sector = "1MJ", + max_distance_of_nearby_sector_revealed = 1, + max_distance_of_sector_revealed = 1, + energy_per_nearby_scan = "25kJ", + energy_source = + { + type = "electric", + usage_priority = "secondary-input" + }, + energy_usage = "50kW", + pictures = + { + filename = "__Natural_Evolution_Buildings__/graphics/entity/Thumper.png", + priority = "high", + width = 60, + height = 60, + axially_symmetrical = false, + apply_projection = false, + direction_count = 25, + line_length = 5, + shift = {0.225, -0.3}, + }, + }, + +}) diff --git a/Natural_Evolution_Buildings_6.3.0/prototypes/Thumper/item.lua b/Natural_Evolution_Buildings_6.3.1/prototypes/Thumper/item.lua similarity index 94% rename from Natural_Evolution_Buildings_6.3.0/prototypes/Thumper/item.lua rename to Natural_Evolution_Buildings_6.3.1/prototypes/Thumper/item.lua index e5f0092..d524612 100644 --- a/Natural_Evolution_Buildings_6.3.0/prototypes/Thumper/item.lua +++ b/Natural_Evolution_Buildings_6.3.1/prototypes/Thumper/item.lua @@ -1,16 +1,16 @@ -data:extend({ - - - --- Thumper - { - type = "item", - name = "Thumper", - icon = "__Natural_Evolution_Buildings__/graphics/icons/Thumper.png", - flags = {"goes-to-quickbar"}, - subgroup = "Natural-Evolution", - order = "Thumper", - place_result = "Thumper", - stack_size = 10 - }, - -}) +data:extend({ + + + --- Thumper + { + type = "item", + name = "Thumper", + icon = "__Natural_Evolution_Buildings__/graphics/icons/Thumper.png", + flags = {"goes-to-quickbar"}, + subgroup = "Natural-Evolution", + order = "Thumper", + place_result = "Thumper", + stack_size = 10 + }, + +}) diff --git a/Natural_Evolution_Buildings_6.3.0/prototypes/Thumper/recipe.lua b/Natural_Evolution_Buildings_6.3.1/prototypes/Thumper/recipe.lua similarity index 93% rename from Natural_Evolution_Buildings_6.3.0/prototypes/Thumper/recipe.lua rename to Natural_Evolution_Buildings_6.3.1/prototypes/Thumper/recipe.lua index de4e03d..2eda73c 100644 --- a/Natural_Evolution_Buildings_6.3.0/prototypes/Thumper/recipe.lua +++ b/Natural_Evolution_Buildings_6.3.1/prototypes/Thumper/recipe.lua @@ -1,19 +1,19 @@ -data:extend({ - - - --- Thumper - { - type = "recipe", - name = "Thumper", - energy_required = 10, - enabled = false, - ingredients = - { - {"Building_Materials", 1}, - -- {"iron-plate", 1}, - }, - result = "Thumper" - }, - - +data:extend({ + + + --- Thumper + { + type = "recipe", + name = "Thumper", + energy_required = 10, + enabled = false, + ingredients = + { + {"Building_Materials", 1}, + -- {"iron-plate", 1}, + }, + result = "Thumper" + }, + + }) \ No newline at end of file diff --git a/Natural_Evolution_Enemies_6.3.0/prototypes/Vanilla_Changes/Biter_Spawner.lua b/Natural_Evolution_Enemies_6.3.0/prototypes/Vanilla_Changes/Biter_Spawner.lua deleted file mode 100644 index a23ca97..0000000 --- a/Natural_Evolution_Enemies_6.3.0/prototypes/Vanilla_Changes/Biter_Spawner.lua +++ /dev/null @@ -1,142 +0,0 @@ ----------------------------------------------------------- ----------------------------------------------------------- --- THIS IS NOT BIENG USED AT THE MOMENT -- ----------------------------------------------------------- ----------------------------------------------------------- - - - -data:extend( -{ - -{ - type = "unit-spawner", - name = "biter-spawner", - icon = "__base__/graphics/icons/biter-spawner.png", - flags = {"placeable-player", "placeable-enemy", "not-repairable"}, - max_health = 350000, - order="b-b-g", - subgroup="enemies", - resistances = - { - { - type = "physical", - decrease = 2, - }, - { - type = "explosion", - decrease = 5, - percent = 15, - } - }, - working_sound = { - sound = - { - { - filename = "__base__/sound/creatures/spawner.ogg", - volume = 1.0 - } - }, - apparent_volume = 2 - }, - dying_sound = - { - { - filename = "__base__/sound/creatures/spawner-death-1.ogg", - volume = 1.0 - }, - { - filename = "__base__/sound/creatures/spawner-death-2.ogg", - volume = 1.0 - } - }, - healing_per_tick = 0.02, - collision_box = {{-3.2, -2.2}, {2.2, 2.2}}, - selection_box = {{-3.5, -2.5}, {2.5, 2.5}}, - -- in ticks per 1 pu - pollution_absorbtion_absolute = 20, - pollution_absorbtion_proportional = 0.01, - pollution_to_enhance_spawning = 30000, - corpse = "biter-spawner-corpse", - dying_explosion = "blood-explosion-huge", - loot = - { - { - count_max = 10, - count_min = 2, - item = "alien-artifact", - probability = 1 - } - }, - max_count_of_owned_units = 7, - max_friends_around_to_spawn = 5, - animations = - { - spawner_idle_animation(0, biter_spawner_tint), - spawner_idle_animation(1, biter_spawner_tint), - spawner_idle_animation(2, biter_spawner_tint), - spawner_idle_animation(3, biter_spawner_tint) - }, - result_units = (function() - local res = {} - res[1] = {"small-biter", {{0.0, 0.3}, {0.7, 0.0}}} - if not data.is_demo then - -- from evolution_factor 0.3 the weight for medium-biter is linearly rising from 0 to 0.3 - -- this means for example that when the evolution_factor is 0.45 the probability of spawning - -- a small biter is 66% while probability for medium biter is 33%. - res[2] = {"medium-biter", {{0.3, 0.0}, {0.6, 0.3}, {0.8, 0.1}}} - -- for evolution factor of 1 the spawning probabilities are: small-biter 0%, medium-biter 1/7, big-biter 4/7, behemoth biter 3/7 - res[3] = {"big-biter", {{0.6, 0.0}, {1.0, 0.4}}} - res[4] = {"behemoth-biter", {{0.99, 0.0}, {1.0, 0.3}}} - end - return res - end)(), - -- With zero evolution the spawn rate is 6 seconds, with max evolution it is 2.5 seconds - spawning_cooldown = {360, 150}, - spawning_radius = 10, - spawning_spacing = 3, - max_spawn_shift = 0, - max_richness_for_spawn_shift = 100, - autoplace = - { - sharpness = 0.4, - control = "enemy-base", - order = "b[enemy]-b[biter-spawner]", - richness_multiplier = 1, - richness_base = 0, - force = "enemy", - peaks = - { - { - influence = 0, - richness_influence = 100, - tier_from_start_optimal = 20, - tier_from_start_top_property_limit = 20, - tier_from_start_max_range = 40, - }, - { - influence = -10.0, - starting_area_weight_optimal = 1, - starting_area_weight_range = 0, - starting_area_weight_max_range = 2, - }, - { - influence = 0.425, - noise_layer = "enemy-base", - noise_octaves_difference = -1.8, - noise_persistence = 0.5, - }, - -- increase the size when moving further away - { - influence = 0.75, - noise_layer = "enemy-base", - noise_octaves_difference = 1.8, - noise_persistence = 0.75, - tier_from_start_optimal = 20, - tier_from_start_top_property_limit = 20, - tier_from_start_max_range = 40, - }, - } - } - }, - }) diff --git a/Natural_Evolution_Enemies_6.3.0/prototypes/Vanilla_Changes/Settings.lua b/Natural_Evolution_Enemies_6.3.0/prototypes/Vanilla_Changes/Settings.lua deleted file mode 100644 index 3cb0ee7..0000000 --- a/Natural_Evolution_Enemies_6.3.0/prototypes/Vanilla_Changes/Settings.lua +++ /dev/null @@ -1,301 +0,0 @@ - -require "prototypes.Vanilla_Changes.Functions" -require "config" - ---- Difficulty settings - if NE_Difficulty == nil then - NE_Difficulty = 1 - end - if NE_Enemies_Config.Set_Difficulty == 1 then - NE_Difficulty = 1 -- Normal difficulty - else NE_Difficulty = 2 -- Hard difficulty - end - - -Damage = { - Small_Biter = Biter_Melee_Attack_Healthy(5*NE_Difficulty), - Small_Biter_Mk2 = Biter_Melee_Attack_Infected(8*NE_Difficulty,5*NE_Difficulty), - Small_Biter_Mk3 = Biter_Melee_Attack_Mutated(10*NE_Difficulty,5*NE_Difficulty), - Medium_Biter = Biter_Melee_Attack_Healthy(25*NE_Difficulty), - Medium_Biter_Mk2 = Biter_Melee_Attack_Infected(25*NE_Difficulty,10*NE_Difficulty), - Medium_Biter_Mk3 = Biter_Melee_Attack_Mutated(30*NE_Difficulty,15*NE_Difficulty), - Big_Biter = Biter_Melee_Attack_Healthy(65*NE_Difficulty), - Big_Biter_Mk2 = Biter_Melee_Attack_Infected(60*NE_Difficulty,30*NE_Difficulty), - Big_Biter_Mk3 = Biter_Melee_Attack_Mutated(65*NE_Difficulty,35*NE_Difficulty), - Behemoth_Biter = Biter_Melee_Attack_Healthy(150*NE_Difficulty) - } - - -Health = { - Small_Biter = 15, - Small_Biter_Mk2 = 20*NE_Difficulty, - Small_Biter_Mk3 = 45*NE_Difficulty, - Medium_Biter = 75*NE_Difficulty, - Medium_Biter_Mk2 = 150*NE_Difficulty, - Medium_Biter_Mk3 = 225*NE_Difficulty, - Big_Biter = 375*NE_Difficulty, - Big_Biter_Mk2 = 750*NE_Difficulty, - Big_Biter_Mk3 = 1125*NE_Difficulty, - Behemoth_Biter = 5000*NE_Difficulty, - Small_Spitter = 10, - Small_Spitter_Mk2 = 15*NE_Difficulty, - Small_Spitter_Mk3 = 20*NE_Difficulty, - Medium_Spitter = 50*NE_Difficulty, - Medium_Spitter_Mk2 = 100*NE_Difficulty, - Medium_Spitter_Mk3 = 150*NE_Difficulty, - Big_Spitter = 200*NE_Difficulty, - Big_Spitter_Mk2 = 450*NE_Difficulty, - Big_Spitter_Mk3 = 700*NE_Difficulty, - Behemoth_Spitter = 2000*NE_Difficulty, - Small_Worm = 400*NE_Difficulty, - Medium_Worm = 700*NE_Difficulty, - Big_Worm = 1000*NE_Difficulty - - - } - - - -Resistances = { - -- Healthy - Small_Biter = { - {type = "fire", decrease = 0, percent = -90}, - {type = "physical", decrease = 0, percent = 0}, - {type = "impact", decrease = 0, percent = 0}, - {type = "explosion", decrease = 1, percent = 0}, - {type = "acid", decrease = 1, percent = 0}, - {type = "poison", decrease = 0, percent = 0}, - {type = "laser", decrease = 1, percent = 0}}, - - -- Infected - Small_Biter_Mk2 = { - {type = "fire", decrease = 0, percent = -90}, - {type = "physical", decrease = 3, percent = 5*NE_Difficulty}, - {type = "impact", decrease = 2, percent = 0}, - {type = "explosion", decrease = 2, percent = 0}, - {type = "acid", decrease = 2, percent = 0}, - {type = "poison", decrease = 0, percent = 0}, - {type = "laser", decrease = 0, percent = 0}}, - - -- Mutated - Small_Biter_Mk3 = { - {type = "fire", decrease = 0, percent = -80}, - {type = "physical", decrease = 0, percent = 5*NE_Difficulty}, - {type = "impact", decrease = 3, percent = 0}, - {type = "explosion", decrease = 3, percent = 0}, - {type = "acid", decrease = 3, percent = 0}, - {type = "poison", decrease = 0, percent = 0}, - {type = "laser", decrease = 3, percent = 5*NE_Difficulty}}, - - -- Healthy - Medium_Biter = { - {type = "fire", decrease = 0, percent = -70}, - {type = "physical", decrease = 5, percent = 5*NE_Difficulty}, - {type = "impact", decrease = 5, percent = 0}, - {type = "explosion", decrease = 5, percent = 5*NE_Difficulty}, - {type = "acid", decrease = 5, percent = 5*NE_Difficulty}, - {type = "poison", decrease = 0, percent = 5*NE_Difficulty}, - {type = "laser", decrease = 5, percent = 5*NE_Difficulty}}, - - -- Infected - Medium_Biter_Mk2 = { - {type = "fire", decrease = 0, percent = -70}, - {type = "physical", decrease = 8, percent = 8*NE_Difficulty}, - {type = "impact", decrease = 5, percent = 5*NE_Difficulty}, - {type = "explosion", decrease = 5, percent = 5*NE_Difficulty}, - {type = "acid", decrease = 5, percent = 5*NE_Difficulty}, - {type = "poison", decrease = 0, percent = 5*NE_Difficulty}, - {type = "laser", decrease = 0, percent = 0}}, - - -- Mutated - Medium_Biter_Mk3 = { - {type = "fire", decrease = 0, percent = -60}, - {type = "physical", decrease = 0, percent = 0}, - {type = "impact", decrease = 5, percent = 5*NE_Difficulty}, - {type = "explosion", decrease = 5, percent = 5*NE_Difficulty}, - {type = "acid", decrease = 5, percent = 5*NE_Difficulty}, - {type = "poison", decrease = 0, percent = 5*NE_Difficulty}, - {type = "laser", decrease = 8, percent = 8*NE_Difficulty}}, - - -- Healthy - Big_Biter = { - {type = "fire", decrease = 0, percent = -50}, - {type = "physical", decrease = 8, percent = 15*NE_Difficulty}, - {type = "impact", decrease = 8, percent = 8*NE_Difficulty}, - {type = "explosion", decrease = 8, percent = 8*NE_Difficulty}, - {type = "acid", decrease = 8, percent = 8*NE_Difficulty}, - {type = "poison", decrease = 0, percent = 8*NE_Difficulty}, - {type = "laser", decrease = 8, percent = 8*NE_Difficulty}}, - - -- Infected - Big_Biter_Mk2 = { - {type = "fire", decrease = 0, percent = -50}, - {type = "physical", decrease = 15, percent = 20*NE_Difficulty}, - {type = "impact", decrease = 10, percent = 10*NE_Difficulty}, - {type = "explosion", decrease = 10, percent = 10*NE_Difficulty}, - {type = "acid", decrease = 10, percent = 10*NE_Difficulty}, - {type = "poison", decrease = 0, percent = 10*NE_Difficulty}, - {type = "laser", decrease = 5, percent = 10*NE_Difficulty}}, - - -- Mutated - Big_Biter_Mk3 = { - {type = "fire", decrease = 0, percent = -50}, - {type = "physical", decrease = 5, percent = 20*NE_Difficulty}, - {type = "impact", decrease = 10, percent = 10*NE_Difficulty}, - {type = "explosion", decrease = 10, percent = 10*NE_Difficulty}, - {type = "acid", decrease = 10, percent = 10*NE_Difficulty}, - {type = "poison", decrease = 0, percent = 10*NE_Difficulty}, - {type = "laser", decrease = 15, percent = 20*NE_Difficulty}}, - - -- Healthy - Behemoth_Biter = { - {type = "fire", decrease = 0, percent = -50}, - {type = "physical", decrease = 15, percent = 30*NE_Difficulty}, - {type = "impact", decrease = 15, percent = 15*NE_Difficulty}, - {type = "explosion", decrease = 15, percent = 15*NE_Difficulty}, - {type = "acid", decrease = 15, percent = 15*NE_Difficulty}, - {type = "poison", decrease = 0, percent = 15*NE_Difficulty}, - {type = "laser", decrease = 15, percent = 15*NE_Difficulty}}, - - -- Healthy - Small_Spitter = { - {type = "fire", decrease = 0, percent = -90}, - {type = "physical", decrease = 0, percent = 0}, - {type = "impact", decrease = 0, percent = 0}, - {type = "explosion", decrease = 1, percent = 5*NE_Difficulty}, - {type = "acid", decrease = 1, percent = 0}, - {type = "poison", decrease = 0, percent = 0}, - {type = "laser", decrease = 0, percent = 0}}, - - -- Infected - Small_Spitter_Mk2 = { - {type = "fire", decrease = 0, percent = -90}, - {type = "physical", decrease = 2, percent = 5*NE_Difficulty}, - {type = "impact", decrease = 0, percent = 0}, - {type = "explosion", decrease = 2, percent = 5*NE_Difficulty}, - {type = "acid", decrease = 2, percent = 0}, - {type = "poison", decrease = 0, percent = 0}, - {type = "laser", decrease = 0, percent = 0}}, - - -- Mutated - Small_Spitter_Mk3 = { - {type = "fire", decrease = 0, percent = -80}, - {type = "physical", decrease = 0, percent = 0}, - {type = "impact", decrease = 0, percent = 0}, - {type = "explosion", decrease = 3, percent = 5*NE_Difficulty}, - {type = "acid", decrease = 3, percent = 0}, - {type = "poison", decrease = 0, percent = 0}, - {type = "laser", decrease = 2, percent = 5*NE_Difficulty}}, - - -- Healthy - Medium_Spitter = { - {type = "fire", decrease = 0, percent = -70}, - {type = "physical", decrease = 5, percent = 0}, - {type = "impact", decrease = 5, percent = 5*NE_Difficulty}, - {type = "explosion", decrease = 5, percent = 10*NE_Difficulty}, - {type = "acid", decrease = 5, percent = 5*NE_Difficulty}, - {type = "poison", decrease = 0, percent = 5*NE_Difficulty}, - {type = "laser", decrease = 5, percent = 0}}, - - -- Infected - Medium_Spitter_Mk2 = { - {type = "fire", decrease = 0, percent = -70}, - {type = "physical", decrease = 10, percent = 10*NE_Difficulty}, - {type = "impact", decrease = 5, percent = 5*NE_Difficulty}, - {type = "explosion", decrease = 5, percent = 10*NE_Difficulty}, - {type = "acid", decrease = 5, percent = 5*NE_Difficulty}, - {type = "poison", decrease = 0, percent = 5*NE_Difficulty}, - {type = "laser", decrease = 0, percent = 5*NE_Difficulty}}, - - -- Mutated - Medium_Spitter_Mk3 = { - {type = "fire", decrease = 0, percent = -60}, - {type = "physical", decrease = 0, percent = 5*NE_Difficulty}, - {type = "impact", decrease = 5, percent = 5*NE_Difficulty}, - {type = "explosion", decrease = 5, percent = 10*NE_Difficulty}, - {type = "acid", decrease = 5, percent = 5*NE_Difficulty}, - {type = "poison", decrease = 0, percent = 5*NE_Difficulty}, - {type = "laser", decrease = 10, percent = 10*NE_Difficulty}}, - - -- Healthy - Big_Spitter = { - {type = "fire", decrease = 0, percent = -50}, - {type = "physical", decrease = 5, percent = 10*NE_Difficulty}, - {type = "impact", decrease = 5, percent = 5*NE_Difficulty}, - {type = "explosion", decrease = 10, percent = 20*NE_Difficulty}, - {type = "acid", decrease = 10, percent = 10*NE_Difficulty}, - {type = "poison", decrease = 0, percent = 10*NE_Difficulty}, - {type = "laser", decrease = 5, percent = 10*NE_Difficulty}}, - - -- Infected - Big_Spitter_Mk2 = { - {type = "fire", decrease = 0, percent = -50}, - {type = "physical", decrease = 10, percent = 15*NE_Difficulty}, - {type = "impact", decrease = 5, percent = 10*NE_Difficulty}, - {type = "explosion", decrease = 10, percent = 20*NE_Difficulty}, - {type = "acid", decrease = 10, percent = 10*NE_Difficulty}, - {type = "poison", decrease = 0, percent = 10*NE_Difficulty}, - {type = "laser", decrease = 0, percent = 10*NE_Difficulty}}, - - -- Mutated - Big_Spitter_Mk3 = { - {type = "fire", decrease = 0, percent = -50}, - {type = "physical", decrease = 5, percent = 5*NE_Difficulty}, - {type = "impact", decrease = 5, percent = 10*NE_Difficulty}, - {type = "explosion", decrease = 10, percent = 20*NE_Difficulty}, - {type = "acid", decrease = 10, percent = 10*NE_Difficulty}, - {type = "poison", decrease = 0, percent = 10*NE_Difficulty}, - {type = "laser", decrease = 15, percent = 15*NE_Difficulty}}, - - -- Healthy - Behemoth_Spitter = { - {type = "fire", decrease = 0, percent = -50}, - {type = "physical", decrease = 10, percent = 10*NE_Difficulty}, - {type = "impact", decrease = 15, percent = 15*NE_Difficulty}, - {type = "explosion", decrease = 15, percent = 30*NE_Difficulty}, - {type = "acid", decrease = 15, percent = 15*NE_Difficulty}, - {type = "poison", decrease = 0, percent = 15*NE_Difficulty}, - {type = "laser", decrease = 15, percent = 15*NE_Difficulty}}, - - ---- Worms - Small_Worm = { - {type = "fire", decrease = 0, percent = -90}, - {type = "physical", decrease = 0, percent = 5}, - {type = "impact", decrease = 0, percent = 0}, - {type = "explosion", decrease = 5, percent = 0}, - {type = "acid", decrease = 1, percent = 0}, - {type = "poison", decrease = 0, percent = 0}, - {type = "laser", decrease = 5, percent = 5}}, - - Medium_Worm = { - {type = "fire", decrease = 0, percent = -90}, - {type = "physical", decrease = 10, percent = 10}, - {type = "impact", decrease = 0, percent = 0}, - {type = "explosion", decrease = 10, percent = 10}, - {type = "acid", decrease = 1, percent = 0}, - {type = "poison", decrease = 0, percent = 0}, - {type = "laser", decrease = 10, percent = 10}}, - - - Big_Worm = { - {type = "fire", decrease = 0, percent = -90}, - {type = "physical", decrease = 15, percent = 15}, - {type = "impact", decrease = 0, percent = 0}, - {type = "explosion", decrease = 15, percent = 15}, - {type = "acid", decrease = 1, percent = 0}, - {type = "poison", decrease = 0, percent = 0}, - {type = "laser", decrease = 15, percent = 15}}, - - --- Spawner - - Spawner = { - {type = "fire", decrease = 0, percent = -100}, - {type = "physical", decrease = 5, percent = 10*NE_Difficulty}, - {type = "impact", decrease = 15, percent = 15*NE_Difficulty}, - {type = "explosion", decrease = 15, percent = 30*NE_Difficulty}, - {type = "acid", decrease = 15, percent = 15*NE_Difficulty}, - {type = "poison", decrease = 0, percent = 15*NE_Difficulty}, - {type = "laser", decrease = 10, percent = 15*NE_Difficulty}}, - Fire = { - {type = "fire", decrease = 0, percent = 75}}, -} \ No newline at end of file diff --git a/Natural_Evolution_Enemies_6.3.0/config.lua b/Natural_Evolution_Enemies_6.3.1/config.lua similarity index 97% rename from Natural_Evolution_Enemies_6.3.0/config.lua rename to Natural_Evolution_Enemies_6.3.1/config.lua index 4a5ed2c..89b5371 100644 --- a/Natural_Evolution_Enemies_6.3.0/config.lua +++ b/Natural_Evolution_Enemies_6.3.1/config.lua @@ -1,132 +1,132 @@ -local NE = NE_Enemies_Config ---[[--------------------------------------------------------------------------- -------------------------------------- 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. -Supercheese - Swarm Mod. -Afforess - Misanthrope Mod. -Orzelek - RSO, Coding help and answering questions! -ThaPear, Semvoz, Billw, Adil, Rseding91, Chlue - Coding help! -DySoch - DyTech, showing me what was possible -Bobingabout - Bob's Mods - Learned a lot from looking at your amazing work. -YuokiTani - Art!! Amazing work! - - ---------------------------------------------------------------------------- ---------------------------------------------------------------------------- ------------------------- On / Off Toggles --------------------------------- ---------------------------------------------------------------------------- ---- true = On / Yes ---- false = Off / No --- NOTE -- When changing most of the below values, this will only affect new games, not existing games. - ----------------------------------------------------------------------------]] - - -NE.Set_Difficulty = 2 --- Affects difficulty factor --- Options: --- 1 = Normal --- 2 = Hard --- Hard is about a 2x factor on everything - - -NE.ExtraLoot = true ---Extra Loot from Aliens (small-alien-artifact) - - -NE.LongReach = false ---- Long Reach ---- Do you want double the vanilla reach - - -NE.SafeRail = false -- --- If true, rail will have 100% immunity to damage. --- Currently rail auto repairs itself by default with this mod tough. - - -NE.Spawners = true --- Changes to the games Spawners and Units --- Do you want tweaks made to the spawners - Mainly more units around the spawners --- More units around the spawners --- Vanilla Spawners will be higher than currently. --- Bob's will be higher --- Do you want tweaks made to the games biter & spitters --- Lower Pollution levels before attacking. --- New Enemy Units and a new worm --- Adjusted Resistances of units - - -NE.BioDamage = 15 --- Able to adjust the damage of the Bio Ammo. --- Some people complained it was too high... Be warned though, the game is very tough at the end. You're going to need this. - - - -NE.Artifact_Collector_Radius = 30 --- The radius around the artifact collector that it will grab items. --- Note: technically it's not a radius, but a square pickup area, but the visual overlay is a circle and not a square. -NE.Artifact_Collector_Item_Count = 8 --- The number of artifacts that will be collected per sweep. - - -NE.Scorched_Earth = true --- Turns terrain into desert when you kill an enemy on it. - - -NE.Burning_Buildings = true --- When an entity is destroyed, it will catch fire. - - ---------- Used for Unit Launcher - Thanks Supercheese for this code :) --- The result in the right column is the enemy that appears when the enemy in the left column dies. So if a behemoth spitter dies, medium spitters will appear. --- For spawners, the current evolution factor rounded down to the nearest 10% (though 99% is rounded up to 100%) is used to look up which enemy appears. - -subEnemyNameTable = {} - -subEnemyNameTable["unit-cluster"] = {} -subEnemyNameTable["unit-cluster"][0] = "small-biter" -subEnemyNameTable["unit-cluster"][1] = "small-biter-Mk2" -subEnemyNameTable["unit-cluster"][2] = "small-biter-Mk3" -subEnemyNameTable["unit-cluster"][3] = "medium-biter" -subEnemyNameTable["unit-cluster"][4] = "medium-biter-Mk2" -subEnemyNameTable["unit-cluster"][5] = "medium-biter-Mk3" -subEnemyNameTable["unit-cluster"][6] = "big-biter" -subEnemyNameTable["unit-cluster"][7] = "big-biter-Mk2" -subEnemyNameTable["unit-cluster"][8] = "big-biter-Mk3" -subEnemyNameTable["unit-cluster"][9] = "behemoth-biter" -subEnemyNameTable["unit-cluster"][10] = "behemoth-biter" - - --- NUMBERS --- The result in the right column is the number of enemies that appear when the enemy in the left column dies. --- The current evolution factor rounded down to the nearest 10% is also used to look up which enemy appears. -subEnemyNumberTable = {} - -subEnemyNumberTable["unit-cluster"] = {} -subEnemyNumberTable["unit-cluster"][0] = 2 --small -subEnemyNumberTable["unit-cluster"][1] = 3 --small -subEnemyNumberTable["unit-cluster"][2] = 4 --small -subEnemyNumberTable["unit-cluster"][3] = 2 --medium -subEnemyNumberTable["unit-cluster"][4] = 3 --medium -subEnemyNumberTable["unit-cluster"][5] = 4 --medium -subEnemyNumberTable["unit-cluster"][6] = 2 --big -subEnemyNumberTable["unit-cluster"][7] = 3 --big -subEnemyNumberTable["unit-cluster"][8] = 4 --big -subEnemyNumberTable["unit-cluster"][9] = 2 --behemoth -subEnemyNumberTable["unit-cluster"][10] = 4 --behemoth - - - ------------------------------ END ------------------------------------------- - -NE.QCCode = false --- Used for QC --- Displays messages used for checking my code - +local NE = NE_Enemies_Config +--[[--------------------------------------------------------------------------- +------------------------------------- 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. +Supercheese - Swarm Mod. +Afforess - Misanthrope Mod. +Orzelek - RSO, Coding help and answering questions! +ThaPear, Semvoz, Billw, Adil, Rseding91, Chlue - Coding help! +DySoch - DyTech, showing me what was possible +Bobingabout - Bob's Mods - Learned a lot from looking at your amazing work. +YuokiTani - Art!! Amazing work! + + +--------------------------------------------------------------------------- +--------------------------------------------------------------------------- +------------------------ On / Off Toggles --------------------------------- +--------------------------------------------------------------------------- +--- true = On / Yes +--- false = Off / No +-- NOTE -- When changing most of the below values, this will only affect new games, not existing games. + +---------------------------------------------------------------------------]] + + +NE.Set_Difficulty = 2 +-- Affects difficulty factor +-- Options: +-- 1 = Normal +-- 2 = Hard +-- Hard is about a 2x factor on everything + + +NE.ExtraLoot = true +--Extra Loot from Aliens (small-alien-artifact) + + +NE.LongReach = false +--- Long Reach +--- Do you want double the vanilla reach + + +NE.SafeRail = false -- +-- If true, rail will have 100% immunity to damage. +-- Currently rail auto repairs itself by default with this mod tough. + + +NE.Spawners = true +-- Changes to the games Spawners and Units +-- Do you want tweaks made to the spawners - Mainly more units around the spawners +-- More units around the spawners +-- Vanilla Spawners will be higher than currently. +-- Bob's will be higher +-- Do you want tweaks made to the games biter & spitters +-- Lower Pollution levels before attacking. +-- New Enemy Units and a new worm +-- Adjusted Resistances of units + + +NE.BioDamage = 15 +-- Able to adjust the damage of the Bio Ammo. +-- Some people complained it was too high... Be warned though, the game is very tough at the end. You're going to need this. + + + +NE.Artifact_Collector_Radius = 30 +-- The radius around the artifact collector that it will grab items. +-- Note: technically it's not a radius, but a square pickup area, but the visual overlay is a circle and not a square. +NE.Artifact_Collector_Item_Count = 8 +-- The number of artifacts that will be collected per sweep. + + +NE.Scorched_Earth = true +-- Turns terrain into desert when you kill an enemy on it. + + +NE.Burning_Buildings = true +-- When an entity is destroyed, it will catch fire. + + +--------- Used for Unit Launcher - Thanks Supercheese for this code :) +-- The result in the right column is the enemy that appears when the enemy in the left column dies. So if a behemoth spitter dies, medium spitters will appear. +-- For spawners, the current evolution factor rounded down to the nearest 10% (though 99% is rounded up to 100%) is used to look up which enemy appears. + +subEnemyNameTable = {} + +subEnemyNameTable["unit-cluster"] = {} +subEnemyNameTable["unit-cluster"][0] = "small-biter" +subEnemyNameTable["unit-cluster"][1] = "small-biter-Mk2" +subEnemyNameTable["unit-cluster"][2] = "small-biter-Mk3" +subEnemyNameTable["unit-cluster"][3] = "medium-biter" +subEnemyNameTable["unit-cluster"][4] = "medium-biter-Mk2" +subEnemyNameTable["unit-cluster"][5] = "medium-biter-Mk3" +subEnemyNameTable["unit-cluster"][6] = "big-biter" +subEnemyNameTable["unit-cluster"][7] = "big-biter-Mk2" +subEnemyNameTable["unit-cluster"][8] = "big-biter-Mk3" +subEnemyNameTable["unit-cluster"][9] = "behemoth-biter" +subEnemyNameTable["unit-cluster"][10] = "behemoth-biter" + + +-- NUMBERS +-- The result in the right column is the number of enemies that appear when the enemy in the left column dies. +-- The current evolution factor rounded down to the nearest 10% is also used to look up which enemy appears. +subEnemyNumberTable = {} + +subEnemyNumberTable["unit-cluster"] = {} +subEnemyNumberTable["unit-cluster"][0] = 2 --small +subEnemyNumberTable["unit-cluster"][1] = 3 --small +subEnemyNumberTable["unit-cluster"][2] = 4 --small +subEnemyNumberTable["unit-cluster"][3] = 2 --medium +subEnemyNumberTable["unit-cluster"][4] = 3 --medium +subEnemyNumberTable["unit-cluster"][5] = 4 --medium +subEnemyNumberTable["unit-cluster"][6] = 2 --big +subEnemyNumberTable["unit-cluster"][7] = 3 --big +subEnemyNumberTable["unit-cluster"][8] = 4 --big +subEnemyNumberTable["unit-cluster"][9] = 2 --behemoth +subEnemyNumberTable["unit-cluster"][10] = 4 --behemoth + + + +----------------------------- END ------------------------------------------- + +NE.QCCode = false +-- Used for QC +-- Displays messages used for checking my code + diff --git a/Natural_Evolution_Enemies_6.3.0/control.lua b/Natural_Evolution_Enemies_6.3.1/control.lua similarity index 96% rename from Natural_Evolution_Enemies_6.3.0/control.lua rename to Natural_Evolution_Enemies_6.3.1/control.lua index aa9237e..84c3d5c 100644 --- a/Natural_Evolution_Enemies_6.3.0/control.lua +++ b/Natural_Evolution_Enemies_6.3.1/control.lua @@ -1,630 +1,630 @@ ----ENEMIES v.6.3.0 -if not NE_Enemies_Config then NE_Enemies_Config = {} end -if not NE_Enemies_Config.mod then NE_Enemies_Config.mod = {} end - - -require ("util") -require ("config") - - ---- Artifact Collector -local interval = 300 -- this is an interval between the consecutive updates of a single collector -local artifactCollectorRadius = NE_Enemies_Config.Artifact_Collector_Radius -local itemCount = NE_Enemies_Config.Artifact_Collector_Item_Count -local chestInventoryIndex = defines.inventory.chest -local filters = {["small-alien-artifact"] = 1, - ["alien-artifact"] = 1, - ["alien-artifact-red"] = 1, - ["alien-artifact-orange"] = 1, - ["alien-artifact-yellow"] = 1, - ["alien-artifact-green"] = 1, - ["alien-artifact-blue"] = 1, - ["alien-artifact-purple"] = 1, - ["small-alien-artifact-red"] = 1, - ["small-alien-artifact-orange"] = 1, - ["small-alien-artifact-yellow"] = 1, - ["small-alien-artifact-green"] = 1, - ["small-alien-artifact-blue"] = 1, - ["small-alien-artifact-purple"] = 1 - } - ---- Scorched Earth -local replaceableTiles = -{ - ["grass"] = "grass-medium", - ["grass-medium"] = "grass-dry", - ["grass-dry"] = "sand", - ["sand"] = "sand-dark", - ["sand-dark"] = "dirt", - ["dirt"] = "dirt-dark" -} -local waterTiles = -{ - ["deepwater"] = true, - ["deepwater-green"] = true, - ["water"] = true, - ["water-green"] = true -} - - --- Auto repair items -local autoRepairType = -{ - ["straight-rail"] = true, - ["curved-rail"] = true, - ["rail-signal"] = true, - ["rail-chain-signal"] = true -} -local autoRepairName = -{ - ["bi-big-wooden-pole"] = true, -} - - --- List of Entities Types that can catch fire if destoyed -local catchFire = -{ - ["furnace"] = true, - ["transport-belt"] = false, - ["boiler"] = false, - ["container"] = false, - ["electric-pole"] = false, - ["generator"] = true, - ["offshore-pump"] = true, - ["inserter"] = true, - ["radar"] = true, - ["lamp"] = false, - ["pipe-to-ground"] = false, - ["assembling-machine"] = true, - ["wall"] = false, - ["underground-belt"] = false, - ["loader"] = true, - ["splitter"] = false, - ["car"] = true, - ["solar-panel"] = true, - ["locomotive"] = true, - ["cargo-wagon"] = true, - ["gate"] = false, - ["lab"] = true, - ["rocket-silo"] = true, - ["roboport"] = true, - ["storage-tank"] = true, - ["pump"] = true, - ["market"] = true, - ["accumulator"] = true, - ["beacon"] = true, - ["mining-drill"] = true, - ["electric-turret"] = true, - ["ammo-turret"] = true, - ["turret"] = false, - ["straight-rail"] = false, - ["curved-rail"] = false, - ["rail-signal"] = false, - ["rail-chain-signal"] = false -} - --- Corpse Size = Fire Size -local corpseSize = -{ - ["furnace"] = "medium-remnants", - ["transport-belt"] = "small-remnants", - ["boiler"] = "small-remnants", - ["container"] = "small-remnants", - ["electric-pole"] = "small-remnants", - ["generator"] = "big-remnants", - ["offshore-pump"] = "small-remnants", - ["inserter"] = "small-remnants", - ["radar"] = "big-remnants", - ["lamp"] = "small-remnants", - ["pipe-to-ground"] = "small-remnants", - ["assembling-machine"] = "big-remnants", - ["wall"] = "small-remnants", - ["underground-belt"] = "small-remnants", - ["loader"] = "small-remnants", - ["splitter"] = "medium-remnants", - ["car"] = "medium-remnants", - ["solar-panel"] = "big-remnants", - ["locomotive"] = "big-remnants", - ["cargo-wagon"] = "medium-remnants", - ["gate"] = "small-remnants", - ["lab"] = "big-remnants", - ["rocket-silo"] = "big-remnants", - ["roboport"] = "big-remnants", - ["storage-tank"] = "medium-remnants", - ["pump"] = "small-remnants", - ["market"] = "big-remnants", - ["accumulator"] = "medium-remnants", - ["beacon"] = "big-remnants", - ["mining-drill"] = "big-remnants", - ["electric-turret"] = "big-remnants", - ["ammo-turret"] = "big-remnants", - ["turret"] = "big-remnants", - ["straight-rail"] = "small-remnants", - ["curved-rail"] = "small-remnants", - ["rail-signal"] = "small-remnants", - ["rail-chain-signal"] = "small-remnants" -} - - ---- Killing Trees -local tree_names = { - ["tree-01"] = true, - ["tree-02"] = true, - ["tree-02-red"] = true, - ["tree-03"] = true, - ["tree-04"] = true, - ["tree-05"] = true, - ["tree-06"] = true, - ["tree-06-brown"] = true, - ["tree-07"] = true, - ["tree-08"] = true, - ["tree-08-brown"] = true, - ["tree-08-red"] = true, - ["tree-09"] = true, - ["tree-09-brown"] = true, - ["tree-09-red"] = true -} - - ---------------------------------------------- -script.on_event({defines.events.on_robot_built_entity,defines.events.on_built_entity,},function(event) On_Built(event) end) -script.on_event({defines.events.on_robot_pre_mined,defines.events.on_preplayer_mined_item,},function(event) On_Remove(event) end) -script.on_event(defines.events.on_entity_died,function(event) On_Death(event) end) - - ---------------------------------------------- -function On_Load() - - if global.ArtifactCollectors ~= nil then - script.on_event(defines.events.on_tick, function(event) ticker(event.tick) end) - end - -end - ---------------------------------------------- -function On_Init() - - --- Used for Unit Turrets - if not global.tick then - global.tick = game.tick - end - - if not global.evoFactorFloor then - if game.evolution_factor > 0.995 then - global.evoFactorFloor = 10 - else - global.evoFactorFloor = math.floor(game.evolution_factor * 10) - end - global.tick = global.tick + 1800 - end - - global.launch_units={}--this is used to define which equipment is put initially - global.launch_units["unit-cluster"] = "unit-cluster" - - if global.ArtifactCollectors ~= nil then - script.on_event(defines.events.on_tick, function(event) ticker(event.tick) end) - global.update_check = true - global.next_collector = global.next_collector or 1 - end - -end - ---------------------------------------------- -function subscribe_ticker(tick) - --this function subscribes handler to on_tick event and also sets global values used by it - --it exists merely for a convenience grouping - script.on_event(defines.events.on_tick,function(event) ticker(event.tick) end) - global.ArtifactCollectors = {} - global.next_check = game.tick + interval - global.next_collector = 1 -end - - - ---------------------------------------------- -script.on_event(defines.events.on_trigger_created_entity, function(event) - --- Unit Cluster created by Worm Launcher Projectile - local ent=event.entity; - if global.launch_units[ent.name] then - writeDebug("Cluster Unit Created") - ent.die() - end - -end) - - ---------------------------------------------- -function On_Built(event) - --- Artifact Collector - local newCollector - - if event.created_entity.name == "Artifact-collector-area" then - local surface = event.created_entity.surface - local force = event.created_entity.force - newCollector = surface.create_entity({name = "Artifact-collector", position = event.created_entity.position, force = force}) - event.created_entity.destroy() - - if global.ArtifactCollectors == nil then - subscribe_ticker(event.tick) - end - table.insert(global.ArtifactCollectors, newCollector) - end - -end - - ---------------------------------------------- -function On_Remove(event) - - --------- Did you really just kill that tree... - if (event.entity.type == "tree") and tree_names[event.entity.name] then - - writeDebug("Tree Mined") - local surface = event.entity.surface - local force = event.entity.force - local radius = 15 - local pos = event.entity.position - local area = {{pos.x - radius, pos.y - radius}, {pos.x + radius, pos.y + radius}} - -- find nearby players - local players = surface.find_entities_filtered{area=area, type="player"} - local attack_chance = math.random(100) - - writeDebug("Attack Chance: "..attack_chance) - writeDebug("Evo Factor: "..math.floor(game.evolution_factor*100)) - if attack_chance < math.floor(game.evolution_factor*100) then - -- send attacks to all nearby players - for i,player in pairs(players) do - player.surface.set_multi_command{command = {type=defines.command.attack, target=player, distraction=defines.distraction.by_enemy},unit_count = (1+math.floor(game.evolution_factor*30)), unit_search_distance = 600} - end - end - - end - - --Artifact collector - if event.entity.name == "Artifact-collector" then - local artifacts = global.ArtifactCollectors; - for i=1,#artifacts do - if artifacts[i] == event.entity then - table.remove(artifacts,i);--yep, that'll remove value from global.ArtifactCollectors - if global.next_collector > (#artifacts) then global.next_collector = (#artifacts) end - break - end - end - if #artifacts == 0 then - --and here artifacts=nil would not cut it. - global.ArtifactCollectors = nil--I'm not sure this wins much, on it's own - script.on_event(defines.events.on_tick, nil); - --but it's surely better done here than during on_tick - end - end - - -end - -function On_Death(event) - - - - --- Buildings catch fire if destroyed. - --if (event.force == game.forces.enemy) and catchFire[event.entity.type] then - if NE_Enemies_Config.Burning_Buildings and catchFire[event.entity.type] then - local surface = event.entity.surface - local force = event.entity.force - local pos = event.entity.position - local e_corpse = corpseSize[event.entity.type] - - writeDebug("Corpse Size: "..e_corpse) - if (force == game.forces.enemy) then - -- do nothing - elseif e_corpse == "medium-remnants" then - surface.create_entity({name="medium-fire-cloud", position=pos, force= "enemy"}) - elseif e_corpse == "big-remnants" then - surface.create_entity({name="big-fire-cloud", position=pos, force= "enemy"}) - else - surface.create_entity({name="small-fire-cloud", position=pos, force= "enemy"}) - end - - end - - --------- If you kill a spawner, enemies will attach you. - if (event.entity.type == "unit-spawner") then - if event.entity.force == game.forces.enemy then - writeDebug("Enemy Spawner Killed") - local surface = event.entity.surface - local force = event.entity.force - local radius = 60 - local pos = event.entity.position - local area = {{pos.x - radius, pos.y - radius}, {pos.x + radius, pos.y + radius}} - - --local boom = surface.create_entity{name = "NE-Acid-explosion", position = pos, force = force} - - -- find nearby players - local players = surface.find_entities_filtered{area=area, type="player"} - - -- send attacks to all nearby players - for i,player in pairs(players) do - player.surface.set_multi_command{command = {type=defines.command.attack, target=player, distraction=defines.distraction.by_enemy},unit_count = (20+math.floor(game.evolution_factor*100)), unit_search_distance = 600} - end - - if NE_Enemies_Config.Scorched_Earth then - Scorched_Earth(surface, pos, 6) - end - - else - writeDebug("Friendly Spawner") - - end - - end - - --------- An Enemy Unit Died - if event.entity.force == game.forces.enemy and (event.entity.type == "unit") then - local surface = event.entity.surface - local pos = event.entity.position - - if NE_Enemies_Config.Scorched_Earth then - Scorched_Earth(surface, pos, 2) - end - end - - - --------- Did you really just kill that tree... - if (event.entity.type == "tree") and tree_names[event.entity.name] then - writeDebug("Tree Killed") - local surface = event.entity.surface - local force = event.entity.force - local radius = 15 - local pos = event.entity.position - local area = {{pos.x - radius, pos.y - radius}, {pos.x + radius, pos.y + radius}} - -- find nearby players - local players = surface.find_entities_filtered{area=area, type="player"} - local attack_chance = math.random(100) - - writeDebug("Attack Chance: "..attack_chance) - writeDebug("Evo Factor: "..math.floor(game.evolution_factor*100)) - if attack_chance < math.floor(game.evolution_factor*100) then - -- send attacks to all nearby players - for i,player in pairs(players) do - player.surface.set_multi_command{command = {type=defines.command.attack, target=player, distraction=defines.distraction.by_enemy},unit_count = (1+math.floor(game.evolution_factor*30)), unit_search_distance = 600} - end - end - end - - ---- Unit Launcher - if global.tick < event.tick then - if game.evolution_factor > 0.995 then - global.evoFactorFloor = 10 - else - global.evoFactorFloor = math.floor(game.evolution_factor * 10) - end - global.tick = global.tick + 1800 - end - - if (event.entity.name == "unit-cluster") then - SpawnLaunchedUnits(event.entity) - end - - - --Artifact collector - if event.entity.name == "Artifact-collector" then - local artifacts=global.ArtifactCollectors; - for i=1,#artifacts do - if artifacts[i] == event.entity then - table.remove(artifacts,i);--yep, that'll remove value from global.ArtifactCollectors - if global.next_collector > (#artifacts) then global.next_collector = (#artifacts) end - break - end - end - if #artifacts == 0 then - --and here artifacts=nil would not cut it. - global.ArtifactCollectors = nil--I'm not sure this wins much, on it's own - script.on_event(defines.events.on_tick, nil); - --but it's surely better done here than during on_tick - end - end - - - - -- auto repair things like rails, and signals. Also by destroying the entity the enemy retargets. - if (event.force == game.forces.enemy) and (autoRepairType[event.entity.type] or autoRepairName[event.entity.name]) then - local repairPosition = event.entity.position - local repairName = event.entity.name - local repairForce = event.entity.force - local repairDirection = event.entity.direction - event.entity.destroy() - local entityRepaired = game.surfaces[1].create_entity({position=repairPosition, - name=repairName, - direction=repairDirection, - force=repairForce}) - local enemies = game.surfaces[1].find_entities_filtered({area = {{x=repairPosition.x-20, y=repairPosition.y-20}, - {x=repairPosition.x+20, y=repairPosition.y+20}}, - type = "unit", - force = game.forces.enemy}) - for i=1, #enemies do - local enemy = enemies[i] - enemy.set_command({type=defines.command.wander, - distraction=defines.distraction.by_enemy}) - end - end - - -end - - - ---------------------------------------------- --- Spawn Launched Units -function SpawnLaunchedUnits(enemy) - local subEnemyName = subEnemyNameTable[enemy.name] - if not subEnemyName then - return - end - if subEnemyNameTable[enemy.name][global.evoFactorFloor] then - subEnemyName = subEnemyNameTable[enemy.name][global.evoFactorFloor] - end - local number = subEnemyNumberTable[enemy.name][global.evoFactorFloor] - for i = 1, number do - local subEnemyPosition = enemy.surface.find_non_colliding_position(subEnemyName, enemy.position, 2, 0.5) - if subEnemyPosition then - enemy.surface.create_entity({name = subEnemyName, position = subEnemyPosition, force = game.forces.enemy}) - end - end -end - - ---------------------------------------------- -function ticker(tick) - local player = game.players[1] - --this function provides the smooth handling of all collectors within certain span of time - --it requires global.ArtifactCollectors, global.next_check, global.next_collector to do that - if global.update_check then - global.update_check = false - if global.next_check < game.tick then - global.next_check = game.tick - end - end - - if game.tick == global.next_check then - local collectors=global.ArtifactCollectors - writeDebug(#collectors) - for i=global.next_collector,#collectors,interval do - ProcessCollector(collectors[i]) - end - local time_interval = (collectors[global.next_collector + 1] and 1) or (interval- #collectors + 1) - global.next_collector = (global.next_collector) % (#collectors) + 1 - global.next_check = game.tick + time_interval - end -end - - ---------------------------------------------- -function ProcessCollector(collector) - --This makes collectors collect items. - writeDebug("mod looking for items") - local items - local inventory - items = collector.surface.find_entities_filtered({area = {{x = collector.position.x - artifactCollectorRadius, y = collector.position.y - artifactCollectorRadius}, {x = collector.position.x + artifactCollectorRadius, y = collector.position.y + artifactCollectorRadius}}, name = "item-on-ground"}) - if #items > 0 then - inventory = collector.get_inventory(chestInventoryIndex) - local counter = 0 - for i=1,#items do - local stack = items[i].stack - if filters[stack.name] == 1 and inventory.can_insert(stack) then - inventory.insert(stack) - items[i].destroy() - counter = counter + 1 - if counter == itemCount then - break - end - end - end - end -end - - ---------------------------------------------- -function Scorched_Earth(surface, pos, size) - --- Turn the terrain into desert - local New_tiles = {} - local Water_Nearby_near = false - local Water_Nearby_far = false - local search_size = size + 1 - - for xxx = -size, size do - for yyy = -size, size do - --made local - local new_position = {x = pos.x + xxx,y = pos.y + yyy} - local currentTilename = surface.get_tile(new_position.x, new_position.y).name - writeDebug("The current tile is: " .. currentTilename) - - if waterTiles[currentTilename] then - Water_Nearby_near = true - --added break to stop this loop - break - --replaced if with elseif - elseif replaceableTiles[currentTilename] then - table.insert(New_tiles, {name=replaceableTiles[currentTilename], position=new_position}) - end - end - --if water nearby then stop loop - if Water_Nearby_near then - break - end - - for xxx = -(search_size), (search_size) do - for yyy = -(search_size), (search_size) do - --no need to go through the tiles you already checked above - --so only check tiles that are outside the square that was checked in the above for loops - if xxx < -size or xxx > size or - yyy < -size or yyy > size then - --made local - local new_position = {x = pos.x + xxx,y = pos.y + yyy} - local currentTilename = surface.get_tile(new_position.x, new_position.y).name - - if waterTiles[currentTilename] then - Water_Nearby_near = true - --added break to stop this loop - break - end - end - end - --if water nearby then stop loop - if Water_Nearby_near then - break - end - end - - end - - if Water_Nearby_near then - -- Water found, so don't replace any tiles. - --surface.set_tiles(New_tiles, false) - else - for xxx = -(search_size+5), (search_size+5) do - for yyy = -(search_size+5), (search_size+5) do - --no need to go through the tiles you already checked above - --so only check tiles that are outside the square that was checked in the above for loops - if xxx < -search_size or xxx > search_size or - yyy < -search_size or yyy > search_size then - --made local - local new_position = {x = pos.x + xxx,y = pos.y + yyy} - local currentTilename = surface.get_tile(new_position.x, new_position.y).name - - if waterTiles[currentTilename] then - Water_Nearby_far = true - --added break to stop this loop - break - end - end - end - --if water nearby then stop loop - if Water_Nearby_far then - break - end - end - - if Water_Nearby_far then - surface.set_tiles(New_tiles, false) - else - surface.set_tiles(New_tiles) - end - end -end - ----------------------------------------- - -script.on_load(On_Load) -script.on_configuration_changed(On_Init) -script.on_init(On_Init) - ---------------------------------------------- ---- DeBug Messages -function writeDebug(message) - if NE_Enemies_Config.QCCode then - for i, player in pairs(game.players) do - player.print(tostring(message)) - end - end -end - - +---ENEMIES v.6.3.1 +if not NE_Enemies_Config then NE_Enemies_Config = {} end +if not NE_Enemies_Config.mod then NE_Enemies_Config.mod = {} end + + +require ("util") +require ("config") + + +--- Artifact Collector +local interval = 300 -- this is an interval between the consecutive updates of a single collector +local artifactCollectorRadius = NE_Enemies_Config.Artifact_Collector_Radius +local itemCount = NE_Enemies_Config.Artifact_Collector_Item_Count +local chestInventoryIndex = defines.inventory.chest +local filters = {["small-alien-artifact"] = 1, + ["alien-artifact"] = 1, + ["alien-artifact-red"] = 1, + ["alien-artifact-orange"] = 1, + ["alien-artifact-yellow"] = 1, + ["alien-artifact-green"] = 1, + ["alien-artifact-blue"] = 1, + ["alien-artifact-purple"] = 1, + ["small-alien-artifact-red"] = 1, + ["small-alien-artifact-orange"] = 1, + ["small-alien-artifact-yellow"] = 1, + ["small-alien-artifact-green"] = 1, + ["small-alien-artifact-blue"] = 1, + ["small-alien-artifact-purple"] = 1 + } + +--- Scorched Earth +local replaceableTiles = +{ + ["grass"] = "grass-medium", + ["grass-medium"] = "grass-dry", + ["grass-dry"] = "sand", + ["sand"] = "sand-dark", + ["sand-dark"] = "dirt", + ["dirt"] = "dirt-dark" +} +local waterTiles = +{ + ["deepwater"] = true, + ["deepwater-green"] = true, + ["water"] = true, + ["water-green"] = true +} + + +-- Auto repair items +local autoRepairType = +{ + ["straight-rail"] = true, + ["curved-rail"] = true, + ["rail-signal"] = true, + ["rail-chain-signal"] = true +} +local autoRepairName = +{ + ["bi-big-wooden-pole"] = true, +} + + +-- List of Entities Types that can catch fire if destoyed +local catchFire = +{ + ["furnace"] = true, + ["transport-belt"] = false, + ["boiler"] = false, + ["container"] = false, + ["electric-pole"] = false, + ["generator"] = true, + ["offshore-pump"] = true, + ["inserter"] = true, + ["radar"] = true, + ["lamp"] = false, + ["pipe-to-ground"] = false, + ["assembling-machine"] = true, + ["wall"] = false, + ["underground-belt"] = false, + ["loader"] = true, + ["splitter"] = false, + ["car"] = true, + ["solar-panel"] = true, + ["locomotive"] = true, + ["cargo-wagon"] = true, + ["gate"] = false, + ["lab"] = true, + ["rocket-silo"] = true, + ["roboport"] = true, + ["storage-tank"] = true, + ["pump"] = true, + ["market"] = true, + ["accumulator"] = true, + ["beacon"] = true, + ["mining-drill"] = true, + ["electric-turret"] = true, + ["ammo-turret"] = true, + ["turret"] = false, + ["straight-rail"] = false, + ["curved-rail"] = false, + ["rail-signal"] = false, + ["rail-chain-signal"] = false +} + +-- Corpse Size = Fire Size +local corpseSize = +{ + ["furnace"] = "medium-remnants", + ["transport-belt"] = "small-remnants", + ["boiler"] = "small-remnants", + ["container"] = "small-remnants", + ["electric-pole"] = "small-remnants", + ["generator"] = "big-remnants", + ["offshore-pump"] = "small-remnants", + ["inserter"] = "small-remnants", + ["radar"] = "big-remnants", + ["lamp"] = "small-remnants", + ["pipe-to-ground"] = "small-remnants", + ["assembling-machine"] = "big-remnants", + ["wall"] = "small-remnants", + ["underground-belt"] = "small-remnants", + ["loader"] = "small-remnants", + ["splitter"] = "medium-remnants", + ["car"] = "medium-remnants", + ["solar-panel"] = "big-remnants", + ["locomotive"] = "big-remnants", + ["cargo-wagon"] = "medium-remnants", + ["gate"] = "small-remnants", + ["lab"] = "big-remnants", + ["rocket-silo"] = "big-remnants", + ["roboport"] = "big-remnants", + ["storage-tank"] = "medium-remnants", + ["pump"] = "small-remnants", + ["market"] = "big-remnants", + ["accumulator"] = "medium-remnants", + ["beacon"] = "big-remnants", + ["mining-drill"] = "big-remnants", + ["electric-turret"] = "big-remnants", + ["ammo-turret"] = "big-remnants", + ["turret"] = "big-remnants", + ["straight-rail"] = "small-remnants", + ["curved-rail"] = "small-remnants", + ["rail-signal"] = "small-remnants", + ["rail-chain-signal"] = "small-remnants" +} + + +--- Killing Trees +local tree_names = { + ["tree-01"] = true, + ["tree-02"] = true, + ["tree-02-red"] = true, + ["tree-03"] = true, + ["tree-04"] = true, + ["tree-05"] = true, + ["tree-06"] = true, + ["tree-06-brown"] = true, + ["tree-07"] = true, + ["tree-08"] = true, + ["tree-08-brown"] = true, + ["tree-08-red"] = true, + ["tree-09"] = true, + ["tree-09-brown"] = true, + ["tree-09-red"] = true +} + + +--------------------------------------------- +script.on_event({defines.events.on_robot_built_entity,defines.events.on_built_entity,},function(event) On_Built(event) end) +script.on_event({defines.events.on_robot_pre_mined,defines.events.on_preplayer_mined_item,},function(event) On_Remove(event) end) +script.on_event(defines.events.on_entity_died,function(event) On_Death(event) end) + + +--------------------------------------------- +function On_Load() + + if global.ArtifactCollectors ~= nil then + script.on_event(defines.events.on_tick, function(event) ticker(event.tick) end) + end + +end + +--------------------------------------------- +function On_Init() + + --- Used for Unit Turrets + if not global.tick then + global.tick = game.tick + end + + if not global.evoFactorFloor then + if game.evolution_factor > 0.995 then + global.evoFactorFloor = 10 + else + global.evoFactorFloor = math.floor(game.evolution_factor * 10) + end + global.tick = global.tick + 1800 + end + + global.launch_units={}--this is used to define which equipment is put initially + global.launch_units["unit-cluster"] = "unit-cluster" + + if global.ArtifactCollectors ~= nil then + script.on_event(defines.events.on_tick, function(event) ticker(event.tick) end) + global.update_check = true + global.next_collector = global.next_collector or 1 + end + +end + +--------------------------------------------- +function subscribe_ticker(tick) + --this function subscribes handler to on_tick event and also sets global values used by it + --it exists merely for a convenience grouping + script.on_event(defines.events.on_tick,function(event) ticker(event.tick) end) + global.ArtifactCollectors = {} + global.next_check = game.tick + interval + global.next_collector = 1 +end + + + +--------------------------------------------- +script.on_event(defines.events.on_trigger_created_entity, function(event) + --- Unit Cluster created by Worm Launcher Projectile + local ent=event.entity; + if global.launch_units[ent.name] then + writeDebug("Cluster Unit Created") + ent.die() + end + +end) + + +--------------------------------------------- +function On_Built(event) + --- Artifact Collector + local newCollector + + if event.created_entity.name == "Artifact-collector-area" then + local surface = event.created_entity.surface + local force = event.created_entity.force + newCollector = surface.create_entity({name = "Artifact-collector", position = event.created_entity.position, force = force}) + event.created_entity.destroy() + + if global.ArtifactCollectors == nil then + subscribe_ticker(event.tick) + end + table.insert(global.ArtifactCollectors, newCollector) + end + +end + + +--------------------------------------------- +function On_Remove(event) + + --------- Did you really just kill that tree... + if (event.entity.type == "tree") and tree_names[event.entity.name] then + + writeDebug("Tree Mined") + local surface = event.entity.surface + local force = event.entity.force + local radius = 15 + local pos = event.entity.position + local area = {{pos.x - radius, pos.y - radius}, {pos.x + radius, pos.y + radius}} + -- find nearby players + local players = surface.find_entities_filtered{area=area, type="player"} + local attack_chance = math.random(100) + + writeDebug("Attack Chance: "..attack_chance) + writeDebug("Evo Factor: "..math.floor(game.evolution_factor*100)) + if attack_chance < math.floor(game.evolution_factor*100) then + -- send attacks to all nearby players + for i,player in pairs(players) do + player.surface.set_multi_command{command = {type=defines.command.attack, target=player, distraction=defines.distraction.by_enemy},unit_count = (1+math.floor(game.evolution_factor*30)), unit_search_distance = 600} + end + end + + end + + --Artifact collector + if event.entity.name == "Artifact-collector" then + local artifacts = global.ArtifactCollectors; + for i=1,#artifacts do + if artifacts[i] == event.entity then + table.remove(artifacts,i);--yep, that'll remove value from global.ArtifactCollectors + if global.next_collector > (#artifacts) then global.next_collector = (#artifacts) end + break + end + end + if #artifacts == 0 then + --and here artifacts=nil would not cut it. + global.ArtifactCollectors = nil--I'm not sure this wins much, on it's own + script.on_event(defines.events.on_tick, nil); + --but it's surely better done here than during on_tick + end + end + + +end + +function On_Death(event) + + + + --- Buildings catch fire if destroyed. + --if (event.force == game.forces.enemy) and catchFire[event.entity.type] then + if NE_Enemies_Config.Burning_Buildings and catchFire[event.entity.type] then + local surface = event.entity.surface + local force = event.entity.force + local pos = event.entity.position + local e_corpse = corpseSize[event.entity.type] + + writeDebug("Corpse Size: "..e_corpse) + if (force == game.forces.enemy) then + -- do nothing + elseif e_corpse == "medium-remnants" then + surface.create_entity({name="medium-fire-cloud", position=pos, force= "enemy"}) + elseif e_corpse == "big-remnants" then + surface.create_entity({name="big-fire-cloud", position=pos, force= "enemy"}) + else + surface.create_entity({name="small-fire-cloud", position=pos, force= "enemy"}) + end + + end + + --------- If you kill a spawner, enemies will attach you. + if (event.entity.type == "unit-spawner") then + if event.entity.force == game.forces.enemy then + writeDebug("Enemy Spawner Killed") + local surface = event.entity.surface + local force = event.entity.force + local radius = 60 + local pos = event.entity.position + local area = {{pos.x - radius, pos.y - radius}, {pos.x + radius, pos.y + radius}} + + --local boom = surface.create_entity{name = "NE-Acid-explosion", position = pos, force = force} + + -- find nearby players + local players = surface.find_entities_filtered{area=area, type="player"} + + -- send attacks to all nearby players + for i,player in pairs(players) do + player.surface.set_multi_command{command = {type=defines.command.attack, target=player, distraction=defines.distraction.by_enemy},unit_count = (20+math.floor(game.evolution_factor*100)), unit_search_distance = 600} + end + + if NE_Enemies_Config.Scorched_Earth then + Scorched_Earth(surface, pos, 6) + end + + else + writeDebug("Friendly Spawner") + + end + + end + + --------- An Enemy Unit Died + if event.entity.force == game.forces.enemy and (event.entity.type == "unit") then + local surface = event.entity.surface + local pos = event.entity.position + + if NE_Enemies_Config.Scorched_Earth then + Scorched_Earth(surface, pos, 2) + end + end + + + --------- Did you really just kill that tree... + if (event.entity.type == "tree") and tree_names[event.entity.name] then + writeDebug("Tree Killed") + local surface = event.entity.surface + local force = event.entity.force + local radius = 15 + local pos = event.entity.position + local area = {{pos.x - radius, pos.y - radius}, {pos.x + radius, pos.y + radius}} + -- find nearby players + local players = surface.find_entities_filtered{area=area, type="player"} + local attack_chance = math.random(100) + + writeDebug("Attack Chance: "..attack_chance) + writeDebug("Evo Factor: "..math.floor(game.evolution_factor*100)) + if attack_chance < math.floor(game.evolution_factor*100) then + -- send attacks to all nearby players + for i,player in pairs(players) do + player.surface.set_multi_command{command = {type=defines.command.attack, target=player, distraction=defines.distraction.by_enemy},unit_count = (1+math.floor(game.evolution_factor*30)), unit_search_distance = 600} + end + end + end + + ---- Unit Launcher + if global.tick < event.tick then + if game.evolution_factor > 0.995 then + global.evoFactorFloor = 10 + else + global.evoFactorFloor = math.floor(game.evolution_factor * 10) + end + global.tick = global.tick + 1800 + end + + if (event.entity.name == "unit-cluster") then + SpawnLaunchedUnits(event.entity) + end + + + --Artifact collector + if event.entity.name == "Artifact-collector" then + local artifacts=global.ArtifactCollectors; + for i=1,#artifacts do + if artifacts[i] == event.entity then + table.remove(artifacts,i);--yep, that'll remove value from global.ArtifactCollectors + if global.next_collector > (#artifacts) then global.next_collector = (#artifacts) end + break + end + end + if #artifacts == 0 then + --and here artifacts=nil would not cut it. + global.ArtifactCollectors = nil--I'm not sure this wins much, on it's own + script.on_event(defines.events.on_tick, nil); + --but it's surely better done here than during on_tick + end + end + + + + -- auto repair things like rails, and signals. Also by destroying the entity the enemy retargets. + if (event.force == game.forces.enemy) and (autoRepairType[event.entity.type] or autoRepairName[event.entity.name]) then + local repairPosition = event.entity.position + local repairName = event.entity.name + local repairForce = event.entity.force + local repairDirection = event.entity.direction + event.entity.destroy() + local entityRepaired = game.surfaces[1].create_entity({position=repairPosition, + name=repairName, + direction=repairDirection, + force=repairForce}) + local enemies = game.surfaces[1].find_entities_filtered({area = {{x=repairPosition.x-20, y=repairPosition.y-20}, + {x=repairPosition.x+20, y=repairPosition.y+20}}, + type = "unit", + force = game.forces.enemy}) + for i=1, #enemies do + local enemy = enemies[i] + enemy.set_command({type=defines.command.wander, + distraction=defines.distraction.by_enemy}) + end + end + + +end + + + +--------------------------------------------- +-- Spawn Launched Units +function SpawnLaunchedUnits(enemy) + local subEnemyName = subEnemyNameTable[enemy.name] + if not subEnemyName then + return + end + if subEnemyNameTable[enemy.name][global.evoFactorFloor] then + subEnemyName = subEnemyNameTable[enemy.name][global.evoFactorFloor] + end + local number = subEnemyNumberTable[enemy.name][global.evoFactorFloor] + for i = 1, number do + local subEnemyPosition = enemy.surface.find_non_colliding_position(subEnemyName, enemy.position, 2, 0.5) + if subEnemyPosition then + enemy.surface.create_entity({name = subEnemyName, position = subEnemyPosition, force = game.forces.enemy}) + end + end +end + + +--------------------------------------------- +function ticker(tick) + local player = game.players[1] + --this function provides the smooth handling of all collectors within certain span of time + --it requires global.ArtifactCollectors, global.next_check, global.next_collector to do that + if global.update_check then + global.update_check = false + if global.next_check < game.tick then + global.next_check = game.tick + end + end + + if game.tick == global.next_check then + local collectors=global.ArtifactCollectors + writeDebug(#collectors) + for i=global.next_collector,#collectors,interval do + ProcessCollector(collectors[i]) + end + local time_interval = (collectors[global.next_collector + 1] and 1) or (interval- #collectors + 1) + global.next_collector = (global.next_collector) % (#collectors) + 1 + global.next_check = game.tick + time_interval + end +end + + +--------------------------------------------- +function ProcessCollector(collector) + --This makes collectors collect items. + writeDebug("mod looking for items") + local items + local inventory + items = collector.surface.find_entities_filtered({area = {{x = collector.position.x - artifactCollectorRadius, y = collector.position.y - artifactCollectorRadius}, {x = collector.position.x + artifactCollectorRadius, y = collector.position.y + artifactCollectorRadius}}, name = "item-on-ground"}) + if #items > 0 then + inventory = collector.get_inventory(chestInventoryIndex) + local counter = 0 + for i=1,#items do + local stack = items[i].stack + if filters[stack.name] == 1 and inventory.can_insert(stack) then + inventory.insert(stack) + items[i].destroy() + counter = counter + 1 + if counter == itemCount then + break + end + end + end + end +end + + +--------------------------------------------- +function Scorched_Earth(surface, pos, size) + --- Turn the terrain into desert + local New_tiles = {} + local Water_Nearby_near = false + local Water_Nearby_far = false + local search_size = size + 1 + + for xxx = -size, size do + for yyy = -size, size do + --made local + local new_position = {x = pos.x + xxx,y = pos.y + yyy} + local currentTilename = surface.get_tile(new_position.x, new_position.y).name + writeDebug("The current tile is: " .. currentTilename) + + if waterTiles[currentTilename] then + Water_Nearby_near = true + --added break to stop this loop + break + --replaced if with elseif + elseif replaceableTiles[currentTilename] then + table.insert(New_tiles, {name=replaceableTiles[currentTilename], position=new_position}) + end + end + --if water nearby then stop loop + if Water_Nearby_near then + break + end + + for xxx = -(search_size), (search_size) do + for yyy = -(search_size), (search_size) do + --no need to go through the tiles you already checked above + --so only check tiles that are outside the square that was checked in the above for loops + if xxx < -size or xxx > size or + yyy < -size or yyy > size then + --made local + local new_position = {x = pos.x + xxx,y = pos.y + yyy} + local currentTilename = surface.get_tile(new_position.x, new_position.y).name + + if waterTiles[currentTilename] then + Water_Nearby_near = true + --added break to stop this loop + break + end + end + end + --if water nearby then stop loop + if Water_Nearby_near then + break + end + end + + end + + if Water_Nearby_near then + -- Water found, so don't replace any tiles. + --surface.set_tiles(New_tiles, false) + else + for xxx = -(search_size+5), (search_size+5) do + for yyy = -(search_size+5), (search_size+5) do + --no need to go through the tiles you already checked above + --so only check tiles that are outside the square that was checked in the above for loops + if xxx < -search_size or xxx > search_size or + yyy < -search_size or yyy > search_size then + --made local + local new_position = {x = pos.x + xxx,y = pos.y + yyy} + local currentTilename = surface.get_tile(new_position.x, new_position.y).name + + if waterTiles[currentTilename] then + Water_Nearby_far = true + --added break to stop this loop + break + end + end + end + --if water nearby then stop loop + if Water_Nearby_far then + break + end + end + + if Water_Nearby_far then + surface.set_tiles(New_tiles, false) + else + surface.set_tiles(New_tiles) + end + end +end + +---------------------------------------- + +script.on_load(On_Load) +script.on_configuration_changed(On_Init) +script.on_init(On_Init) + +--------------------------------------------- +--- DeBug Messages +function writeDebug(message) + if NE_Enemies_Config.QCCode then + for i, player in pairs(game.players) do + player.print(tostring(message)) + end + end +end + + diff --git a/Natural_Evolution_Enemies_6.3.0/data-updates.lua b/Natural_Evolution_Enemies_6.3.1/data-updates.lua similarity index 97% rename from Natural_Evolution_Enemies_6.3.0/data-updates.lua rename to Natural_Evolution_Enemies_6.3.1/data-updates.lua index 046327a..d93ecea 100644 --- a/Natural_Evolution_Enemies_6.3.0/data-updates.lua +++ b/Natural_Evolution_Enemies_6.3.1/data-updates.lua @@ -1,324 +1,324 @@ - - -require ("config") -require ("libs.detectmod") --Detect supported Mods, Bob's Enemies and others -require ("libs.legacy") -- From Bob's Libary -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 ("prototypes.Vanilla_Changes.Settings") - - ---- Got tierd of reaching limits... -if NE_Enemies_Config.LongReach or NE_Enemies_Config.QCCode then - if data.raw.player.player.build_distance < 24 then - data.raw.player.player.build_distance = 24 - data.raw.player.player.reach_distance = 20 - data.raw.player.player.reach_resource_distance = 20 - data.raw.player.player.drop_item_distance = 20 - end -end - -if data.raw.player.player.loot_pickup_distance < 4 then - data.raw.player.player.loot_pickup_distance = 4 -- default 2 -end - -if data.raw.player.player.running_speed < 0.15 then - data.raw.player.player.running_speed = 0.25 -- default 0.15 -end - -data.raw.player.player.healing_per_tick = 0.005 -- default 0.01 - - - - ---- Difficulty settings - if NE_Difficulty == nil then - NE_Difficulty = 1 - end - - if NE_Enemies_Config.Set_Difficulty == 1 then - NE_Difficulty = 1 -- Normal difficulty - else NE_Difficulty = 2 -- Hard difficulty - end - ------ Update the Alien Atrifact Graphic -data.raw.item["alien-artifact"].icon = "__Natural_Evolution_Enemies__/graphics/icons/alien-artifact.png" - - ---- Bob's Enemies - Update the Small Artifact Recipe. -if NE_Enemies_Config.mod.BobEnemies and NE_Enemies_Config.ExtraLoot then - - thxbob.lib.remove_recipe_item ("alien-artifact-from-small", "small-alien-artifact") - thxbob.lib.add_new_recipe_item ("alien-artifact-from-small", {type="item", name="small-alien-artifact", amount=100}) - -end - - - --- SupremeWarfare_1.0.5 - Update the Small Artifact Recipe. -if NE_Enemies_Config.mod.SupremeWarfare and NE_Enemies_Config.ExtraLoot then - - thxbob.lib.remove_recipe_item ("alien-artifact", "small-alien-artifact") - thxbob.lib.add_new_recipe_item ("alien-artifact", {type="item", name="small-alien-artifact", amount=100}) - -end - - - - -if NE_Enemies_Config.Spawners then - --Add resistances to entities. - -- Poison - NE_Functions.Add_Damage_Resists("poison",data.raw["wall"],(25/NE_Difficulty)) - NE_Functions.Add_Damage_Resists("poison",data.raw["gate"],(25/NE_Difficulty)) - NE_Functions.Add_Damage_Resists("poison",data.raw["car"],(25/NE_Difficulty)) - NE_Functions.Add_Damage_Resists("poison",data.raw["electric-pole"],100) - NE_Functions.Add_Damage_Resists("poison",data.raw["turret"],(25/NE_Difficulty)) - NE_Functions.Add_Damage_Resists("poison",data.raw["ammo-turret"],(25/NE_Difficulty)) - NE_Functions.Add_Damage_Resists("poison",data.raw["electric-turret"],(25/NE_Difficulty)) - NE_Functions.Add_Damage_Resists("poison",data.raw["inserter"],(25/NE_Difficulty)) - - -- Acid - NE_Functions.Add_Damage_Resists("acid",data.raw["wall"],(25/NE_Difficulty)) - NE_Functions.Add_Damage_Resists("acid",data.raw["gate"],(25/NE_Difficulty)) - NE_Functions.Add_Damage_Resists("acid",data.raw["car"],(25/NE_Difficulty)) - NE_Functions.Add_Damage_Resists("acid",data.raw["electric-pole"],100) - NE_Functions.Add_Damage_Resists("acid",data.raw["turret"],(25/NE_Difficulty)) - NE_Functions.Add_Damage_Resists("acid",data.raw["ammo-turret"],(25/NE_Difficulty)) - NE_Functions.Add_Damage_Resists("acid",data.raw["electric-turret"],(25/NE_Difficulty)) - NE_Functions.Add_Damage_Resists("acid",data.raw["transport-belt"],(25/NE_Difficulty)) - NE_Functions.Add_Damage_Resists("acid",data.raw["inserter"],(25/NE_Difficulty)) - - NE_Functions.Add_ALL_Damage_Resists(data.raw["electric-pole"],15) - - if data.raw.inserter["combat-inserter"] then - for k, v in pairs(data.raw["damage-type"]) do - local Resist = {type = v.name, percent = 70} -- or you could use k, and not v.name - - if data.raw.inserter["combat-inserter"].resistances == nil then - data.raw.inserter["combat-inserter"].resistances = {} - table.insert(data.raw.inserter["combat-inserter"].resistances, Resist) - else - local found = false - for _, resistance in pairs(data.raw.inserter["combat-inserter"].resistances) do - if resistance.type == Resist.type and resistance.percent > Resist.percent then - found = true - break - elseif resistance.type == Resist.type and resistance.percent < Resist.percent then - found = true - table.insert(data.raw.inserter["combat-inserter"].resistances, Resist) - break - end - end - - if not found then - table.insert(data.raw.inserter["combat-inserter"].resistances, Resist) - end - - end - - end - end - - if NE_Enemies_Config.SafeRail then - --- Make Rail immune to damage - NE_Functions.Add_ALL_Damage_Resists(data.raw["straight-rail"],100) - NE_Functions.Add_ALL_Damage_Resists(data.raw["curved-rail"],100) - NE_Functions.Add_ALL_Damage_Resists(data.raw["rail-signal"],100) - NE_Functions.Add_ALL_Damage_Resists(data.raw["rail-chain-signal"],100) - NE_Functions.Add_ALL_Damage_Resists(data.raw["train-stop"],100) - end - - -end - - - -if NE_Enemies_Config.mod.NEBuildings then - ----- Adds in Building Materials and Thumper to Tech Tree, since Alien Understanding Tech is in both Buildings and Enemies. - ---- Make sure that the Artifact-collector and Biological-bullet-magazine are present, since the tech is in NE Enemies and NE Buildings. - thxbob.lib.add_technology_recipe ("AlienUnderstanding", "Building_Materials") - thxbob.lib.add_technology_recipe ("AlienUnderstanding-2", "Thumper") - - thxbob.lib.remove_recipe_item ("Biological-bullet-magazine", "alien-artifact") - thxbob.lib.remove_recipe_item ("Biological-bullet-magazine", "sulfuric-acid") - thxbob.lib.add_new_recipe_item ("Biological-bullet-magazine", {type="fluid", name="NE_alien_toxin", amount=10}) - -end - -if NE_Enemies_Config.Spawners then --------- New Units - - require "prototypes.Vanilla_Changes.New_Biter_Units" - require "prototypes.Vanilla_Changes.Biter_Evolution" - require "prototypes.Vanilla_Changes.New_Spitter_Units" - require "prototypes.Vanilla_Changes.Spitter_Evolution" - -end - - ---- Extra Loot - Small Alient Atrifacts -if NE_Enemies_Config.ExtraLoot then - require("prototypes.Extra_Loot.item") - require("prototypes.Extra_Loot.recipe") - require("prototypes.Extra_Loot.extra_loot") -end - - - ----- Spawner Modifications ---------------------------------------- -if NE_Enemies_Config.Spawners then - - --- Biter Spawner Adjustments - data.raw["unit-spawner"]["biter-spawner"].max_count_of_owned_units = 15 + 15 * NE_Difficulty - data.raw["unit-spawner"]["biter-spawner"].max_friends_around_to_spawn = 25 + 15 * NE_Difficulty - data.raw["unit-spawner"]["biter-spawner"].spawning_cooldown = {(200+100/NE_Difficulty), (100+50/NE_Difficulty)} - data.raw["unit-spawner"]["biter-spawner"].max_health = 500 + (1000 * NE_Difficulty) - data.raw["unit-spawner"]["biter-spawner"].resistances = Resistances.Spawner - data.raw["unit-spawner"]["biter-spawner"].spawning_radius = 25 - data.raw["unit-spawner"]["biter-spawner"].spawning_spacing = 2 - data.raw["unit-spawner"]["biter-spawner"].pollution_absorbtion_absolute = 15 - data.raw["unit-spawner"]["biter-spawner"].pollution_absorbtion_proportional = 0.005 - - -- Spitter Spawner Adjustments - data.raw["unit-spawner"]["spitter-spawner"].max_count_of_owned_units = 10 + 10 * NE_Difficulty - data.raw["unit-spawner"]["spitter-spawner"].max_friends_around_to_spawn = 15 + 15 * NE_Difficulty - data.raw["unit-spawner"]["spitter-spawner"].spawning_cooldown = {(300+100/NE_Difficulty), (100+80/NE_Difficulty)} - data.raw["unit-spawner"]["spitter-spawner"].max_health = 1000 + (1000 * NE_Difficulty) - data.raw["unit-spawner"]["spitter-spawner"].resistances = Resistances.Spawner - data.raw["unit-spawner"]["spitter-spawner"].spawning_radius = 20 - data.raw["unit-spawner"]["spitter-spawner"].spawning_spacing = 2 - data.raw["unit-spawner"]["spitter-spawner"].pollution_absorbtion_absolute = 15 - data.raw["unit-spawner"]["spitter-spawner"].pollution_absorbtion_proportional = 0.005 - - - - -- Bob's Enemies Modifications - if NE_Enemies_Config.mod.BobEnemies then - -- Bob's Biter Spawner Adjustments - data.raw["unit-spawner"]["bob-biter-spawner"].max_count_of_owned_units = 15 + 15 * NE_Difficulty - data.raw["unit-spawner"]["bob-biter-spawner"].max_friends_around_to_spawn = 25 + 15 * NE_Difficulty - data.raw["unit-spawner"]["bob-biter-spawner"].spawning_cooldown = {(200+100/NE_Difficulty), (100+50/NE_Difficulty)} - data.raw["unit-spawner"]["bob-biter-spawner"].max_health = 500 + (1000 * NE_Difficulty) - data.raw["unit-spawner"]["bob-biter-spawner"].resistances = Resistances.Spawner - data.raw["unit-spawner"]["bob-biter-spawner"].spawning_radius = 25 - data.raw["unit-spawner"]["bob-biter-spawner"].spawning_spacing = 2 - data.raw["unit-spawner"]["bob-biter-spawner"].pollution_absorbtion_absolute = 15 - data.raw["unit-spawner"]["bob-biter-spawner"].pollution_absorbtion_proportional = 0.005 - - - -- Bob's Spitter Spawner Adjustments - data.raw["unit-spawner"]["bob-spitter-spawner"].max_count_of_owned_units = 10 + 10 * NE_Difficulty - data.raw["unit-spawner"]["bob-spitter-spawner"].max_friends_around_to_spawn = 15 + 15 * NE_Difficulty - data.raw["unit-spawner"]["bob-spitter-spawner"].spawning_cooldown = {(300+100/NE_Difficulty), (100+80/NE_Difficulty)} - data.raw["unit-spawner"]["bob-spitter-spawner"].max_health = 1000 + (1000 * NE_Difficulty) - data.raw["unit-spawner"]["bob-spitter-spawner"].resistances = Resistances.Spawner - data.raw["unit-spawner"]["bob-spitter-spawner"].spawning_radius = 20 - data.raw["unit-spawner"]["bob-spitter-spawner"].spawning_spacing = 2 - data.raw["unit-spawner"]["bob-spitter-spawner"].pollution_absorbtion_absolute = 15 - data.raw["unit-spawner"]["bob-spitter-spawner"].pollution_absorbtion_proportional = 0.005 - end - -end ----- END Spawner Modifications ---------------------------------------- - - - ----- Biter & Spitter Modifications -------------------------------- -if NE_Enemies_Config.Spawners then - - -- Vanilla Unit Adjustments - data.raw["unit"]["small-biter"].resistances = Resistances.Small_Biter - data.raw["unit"]["small-biter"].max_health = Health.Small_Biter - data.raw["unit"]["small-biter"].ammo_type = Damage.Small_Biter - - data.raw["unit"]["medium-biter"].resistances = Resistances.Medium_Biter - data.raw["unit"]["medium-biter"].max_health = Health.Medium_Biter - data.raw["unit"]["medium-biter"].ammo_type = Damage.Medium_Biter - data.raw["unit"]["medium-biter"].pollution_to_join_attack = 800 - - data.raw["unit"]["big-biter"].resistances = Resistances.Big_Biter - data.raw["unit"]["big-biter"].max_health = Health.Big_Biter - data.raw["unit"]["big-biter"].ammo_type = Damage.Big_Biter - data.raw["unit"]["big-biter"].pollution_to_join_attack = 1000 - - data.raw["unit"]["behemoth-biter"].resistances = Resistances.Behemoth_Biter - data.raw["unit"]["behemoth-biter"].max_health = Health.Behemoth_Biter - data.raw["unit"]["behemoth-biter"].ammo_type = Damage.Behemoth_Biter - data.raw["unit"]["behemoth-biter"].pollution_to_join_attack = 2500 - - - --- Vanilla Spitter Units - data.raw["unit"]["small-spitter"].resistances = Resistances.Small_Spitter - data.raw["unit"]["small-spitter"].max_health = Health.Small_Spitter - - - data.raw["unit"]["medium-spitter"].resistances = Resistances.Medium_Spitter - data.raw["unit"]["medium-spitter"].max_health = Health.Medium_Spitter - - data.raw["unit"]["big-spitter"].resistances = Resistances.Big_Spitter - data.raw["unit"]["big-spitter"].max_health = Health.Big_Spitter - data.raw["unit"]["big-spitter"].pollution_to_join_attack = 1200 - - data.raw["unit"]["behemoth-spitter"].resistances = Resistances.Behemoth_Spitter - data.raw["unit"]["behemoth-spitter"].max_health = Health.Behemoth_Spitter - data.raw["unit"]["behemoth-spitter"].pollution_to_join_attack = 5000 - - -- Worms - --data.raw["turret"]["small-worm-turret"].attack_parameters.ammo_type.action.action_delivery.projectile = "Infected-Projectile-Worm" -- Testing - data.raw["turret"]["small-worm-turret"].max_health = Health.Small_Worm - data.raw["turret"]["small-worm-turret"].attack_parameters.range = 17 + NE_Difficulty - data.raw["turret"]["small-worm-turret"].resistances = Resistances.Small_Worm - - data.raw["turret"]["medium-worm-turret"].attack_parameters.ammo_type.action.action_delivery.projectile = "Infected-Projectile-Worm" - data.raw["turret"]["medium-worm-turret"].max_health = Health.Medium_Worm - data.raw["turret"]["medium-worm-turret"].attack_parameters.range = 20 + NE_Difficulty - data.raw["turret"]["medium-worm-turret"].resistances = Resistances.Medium_Worm - data.raw["turret"]["medium-worm-turret"].call_for_help_radius = 60 - - data.raw["turret"]["big-worm-turret"].attack_parameters.ammo_type.action.action_delivery.projectile = "Mutated-Projectile-Worm" - data.raw["turret"]["big-worm-turret"].max_health = Health.Big_Worm - data.raw["turret"]["big-worm-turret"].attack_parameters.range = 25 + NE_Difficulty - data.raw["turret"]["big-worm-turret"].resistances = Resistances.Big_Worm - data.raw["turret"]["big-worm-turret"].call_for_help_radius = 120 - - - --- Bob's Enemies Modifications - if NE_Enemies_Config.mod.BobEnemies then - data.raw["unit"]["bob-big-piercing-biter"].pollution_to_join_attack = 1000 - data.raw["unit"]["bob-huge-acid-biter"].pollution_to_join_attack = 2000 - data.raw["unit"]["bob-huge-explosive-biter"].pollution_to_join_attack = 3000 - data.raw["unit"]["bob-giant-poison-biter"].pollution_to_join_attack = 4000 - data.raw["unit"]["bob-giant-fire-biter"].pollution_to_join_attack = 5000 - data.raw["unit"]["bob-titan-biter"].pollution_to_join_attack = 6000 - data.raw["unit"]["bob-behemoth-biter"].pollution_to_join_attack = 7000 - data.raw["unit"]["bob-leviathan-biter"].pollution_to_join_attack = 8000 - - data.raw["unit"]["bob-big-electric-spitter"].pollution_to_join_attack = 1500 - data.raw["unit"]["bob-huge-explosive-spitter"].pollution_to_join_attack = 2500 - data.raw["unit"]["bob-huge-acid-spitter"].pollution_to_join_attack = 3500 - data.raw["unit"]["bob-giant-fire-spitter"].pollution_to_join_attack = 4500 - data.raw["unit"]["bob-giant-poison-spitter"].pollution_to_join_attack = 5500 - data.raw["unit"]["bob-titan-spitter"].pollution_to_join_attack = 6500 - data.raw["unit"]["bob-behemoth-spitter"].pollution_to_join_attack = 7500 - data.raw["unit"]["bob-leviathan-spitter"].pollution_to_join_attack = 8500 - - --- Bob's Worms - data.raw["turret"]["bob-big-explosive-worm-turret"].call_for_help_radius = 120 - data.raw["turret"]["bob-big-fire-worm-turret"].call_for_help_radius = 120 - data.raw["turret"]["bob-big-poison-worm-turret"].call_for_help_radius = 120 - data.raw["turret"]["bob-big-piercing-worm-turret"].call_for_help_radius = 120 - data.raw["turret"]["bob-big-electric-worm-turret"].call_for_help_radius = 120 - data.raw["turret"]["bob-giant-worm-turret"].call_for_help_radius = 200 - - if NE_Enemies_Config.Spawners then - require "prototypes.Vanilla_Changes.Bobs_Spawners" - end - - end - -end ----- END Biter & Spitter Modifications -------------------------------- - + + +require ("config") +require ("libs.detectmod") --Detect supported Mods, Bob's Enemies and others +require ("libs.legacy") -- From Bob's Libary +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 ("prototypes.Vanilla_Changes.Settings") + + +--- Got tierd of reaching limits... +if NE_Enemies_Config.LongReach or NE_Enemies_Config.QCCode then + if data.raw.player.player.build_distance < 24 then + data.raw.player.player.build_distance = 24 + data.raw.player.player.reach_distance = 20 + data.raw.player.player.reach_resource_distance = 20 + data.raw.player.player.drop_item_distance = 20 + end +end + +if data.raw.player.player.loot_pickup_distance < 4 then + data.raw.player.player.loot_pickup_distance = 4 -- default 2 +end + +if data.raw.player.player.running_speed < 0.15 then + data.raw.player.player.running_speed = 0.25 -- default 0.15 +end + +data.raw.player.player.healing_per_tick = 0.005 -- default 0.01 + + + + +--- Difficulty settings + if NE_Difficulty == nil then + NE_Difficulty = 1 + end + + if NE_Enemies_Config.Set_Difficulty == 1 then + NE_Difficulty = 1 -- Normal difficulty + else NE_Difficulty = 2 -- Hard difficulty + end + +----- Update the Alien Atrifact Graphic +data.raw.item["alien-artifact"].icon = "__Natural_Evolution_Enemies__/graphics/icons/alien-artifact.png" + + +--- Bob's Enemies - Update the Small Artifact Recipe. +if NE_Enemies_Config.mod.BobEnemies and NE_Enemies_Config.ExtraLoot then + + thxbob.lib.remove_recipe_item ("alien-artifact-from-small", "small-alien-artifact") + thxbob.lib.add_new_recipe_item ("alien-artifact-from-small", {type="item", name="small-alien-artifact", amount=100}) + +end + + + --- SupremeWarfare_1.0.5 - Update the Small Artifact Recipe. +if NE_Enemies_Config.mod.SupremeWarfare and NE_Enemies_Config.ExtraLoot then + + thxbob.lib.remove_recipe_item ("alien-artifact", "small-alien-artifact") + thxbob.lib.add_new_recipe_item ("alien-artifact", {type="item", name="small-alien-artifact", amount=100}) + +end + + + + +if NE_Enemies_Config.Spawners then + --Add resistances to entities. + -- Poison + NE_Functions.Add_Damage_Resists("poison",data.raw["wall"],(25/NE_Difficulty)) + NE_Functions.Add_Damage_Resists("poison",data.raw["gate"],(25/NE_Difficulty)) + NE_Functions.Add_Damage_Resists("poison",data.raw["car"],(25/NE_Difficulty)) + NE_Functions.Add_Damage_Resists("poison",data.raw["electric-pole"],100) + NE_Functions.Add_Damage_Resists("poison",data.raw["turret"],(25/NE_Difficulty)) + NE_Functions.Add_Damage_Resists("poison",data.raw["ammo-turret"],(25/NE_Difficulty)) + NE_Functions.Add_Damage_Resists("poison",data.raw["electric-turret"],(25/NE_Difficulty)) + NE_Functions.Add_Damage_Resists("poison",data.raw["inserter"],(25/NE_Difficulty)) + + -- Acid + NE_Functions.Add_Damage_Resists("acid",data.raw["wall"],(25/NE_Difficulty)) + NE_Functions.Add_Damage_Resists("acid",data.raw["gate"],(25/NE_Difficulty)) + NE_Functions.Add_Damage_Resists("acid",data.raw["car"],(25/NE_Difficulty)) + NE_Functions.Add_Damage_Resists("acid",data.raw["electric-pole"],100) + NE_Functions.Add_Damage_Resists("acid",data.raw["turret"],(25/NE_Difficulty)) + NE_Functions.Add_Damage_Resists("acid",data.raw["ammo-turret"],(25/NE_Difficulty)) + NE_Functions.Add_Damage_Resists("acid",data.raw["electric-turret"],(25/NE_Difficulty)) + NE_Functions.Add_Damage_Resists("acid",data.raw["transport-belt"],(25/NE_Difficulty)) + NE_Functions.Add_Damage_Resists("acid",data.raw["inserter"],(25/NE_Difficulty)) + + NE_Functions.Add_ALL_Damage_Resists(data.raw["electric-pole"],15) + + if data.raw.inserter["combat-inserter"] then + for k, v in pairs(data.raw["damage-type"]) do + local Resist = {type = v.name, percent = 70} -- or you could use k, and not v.name + + if data.raw.inserter["combat-inserter"].resistances == nil then + data.raw.inserter["combat-inserter"].resistances = {} + table.insert(data.raw.inserter["combat-inserter"].resistances, Resist) + else + local found = false + for _, resistance in pairs(data.raw.inserter["combat-inserter"].resistances) do + if resistance.type == Resist.type and resistance.percent > Resist.percent then + found = true + break + elseif resistance.type == Resist.type and resistance.percent < Resist.percent then + found = true + table.insert(data.raw.inserter["combat-inserter"].resistances, Resist) + break + end + end + + if not found then + table.insert(data.raw.inserter["combat-inserter"].resistances, Resist) + end + + end + + end + end + + if NE_Enemies_Config.SafeRail then + --- Make Rail immune to damage + NE_Functions.Add_ALL_Damage_Resists(data.raw["straight-rail"],100) + NE_Functions.Add_ALL_Damage_Resists(data.raw["curved-rail"],100) + NE_Functions.Add_ALL_Damage_Resists(data.raw["rail-signal"],100) + NE_Functions.Add_ALL_Damage_Resists(data.raw["rail-chain-signal"],100) + NE_Functions.Add_ALL_Damage_Resists(data.raw["train-stop"],100) + end + + +end + + + +if NE_Enemies_Config.mod.NEBuildings then + ----- Adds in Building Materials and Thumper to Tech Tree, since Alien Understanding Tech is in both Buildings and Enemies. + ---- Make sure that the Artifact-collector and Biological-bullet-magazine are present, since the tech is in NE Enemies and NE Buildings. + thxbob.lib.add_technology_recipe ("AlienUnderstanding", "Building_Materials") + thxbob.lib.add_technology_recipe ("AlienUnderstanding-2", "Thumper") + + thxbob.lib.remove_recipe_item ("Biological-bullet-magazine", "alien-artifact") + thxbob.lib.remove_recipe_item ("Biological-bullet-magazine", "sulfuric-acid") + thxbob.lib.add_new_recipe_item ("Biological-bullet-magazine", {type="fluid", name="NE_alien_toxin", amount=10}) + +end + +if NE_Enemies_Config.Spawners then +-------- New Units + + require "prototypes.Vanilla_Changes.New_Biter_Units" + require "prototypes.Vanilla_Changes.Biter_Evolution" + require "prototypes.Vanilla_Changes.New_Spitter_Units" + require "prototypes.Vanilla_Changes.Spitter_Evolution" + +end + + +--- Extra Loot - Small Alient Atrifacts +if NE_Enemies_Config.ExtraLoot then + require("prototypes.Extra_Loot.item") + require("prototypes.Extra_Loot.recipe") + require("prototypes.Extra_Loot.extra_loot") +end + + + +---- Spawner Modifications ---------------------------------------- +if NE_Enemies_Config.Spawners then + + +-- Biter Spawner Adjustments + data.raw["unit-spawner"]["biter-spawner"].max_count_of_owned_units = 15 + 15 * NE_Difficulty + data.raw["unit-spawner"]["biter-spawner"].max_friends_around_to_spawn = 25 + 15 * NE_Difficulty + data.raw["unit-spawner"]["biter-spawner"].spawning_cooldown = {(200+100/NE_Difficulty), (100+50/NE_Difficulty)} + data.raw["unit-spawner"]["biter-spawner"].max_health = 500 + (1000 * NE_Difficulty) + data.raw["unit-spawner"]["biter-spawner"].resistances = Resistances.Spawner + data.raw["unit-spawner"]["biter-spawner"].spawning_radius = 25 + data.raw["unit-spawner"]["biter-spawner"].spawning_spacing = 2 + data.raw["unit-spawner"]["biter-spawner"].pollution_absorbtion_absolute = 15 + data.raw["unit-spawner"]["biter-spawner"].pollution_absorbtion_proportional = 0.005 + + -- Spitter Spawner Adjustments + data.raw["unit-spawner"]["spitter-spawner"].max_count_of_owned_units = 10 + 10 * NE_Difficulty + data.raw["unit-spawner"]["spitter-spawner"].max_friends_around_to_spawn = 15 + 15 * NE_Difficulty + data.raw["unit-spawner"]["spitter-spawner"].spawning_cooldown = {(300+100/NE_Difficulty), (100+80/NE_Difficulty)} + data.raw["unit-spawner"]["spitter-spawner"].max_health = 1000 + (1000 * NE_Difficulty) + data.raw["unit-spawner"]["spitter-spawner"].resistances = Resistances.Spawner + data.raw["unit-spawner"]["spitter-spawner"].spawning_radius = 20 + data.raw["unit-spawner"]["spitter-spawner"].spawning_spacing = 2 + data.raw["unit-spawner"]["spitter-spawner"].pollution_absorbtion_absolute = 15 + data.raw["unit-spawner"]["spitter-spawner"].pollution_absorbtion_proportional = 0.005 + + + + -- Bob's Enemies Modifications + if NE_Enemies_Config.mod.BobEnemies then + -- Bob's Biter Spawner Adjustments + data.raw["unit-spawner"]["bob-biter-spawner"].max_count_of_owned_units = 15 + 15 * NE_Difficulty + data.raw["unit-spawner"]["bob-biter-spawner"].max_friends_around_to_spawn = 25 + 15 * NE_Difficulty + data.raw["unit-spawner"]["bob-biter-spawner"].spawning_cooldown = {(200+100/NE_Difficulty), (100+50/NE_Difficulty)} + data.raw["unit-spawner"]["bob-biter-spawner"].max_health = 500 + (1000 * NE_Difficulty) + data.raw["unit-spawner"]["bob-biter-spawner"].resistances = Resistances.Spawner + data.raw["unit-spawner"]["bob-biter-spawner"].spawning_radius = 25 + data.raw["unit-spawner"]["bob-biter-spawner"].spawning_spacing = 2 + data.raw["unit-spawner"]["bob-biter-spawner"].pollution_absorbtion_absolute = 15 + data.raw["unit-spawner"]["bob-biter-spawner"].pollution_absorbtion_proportional = 0.005 + + + -- Bob's Spitter Spawner Adjustments + data.raw["unit-spawner"]["bob-spitter-spawner"].max_count_of_owned_units = 10 + 10 * NE_Difficulty + data.raw["unit-spawner"]["bob-spitter-spawner"].max_friends_around_to_spawn = 15 + 15 * NE_Difficulty + data.raw["unit-spawner"]["bob-spitter-spawner"].spawning_cooldown = {(300+100/NE_Difficulty), (100+80/NE_Difficulty)} + data.raw["unit-spawner"]["bob-spitter-spawner"].max_health = 1000 + (1000 * NE_Difficulty) + data.raw["unit-spawner"]["bob-spitter-spawner"].resistances = Resistances.Spawner + data.raw["unit-spawner"]["bob-spitter-spawner"].spawning_radius = 20 + data.raw["unit-spawner"]["bob-spitter-spawner"].spawning_spacing = 2 + data.raw["unit-spawner"]["bob-spitter-spawner"].pollution_absorbtion_absolute = 15 + data.raw["unit-spawner"]["bob-spitter-spawner"].pollution_absorbtion_proportional = 0.005 + end + +end +---- END Spawner Modifications ---------------------------------------- + + + +---- Biter & Spitter Modifications -------------------------------- +if NE_Enemies_Config.Spawners then + + -- Vanilla Unit Adjustments + data.raw["unit"]["small-biter"].resistances = Resistances.Small_Biter + data.raw["unit"]["small-biter"].max_health = Health.Small_Biter + data.raw["unit"]["small-biter"].ammo_type = Damage.Small_Biter + + data.raw["unit"]["medium-biter"].resistances = Resistances.Medium_Biter + data.raw["unit"]["medium-biter"].max_health = Health.Medium_Biter + data.raw["unit"]["medium-biter"].ammo_type = Damage.Medium_Biter + data.raw["unit"]["medium-biter"].pollution_to_join_attack = 800 + + data.raw["unit"]["big-biter"].resistances = Resistances.Big_Biter + data.raw["unit"]["big-biter"].max_health = Health.Big_Biter + data.raw["unit"]["big-biter"].ammo_type = Damage.Big_Biter + data.raw["unit"]["big-biter"].pollution_to_join_attack = 1000 + + data.raw["unit"]["behemoth-biter"].resistances = Resistances.Behemoth_Biter + data.raw["unit"]["behemoth-biter"].max_health = Health.Behemoth_Biter + data.raw["unit"]["behemoth-biter"].ammo_type = Damage.Behemoth_Biter + data.raw["unit"]["behemoth-biter"].pollution_to_join_attack = 2500 + + + --- Vanilla Spitter Units + data.raw["unit"]["small-spitter"].resistances = Resistances.Small_Spitter + data.raw["unit"]["small-spitter"].max_health = Health.Small_Spitter + + + data.raw["unit"]["medium-spitter"].resistances = Resistances.Medium_Spitter + data.raw["unit"]["medium-spitter"].max_health = Health.Medium_Spitter + + data.raw["unit"]["big-spitter"].resistances = Resistances.Big_Spitter + data.raw["unit"]["big-spitter"].max_health = Health.Big_Spitter + data.raw["unit"]["big-spitter"].pollution_to_join_attack = 1200 + + data.raw["unit"]["behemoth-spitter"].resistances = Resistances.Behemoth_Spitter + data.raw["unit"]["behemoth-spitter"].max_health = Health.Behemoth_Spitter + data.raw["unit"]["behemoth-spitter"].pollution_to_join_attack = 5000 + + -- Worms + --data.raw["turret"]["small-worm-turret"].attack_parameters.ammo_type.action.action_delivery.projectile = "Infected-Projectile-Worm" -- Testing + data.raw["turret"]["small-worm-turret"].max_health = Health.Small_Worm + data.raw["turret"]["small-worm-turret"].attack_parameters.range = 17 + NE_Difficulty + data.raw["turret"]["small-worm-turret"].resistances = Resistances.Small_Worm + + data.raw["turret"]["medium-worm-turret"].attack_parameters.ammo_type.action.action_delivery.projectile = "Infected-Projectile-Worm" + data.raw["turret"]["medium-worm-turret"].max_health = Health.Medium_Worm + data.raw["turret"]["medium-worm-turret"].attack_parameters.range = 20 + NE_Difficulty + data.raw["turret"]["medium-worm-turret"].resistances = Resistances.Medium_Worm + data.raw["turret"]["medium-worm-turret"].call_for_help_radius = 60 + + data.raw["turret"]["big-worm-turret"].attack_parameters.ammo_type.action.action_delivery.projectile = "Mutated-Projectile-Worm" + data.raw["turret"]["big-worm-turret"].max_health = Health.Big_Worm + data.raw["turret"]["big-worm-turret"].attack_parameters.range = 25 + NE_Difficulty + data.raw["turret"]["big-worm-turret"].resistances = Resistances.Big_Worm + data.raw["turret"]["big-worm-turret"].call_for_help_radius = 120 + + + +-- Bob's Enemies Modifications + if NE_Enemies_Config.mod.BobEnemies then + data.raw["unit"]["bob-big-piercing-biter"].pollution_to_join_attack = 1000 + data.raw["unit"]["bob-huge-acid-biter"].pollution_to_join_attack = 2000 + data.raw["unit"]["bob-huge-explosive-biter"].pollution_to_join_attack = 3000 + data.raw["unit"]["bob-giant-poison-biter"].pollution_to_join_attack = 4000 + data.raw["unit"]["bob-giant-fire-biter"].pollution_to_join_attack = 5000 + data.raw["unit"]["bob-titan-biter"].pollution_to_join_attack = 6000 + data.raw["unit"]["bob-behemoth-biter"].pollution_to_join_attack = 7000 + data.raw["unit"]["bob-leviathan-biter"].pollution_to_join_attack = 8000 + + data.raw["unit"]["bob-big-electric-spitter"].pollution_to_join_attack = 1500 + data.raw["unit"]["bob-huge-explosive-spitter"].pollution_to_join_attack = 2500 + data.raw["unit"]["bob-huge-acid-spitter"].pollution_to_join_attack = 3500 + data.raw["unit"]["bob-giant-fire-spitter"].pollution_to_join_attack = 4500 + data.raw["unit"]["bob-giant-poison-spitter"].pollution_to_join_attack = 5500 + data.raw["unit"]["bob-titan-spitter"].pollution_to_join_attack = 6500 + data.raw["unit"]["bob-behemoth-spitter"].pollution_to_join_attack = 7500 + data.raw["unit"]["bob-leviathan-spitter"].pollution_to_join_attack = 8500 + + --- Bob's Worms + data.raw["turret"]["bob-big-explosive-worm-turret"].call_for_help_radius = 120 + data.raw["turret"]["bob-big-fire-worm-turret"].call_for_help_radius = 120 + data.raw["turret"]["bob-big-poison-worm-turret"].call_for_help_radius = 120 + data.raw["turret"]["bob-big-piercing-worm-turret"].call_for_help_radius = 120 + data.raw["turret"]["bob-big-electric-worm-turret"].call_for_help_radius = 120 + data.raw["turret"]["bob-giant-worm-turret"].call_for_help_radius = 200 + + if NE_Enemies_Config.Spawners then + require "prototypes.Vanilla_Changes.Bobs_Spawners" + end + + end + +end +---- END Biter & Spitter Modifications -------------------------------- + diff --git a/Natural_Evolution_Enemies_6.3.0/data.lua b/Natural_Evolution_Enemies_6.3.1/data.lua similarity index 97% rename from Natural_Evolution_Enemies_6.3.0/data.lua rename to Natural_Evolution_Enemies_6.3.1/data.lua index 0cfe839..b6c493b 100644 --- a/Natural_Evolution_Enemies_6.3.0/data.lua +++ b/Natural_Evolution_Enemies_6.3.1/data.lua @@ -1,38 +1,38 @@ -if not thxbob then thxbob = {} end -if not thxbob.lib then thxbob.lib = {} end - -if not NE_Enemies_Config then NE_Enemies_Config = {} end -if not NE_Enemies_Config.mod then NE_Enemies_Config.mod = {} end -if not NE_Functions then NE_Functions = {} end - -require ("config") -require ("libs.detectmod") --Detect supported Mods, Bob's Enemies and others -require ("libs.NE_Functions") -require("prototypes.Technology.technology") -require("prototypes.Item-Groups.item-groups") - -require ("libs.legacy") -- From Bob's Libary -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 - ---------------------------------------------------------------- - - - --- Artifact Collector - -require("prototypes.Artifact_Collector.entity") -require("prototypes.Artifact_Collector.item") -require("prototypes.Artifact_Collector.recipe") ---------------------------------------------------------------- - - - --- Other - Building Materials, Biological Damage & Ammo - -require("prototypes.Other.item") -require("prototypes.Other.recipe") -require("prototypes.Other.damage-type") - ---------------------------------------------------------------- - +if not thxbob then thxbob = {} end +if not thxbob.lib then thxbob.lib = {} end + +if not NE_Enemies_Config then NE_Enemies_Config = {} end +if not NE_Enemies_Config.mod then NE_Enemies_Config.mod = {} end +if not NE_Functions then NE_Functions = {} end + +require ("config") +require ("libs.detectmod") --Detect supported Mods, Bob's Enemies and others +require ("libs.NE_Functions") +require("prototypes.Technology.technology") +require("prototypes.Item-Groups.item-groups") + +require ("libs.legacy") -- From Bob's Libary +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 + +--------------------------------------------------------------- + + + --- Artifact Collector + +require("prototypes.Artifact_Collector.entity") +require("prototypes.Artifact_Collector.item") +require("prototypes.Artifact_Collector.recipe") +--------------------------------------------------------------- + + + --- Other - Building Materials, Biological Damage & Ammo + +require("prototypes.Other.item") +require("prototypes.Other.recipe") +require("prototypes.Other.damage-type") + +--------------------------------------------------------------- + diff --git a/Natural_Evolution_Enemies_6.3.0/graphics/entity/Artifact-chest-area.png b/Natural_Evolution_Enemies_6.3.1/graphics/entity/Artifact-chest-area.png similarity index 100% rename from Natural_Evolution_Enemies_6.3.0/graphics/entity/Artifact-chest-area.png rename to Natural_Evolution_Enemies_6.3.1/graphics/entity/Artifact-chest-area.png diff --git a/Natural_Evolution_Enemies_6.3.0/graphics/entity/Artifact-chest.png b/Natural_Evolution_Enemies_6.3.1/graphics/entity/Artifact-chest.png similarity index 100% rename from Natural_Evolution_Enemies_6.3.0/graphics/entity/Artifact-chest.png rename to Natural_Evolution_Enemies_6.3.1/graphics/entity/Artifact-chest.png diff --git a/Natural_Evolution_Enemies_6.3.0/graphics/entity/Thumbs.db b/Natural_Evolution_Enemies_6.3.1/graphics/entity/Thumbs.db similarity index 100% rename from Natural_Evolution_Enemies_6.3.0/graphics/entity/Thumbs.db rename to Natural_Evolution_Enemies_6.3.1/graphics/entity/Thumbs.db diff --git a/Natural_Evolution_Enemies_6.3.0/graphics/entity/Web_64.png b/Natural_Evolution_Enemies_6.3.1/graphics/entity/Web_64.png similarity index 100% rename from Natural_Evolution_Enemies_6.3.0/graphics/entity/Web_64.png rename to Natural_Evolution_Enemies_6.3.1/graphics/entity/Web_64.png diff --git a/Natural_Evolution_Enemies_6.3.0/graphics/entity/Web_64_shadow.png b/Natural_Evolution_Enemies_6.3.1/graphics/entity/Web_64_shadow.png similarity index 100% rename from Natural_Evolution_Enemies_6.3.0/graphics/entity/Web_64_shadow.png rename to Natural_Evolution_Enemies_6.3.1/graphics/entity/Web_64_shadow.png diff --git a/Natural_Evolution_Enemies_6.3.0/graphics/entity/acid-projectile-red.png b/Natural_Evolution_Enemies_6.3.1/graphics/entity/acid-projectile-red.png similarity index 100% rename from Natural_Evolution_Enemies_6.3.0/graphics/entity/acid-projectile-red.png rename to Natural_Evolution_Enemies_6.3.1/graphics/entity/acid-projectile-red.png diff --git a/Natural_Evolution_Enemies_6.3.0/graphics/entity/acid-projectile-yellow.png b/Natural_Evolution_Enemies_6.3.1/graphics/entity/acid-projectile-yellow.png similarity index 100% rename from Natural_Evolution_Enemies_6.3.0/graphics/entity/acid-projectile-yellow.png rename to Natural_Evolution_Enemies_6.3.1/graphics/entity/acid-projectile-yellow.png diff --git a/Natural_Evolution_Enemies_6.3.0/graphics/entity/fire.png b/Natural_Evolution_Enemies_6.3.1/graphics/entity/fire.png similarity index 100% rename from Natural_Evolution_Enemies_6.3.0/graphics/entity/fire.png rename to Natural_Evolution_Enemies_6.3.1/graphics/entity/fire.png diff --git a/Natural_Evolution_Enemies_6.3.0/graphics/icons/AlienUnderstanding.png b/Natural_Evolution_Enemies_6.3.1/graphics/icons/AlienUnderstanding.png similarity index 100% rename from Natural_Evolution_Enemies_6.3.0/graphics/icons/AlienUnderstanding.png rename to Natural_Evolution_Enemies_6.3.1/graphics/icons/AlienUnderstanding.png diff --git a/Natural_Evolution_Enemies_6.3.0/graphics/icons/Artifact-chest-icon.png b/Natural_Evolution_Enemies_6.3.1/graphics/icons/Artifact-chest-icon.png similarity index 100% rename from Natural_Evolution_Enemies_6.3.0/graphics/icons/Artifact-chest-icon.png rename to Natural_Evolution_Enemies_6.3.1/graphics/icons/Artifact-chest-icon.png diff --git a/Natural_Evolution_Enemies_6.3.0/graphics/icons/Biological-bullet-magazine.png b/Natural_Evolution_Enemies_6.3.1/graphics/icons/Biological-bullet-magazine.png similarity index 100% rename from Natural_Evolution_Enemies_6.3.0/graphics/icons/Biological-bullet-magazine.png rename to Natural_Evolution_Enemies_6.3.1/graphics/icons/Biological-bullet-magazine.png diff --git a/Natural_Evolution_Enemies_6.3.0/graphics/icons/Thumbs.db b/Natural_Evolution_Enemies_6.3.1/graphics/icons/Thumbs.db similarity index 100% rename from Natural_Evolution_Enemies_6.3.0/graphics/icons/Thumbs.db rename to Natural_Evolution_Enemies_6.3.1/graphics/icons/Thumbs.db diff --git a/Natural_Evolution_Enemies_6.3.0/graphics/icons/alien-artifact.png b/Natural_Evolution_Enemies_6.3.1/graphics/icons/alien-artifact.png similarity index 100% rename from Natural_Evolution_Enemies_6.3.0/graphics/icons/alien-artifact.png rename to Natural_Evolution_Enemies_6.3.1/graphics/icons/alien-artifact.png diff --git a/Natural_Evolution_Enemies_6.3.0/graphics/icons/alien-artifact_alt.png b/Natural_Evolution_Enemies_6.3.1/graphics/icons/alien-artifact_alt.png similarity index 100% rename from Natural_Evolution_Enemies_6.3.0/graphics/icons/alien-artifact_alt.png rename to Natural_Evolution_Enemies_6.3.1/graphics/icons/alien-artifact_alt.png diff --git a/Natural_Evolution_Enemies_6.3.0/graphics/icons/empty.png b/Natural_Evolution_Enemies_6.3.1/graphics/icons/empty.png similarity index 100% rename from Natural_Evolution_Enemies_6.3.0/graphics/icons/empty.png rename to Natural_Evolution_Enemies_6.3.1/graphics/icons/empty.png diff --git a/Natural_Evolution_Enemies_6.3.0/graphics/icons/small-alien-artifact.png b/Natural_Evolution_Enemies_6.3.1/graphics/icons/small-alien-artifact.png similarity index 100% rename from Natural_Evolution_Enemies_6.3.0/graphics/icons/small-alien-artifact.png rename to Natural_Evolution_Enemies_6.3.1/graphics/icons/small-alien-artifact.png diff --git a/Natural_Evolution_Enemies_6.3.0/graphics/icons/small-alien-artifact_alt.png b/Natural_Evolution_Enemies_6.3.1/graphics/icons/small-alien-artifact_alt.png similarity index 100% rename from Natural_Evolution_Enemies_6.3.0/graphics/icons/small-alien-artifact_alt.png rename to Natural_Evolution_Enemies_6.3.1/graphics/icons/small-alien-artifact_alt.png diff --git a/Natural_Evolution_Enemies_6.3.0/graphics/technology/AlienUnderstanding.png b/Natural_Evolution_Enemies_6.3.1/graphics/technology/AlienUnderstanding.png similarity index 100% rename from Natural_Evolution_Enemies_6.3.0/graphics/technology/AlienUnderstanding.png rename to Natural_Evolution_Enemies_6.3.1/graphics/technology/AlienUnderstanding.png diff --git a/Natural_Evolution_Enemies_6.3.0/graphics/technology/AlienUnderstanding_64.png b/Natural_Evolution_Enemies_6.3.1/graphics/technology/AlienUnderstanding_64.png similarity index 100% rename from Natural_Evolution_Enemies_6.3.0/graphics/technology/AlienUnderstanding_64.png rename to Natural_Evolution_Enemies_6.3.1/graphics/technology/AlienUnderstanding_64.png diff --git a/Natural_Evolution_Enemies_6.3.0/info.json b/Natural_Evolution_Enemies_6.3.1/info.json similarity index 94% rename from Natural_Evolution_Enemies_6.3.0/info.json rename to Natural_Evolution_Enemies_6.3.1/info.json index 5446c2c..cec339c 100644 --- a/Natural_Evolution_Enemies_6.3.0/info.json +++ b/Natural_Evolution_Enemies_6.3.1/info.json @@ -1,11 +1,11 @@ -{ - "name": "Natural_Evolution_Enemies", - "version": "6.3.0", - "title": "Natural Evolution Enemies", - "author": "TheSAguy", - "contact": "vvwmisc@hotmail.com", - "homepage": "http://www.factorioforums.com/forum/viewtopic.php?f=91&t=13562&p", - "description": "All things Alien! Adds new Enemies and updates to Biter/Spitters Spawners. If you want a more of a challenge than what Vinalla can offer you... Part of the N.E. Mods, but can be used as Standalone. Please visit home page for more details.", - "dependencies": ["base >= 0.14", "? bobenemies"], - "factorio_version": "0.14" +{ + "name": "Natural_Evolution_Enemies", + "version": "6.3.1", + "title": "Natural Evolution Enemies", + "author": "TheSAguy", + "contact": "vvwmisc@hotmail.com", + "homepage": "http://www.factorioforums.com/forum/viewtopic.php?f=91&t=13562&p", + "description": "All things Alien! Adds new Enemies and updates to Biter/Spitters Spawners. If you want a more of a challenge than what Vinalla can offer you... Part of the N.E. Mods, but can be used as Standalone. Please visit home page for more details.", + "dependencies": ["base >= 0.14", "? bobenemies"], + "factorio_version": "0.14" } \ No newline at end of file diff --git a/Natural_Evolution_Expansion_6.3.0/libs/NE_Functions.lua b/Natural_Evolution_Enemies_6.3.1/libs/NE_Functions.lua similarity index 96% rename from Natural_Evolution_Expansion_6.3.0/libs/NE_Functions.lua rename to Natural_Evolution_Enemies_6.3.1/libs/NE_Functions.lua index 72b488b..c98f641 100644 --- a/Natural_Evolution_Expansion_6.3.0/libs/NE_Functions.lua +++ b/Natural_Evolution_Enemies_6.3.1/libs/NE_Functions.lua @@ -1,71 +1,71 @@ ------------------------ ---NE Functions-- ------------------------ - ---- Multiplies ingridient -function NE_Functions.Ingredient_Multiplier(Input, Multiplier) - if data.raw.recipe[Input] ~= nil then - for _, recipe in pairs({Input}) do - for _, ingredient in pairs(data.raw.recipe[recipe].ingredients) do - if ingredient[2] ~= nil then - ingredient[2] = ingredient[2] * Multiplier - elseif ingredient.amount ~= nil then - ingredient.amount = ingredient.amount * Multiplier - end - end - end - end -end - --- Adds a resistance of a single damage type to an entity -function NE_Functions.Add_Damage_Resists(D_Type,Raw,percent) - if data.raw["damage-type"][D_Type] ~= nil then - local Resist = {type = D_Type, percent = percent} - for i,d in pairs(Raw) do - if d.resistances == nil then - d.resistances = {} - table.insert(d.resistances, Resist) - else - local found = false - for _, resistance in pairs(d.resistances) do - if resistance.type == Resist.type and resistance.percent then - if resistance.percent < Resist.percent then - resistance.percent = Resist.percent - end - found = true - end - end - - if not found then - table.insert(d.resistances, Resist) - end - end - end - end -end - - --- Adds a resistance of all damage types to an entity -function NE_Functions.Add_ALL_Damage_Resists(Raw,Percent) - if Raw ~= nil then - for k, v in pairs(data.raw["damage-type"]) do - NE_Functions.Add_Damage_Resists(v.name, Raw, Percent) - end - end -end - - ----- Makes it that Biters don't attack rail. Side effect though is that rails don't show up on mini-map or blue-prints -function NE_Functions.Biters_Dont_Attack(Raw) - for i,d in pairs(Raw) do - local newflags = {} - for pos=1,#d.flags do - if not (d.flags[pos] == "player-creation") then - table.insert(newflags, d.flags[pos]) - end - end - d.flags = newflags - - end -end - +----------------------- +--NE Functions-- +----------------------- + +--- Multiplies ingridient +function NE_Functions.Ingredient_Multiplier(Input, Multiplier) + if data.raw.recipe[Input] ~= nil then + for _, recipe in pairs({Input}) do + for _, ingredient in pairs(data.raw.recipe[recipe].ingredients) do + if ingredient[2] ~= nil then + ingredient[2] = ingredient[2] * Multiplier + elseif ingredient.amount ~= nil then + ingredient.amount = ingredient.amount * Multiplier + end + end + end + end +end + +-- Adds a resistance of a single damage type to an entity +function NE_Functions.Add_Damage_Resists(D_Type,Raw,percent) + if data.raw["damage-type"][D_Type] ~= nil then + local Resist = {type = D_Type, percent = percent} + for i,d in pairs(Raw) do + if d.resistances == nil then + d.resistances = {} + table.insert(d.resistances, Resist) + else + local found = false + for _, resistance in pairs(d.resistances) do + if resistance.type == Resist.type and resistance.percent then + if resistance.percent < Resist.percent then + resistance.percent = Resist.percent + end + found = true + end + end + + if not found then + table.insert(d.resistances, Resist) + end + end + end + end +end + + +-- Adds a resistance of all damage types to an entity +function NE_Functions.Add_ALL_Damage_Resists(Raw,Percent) + if Raw ~= nil then + for k, v in pairs(data.raw["damage-type"]) do + NE_Functions.Add_Damage_Resists(v.name, Raw, Percent) + end + end +end + + +---- Makes it that Biters don't attack rail. Side effect though is that rails don't show up on mini-map or blue-prints +function NE_Functions.Biters_Dont_Attack(Raw) + for i,d in pairs(Raw) do + local newflags = {} + for pos=1,#d.flags do + if not (d.flags[pos] == "player-creation") then + table.insert(newflags, d.flags[pos]) + end + end + d.flags = newflags + + end +end + diff --git a/Natural_Evolution_Enemies_6.3.0/libs/detectmod.lua b/Natural_Evolution_Enemies_6.3.1/libs/detectmod.lua similarity index 96% rename from Natural_Evolution_Enemies_6.3.0/libs/detectmod.lua rename to Natural_Evolution_Enemies_6.3.1/libs/detectmod.lua index ed1d72a..ff8673a 100644 --- a/Natural_Evolution_Enemies_6.3.0/libs/detectmod.lua +++ b/Natural_Evolution_Enemies_6.3.1/libs/detectmod.lua @@ -1,30 +1,30 @@ ------------------------ ---Cross Mod Detection-- ------------------------ -if not NE_Enemies_Config then NE_Enemies_Config = {} end -if not NE_Enemies_Config.mod then NE_Enemies_Config.mod = {} end - ------------------------ - - ---Detect Bob's Enemies -if data.raw["unit"]["bob-big-piercing-biter"] ~= nil and data.raw["unit"]["bob-big-electric-spitter"] ~= nil then - NE_Enemies_Config.mod.BobEnemies=true -else - NE_Enemies_Config.mod.BobEnemies=false -end - ---Detect Supreme Warfare -if data.raw["technology"]["artillery"] ~= nil and data.raw["technology"]["advanced-artillery"] ~= nil then - NE_Enemies_Config.mod.SupremeWarfare=true -else - NE_Enemies_Config.mod.SupremeWarfare=false -end - - ---Detect N.E. Buildings -if data.raw["radar"]["AlienControlStation"] ~= nil and data.raw["assembling-machine"]["Alien_Hatchery"] ~= nil then - NE_Enemies_Config.mod.NEBuildings=true -else - NE_Enemies_Config.mod.NEBuildings=false -end +----------------------- +--Cross Mod Detection-- +----------------------- +if not NE_Enemies_Config then NE_Enemies_Config = {} end +if not NE_Enemies_Config.mod then NE_Enemies_Config.mod = {} end + +----------------------- + + +--Detect Bob's Enemies +if data.raw["unit"]["bob-big-piercing-biter"] ~= nil and data.raw["unit"]["bob-big-electric-spitter"] ~= nil then + NE_Enemies_Config.mod.BobEnemies=true +else + NE_Enemies_Config.mod.BobEnemies=false +end + +--Detect Supreme Warfare +if data.raw["technology"]["artillery"] ~= nil and data.raw["technology"]["advanced-artillery"] ~= nil then + NE_Enemies_Config.mod.SupremeWarfare=true +else + NE_Enemies_Config.mod.SupremeWarfare=false +end + + +--Detect N.E. Buildings +if data.raw["radar"]["AlienControlStation"] ~= nil and data.raw["assembling-machine"]["Alien_Hatchery"] ~= nil then + NE_Enemies_Config.mod.NEBuildings=true +else + NE_Enemies_Config.mod.NEBuildings=false +end diff --git a/Natural_Evolution_Enemies_6.3.0/libs/functions.lua b/Natural_Evolution_Enemies_6.3.1/libs/functions.lua similarity index 97% rename from Natural_Evolution_Enemies_6.3.0/libs/functions.lua rename to Natural_Evolution_Enemies_6.3.1/libs/functions.lua index 56bdcb1..e87a40a 100644 --- a/Natural_Evolution_Enemies_6.3.0/libs/functions.lua +++ b/Natural_Evolution_Enemies_6.3.1/libs/functions.lua @@ -1,51 +1,51 @@ --- 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 - thxbob.lib.table_merge(table1[index], table2[index]) - else - table1[index] = value - end - end -end - - -function thxbob.lib.result_check(object) - if object then - if object.results == nil then - object.results = {} - end - - if object.result then - local item = thxbob.lib.item.basic_item({name = object.result}) - if object.result_count then - item.amount = object.result_count - object.result_count = nil - end - thxbob.lib.item.add_new(object.results, item) - - 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 - if not object.icon and data.raw[item.type][object.result].icon then - object.icon = data.raw[item.type][object.result].icon - end - if not object.subgroup 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].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 - log(object .. " does not exist.") - end -end - +-- 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 + thxbob.lib.table_merge(table1[index], table2[index]) + else + table1[index] = value + end + end +end + + +function thxbob.lib.result_check(object) + if object then + if object.results == nil then + object.results = {} + end + + if object.result then + local item = thxbob.lib.item.basic_item({name = object.result}) + if object.result_count then + item.amount = object.result_count + object.result_count = nil + end + thxbob.lib.item.add_new(object.results, item) + + 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 + if not object.icon and data.raw[item.type][object.result].icon then + object.icon = data.raw[item.type][object.result].icon + end + if not object.subgroup 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].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 + log(object .. " does not exist.") + end +end + diff --git a/Natural_Evolution_Expansion_6.3.0/libs/item-functions.lua b/Natural_Evolution_Enemies_6.3.1/libs/item-functions.lua similarity index 96% rename from Natural_Evolution_Expansion_6.3.0/libs/item-functions.lua rename to Natural_Evolution_Enemies_6.3.1/libs/item-functions.lua index c25b191..fb1db4d 100644 --- a/Natural_Evolution_Expansion_6.3.0/libs/item-functions.lua +++ b/Natural_Evolution_Enemies_6.3.1/libs/item-functions.lua @@ -1,149 +1,149 @@ -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"} - 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 - - 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 - object = 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 - - +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"} + 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 + + 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 + object = 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 + + diff --git a/Natural_Evolution_Enemies_6.3.0/libs/legacy.lua b/Natural_Evolution_Enemies_6.3.1/libs/legacy.lua similarity index 96% rename from Natural_Evolution_Enemies_6.3.0/libs/legacy.lua rename to Natural_Evolution_Enemies_6.3.1/libs/legacy.lua index 9c1fc8b..68d9c73 100644 --- a/Natural_Evolution_Enemies_6.3.0/libs/legacy.lua +++ b/Natural_Evolution_Enemies_6.3.1/libs/legacy.lua @@ -1,186 +1,186 @@ -function thxbob.lib.basic_item(inputs) - return thxbob.lib.item.basic_item(inputs) -end - ---[[ Cannot be used in legacy, due to new group conflict. -function thxbob.lib.item(inputs) - return thxbob.lib.item.item(inputs) -end -]]-- - -function thxbob.lib.get_item_type(name) - return thxbob.lib.item.get_type(name) -end - -function thxbob.lib.get_basic_item_type(name) - return thxbob.lib.item.get_basic_type(name) -end - -function thxbob.lib.combine_items(item1_in, item2_in) - return thxbob.lib.item.combine(item1_in, item2_in) -end - -function thxbob.lib.add_item(list, item_in) - thxbob.lib.item.add(list, item_in) --increments amount if exists -end - -function thxbob.lib.add_new_item(list, item_in) - thxbob.lib.item.add_new(list, item_in) --ignores if exists -end - -function thxbob.lib.remove_item(list, item) - thxbob.lib.item.remove(list, item) -end - - - -function thxbob.lib.replace_science_pack (technology, old, new) - thxbob.lib.tech.replace_science_pack (technology, old, new) -end - -function thxbob.lib.add_new_science_pack (technology, pack, amount) - thxbob.lib.tech.add_new_science_pack (technology, pack, amount) -end - -function thxbob.lib.add_science_pack (technology, pack, amount) - thxbob.lib.tech.add_science_pack (technology, pack, amount) -end - -function thxbob.lib.remove_science_pack (technology, pack) - thxbob.lib.tech.remove_science_pack (technology, pack) -end - -function thxbob.lib.add_technology_recipe (technology, recipe) - thxbob.lib.tech.add_recipe_unlock (technology, recipe) -end - -function thxbob.lib.remove_technology_recipe (technology, recipe) - thxbob.lib.tech.remove_recipe_unlock (technology, recipe) -end - -function thxbob.lib.replace_technology_prerequisite (technology, old, new) - thxbob.lib.tech.replace_prerequisite (technology, old, new) -end - -function thxbob.lib.add_technology_prerequisite (technology, prerequisite) - thxbob.lib.tech.add_prerequisite (technology, prerequisite) -end - -function thxbob.lib.remove_technology_prerequisite (technology, prerequisite) - thxbob.lib.tech.remove_prerequisite (technology, prerequisite) -end - - - -function thxbob.lib.add_productivity_limitation(intermediate) - thxbob.lib.module.add_productivity_limitation(intermediate) -end - -function thxbob.lib.add_productivity_limitations(intermediates) - thxbob.lib.module.add_productivity_limitations(intermediates) -end - - - -function thxbob.lib.replace_recipe_item (recipe, old, new) - thxbob.lib.recipe.replace_ingredient(recipe, old, new) -end - -function thxbob.lib.replace_recipe_item_crude (recipe, old, new) - thxbob.lib.recipe.replace_ingredient_crude(recipe, old, new) -end - -function thxbob.lib.replace_item_all_recipes (old, new) - thxbob.lib.recipe.replace_ingredient_in_all(old, new) -end - -function thxbob.lib.remove_recipe_item (recipe, item) - thxbob.lib.recipe.remove_ingredient(recipe, item) -end - -function thxbob.lib.add_new_recipe_item (recipe, item) - thxbob.lib.recipe.add_new_ingredient(recipe, item) -end - -function thxbob.lib.add_recipe_item (recipe, item) - thxbob.lib.recipe.add_ingredient(recipe, item) -end - -function thxbob.lib.add_recipe_result(recipe, item) - thxbob.lib.recipe.add_result(recipe, item) -end - -function thxbob.lib.remove_recipe_result(recipe, item) - thxbob.lib.recipe.remove_result(recipe, item) -end - - - -function thxbob.lib.create_autoplace(inputs) - return thxbob.lib.resource.create_autoplace(inputs) -end - -function thxbob.lib.autoplace_peak(inputs) - return thxbob.lib.resource.autoplace_peak(inputs) -end - -function thxbob.lib.add_autoplace_peak(inputs) - thxbob.lib.resource.add_autoplace_peak(inputs) -end - -function thxbob.lib.add_item_to_resource(resource, item) - thxbob.lib.resource.add_result(resource, item) -end - -function thxbob.lib.remove_item_from_resource(resource, item) - thxbob.lib.resource.remove_result(resource, item) -end - -function thxbob.lib.stage_counts(stages, mult) - return thxbob.lib.resource.stage_counts(stages, mult) -end - -function thxbob.lib.ore_sprite(inputs) - return thxbob.lib.resource.sprite(inputs) -end - -function thxbob.lib.create_ore_item(inputs) - thxbob.lib.resource.create_item(inputs) -end - -function thxbob.lib.create_ore_resource(inputs) - thxbob.lib.resource.create(inputs) -end - -function thxbob.lib.create_ore_particle(inputs) - thxbob.lib.resource.create_particle(inputs) -end - -function thxbob.lib.generate_ore_data_stage(inputs) - thxbob.lib.resource.generate_data_stage(inputs) -end - -function thxbob.lib.generate_ore_updates_stage(inputs) - thxbob.lib.resource.generate_updates_stage(inputs) -end - -function thxbob.lib.generate_ore(inputs) - thxbob.lib.resource.generate(inputs) -end - - - -function thxbob.lib.machine_has_category(machine, category_in) - return thxbob.lib.machine.has_category(machine, category_in) -end - -function thxbob.lib.machine_add_category(machine, category) - thxbob.lib.machine.add_category(machine, category) -end - -function thxbob.lib.machine_type_if_category_add_category(machine_type, category, category_to_add) - thxbob.lib.machine.type_if_add_category(machine_type, category, category_to_add) -end - - - +function thxbob.lib.basic_item(inputs) + return thxbob.lib.item.basic_item(inputs) +end + +--[[ Cannot be used in legacy, due to new group conflict. +function thxbob.lib.item(inputs) + return thxbob.lib.item.item(inputs) +end +]]-- + +function thxbob.lib.get_item_type(name) + return thxbob.lib.item.get_type(name) +end + +function thxbob.lib.get_basic_item_type(name) + return thxbob.lib.item.get_basic_type(name) +end + +function thxbob.lib.combine_items(item1_in, item2_in) + return thxbob.lib.item.combine(item1_in, item2_in) +end + +function thxbob.lib.add_item(list, item_in) + thxbob.lib.item.add(list, item_in) --increments amount if exists +end + +function thxbob.lib.add_new_item(list, item_in) + thxbob.lib.item.add_new(list, item_in) --ignores if exists +end + +function thxbob.lib.remove_item(list, item) + thxbob.lib.item.remove(list, item) +end + + + +function thxbob.lib.replace_science_pack (technology, old, new) + thxbob.lib.tech.replace_science_pack (technology, old, new) +end + +function thxbob.lib.add_new_science_pack (technology, pack, amount) + thxbob.lib.tech.add_new_science_pack (technology, pack, amount) +end + +function thxbob.lib.add_science_pack (technology, pack, amount) + thxbob.lib.tech.add_science_pack (technology, pack, amount) +end + +function thxbob.lib.remove_science_pack (technology, pack) + thxbob.lib.tech.remove_science_pack (technology, pack) +end + +function thxbob.lib.add_technology_recipe (technology, recipe) + thxbob.lib.tech.add_recipe_unlock (technology, recipe) +end + +function thxbob.lib.remove_technology_recipe (technology, recipe) + thxbob.lib.tech.remove_recipe_unlock (technology, recipe) +end + +function thxbob.lib.replace_technology_prerequisite (technology, old, new) + thxbob.lib.tech.replace_prerequisite (technology, old, new) +end + +function thxbob.lib.add_technology_prerequisite (technology, prerequisite) + thxbob.lib.tech.add_prerequisite (technology, prerequisite) +end + +function thxbob.lib.remove_technology_prerequisite (technology, prerequisite) + thxbob.lib.tech.remove_prerequisite (technology, prerequisite) +end + + + +function thxbob.lib.add_productivity_limitation(intermediate) + thxbob.lib.module.add_productivity_limitation(intermediate) +end + +function thxbob.lib.add_productivity_limitations(intermediates) + thxbob.lib.module.add_productivity_limitations(intermediates) +end + + + +function thxbob.lib.replace_recipe_item (recipe, old, new) + thxbob.lib.recipe.replace_ingredient(recipe, old, new) +end + +function thxbob.lib.replace_recipe_item_crude (recipe, old, new) + thxbob.lib.recipe.replace_ingredient_crude(recipe, old, new) +end + +function thxbob.lib.replace_item_all_recipes (old, new) + thxbob.lib.recipe.replace_ingredient_in_all(old, new) +end + +function thxbob.lib.remove_recipe_item (recipe, item) + thxbob.lib.recipe.remove_ingredient(recipe, item) +end + +function thxbob.lib.add_new_recipe_item (recipe, item) + thxbob.lib.recipe.add_new_ingredient(recipe, item) +end + +function thxbob.lib.add_recipe_item (recipe, item) + thxbob.lib.recipe.add_ingredient(recipe, item) +end + +function thxbob.lib.add_recipe_result(recipe, item) + thxbob.lib.recipe.add_result(recipe, item) +end + +function thxbob.lib.remove_recipe_result(recipe, item) + thxbob.lib.recipe.remove_result(recipe, item) +end + + + +function thxbob.lib.create_autoplace(inputs) + return thxbob.lib.resource.create_autoplace(inputs) +end + +function thxbob.lib.autoplace_peak(inputs) + return thxbob.lib.resource.autoplace_peak(inputs) +end + +function thxbob.lib.add_autoplace_peak(inputs) + thxbob.lib.resource.add_autoplace_peak(inputs) +end + +function thxbob.lib.add_item_to_resource(resource, item) + thxbob.lib.resource.add_result(resource, item) +end + +function thxbob.lib.remove_item_from_resource(resource, item) + thxbob.lib.resource.remove_result(resource, item) +end + +function thxbob.lib.stage_counts(stages, mult) + return thxbob.lib.resource.stage_counts(stages, mult) +end + +function thxbob.lib.ore_sprite(inputs) + return thxbob.lib.resource.sprite(inputs) +end + +function thxbob.lib.create_ore_item(inputs) + thxbob.lib.resource.create_item(inputs) +end + +function thxbob.lib.create_ore_resource(inputs) + thxbob.lib.resource.create(inputs) +end + +function thxbob.lib.create_ore_particle(inputs) + thxbob.lib.resource.create_particle(inputs) +end + +function thxbob.lib.generate_ore_data_stage(inputs) + thxbob.lib.resource.generate_data_stage(inputs) +end + +function thxbob.lib.generate_ore_updates_stage(inputs) + thxbob.lib.resource.generate_updates_stage(inputs) +end + +function thxbob.lib.generate_ore(inputs) + thxbob.lib.resource.generate(inputs) +end + + + +function thxbob.lib.machine_has_category(machine, category_in) + return thxbob.lib.machine.has_category(machine, category_in) +end + +function thxbob.lib.machine_add_category(machine, category) + thxbob.lib.machine.add_category(machine, category) +end + +function thxbob.lib.machine_type_if_category_add_category(machine_type, category, category_to_add) + thxbob.lib.machine.type_if_add_category(machine_type, category, category_to_add) +end + + + diff --git a/Bio_Industries_1.4.0/libs/recipe-functions.lua b/Natural_Evolution_Enemies_6.3.1/libs/recipe-functions.lua similarity index 97% rename from Bio_Industries_1.4.0/libs/recipe-functions.lua rename to Natural_Evolution_Enemies_6.3.1/libs/recipe-functions.lua index 2d85652..6484e13 100644 --- a/Bio_Industries_1.4.0/libs/recipe-functions.lua +++ b/Natural_Evolution_Enemies_6.3.1/libs/recipe-functions.lua @@ -1,118 +1,118 @@ -if not thxbob.lib.recipe then thxbob.lib.recipe = {} end - - -function thxbob.lib.recipe.replace_ingredient(recipe, old, new) - if data.raw.recipe[recipe] and thxbob.lib.item.get_type(new) then - local amount = 0 - for i, ingredient in pairs(data.raw.recipe[recipe].ingredients) do - if ingredient[1] == old then - amount = ingredient[2] + amount - end - if ingredient.name == old then - amount = ingredient.amount + amount - end - end - if amount > 0 then - thxbob.lib.recipe.remove_ingredient(recipe, old) - thxbob.lib.recipe.add_ingredient(recipe, {new, amount}) - end - else - if not data.raw.recipe[recipe] then - log("Recipe " .. recipe .. " does not exist.") - end - if not thxbob.lib.item.get_type(new) then - log("Ingredient " .. new .. " does not exist.") - end - end -end - -function thxbob.lib.recipe.replace_ingredient_crude(recipe, old, new) - if data.raw.recipe[recipe] and thxbob.lib.item.get_basic_type(new) then - for i, ingredient in pairs(data.raw.recipe[recipe].ingredients) do - if ingredient[1] == old or ingredient.name == old then - local item = thxbob.lib.item.basic_item(ingredient) - item.name = new - item.type = thxbob.lib.item.get_basic_type(new) - ingredient = item - end - end - else - if not data.raw.recipe[recipe] then - log("Recipe " .. recipe .. " does not exist.") - end - if not thxbob.lib.item.get_type(new) then - log("Ingredient " .. new .. " does not exist.") - end - end -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 - log("Ingredient " .. new .. " does not exist.") - end -end - -function thxbob.lib.recipe.remove_ingredient(recipe, item) - if data.raw.recipe[recipe] then - thxbob.lib.item.remove(data.raw.recipe[recipe].ingredients, item) - else - log("Recipe " .. recipe .. " does not exist.") - 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 - thxbob.lib.item.add_new(data.raw.recipe[recipe].ingredients, thxbob.lib.item.basic_item(item)) - else - if not data.raw.recipe[recipe] then - log("Recipe " .. recipe .. " does not exist.") - end - if not thxbob.lib.item.get_type(item) then - log("Ingredient " .. thxbob.lib.item.basic_item(item).name .. " does not exist.") - 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 - thxbob.lib.item.add(data.raw.recipe[recipe].ingredients, thxbob.lib.item.basic_item(item)) - else - if not data.raw.recipe[recipe] then - log("Recipe " .. recipe .. " does not exist.") - end - if not thxbob.lib.item.get_basic_type(thxbob.lib.item.basic_item(item).name) then - log("Ingredient " .. thxbob.lib.item.basic_item(item).name .. " does not exist.") - 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 - thxbob.lib.result_check(data.raw.recipe[recipe]) - thxbob.lib.item.add(data.raw.recipe[recipe].results, item) - else - if not data.raw.recipe[recipe] then - log("Recipe " .. recipe .. " does not exist.") - end - if not thxbob.lib.item.get_basic_type(thxbob.lib.item.basic_item(item).name) then - log("Item " .. thxbob.lib.item.basic_item(item).name .. " does not exist.") - end - end -end - -function thxbob.lib.recipe.remove_result(recipe, item) - if data.raw.recipe[recipe] then - thxbob.lib.result_check(data.raw.recipe[recipe]) - thxbob.lib.item.remove(data.raw.recipe[recipe].results, item) - else - log("Recipe " .. recipe .. " does not exist.") - end -end - - - +if not thxbob.lib.recipe then thxbob.lib.recipe = {} end + + +function thxbob.lib.recipe.replace_ingredient(recipe, old, new) + if data.raw.recipe[recipe] and thxbob.lib.item.get_type(new) then + local amount = 0 + for i, ingredient in pairs(data.raw.recipe[recipe].ingredients) do + if ingredient[1] == old then + amount = ingredient[2] + amount + end + if ingredient.name == old then + amount = ingredient.amount + amount + end + end + if amount > 0 then + thxbob.lib.recipe.remove_ingredient(recipe, old) + thxbob.lib.recipe.add_ingredient(recipe, {new, amount}) + end + else + if not data.raw.recipe[recipe] then + log("Recipe " .. recipe .. " does not exist.") + end + if not thxbob.lib.item.get_type(new) then + log("Ingredient " .. new .. " does not exist.") + end + end +end + +function thxbob.lib.recipe.replace_ingredient_crude(recipe, old, new) + if data.raw.recipe[recipe] and thxbob.lib.item.get_basic_type(new) then + for i, ingredient in pairs(data.raw.recipe[recipe].ingredients) do + if ingredient[1] == old or ingredient.name == old then + local item = thxbob.lib.item.basic_item(ingredient) + item.name = new + item.type = thxbob.lib.item.get_basic_type(new) + ingredient = item + end + end + else + if not data.raw.recipe[recipe] then + log("Recipe " .. recipe .. " does not exist.") + end + if not thxbob.lib.item.get_type(new) then + log("Ingredient " .. new .. " does not exist.") + end + end +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 + log("Ingredient " .. new .. " does not exist.") + end +end + +function thxbob.lib.recipe.remove_ingredient(recipe, item) + if data.raw.recipe[recipe] then + thxbob.lib.item.remove(data.raw.recipe[recipe].ingredients, item) + else + log("Recipe " .. recipe .. " does not exist.") + 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 + thxbob.lib.item.add_new(data.raw.recipe[recipe].ingredients, thxbob.lib.item.basic_item(item)) + else + if not data.raw.recipe[recipe] then + log("Recipe " .. recipe .. " does not exist.") + end + if not thxbob.lib.item.get_type(item) then + log("Ingredient " .. thxbob.lib.item.basic_item(item).name .. " does not exist.") + 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 + thxbob.lib.item.add(data.raw.recipe[recipe].ingredients, thxbob.lib.item.basic_item(item)) + else + if not data.raw.recipe[recipe] then + log("Recipe " .. recipe .. " does not exist.") + end + if not thxbob.lib.item.get_basic_type(thxbob.lib.item.basic_item(item).name) then + log("Ingredient " .. thxbob.lib.item.basic_item(item).name .. " does not exist.") + 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 + thxbob.lib.result_check(data.raw.recipe[recipe]) + thxbob.lib.item.add(data.raw.recipe[recipe].results, item) + else + if not data.raw.recipe[recipe] then + log("Recipe " .. recipe .. " does not exist.") + end + if not thxbob.lib.item.get_basic_type(thxbob.lib.item.basic_item(item).name) then + log("Item " .. thxbob.lib.item.basic_item(item).name .. " does not exist.") + end + end +end + +function thxbob.lib.recipe.remove_result(recipe, item) + if data.raw.recipe[recipe] then + thxbob.lib.result_check(data.raw.recipe[recipe]) + thxbob.lib.item.remove(data.raw.recipe[recipe].results, item) + else + log("Recipe " .. recipe .. " does not exist.") + end +end + + + diff --git a/Natural_Evolution_Buildings_6.3.0/libs/technology-functions.lua b/Natural_Evolution_Enemies_6.3.1/libs/technology-functions.lua similarity index 97% rename from Natural_Evolution_Buildings_6.3.0/libs/technology-functions.lua rename to Natural_Evolution_Enemies_6.3.1/libs/technology-functions.lua index ad90d3f..2fe45d5 100644 --- a/Natural_Evolution_Buildings_6.3.0/libs/technology-functions.lua +++ b/Natural_Evolution_Enemies_6.3.1/libs/technology-functions.lua @@ -1,172 +1,172 @@ -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 - log("Technology " .. technology .. " does not exist.") - end - if not data.raw.tool[new] then - log("Science pack " .. new .. " does not exist.") - 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 - log("Technology " .. technology .. " does not exist.") - end - if not data.raw.tool[pack] then - log("Science pack " .. new .. " does not exist.") - 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 - log("Technology " .. technology .. " does not exist.") - end - if not data.raw.tool[pack] then - log("Science pack " .. new .. " does not exist.") - 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 - log("Technology " .. technology .. " does not exist.") - 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 - log("Technology " .. technology .. " does not exist.") - end - if not data.raw.recipe[recipe] then - log("Recipe " .. recipe .. " does not exist.") - 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 - log("Technology " .. technology .. " does not exist.") - 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 - log("Technology " .. technology .. " does not exist.") - end - if not data.raw.technology[new] then - log("Technology " .. new .. " does not exist.") - 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 - log("Technology " .. technology .. " does not exist.") - end - if not data.raw.technology[prerequisite] then - log("Technology " .. prerequisite .. " does not exist.") - 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 - log("Technology " .. technology .. " does not exist.") - end -end - - +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 + log("Technology " .. technology .. " does not exist.") + end + if not data.raw.tool[new] then + log("Science pack " .. new .. " does not exist.") + 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 + log("Technology " .. technology .. " does not exist.") + end + if not data.raw.tool[pack] then + log("Science pack " .. new .. " does not exist.") + 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 + log("Technology " .. technology .. " does not exist.") + end + if not data.raw.tool[pack] then + log("Science pack " .. new .. " does not exist.") + 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 + log("Technology " .. technology .. " does not exist.") + 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 + log("Technology " .. technology .. " does not exist.") + end + if not data.raw.recipe[recipe] then + log("Recipe " .. recipe .. " does not exist.") + 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 + log("Technology " .. technology .. " does not exist.") + 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 + log("Technology " .. technology .. " does not exist.") + end + if not data.raw.technology[new] then + log("Technology " .. new .. " does not exist.") + 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 + log("Technology " .. technology .. " does not exist.") + end + if not data.raw.technology[prerequisite] then + log("Technology " .. prerequisite .. " does not exist.") + 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 + log("Technology " .. technology .. " does not exist.") + end +end + + diff --git a/Natural_Evolution_Enemies_6.3.0/license.txt b/Natural_Evolution_Enemies_6.3.1/license.txt similarity index 94% rename from Natural_Evolution_Enemies_6.3.0/license.txt rename to Natural_Evolution_Enemies_6.3.1/license.txt index 263082f..ead2130 100644 --- a/Natural_Evolution_Enemies_6.3.0/license.txt +++ b/Natural_Evolution_Enemies_6.3.1/license.txt @@ -1,7 +1,10 @@ -Copyright (c) 2015 TheSAguy - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - +The MIT License (MIT) + + +Copyright (c) 2016 TheSAguy + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file diff --git a/Natural_Evolution_Enemies_6.3.0/locale/en/locale.cfg b/Natural_Evolution_Enemies_6.3.1/locale/en/locale.cfg similarity index 97% rename from Natural_Evolution_Enemies_6.3.0/locale/en/locale.cfg rename to Natural_Evolution_Enemies_6.3.1/locale/en/locale.cfg index 7124743..8552692 100644 --- a/Natural_Evolution_Enemies_6.3.0/locale/en/locale.cfg +++ b/Natural_Evolution_Enemies_6.3.1/locale/en/locale.cfg @@ -1,78 +1,78 @@ -[item-group-name] -Natural-Evolution = Natural-Evolution - - -[item-name] -Building_Materials = Building Materials -Artifact-collector-area = Artifact Collector -Artifact-collector = Artifact Collector -Biological-bullet-magazine = Biological Bullet Magazine -medium-launcher-worm-turret = Medium Launcher Worm Turret -big-launcher-worm-turret = Big Launcher Worm Turret -unit-cluster = Unit Cluster - -[item-description] -Building_Materials = The needed materials to build something -Artifact-collector-area = Collects enemy Artifact in an area around the chest. -Artifact-collector = Collects enemy Artifact in an area around the chest. -Biological-bullet-magazine = Extremely Deadly to Aliens! -medium-launcher-worm-turret = Medium Launcher Worm Turret -big-launcher-worm-turret = Big Launcher Worm Turret -unit-cluster = Unit Cluster - -[entity-name] -Artifact-collector-area = Artifact Collector -Artifact-collector = Artifact Collector -small-biter-Mk2 = Infected Small Biter -small-biter-Mk3 = Mutated Small Biter -medium-biter-Mk2 = Infected Medium Biter -medium-biter-Mk3 = Mutated Medium Biter -big-biter-Mk2 = Infected Big Biter -big-biter-Mk3 = Mutated Big Biter -small-spitter-Mk2 = Infected Small Spitter -small-spitter-Mk3 = Mutated Small Spitter -medium-spitter-Mk2 = Infected Medium Spitter -medium-spitter-Mk3 = Mutated Medium Spitter -big-spitter-Mk2 = Infected Big Spitter -big-spitter-Mk3 = Mutated Big Spitter -Thumper = Thumper -medium-launcher-worm-turret = Medium Launcher Worm Turret -big-launcher-worm-turret = Big Launcher Worm Turret -unit-cluster = Unit Cluster - -[entity-description] - -small-worm = Small Worm -medium-worm = Medium Worm -big-worm = Big Worm -Artifact-collector-area = Collects enemy Artifact in an area around the chest. -Artifact-collector = Collects enemy Artifact in an area around the chest. -small-biter-Mk2 = Pollution Infected Biter -small-biter-Mk3 = Mutated due to Pollution Poisoning -medium-biter-Mk2 = Pollution Infected Biter -medium-biter-Mk3 = Mutated due to Pollution Poisoning -big-biter-Mk2 = Pollution Infected Biter -big-biter-Mk3 = Mutated due to Pollution Poisoning -small-spitter-Mk2 = Pollution Infected Spitter -small-spitter-Mk3 = Mutated due to Pollution Poisoning -medium-spitter-Mk2 = Pollution Infected Spitter -medium-spitter-Mk3 = Mutated due to Pollution Poisoning -big-spitter-Mk2 = Pollution Infected Spitter -big-spitter-Mk3 = Mutated due to Pollution Poisoning -Thumper = Attracks nearby Enemies -medium-launcher-worm-turret = Launches Units at you... -big-launcher-worm-turret = Launches Units at you... -unit-cluster = Unit Cluster - - -[technology-name] -AlienUnderstanding = Alien Understanding - -[technology-description] -AlienUnderstanding = Unlocks Alien Understanding. That gives you a better understanding of this alien world.... - - - -[damage-type-name] -Biological = Biological +[item-group-name] +Natural-Evolution = Natural-Evolution + + +[item-name] +Building_Materials = Building Materials +Artifact-collector-area = Artifact Collector +Artifact-collector = Artifact Collector +Biological-bullet-magazine = Biological Bullet Magazine +medium-launcher-worm-turret = Medium Launcher Worm Turret +big-launcher-worm-turret = Big Launcher Worm Turret +unit-cluster = Unit Cluster + +[item-description] +Building_Materials = The needed materials to build something +Artifact-collector-area = Collects enemy Artifact in an area around the chest. +Artifact-collector = Collects enemy Artifact in an area around the chest. +Biological-bullet-magazine = Extremely Deadly to Aliens! +medium-launcher-worm-turret = Medium Launcher Worm Turret +big-launcher-worm-turret = Big Launcher Worm Turret +unit-cluster = Unit Cluster + +[entity-name] +Artifact-collector-area = Artifact Collector +Artifact-collector = Artifact Collector +small-biter-Mk2 = Infected Small Biter +small-biter-Mk3 = Mutated Small Biter +medium-biter-Mk2 = Infected Medium Biter +medium-biter-Mk3 = Mutated Medium Biter +big-biter-Mk2 = Infected Big Biter +big-biter-Mk3 = Mutated Big Biter +small-spitter-Mk2 = Infected Small Spitter +small-spitter-Mk3 = Mutated Small Spitter +medium-spitter-Mk2 = Infected Medium Spitter +medium-spitter-Mk3 = Mutated Medium Spitter +big-spitter-Mk2 = Infected Big Spitter +big-spitter-Mk3 = Mutated Big Spitter +Thumper = Thumper +medium-launcher-worm-turret = Medium Launcher Worm Turret +big-launcher-worm-turret = Big Launcher Worm Turret +unit-cluster = Unit Cluster + +[entity-description] + +small-worm = Small Worm +medium-worm = Medium Worm +big-worm = Big Worm +Artifact-collector-area = Collects enemy Artifact in an area around the chest. +Artifact-collector = Collects enemy Artifact in an area around the chest. +small-biter-Mk2 = Pollution Infected Biter +small-biter-Mk3 = Mutated due to Pollution Poisoning +medium-biter-Mk2 = Pollution Infected Biter +medium-biter-Mk3 = Mutated due to Pollution Poisoning +big-biter-Mk2 = Pollution Infected Biter +big-biter-Mk3 = Mutated due to Pollution Poisoning +small-spitter-Mk2 = Pollution Infected Spitter +small-spitter-Mk3 = Mutated due to Pollution Poisoning +medium-spitter-Mk2 = Pollution Infected Spitter +medium-spitter-Mk3 = Mutated due to Pollution Poisoning +big-spitter-Mk2 = Pollution Infected Spitter +big-spitter-Mk3 = Mutated due to Pollution Poisoning +Thumper = Attracks nearby Enemies +medium-launcher-worm-turret = Launches Units at you... +big-launcher-worm-turret = Launches Units at you... +unit-cluster = Unit Cluster + + +[technology-name] +AlienUnderstanding = Alien Understanding + +[technology-description] +AlienUnderstanding = Unlocks Alien Understanding. That gives you a better understanding of this alien world.... + + + +[damage-type-name] +Biological = Biological Venom = Venom \ No newline at end of file diff --git a/Natural_Evolution_Enemies_6.3.0/migrations/Natural_Evolution_Enemies_5.3.2.lua b/Natural_Evolution_Enemies_6.3.1/migrations/Natural_Evolution_Enemies_5.3.2.lua similarity index 94% rename from Natural_Evolution_Enemies_6.3.0/migrations/Natural_Evolution_Enemies_5.3.2.lua rename to Natural_Evolution_Enemies_6.3.1/migrations/Natural_Evolution_Enemies_5.3.2.lua index b3f2ae8..930212f 100644 --- a/Natural_Evolution_Enemies_6.3.0/migrations/Natural_Evolution_Enemies_5.3.2.lua +++ b/Natural_Evolution_Enemies_6.3.1/migrations/Natural_Evolution_Enemies_5.3.2.lua @@ -1,28 +1,28 @@ -game.reload_script() - - -for index, force in pairs(game.forces) do - local technologies = force.technologies; - local recipes = force.recipes; - - force.reset_recipes() - force.reset_technologies() - - - - if technologies["AlienUnderstanding"].researched then - recipes["Building_Materials"].enabled = true - recipes["Building_Materials"].reload() - end - - if technologies["AlienUnderstanding-2"].researched then - recipes["Thumper"].enabled = true - recipes["Thumper"].reload() - - end - - end - - - +game.reload_script() + + +for index, force in pairs(game.forces) do + local technologies = force.technologies; + local recipes = force.recipes; + + force.reset_recipes() + force.reset_technologies() + + + + if technologies["AlienUnderstanding"].researched then + recipes["Building_Materials"].enabled = true + recipes["Building_Materials"].reload() + end + + if technologies["AlienUnderstanding-2"].researched then + recipes["Thumper"].enabled = true + recipes["Thumper"].reload() + + end + + end + + + \ No newline at end of file diff --git a/Natural_Evolution_Enemies_6.3.0/migrations/Natural_Evolution_Enemies_6.0.0.lua b/Natural_Evolution_Enemies_6.3.1/migrations/Natural_Evolution_Enemies_6.0.0.lua similarity index 94% rename from Natural_Evolution_Enemies_6.3.0/migrations/Natural_Evolution_Enemies_6.0.0.lua rename to Natural_Evolution_Enemies_6.3.1/migrations/Natural_Evolution_Enemies_6.0.0.lua index b3f2ae8..930212f 100644 --- a/Natural_Evolution_Enemies_6.3.0/migrations/Natural_Evolution_Enemies_6.0.0.lua +++ b/Natural_Evolution_Enemies_6.3.1/migrations/Natural_Evolution_Enemies_6.0.0.lua @@ -1,28 +1,28 @@ -game.reload_script() - - -for index, force in pairs(game.forces) do - local technologies = force.technologies; - local recipes = force.recipes; - - force.reset_recipes() - force.reset_technologies() - - - - if technologies["AlienUnderstanding"].researched then - recipes["Building_Materials"].enabled = true - recipes["Building_Materials"].reload() - end - - if technologies["AlienUnderstanding-2"].researched then - recipes["Thumper"].enabled = true - recipes["Thumper"].reload() - - end - - end - - - +game.reload_script() + + +for index, force in pairs(game.forces) do + local technologies = force.technologies; + local recipes = force.recipes; + + force.reset_recipes() + force.reset_technologies() + + + + if technologies["AlienUnderstanding"].researched then + recipes["Building_Materials"].enabled = true + recipes["Building_Materials"].reload() + end + + if technologies["AlienUnderstanding-2"].researched then + recipes["Thumper"].enabled = true + recipes["Thumper"].reload() + + end + + end + + + \ No newline at end of file diff --git a/Natural_Evolution_Enemies_6.3.0/migrations/Natural_Evolution_Enemies_6.0.1.lua b/Natural_Evolution_Enemies_6.3.1/migrations/Natural_Evolution_Enemies_6.0.1.lua similarity index 94% rename from Natural_Evolution_Enemies_6.3.0/migrations/Natural_Evolution_Enemies_6.0.1.lua rename to Natural_Evolution_Enemies_6.3.1/migrations/Natural_Evolution_Enemies_6.0.1.lua index b3f2ae8..930212f 100644 --- a/Natural_Evolution_Enemies_6.3.0/migrations/Natural_Evolution_Enemies_6.0.1.lua +++ b/Natural_Evolution_Enemies_6.3.1/migrations/Natural_Evolution_Enemies_6.0.1.lua @@ -1,28 +1,28 @@ -game.reload_script() - - -for index, force in pairs(game.forces) do - local technologies = force.technologies; - local recipes = force.recipes; - - force.reset_recipes() - force.reset_technologies() - - - - if technologies["AlienUnderstanding"].researched then - recipes["Building_Materials"].enabled = true - recipes["Building_Materials"].reload() - end - - if technologies["AlienUnderstanding-2"].researched then - recipes["Thumper"].enabled = true - recipes["Thumper"].reload() - - end - - end - - - +game.reload_script() + + +for index, force in pairs(game.forces) do + local technologies = force.technologies; + local recipes = force.recipes; + + force.reset_recipes() + force.reset_technologies() + + + + if technologies["AlienUnderstanding"].researched then + recipes["Building_Materials"].enabled = true + recipes["Building_Materials"].reload() + end + + if technologies["AlienUnderstanding-2"].researched then + recipes["Thumper"].enabled = true + recipes["Thumper"].reload() + + end + + end + + + \ No newline at end of file diff --git a/Natural_Evolution_Enemies_6.3.0/migrations/Natural_Evolution_Enemies_6.0.4.lua b/Natural_Evolution_Enemies_6.3.1/migrations/Natural_Evolution_Enemies_6.0.4.lua similarity index 94% rename from Natural_Evolution_Enemies_6.3.0/migrations/Natural_Evolution_Enemies_6.0.4.lua rename to Natural_Evolution_Enemies_6.3.1/migrations/Natural_Evolution_Enemies_6.0.4.lua index b3f2ae8..930212f 100644 --- a/Natural_Evolution_Enemies_6.3.0/migrations/Natural_Evolution_Enemies_6.0.4.lua +++ b/Natural_Evolution_Enemies_6.3.1/migrations/Natural_Evolution_Enemies_6.0.4.lua @@ -1,28 +1,28 @@ -game.reload_script() - - -for index, force in pairs(game.forces) do - local technologies = force.technologies; - local recipes = force.recipes; - - force.reset_recipes() - force.reset_technologies() - - - - if technologies["AlienUnderstanding"].researched then - recipes["Building_Materials"].enabled = true - recipes["Building_Materials"].reload() - end - - if technologies["AlienUnderstanding-2"].researched then - recipes["Thumper"].enabled = true - recipes["Thumper"].reload() - - end - - end - - - +game.reload_script() + + +for index, force in pairs(game.forces) do + local technologies = force.technologies; + local recipes = force.recipes; + + force.reset_recipes() + force.reset_technologies() + + + + if technologies["AlienUnderstanding"].researched then + recipes["Building_Materials"].enabled = true + recipes["Building_Materials"].reload() + end + + if technologies["AlienUnderstanding-2"].researched then + recipes["Thumper"].enabled = true + recipes["Thumper"].reload() + + end + + end + + + \ No newline at end of file diff --git a/Natural_Evolution_Enemies_6.3.0/migrations/Natural_Evolution_Enemies_6.1.1.lua b/Natural_Evolution_Enemies_6.3.1/migrations/Natural_Evolution_Enemies_6.1.1.lua similarity index 93% rename from Natural_Evolution_Enemies_6.3.0/migrations/Natural_Evolution_Enemies_6.1.1.lua rename to Natural_Evolution_Enemies_6.3.1/migrations/Natural_Evolution_Enemies_6.1.1.lua index f9c0a3f..0afe38d 100644 --- a/Natural_Evolution_Enemies_6.3.0/migrations/Natural_Evolution_Enemies_6.1.1.lua +++ b/Natural_Evolution_Enemies_6.3.1/migrations/Natural_Evolution_Enemies_6.1.1.lua @@ -1,16 +1,16 @@ -game.reload_script() - - -for index, force in pairs(game.forces) do - local technologies = force.technologies; - local recipes = force.recipes; - - force.reset_recipes() - force.reset_technologies() - - - end - - - +game.reload_script() + + +for index, force in pairs(game.forces) do + local technologies = force.technologies; + local recipes = force.recipes; + + force.reset_recipes() + force.reset_technologies() + + + end + + + \ No newline at end of file diff --git a/bobwarfare_0.14.0/migrations/bobwarfare_0.12.9.lua b/Natural_Evolution_Enemies_6.3.1/migrations/Natural_Evolution_Enemies_6.1.6.lua similarity index 51% rename from bobwarfare_0.14.0/migrations/bobwarfare_0.12.9.lua rename to Natural_Evolution_Enemies_6.3.1/migrations/Natural_Evolution_Enemies_6.1.6.lua index c957482..0afe38d 100644 --- a/bobwarfare_0.14.0/migrations/bobwarfare_0.12.9.lua +++ b/Natural_Evolution_Enemies_6.3.1/migrations/Natural_Evolution_Enemies_6.1.6.lua @@ -1,11 +1,16 @@ -game.reload_script() - -for index, force in pairs(game.forces) do - force.reset_recipes() - force.reset_technologies() - - if force.technologies["tanks-3"].researched then - force.recipes["explosive-artillery-shell"].enabled = true - end -end - +game.reload_script() + + +for index, force in pairs(game.forces) do + local technologies = force.technologies; + local recipes = force.recipes; + + force.reset_recipes() + force.reset_technologies() + + + end + + + + \ No newline at end of file diff --git a/Natural_Evolution_Enemies_6.3.0/migrations/Natural_Evolution_Enemies_6.2.0.lua b/Natural_Evolution_Enemies_6.3.1/migrations/Natural_Evolution_Enemies_6.2.0.lua similarity index 93% rename from Natural_Evolution_Enemies_6.3.0/migrations/Natural_Evolution_Enemies_6.2.0.lua rename to Natural_Evolution_Enemies_6.3.1/migrations/Natural_Evolution_Enemies_6.2.0.lua index f9c0a3f..0afe38d 100644 --- a/Natural_Evolution_Enemies_6.3.0/migrations/Natural_Evolution_Enemies_6.2.0.lua +++ b/Natural_Evolution_Enemies_6.3.1/migrations/Natural_Evolution_Enemies_6.2.0.lua @@ -1,16 +1,16 @@ -game.reload_script() - - -for index, force in pairs(game.forces) do - local technologies = force.technologies; - local recipes = force.recipes; - - force.reset_recipes() - force.reset_technologies() - - - end - - - +game.reload_script() + + +for index, force in pairs(game.forces) do + local technologies = force.technologies; + local recipes = force.recipes; + + force.reset_recipes() + force.reset_technologies() + + + end + + + \ No newline at end of file diff --git a/Natural_Evolution_Enemies_6.3.0/migrations/Natural_Evolution_Enemies_6.3.0.lua b/Natural_Evolution_Enemies_6.3.1/migrations/Natural_Evolution_Enemies_6.3.0.lua similarity index 93% rename from Natural_Evolution_Enemies_6.3.0/migrations/Natural_Evolution_Enemies_6.3.0.lua rename to Natural_Evolution_Enemies_6.3.1/migrations/Natural_Evolution_Enemies_6.3.0.lua index f9c0a3f..0afe38d 100644 --- a/Natural_Evolution_Enemies_6.3.0/migrations/Natural_Evolution_Enemies_6.3.0.lua +++ b/Natural_Evolution_Enemies_6.3.1/migrations/Natural_Evolution_Enemies_6.3.0.lua @@ -1,16 +1,16 @@ -game.reload_script() - - -for index, force in pairs(game.forces) do - local technologies = force.technologies; - local recipes = force.recipes; - - force.reset_recipes() - force.reset_technologies() - - - end - - - +game.reload_script() + + +for index, force in pairs(game.forces) do + local technologies = force.technologies; + local recipes = force.recipes; + + force.reset_recipes() + force.reset_technologies() + + + end + + + \ No newline at end of file diff --git a/Natural_Evolution_Enemies_6.3.0/prototypes/Artifact_Collector/entity.lua b/Natural_Evolution_Enemies_6.3.1/prototypes/Artifact_Collector/entity.lua similarity index 96% rename from Natural_Evolution_Enemies_6.3.0/prototypes/Artifact_Collector/entity.lua rename to Natural_Evolution_Enemies_6.3.1/prototypes/Artifact_Collector/entity.lua index 48a3d26..589a76f 100644 --- a/Natural_Evolution_Enemies_6.3.0/prototypes/Artifact_Collector/entity.lua +++ b/Natural_Evolution_Enemies_6.3.1/prototypes/Artifact_Collector/entity.lua @@ -1,131 +1,131 @@ -if not NE_Enemies_Config then NE_Enemies_Config = {} end - -local CollectorRadius = NE_Enemies_Config.Artifact_Collector_Radius - -require ("util") -require ("config") - -inv_extension2 = -{ - filename = "__Natural_Evolution_Enemies__/graphics/entity/Artifact-chest.png", - priority = "extra-high", - scale = 1, - width = 60, - height = 100, - direction_count = 1, - frame_count = 1, - axially_symmetrical = false, - shift = {0.4, -0.13} - -} - - -data:extend( - { - { - type = "logistic-container", - name = "Artifact-collector", - icon = "__Natural_Evolution_Enemies__/graphics/icons/Artifact-chest-icon.png", - flags = {"placeable-player", "placeable-neutral", "player-creation"}, - minable = {mining_time = 0.5, result = "Artifact-collector-area"}, - max_health = 150, - corpse = "small-remnants", - resistances = - { - { - type = "fire", - percent = 70 - } - }, - collision_box = {{-0.35, -0.35}, {0.35, 0.35}}, - selection_box = {{-0.5, -0.5}, {0.5, 0.5}}, - order = "i[items]-i[Artifact-collector]", - subgroup = "storage", - inventory_size = 48, - logistic_mode = "passive-provider", - open_sound = { filename = "__base__/sound/metallic-chest-open.ogg", volume=0.65 }, - close_sound = { filename = "__base__/sound/metallic-chest-close.ogg", volume = 0.7 }, - vehicle_impact_sound = { filename = "__base__/sound/car-metal-impact.ogg", volume = 0.65 }, - picture = - { - filename = "__Natural_Evolution_Enemies__/graphics/entity/Artifact-chest.png", - priority = "extra-high", - width = 60, - height = 100, - shift = {0.4, -0.13} - } - }, - - ---- Overlay of Pickup Range - { - type = "ammo-turret", - name = "Artifact-collector-area", - icon = "__Natural_Evolution_Enemies__/graphics/icons/Artifact-chest-icon.png", - flags = {"placeable-neutral", "placeable-player", "player-creation"}, - open_sound = { filename = "__base__/sound/machine-open.ogg", volume = 0.85 }, - close_sound = { filename = "__base__/sound/machine-close.ogg", volume = 0.75 }, - max_health = 150, - corpse = "small-remnants", - collision_box = {{-0.35, -0.35}, {0.35, 0.35}}, - selection_box = {{-0.5, -0.5}, {0.5, 0.5}}, - order = "i[items]-i[Artifact-collector]", - automated_ammo_count = 1, - resistances = {}, - inventory_size = 1, - attack_parameters = - { - type = "projectile", - ammo_category = "bullet", - cooldown = 2, - range = CollectorRadius, - projectile_creation_distance = 1.8, - 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 - - }, - --[[ - ---- The Artifact collector AREA is used for display only. Showing the 50x50 collection area. - { - type = "logistic-container", - name = "Artifact-collector-area", - icon = "__Natural_Evolution_Enemies__/graphics/icons/Artifact-chest-icon.png", - flags = {"placeable-neutral", "player-creation"}, - minable = {mining_time = 0.5, result = "Artifact-collector-area"}, - max_health = 150, - corpse = "small-remnants", - collision_box = {{-0.35, -0.35}, {0.35, 0.35}}, - selection_box = {{-0.5, -0.5}, {0.5, 0.5}}, - order = "i[items]-i[Artifact-collector]", - subgroup = "storage", - fast_replaceable_group = "container", - inventory_size = 48, - logistic_mode = "passive-provider", - open_sound = { filename = "__base__/sound/metallic-chest-open.ogg", volume=0.65 }, - close_sound = { filename = "__base__/sound/metallic-chest-close.ogg", volume = 0.7 }, - vehicle_impact_sound = { filename = "__base__/sound/car-metal-impact.ogg", volume = 0.65 }, - picture = - { - filename = "__Natural_Evolution_Enemies__/graphics/entity/Artifact-chest-area.png", - priority = "extra-high", - width = 1600, - height = 1600, - shift = {0.4, -0.13} - } - } - ]] - } -) +if not NE_Enemies_Config then NE_Enemies_Config = {} end + +local CollectorRadius = NE_Enemies_Config.Artifact_Collector_Radius + +require ("util") +require ("config") + +inv_extension2 = +{ + filename = "__Natural_Evolution_Enemies__/graphics/entity/Artifact-chest.png", + priority = "extra-high", + scale = 1, + width = 60, + height = 100, + direction_count = 1, + frame_count = 1, + axially_symmetrical = false, + shift = {0.4, -0.13} + +} + + +data:extend( + { + { + type = "logistic-container", + name = "Artifact-collector", + icon = "__Natural_Evolution_Enemies__/graphics/icons/Artifact-chest-icon.png", + flags = {"placeable-player", "placeable-neutral", "player-creation"}, + minable = {mining_time = 0.5, result = "Artifact-collector-area"}, + max_health = 150, + corpse = "small-remnants", + resistances = + { + { + type = "fire", + percent = 70 + } + }, + collision_box = {{-0.35, -0.35}, {0.35, 0.35}}, + selection_box = {{-0.5, -0.5}, {0.5, 0.5}}, + order = "i[items]-i[Artifact-collector]", + subgroup = "storage", + inventory_size = 48, + logistic_mode = "passive-provider", + open_sound = { filename = "__base__/sound/metallic-chest-open.ogg", volume=0.65 }, + close_sound = { filename = "__base__/sound/metallic-chest-close.ogg", volume = 0.7 }, + vehicle_impact_sound = { filename = "__base__/sound/car-metal-impact.ogg", volume = 0.65 }, + picture = + { + filename = "__Natural_Evolution_Enemies__/graphics/entity/Artifact-chest.png", + priority = "extra-high", + width = 60, + height = 100, + shift = {0.4, -0.13} + } + }, + + ---- Overlay of Pickup Range + { + type = "ammo-turret", + name = "Artifact-collector-area", + icon = "__Natural_Evolution_Enemies__/graphics/icons/Artifact-chest-icon.png", + flags = {"placeable-neutral", "placeable-player", "player-creation"}, + open_sound = { filename = "__base__/sound/machine-open.ogg", volume = 0.85 }, + close_sound = { filename = "__base__/sound/machine-close.ogg", volume = 0.75 }, + max_health = 150, + corpse = "small-remnants", + collision_box = {{-0.35, -0.35}, {0.35, 0.35}}, + selection_box = {{-0.5, -0.5}, {0.5, 0.5}}, + order = "i[items]-i[Artifact-collector]", + automated_ammo_count = 1, + resistances = {}, + inventory_size = 1, + attack_parameters = + { + type = "projectile", + ammo_category = "bullet", + cooldown = 2, + range = CollectorRadius, + projectile_creation_distance = 1.8, + 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 + + }, + --[[ + ---- The Artifact collector AREA is used for display only. Showing the 50x50 collection area. + { + type = "logistic-container", + name = "Artifact-collector-area", + icon = "__Natural_Evolution_Enemies__/graphics/icons/Artifact-chest-icon.png", + flags = {"placeable-neutral", "player-creation"}, + minable = {mining_time = 0.5, result = "Artifact-collector-area"}, + max_health = 150, + corpse = "small-remnants", + collision_box = {{-0.35, -0.35}, {0.35, 0.35}}, + selection_box = {{-0.5, -0.5}, {0.5, 0.5}}, + order = "i[items]-i[Artifact-collector]", + subgroup = "storage", + fast_replaceable_group = "container", + inventory_size = 48, + logistic_mode = "passive-provider", + open_sound = { filename = "__base__/sound/metallic-chest-open.ogg", volume=0.65 }, + close_sound = { filename = "__base__/sound/metallic-chest-close.ogg", volume = 0.7 }, + vehicle_impact_sound = { filename = "__base__/sound/car-metal-impact.ogg", volume = 0.65 }, + picture = + { + filename = "__Natural_Evolution_Enemies__/graphics/entity/Artifact-chest-area.png", + priority = "extra-high", + width = 1600, + height = 1600, + shift = {0.4, -0.13} + } + } + ]] + } +) diff --git a/Natural_Evolution_Enemies_6.3.0/prototypes/Artifact_Collector/item.lua b/Natural_Evolution_Enemies_6.3.1/prototypes/Artifact_Collector/item.lua similarity index 96% rename from Natural_Evolution_Enemies_6.3.0/prototypes/Artifact_Collector/item.lua rename to Natural_Evolution_Enemies_6.3.1/prototypes/Artifact_Collector/item.lua index d13fd14..86a208f 100644 --- a/Natural_Evolution_Enemies_6.3.0/prototypes/Artifact_Collector/item.lua +++ b/Natural_Evolution_Enemies_6.3.1/prototypes/Artifact_Collector/item.lua @@ -1,14 +1,14 @@ -data:extend( - { - { - type = "item", - name = "Artifact-collector-area", - icon = "__Natural_Evolution_Enemies__/graphics/icons/Artifact-chest-icon.png", - flags = {"goes-to-quickbar"}, - subgroup = "Natural-Evolution", - order = "d[Artifact-collector]", - place_result = "Artifact-collector-area", - stack_size = 50 - } - } +data:extend( + { + { + type = "item", + name = "Artifact-collector-area", + icon = "__Natural_Evolution_Enemies__/graphics/icons/Artifact-chest-icon.png", + flags = {"goes-to-quickbar"}, + subgroup = "Natural-Evolution", + order = "d[Artifact-collector]", + place_result = "Artifact-collector-area", + stack_size = 50 + } + } ) \ No newline at end of file diff --git a/Natural_Evolution_Enemies_6.3.0/prototypes/Artifact_Collector/recipe.lua b/Natural_Evolution_Enemies_6.3.1/prototypes/Artifact_Collector/recipe.lua similarity index 93% rename from Natural_Evolution_Enemies_6.3.0/prototypes/Artifact_Collector/recipe.lua rename to Natural_Evolution_Enemies_6.3.1/prototypes/Artifact_Collector/recipe.lua index 4a2b408..7e86dea 100644 --- a/Natural_Evolution_Enemies_6.3.0/prototypes/Artifact_Collector/recipe.lua +++ b/Natural_Evolution_Enemies_6.3.1/prototypes/Artifact_Collector/recipe.lua @@ -1,16 +1,16 @@ -data:extend( - { - { - type = "recipe", - name = "Artifact-collector", - enabled = false, - ingredients = - { - {"steel-chest", 4}, - {"stone-brick", 20}, - {"battery", 5} - }, - result = "Artifact-collector-area" - } - } -) +data:extend( + { + { + type = "recipe", + name = "Artifact-collector", + enabled = false, + ingredients = + { + {"steel-chest", 4}, + {"stone-brick", 20}, + {"battery", 5} + }, + result = "Artifact-collector-area" + } + } +) diff --git a/Natural_Evolution_Enemies_6.3.0/prototypes/Extra_Loot/extra_loot.lua b/Natural_Evolution_Enemies_6.3.1/prototypes/Extra_Loot/extra_loot.lua similarity index 96% rename from Natural_Evolution_Enemies_6.3.0/prototypes/Extra_Loot/extra_loot.lua rename to Natural_Evolution_Enemies_6.3.1/prototypes/Extra_Loot/extra_loot.lua index 92256e4..4ec9cb4 100644 --- a/Natural_Evolution_Enemies_6.3.0/prototypes/Extra_Loot/extra_loot.lua +++ b/Natural_Evolution_Enemies_6.3.1/prototypes/Extra_Loot/extra_loot.lua @@ -1,241 +1,241 @@ - - -local loot = -{ - item = "small-alien-artifact", - probability = 0.5, - count_min = 1, - count_max = 1 -} - -local lootB = -{ - item = "small-alien-artifact", - probability = 0.6, - count_min = 1, - count_max = 2 -} - -local lootC = -{ - item = "small-alien-artifact", - probability = 0.7, - count_min = 2, - count_max = 5 -} - -local lootD = -{ - item = "small-alien-artifact", - probability = 0.8, - count_min = 5, - count_max = 5 -} - --- biter -- - -if data.raw.unit["small-biter"] then - if data.raw.unit["small-biter"].loot == nil then - data.raw.unit["small-biter"].loot = {} - end - if data.raw.item["small-alien-artifact"] then - table.insert(data.raw.unit["small-biter"].loot, loot) - end -end - - -if data.raw.unit["medium-biter"] then - if data.raw.unit["medium-biter"].loot == nil then - data.raw.unit["medium-biter"].loot = {} - end - if data.raw.item["small-alien-artifact"] then - table.insert(data.raw.unit["medium-biter"].loot, lootB) - end -end - - -if data.raw.unit["big-biter"] then - if data.raw.unit["big-biter"].loot == nil then - data.raw.unit["big-biter"].loot = {} - end - if data.raw.item["small-alien-artifact"] then - table.insert(data.raw.unit["big-biter"].loot, lootC) - end -end - - -if data.raw.unit["behemoth-biter"] then - if data.raw.unit["behemoth-biter"].loot == nil then - data.raw.unit["behemoth-biter"].loot = {} - end - if data.raw.item["small-alien-artifact"] then - table.insert(data.raw.unit["behemoth-biter"].loot, lootD) - end -end - - - --- splitter -- - -if data.raw.unit["small-spitter"] then - if data.raw.unit["small-spitter"].loot == nil then - data.raw.unit["small-spitter"].loot = {} - end - if data.raw.item["small-alien-artifact"] then - table.insert(data.raw.unit["small-spitter"].loot, loot) - end -end - - -if data.raw.unit["medium-spitter"] then - if data.raw.unit["medium-spitter"].loot == nil then - data.raw.unit["medium-spitter"].loot = {} - end - if data.raw.item["small-alien-artifact"] then - table.insert(data.raw.unit["medium-spitter"].loot, lootB) - end -end - - -if data.raw.unit["big-spitter"] then - if data.raw.unit["big-spitter"].loot == nil then - data.raw.unit["big-spitter"].loot = {} - end - if data.raw.item["small-alien-artifact"] then - table.insert(data.raw.unit["big-spitter"].loot, lootC) - end -end - - -if data.raw.unit["behemoth-spitter"] then - if data.raw.unit["behemoth-spitter"].loot == nil then - data.raw.unit["behemoth-spitter"].loot = {} - end - if data.raw.item["small-alien-artifact"] then - table.insert(data.raw.unit["behemoth-spitter"].loot, lootD) - end -end - - ----- New Units -if NE_Enemies_Config.Spawners then - --- Biters - - if data.raw.unit["small-biter-Mk2"] then - if data.raw.unit["small-biter-Mk2"].loot == nil then - data.raw.unit["small-biter-Mk2"].loot = {} - end - if data.raw.item["small-alien-artifact"] then - table.insert(data.raw.unit["small-biter-Mk2"].loot, loot) - end - end - - if data.raw.unit["small-biter-Mk3"] then - if data.raw.unit["small-biter-Mk3"].loot == nil then - data.raw.unit["small-biter-Mk3"].loot = {} - end - if data.raw.item["small-alien-artifact"] then - table.insert(data.raw.unit["small-biter-Mk3"].loot, loot) - end - end - - - if data.raw.unit["medium-biter-Mk2"] then - if data.raw.unit["medium-biter-Mk2"].loot == nil then - data.raw.unit["medium-biter-Mk2"].loot = {} - end - if data.raw.item["small-alien-artifact"] then - table.insert(data.raw.unit["medium-biter-Mk2"].loot, lootB) - end - end - - if data.raw.unit["medium-biter-Mk3"] then - if data.raw.unit["medium-biter-Mk3"].loot == nil then - data.raw.unit["medium-biter-Mk3"].loot = {} - end - if data.raw.item["small-alien-artifact"] then - table.insert(data.raw.unit["medium-biter-Mk3"].loot, lootB) - end - end - - if data.raw.unit["big-biter-Mk2"] then - if data.raw.unit["big-biter-Mk2"].loot == nil then - data.raw.unit["big-biter-Mk2"].loot = {} - end - if data.raw.item["small-alien-artifact"] then - table.insert(data.raw.unit["big-biter-Mk2"].loot, lootC) - end - end - - if data.raw.unit["big-biter-Mk3"] then - if data.raw.unit["big-biter-Mk3"].loot == nil then - data.raw.unit["big-biter-Mk3"].loot = {} - end - if data.raw.item["small-alien-artifact"] then - table.insert(data.raw.unit["big-biter-Mk3"].loot, lootC) - end - end - - - - - ---- Spitters - - if data.raw.unit["small-spitter-Mk2"] then - if data.raw.unit["small-spitter-Mk2"].loot == nil then - data.raw.unit["small-spitter-Mk2"].loot = {} - end - if data.raw.item["small-alien-artifact"] then - table.insert(data.raw.unit["small-spitter-Mk2"].loot, loot) - end - end - - if data.raw.unit["small-spitter-Mk3"] then - if data.raw.unit["small-spitter-Mk3"].loot == nil then - data.raw.unit["small-spitter-Mk3"].loot = {} - end - if data.raw.item["small-alien-artifact"] then - table.insert(data.raw.unit["small-spitter-Mk3"].loot, loot) - end - end - - - if data.raw.unit["medium-spitter-Mk2"] then - if data.raw.unit["medium-spitter-Mk2"].loot == nil then - data.raw.unit["medium-spitter-Mk2"].loot = {} - end - if data.raw.item["small-alien-artifact"] then - table.insert(data.raw.unit["medium-spitter-Mk2"].loot, lootB) - end - end - - if data.raw.unit["medium-spitter-Mk3"] then - if data.raw.unit["medium-spitter-Mk3"].loot == nil then - data.raw.unit["medium-spitter-Mk3"].loot = {} - end - if data.raw.item["small-alien-artifact"] then - table.insert(data.raw.unit["medium-spitter-Mk3"].loot, lootB) - end - end - - if data.raw.unit["big-spitter-Mk2"] then - if data.raw.unit["big-spitter-Mk2"].loot == nil then - data.raw.unit["big-spitter-Mk2"].loot = {} - end - if data.raw.item["small-alien-artifact"] then - table.insert(data.raw.unit["big-spitter-Mk2"].loot, lootC) - end - end - - if data.raw.unit["big-spitter-Mk3"] then - if data.raw.unit["big-spitter-Mk3"].loot == nil then - data.raw.unit["big-spitter-Mk3"].loot = {} - end - if data.raw.item["small-alien-artifact"] then - table.insert(data.raw.unit["big-spitter-Mk3"].loot, lootC) - end - end - - -end ------------------- + + +local loot = +{ + item = "small-alien-artifact", + probability = 0.5, + count_min = 1, + count_max = 1 +} + +local lootB = +{ + item = "small-alien-artifact", + probability = 0.6, + count_min = 1, + count_max = 2 +} + +local lootC = +{ + item = "small-alien-artifact", + probability = 0.7, + count_min = 2, + count_max = 5 +} + +local lootD = +{ + item = "small-alien-artifact", + probability = 0.8, + count_min = 5, + count_max = 5 +} + +-- biter -- + +if data.raw.unit["small-biter"] then + if data.raw.unit["small-biter"].loot == nil then + data.raw.unit["small-biter"].loot = {} + end + if data.raw.item["small-alien-artifact"] then + table.insert(data.raw.unit["small-biter"].loot, loot) + end +end + + +if data.raw.unit["medium-biter"] then + if data.raw.unit["medium-biter"].loot == nil then + data.raw.unit["medium-biter"].loot = {} + end + if data.raw.item["small-alien-artifact"] then + table.insert(data.raw.unit["medium-biter"].loot, lootB) + end +end + + +if data.raw.unit["big-biter"] then + if data.raw.unit["big-biter"].loot == nil then + data.raw.unit["big-biter"].loot = {} + end + if data.raw.item["small-alien-artifact"] then + table.insert(data.raw.unit["big-biter"].loot, lootC) + end +end + + +if data.raw.unit["behemoth-biter"] then + if data.raw.unit["behemoth-biter"].loot == nil then + data.raw.unit["behemoth-biter"].loot = {} + end + if data.raw.item["small-alien-artifact"] then + table.insert(data.raw.unit["behemoth-biter"].loot, lootD) + end +end + + + +-- splitter -- + +if data.raw.unit["small-spitter"] then + if data.raw.unit["small-spitter"].loot == nil then + data.raw.unit["small-spitter"].loot = {} + end + if data.raw.item["small-alien-artifact"] then + table.insert(data.raw.unit["small-spitter"].loot, loot) + end +end + + +if data.raw.unit["medium-spitter"] then + if data.raw.unit["medium-spitter"].loot == nil then + data.raw.unit["medium-spitter"].loot = {} + end + if data.raw.item["small-alien-artifact"] then + table.insert(data.raw.unit["medium-spitter"].loot, lootB) + end +end + + +if data.raw.unit["big-spitter"] then + if data.raw.unit["big-spitter"].loot == nil then + data.raw.unit["big-spitter"].loot = {} + end + if data.raw.item["small-alien-artifact"] then + table.insert(data.raw.unit["big-spitter"].loot, lootC) + end +end + + +if data.raw.unit["behemoth-spitter"] then + if data.raw.unit["behemoth-spitter"].loot == nil then + data.raw.unit["behemoth-spitter"].loot = {} + end + if data.raw.item["small-alien-artifact"] then + table.insert(data.raw.unit["behemoth-spitter"].loot, lootD) + end +end + + +---- New Units +if NE_Enemies_Config.Spawners then + --- Biters + + if data.raw.unit["small-biter-Mk2"] then + if data.raw.unit["small-biter-Mk2"].loot == nil then + data.raw.unit["small-biter-Mk2"].loot = {} + end + if data.raw.item["small-alien-artifact"] then + table.insert(data.raw.unit["small-biter-Mk2"].loot, loot) + end + end + + if data.raw.unit["small-biter-Mk3"] then + if data.raw.unit["small-biter-Mk3"].loot == nil then + data.raw.unit["small-biter-Mk3"].loot = {} + end + if data.raw.item["small-alien-artifact"] then + table.insert(data.raw.unit["small-biter-Mk3"].loot, loot) + end + end + + + if data.raw.unit["medium-biter-Mk2"] then + if data.raw.unit["medium-biter-Mk2"].loot == nil then + data.raw.unit["medium-biter-Mk2"].loot = {} + end + if data.raw.item["small-alien-artifact"] then + table.insert(data.raw.unit["medium-biter-Mk2"].loot, lootB) + end + end + + if data.raw.unit["medium-biter-Mk3"] then + if data.raw.unit["medium-biter-Mk3"].loot == nil then + data.raw.unit["medium-biter-Mk3"].loot = {} + end + if data.raw.item["small-alien-artifact"] then + table.insert(data.raw.unit["medium-biter-Mk3"].loot, lootB) + end + end + + if data.raw.unit["big-biter-Mk2"] then + if data.raw.unit["big-biter-Mk2"].loot == nil then + data.raw.unit["big-biter-Mk2"].loot = {} + end + if data.raw.item["small-alien-artifact"] then + table.insert(data.raw.unit["big-biter-Mk2"].loot, lootC) + end + end + + if data.raw.unit["big-biter-Mk3"] then + if data.raw.unit["big-biter-Mk3"].loot == nil then + data.raw.unit["big-biter-Mk3"].loot = {} + end + if data.raw.item["small-alien-artifact"] then + table.insert(data.raw.unit["big-biter-Mk3"].loot, lootC) + end + end + + + + + ---- Spitters + + if data.raw.unit["small-spitter-Mk2"] then + if data.raw.unit["small-spitter-Mk2"].loot == nil then + data.raw.unit["small-spitter-Mk2"].loot = {} + end + if data.raw.item["small-alien-artifact"] then + table.insert(data.raw.unit["small-spitter-Mk2"].loot, loot) + end + end + + if data.raw.unit["small-spitter-Mk3"] then + if data.raw.unit["small-spitter-Mk3"].loot == nil then + data.raw.unit["small-spitter-Mk3"].loot = {} + end + if data.raw.item["small-alien-artifact"] then + table.insert(data.raw.unit["small-spitter-Mk3"].loot, loot) + end + end + + + if data.raw.unit["medium-spitter-Mk2"] then + if data.raw.unit["medium-spitter-Mk2"].loot == nil then + data.raw.unit["medium-spitter-Mk2"].loot = {} + end + if data.raw.item["small-alien-artifact"] then + table.insert(data.raw.unit["medium-spitter-Mk2"].loot, lootB) + end + end + + if data.raw.unit["medium-spitter-Mk3"] then + if data.raw.unit["medium-spitter-Mk3"].loot == nil then + data.raw.unit["medium-spitter-Mk3"].loot = {} + end + if data.raw.item["small-alien-artifact"] then + table.insert(data.raw.unit["medium-spitter-Mk3"].loot, lootB) + end + end + + if data.raw.unit["big-spitter-Mk2"] then + if data.raw.unit["big-spitter-Mk2"].loot == nil then + data.raw.unit["big-spitter-Mk2"].loot = {} + end + if data.raw.item["small-alien-artifact"] then + table.insert(data.raw.unit["big-spitter-Mk2"].loot, lootC) + end + end + + if data.raw.unit["big-spitter-Mk3"] then + if data.raw.unit["big-spitter-Mk3"].loot == nil then + data.raw.unit["big-spitter-Mk3"].loot = {} + end + if data.raw.item["small-alien-artifact"] then + table.insert(data.raw.unit["big-spitter-Mk3"].loot, lootC) + end + end + + +end +------------------ diff --git a/Natural_Evolution_Enemies_6.3.0/prototypes/Extra_Loot/item.lua b/Natural_Evolution_Enemies_6.3.1/prototypes/Extra_Loot/item.lua similarity index 96% rename from Natural_Evolution_Enemies_6.3.0/prototypes/Extra_Loot/item.lua rename to Natural_Evolution_Enemies_6.3.1/prototypes/Extra_Loot/item.lua index ee9711a..2945aa5 100644 --- a/Natural_Evolution_Enemies_6.3.0/prototypes/Extra_Loot/item.lua +++ b/Natural_Evolution_Enemies_6.3.1/prototypes/Extra_Loot/item.lua @@ -1,13 +1,13 @@ -data:extend({ - { - type = "item", - name = "small-alien-artifact", - icon = "__Natural_Evolution_Enemies__/graphics/icons/small-alien-artifact.png", - flags = { "goes-to-main-inventory" }, - --subgroup = "Materials", -- NE Sub Group - subgroup = "raw-material", - order = "g[alien-artifact]-a[pink]-a[small]", - stack_size = 500, - default_request_amount = 100 - }, +data:extend({ + { + type = "item", + name = "small-alien-artifact", + icon = "__Natural_Evolution_Enemies__/graphics/icons/small-alien-artifact.png", + flags = { "goes-to-main-inventory" }, + --subgroup = "Materials", -- NE Sub Group + subgroup = "raw-material", + order = "g[alien-artifact]-a[pink]-a[small]", + stack_size = 500, + default_request_amount = 100 + }, }) \ No newline at end of file diff --git a/Natural_Evolution_Enemies_6.3.0/prototypes/Extra_Loot/recipe.lua b/Natural_Evolution_Enemies_6.3.1/prototypes/Extra_Loot/recipe.lua similarity index 95% rename from Natural_Evolution_Enemies_6.3.0/prototypes/Extra_Loot/recipe.lua rename to Natural_Evolution_Enemies_6.3.1/prototypes/Extra_Loot/recipe.lua index fa079b2..4da0b07 100644 --- a/Natural_Evolution_Enemies_6.3.0/prototypes/Extra_Loot/recipe.lua +++ b/Natural_Evolution_Enemies_6.3.1/prototypes/Extra_Loot/recipe.lua @@ -1,11 +1,11 @@ -data:extend({ -{ - type = "recipe", - name = "alien-artifact-from-small", - result= "alien-artifact", - ingredients= { {"small-alien-artifact", 100} }, - energy_required= 2.5, - enabled= "true", - category= "crafting" - }, +data:extend({ +{ + type = "recipe", + name = "alien-artifact-from-small", + result= "alien-artifact", + ingredients= { {"small-alien-artifact", 100} }, + energy_required= 2.5, + enabled= "true", + category= "crafting" + }, }) \ No newline at end of file diff --git a/Natural_Evolution_Enemies_6.3.0/prototypes/Item-Groups/item-groups.lua b/Natural_Evolution_Enemies_6.3.1/prototypes/Item-Groups/item-groups.lua similarity index 94% rename from Natural_Evolution_Enemies_6.3.0/prototypes/Item-Groups/item-groups.lua rename to Natural_Evolution_Enemies_6.3.1/prototypes/Item-Groups/item-groups.lua index 0c0491a..92d732f 100644 --- a/Natural_Evolution_Enemies_6.3.0/prototypes/Item-Groups/item-groups.lua +++ b/Natural_Evolution_Enemies_6.3.1/prototypes/Item-Groups/item-groups.lua @@ -1,40 +1,40 @@ -data:extend( -{ - - { - type = "item-group", - name = "Natural-Evolution", - icon = "__Natural_Evolution_Enemies__/graphics/icons/AlienUnderstanding.png", - inventory_order = "y", - order = "z", - }, - - { - type = "item-subgroup", - name = "Tools", - group = "Natural-Evolution", - order = "e", - }, - - { - type = "item-subgroup", - name = "Evolution-fluids", - group = "Natural-Evolution", - order = "f", - }, - - { - type = "item-subgroup", - name = "Materials", - group = "Natural-Evolution", - order = "g", - }, - - { - type = "item-subgroup", - name = "Natural-Evolution", - group = "Natural-Evolution", - order = "h", - }, - +data:extend( +{ + + { + type = "item-group", + name = "Natural-Evolution", + icon = "__Natural_Evolution_Enemies__/graphics/icons/AlienUnderstanding.png", + inventory_order = "y", + order = "z", + }, + + { + type = "item-subgroup", + name = "Tools", + group = "Natural-Evolution", + order = "e", + }, + + { + type = "item-subgroup", + name = "Evolution-fluids", + group = "Natural-Evolution", + order = "f", + }, + + { + type = "item-subgroup", + name = "Materials", + group = "Natural-Evolution", + order = "g", + }, + + { + type = "item-subgroup", + name = "Natural-Evolution", + group = "Natural-Evolution", + order = "h", + }, + }) \ No newline at end of file diff --git a/Natural_Evolution_Buildings_6.3.0/prototypes/Other/damage-type.lua b/Natural_Evolution_Enemies_6.3.1/prototypes/Other/damage-type.lua similarity index 92% rename from Natural_Evolution_Buildings_6.3.0/prototypes/Other/damage-type.lua rename to Natural_Evolution_Enemies_6.3.1/prototypes/Other/damage-type.lua index c3331bb..23295ac 100644 --- a/Natural_Evolution_Buildings_6.3.0/prototypes/Other/damage-type.lua +++ b/Natural_Evolution_Enemies_6.3.1/prototypes/Other/damage-type.lua @@ -1,9 +1,9 @@ -data:extend({ - ---- Bio Damage for new Ammo - { - type = "damage-type", - name = "Biological" - }, - -}) +data:extend({ + +--- Bio Damage for new Ammo + { + type = "damage-type", + name = "Biological" + }, + +}) diff --git a/Natural_Evolution_Enemies_6.3.0/prototypes/Other/item.lua b/Natural_Evolution_Enemies_6.3.1/prototypes/Other/item.lua similarity index 95% rename from Natural_Evolution_Enemies_6.3.0/prototypes/Other/item.lua rename to Natural_Evolution_Enemies_6.3.1/prototypes/Other/item.lua index d23c846..0f2a3f5 100644 --- a/Natural_Evolution_Enemies_6.3.0/prototypes/Other/item.lua +++ b/Natural_Evolution_Enemies_6.3.1/prototypes/Other/item.lua @@ -1,51 +1,51 @@ -require "config" - - -data:extend({ - - - --- Biological Bullet - { - type = "ammo", - name = "Biological-bullet-magazine", - icon = "__Natural_Evolution_Enemies__/graphics/icons/Biological-bullet-magazine.png", - flags = {"goes-to-main-inventory"}, - ammo_type = - { - category = "bullet", - 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 = (NE_Enemies_Config.BioDamage/NE_Enemies_Config.Set_Difficulty) + 10, type = "Biological"} - }, - { - type = "damage", - damage = { amount = 5 , type = "physical"} - } - } - } - } - }, - magazine_size = 10, - subgroup = "ammo", - order = "a[basic-clips]-b[piercing-rounds-magazine]-c[Biological-bullet-magazine]", - stack_size = 100 - }, -}) +require "config" + + +data:extend({ + + + --- Biological Bullet + { + type = "ammo", + name = "Biological-bullet-magazine", + icon = "__Natural_Evolution_Enemies__/graphics/icons/Biological-bullet-magazine.png", + flags = {"goes-to-main-inventory"}, + ammo_type = + { + category = "bullet", + 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 = (NE_Enemies_Config.BioDamage/NE_Enemies_Config.Set_Difficulty) + 10, type = "Biological"} + }, + { + type = "damage", + damage = { amount = 5 , type = "physical"} + } + } + } + } + }, + magazine_size = 10, + subgroup = "ammo", + order = "a[basic-clips]-b[piercing-rounds-magazine]-c[Biological-bullet-magazine]", + stack_size = 100 + }, +}) diff --git a/Natural_Evolution_Enemies_6.3.0/prototypes/Other/recipe.lua b/Natural_Evolution_Enemies_6.3.1/prototypes/Other/recipe.lua similarity index 94% rename from Natural_Evolution_Enemies_6.3.0/prototypes/Other/recipe.lua rename to Natural_Evolution_Enemies_6.3.1/prototypes/Other/recipe.lua index 4f01687..c59e83c 100644 --- a/Natural_Evolution_Enemies_6.3.0/prototypes/Other/recipe.lua +++ b/Natural_Evolution_Enemies_6.3.1/prototypes/Other/recipe.lua @@ -1,22 +1,22 @@ - - -data:extend({ - { - type = "recipe", - name = "Biological-bullet-magazine", - enabled = false, - energy_required = 5, - category = "crafting-with-fluid", - ingredients = - { - {"alien-artifact", 2}, - --{"plastic-bar", 5}, - {"piercing-rounds-magazine", 5}, - {type="fluid", name="sulfuric-acid", amount=15} - }, - result = "Biological-bullet-magazine", - result_count = 5 - }, - - -}) + + +data:extend({ + { + type = "recipe", + name = "Biological-bullet-magazine", + enabled = false, + energy_required = 5, + category = "crafting-with-fluid", + ingredients = + { + {"alien-artifact", 2}, + --{"plastic-bar", 5}, + {"piercing-rounds-magazine", 5}, + {type="fluid", name="sulfuric-acid", amount=15} + }, + result = "Biological-bullet-magazine", + result_count = 5 + }, + + +}) diff --git a/Natural_Evolution_Enemies_6.3.0/prototypes/Technology/technology.lua b/Natural_Evolution_Enemies_6.3.1/prototypes/Technology/technology.lua similarity index 94% rename from Natural_Evolution_Enemies_6.3.0/prototypes/Technology/technology.lua rename to Natural_Evolution_Enemies_6.3.1/prototypes/Technology/technology.lua index c641d83..0547a4e 100644 --- a/Natural_Evolution_Enemies_6.3.0/prototypes/Technology/technology.lua +++ b/Natural_Evolution_Enemies_6.3.1/prototypes/Technology/technology.lua @@ -1,60 +1,60 @@ -data:extend({ - - --- Alien Understanding - { - type = "technology", - name = "AlienUnderstanding", - icon_size = 128, - icon = "__Natural_Evolution_Enemies__/graphics/technology/AlienUnderstanding.png", - effects = - { - { - type = 'unlock-recipe', - recipe='Artifact-collector' - } - - }, - prerequisites = {"advanced-electronics"}, - unit = - { - count = 50, - ingredients = - { - {"science-pack-1", 2}, - {"science-pack-2", 1} - }, - time = 50 - }, - order = "a-h-a", - }, - - - { - type = "technology", - name = "AlienUnderstanding-2", - icon_size = 128, - icon = "__Natural_Evolution_Enemies__/graphics/technology/AlienUnderstanding.png", - effects = - { - { - type = 'unlock-recipe', - recipe='Biological-bullet-magazine' - } - }, - prerequisites = {"AlienUnderstanding"}, - unit = - { - count = 50, - ingredients = - { - {"science-pack-1", 3}, - {"science-pack-2", 2}, - {"science-pack-3", 1} - }, - time = 50 - }, - upgrade = true, - order = "a-h-b", - }, - -}) +data:extend({ + + --- Alien Understanding + { + type = "technology", + name = "AlienUnderstanding", + icon_size = 128, + icon = "__Natural_Evolution_Enemies__/graphics/technology/AlienUnderstanding.png", + effects = + { + { + type = 'unlock-recipe', + recipe='Artifact-collector' + } + + }, + prerequisites = {"advanced-electronics"}, + unit = + { + count = 50, + ingredients = + { + {"science-pack-1", 2}, + {"science-pack-2", 1} + }, + time = 50 + }, + order = "a-h-a", + }, + + + { + type = "technology", + name = "AlienUnderstanding-2", + icon_size = 128, + icon = "__Natural_Evolution_Enemies__/graphics/technology/AlienUnderstanding.png", + effects = + { + { + type = 'unlock-recipe', + recipe='Biological-bullet-magazine' + } + }, + prerequisites = {"AlienUnderstanding"}, + unit = + { + count = 50, + ingredients = + { + {"science-pack-1", 3}, + {"science-pack-2", 2}, + {"science-pack-3", 1} + }, + time = 50 + }, + upgrade = true, + order = "a-h-b", + }, + +}) diff --git a/Natural_Evolution_Enemies_6.3.0/prototypes/Vanilla_Changes/Biter_Evolution.lua b/Natural_Evolution_Enemies_6.3.1/prototypes/Vanilla_Changes/Biter_Evolution.lua similarity index 98% rename from Natural_Evolution_Enemies_6.3.0/prototypes/Vanilla_Changes/Biter_Evolution.lua rename to Natural_Evolution_Enemies_6.3.1/prototypes/Vanilla_Changes/Biter_Evolution.lua index f5f46d3..6eb1248 100644 --- a/Natural_Evolution_Enemies_6.3.0/prototypes/Vanilla_Changes/Biter_Evolution.lua +++ b/Natural_Evolution_Enemies_6.3.1/prototypes/Vanilla_Changes/Biter_Evolution.lua @@ -1,19 +1,19 @@ -data.raw["unit-spawner"]["biter-spawner"].result_units = (function() - local res = {} - - res[1] = {"small-biter", {{0.00, 0.3}, {0.30, 0.3}, {0.40, 0.0}}} - res[2] = {"small-biter-Mk2", {{0.10, 0.0}, {0.40, 0.3}, {0.50, 0.0}}} - res[3] = {"small-biter-Mk3", {{0.20, 0.0}, {0.50, 0.3}, {0.60, 0.0}}} - - res[4] = {"medium-biter", {{0.30, 0.0}, {0.60, 0.3}, {0.70, 0.0}}} - res[5] = {"medium-biter-Mk2", {{0.40, 0.0}, {0.70, 0.3}, {0.80, 0.0}}} - res[6] = {"medium-biter-Mk3", {{0.50, 0.0}, {0.80, 0.3}, {0.90, 0.0}}} - - res[7] = {"big-biter", {{0.60, 0.0}, {0.90, 0.3}, {1.00, 0.0}}} - res[8] = {"big-biter-Mk2", {{0.70, 0.0}, {1.00, 0.3}}} - res[9] = {"big-biter-Mk3", {{0.80, 0.0}, {1.00, 0.3}}} - - res[10] = {"behemoth-biter", {{0.90, 0.0}, {1.00, 0.3}}} - - return res +data.raw["unit-spawner"]["biter-spawner"].result_units = (function() + local res = {} + + res[1] = {"small-biter", {{0.00, 0.3}, {0.30, 0.3}, {0.40, 0.0}}} + res[2] = {"small-biter-Mk2", {{0.10, 0.0}, {0.40, 0.3}, {0.50, 0.0}}} + res[3] = {"small-biter-Mk3", {{0.20, 0.0}, {0.50, 0.3}, {0.60, 0.0}}} + + res[4] = {"medium-biter", {{0.30, 0.0}, {0.60, 0.3}, {0.70, 0.0}}} + res[5] = {"medium-biter-Mk2", {{0.40, 0.0}, {0.70, 0.3}, {0.80, 0.0}}} + res[6] = {"medium-biter-Mk3", {{0.50, 0.0}, {0.80, 0.3}, {0.90, 0.0}}} + + res[7] = {"big-biter", {{0.60, 0.0}, {0.90, 0.3}, {1.00, 0.0}}} + res[8] = {"big-biter-Mk2", {{0.70, 0.0}, {1.00, 0.3}}} + res[9] = {"big-biter-Mk3", {{0.80, 0.0}, {1.00, 0.3}}} + + res[10] = {"behemoth-biter", {{0.90, 0.0}, {1.00, 0.3}}} + + return res end)() \ No newline at end of file diff --git a/Natural_Evolution_Enemies_6.3.0/prototypes/Vanilla_Changes/Bobs_Spawners.lua b/Natural_Evolution_Enemies_6.3.1/prototypes/Vanilla_Changes/Bobs_Spawners.lua similarity index 98% rename from Natural_Evolution_Enemies_6.3.0/prototypes/Vanilla_Changes/Bobs_Spawners.lua rename to Natural_Evolution_Enemies_6.3.1/prototypes/Vanilla_Changes/Bobs_Spawners.lua index a4a5cb6..37e4c65 100644 --- a/Natural_Evolution_Enemies_6.3.0/prototypes/Vanilla_Changes/Bobs_Spawners.lua +++ b/Natural_Evolution_Enemies_6.3.1/prototypes/Vanilla_Changes/Bobs_Spawners.lua @@ -1,53 +1,53 @@ -data.raw["unit-spawner"]["bob-biter-spawner"].result_units = (function() - local res = {} - - res[1] = {"small-biter", {{0.00, 0.3}, {0.30, 0.3}, {0.40, 0.0}}} - res[2] = {"small-biter-Mk2", {{0.10, 0.0}, {0.40, 0.3}, {0.50, 0.0}}} - res[3] = {"small-biter-Mk3", {{0.20, 0.0}, {0.50, 0.3}, {0.60, 0.0}}} - - res[4] = {"medium-biter", {{0.30, 0.0}, {0.60, 0.3}, {0.70, 0.0}}} - res[5] = {"medium-biter-Mk2", {{0.40, 0.0}, {0.70, 0.3}, {0.80, 0.0}}} - res[6] = {"medium-biter-Mk3", {{0.50, 0.0}, {0.80, 0.3}, {0.90, 0.0}}} - - res[7] = {"big-biter", {{0.60, 0.0}, {0.90, 0.3}, {1.00, 0.0}}} - - res[8] = {"bob-big-piercing-biter", {{0.7, 0.0}, {0.8, 0.4}, {0.9, 0.0}}} - res[9] = {"bob-huge-acid-biter", {{0.7, 0.0}, {0.8, 0.2}}} - res[10] = {"bob-huge-explosive-biter", {{0.7, 0.0}, {0.8, 0.1}}} - res[11] = {"bob-giant-poison-biter", {{0.8, 0.0}, {0.9, 0.2}}} - res[12] = {"bob-giant-fire-biter", {{0.8, 0.0}, {0.9, 0.1}}} - res[13] = {"bob-titan-biter", {{0.9, 0.0}, {1.0, 0.3}}} - res[14] = {"bob-behemoth-biter", {{0.99, 0.0}, {1.0, 0.3}}} - res[15] = {"bob-leviathan-biter", {{0.99, 0.0}, {1.0, 0.05}}} - - return res - end)() - - -data.raw["unit-spawner"]["bob-spitter-spawner"].result_units = (function() - local res = {} - - res[1] = {"small-biter", {{0.00, 0.3}, {0.05, 0.3}, {0.10, 0.0}}} - - res[2] = {"small-spitter", {{0.05, 0.3}, {0.35, 0.3}, {0.45, 0.0}}} - res[3] = {"small-spitter-Mk2", {{0.15, 0.0}, {0.45, 0.3}, {0.55, 0.0}}} - res[4] = {"small-spitter-Mk3", {{0.25, 0.0}, {0.55, 0.3}, {0.65, 0.0}}} - - res[5] = {"medium-spitter", {{0.35, 0.0}, {0.65, 0.3}, {0.75, 0.0}}} - res[6] = {"medium-spitter-Mk2", {{0.45, 0.0}, {0.75, 0.3}, {0.85, 0.0}}} - res[7] = {"medium-spitter-Mk3", {{0.55, 0.0}, {0.85, 0.3}, {0.95, 0.0}}} - - res[8] = {"big-spitter", {{0.65, 0.0}, {0.95, 0.3}, {1.00, 0.0}}} - - res[9] = {"bob-big-electric-spitter", {{0.7, 0.0}, {0.8, 0.4}, {0.9, 0.0}}} - res[10] = {"bob-huge-explosive-spitter", {{0.7, 0.0}, {0.8, 0.2}}} - res[11] = {"bob-huge-acid-spitter", {{0.7, 0.0}, {0.8, 0.1}}} - res[12] = {"bob-giant-fire-spitter", {{0.8, 0.0}, {0.9, 0.2}}} - res[13] = {"bob-giant-poison-spitter", {{0.8, 0.0}, {0.9, 0.1}}} - res[14] = {"bob-titan-spitter", {{0.9, 0.0}, {1.0, 0.3}}} - res[15] = {"bob-behemoth-spitter", {{0.99, 0.0}, {1.0, 0.3}}} - res[16] = {"bob-leviathan-spitter", {{0.99, 0.0}, {1.0, 0.05}}} - - return res - end)() - +data.raw["unit-spawner"]["bob-biter-spawner"].result_units = (function() + local res = {} + + res[1] = {"small-biter", {{0.00, 0.3}, {0.30, 0.3}, {0.40, 0.0}}} + res[2] = {"small-biter-Mk2", {{0.10, 0.0}, {0.40, 0.3}, {0.50, 0.0}}} + res[3] = {"small-biter-Mk3", {{0.20, 0.0}, {0.50, 0.3}, {0.60, 0.0}}} + + res[4] = {"medium-biter", {{0.30, 0.0}, {0.60, 0.3}, {0.70, 0.0}}} + res[5] = {"medium-biter-Mk2", {{0.40, 0.0}, {0.70, 0.3}, {0.80, 0.0}}} + res[6] = {"medium-biter-Mk3", {{0.50, 0.0}, {0.80, 0.3}, {0.90, 0.0}}} + + res[7] = {"big-biter", {{0.60, 0.0}, {0.90, 0.3}, {1.00, 0.0}}} + + res[8] = {"bob-big-piercing-biter", {{0.7, 0.0}, {0.8, 0.4}, {0.9, 0.0}}} + res[9] = {"bob-huge-acid-biter", {{0.7, 0.0}, {0.8, 0.2}}} + res[10] = {"bob-huge-explosive-biter", {{0.7, 0.0}, {0.8, 0.1}}} + res[11] = {"bob-giant-poison-biter", {{0.8, 0.0}, {0.9, 0.2}}} + res[12] = {"bob-giant-fire-biter", {{0.8, 0.0}, {0.9, 0.1}}} + res[13] = {"bob-titan-biter", {{0.9, 0.0}, {1.0, 0.3}}} + res[14] = {"bob-behemoth-biter", {{0.99, 0.0}, {1.0, 0.3}}} + res[15] = {"bob-leviathan-biter", {{0.99, 0.0}, {1.0, 0.05}}} + + return res + end)() + + +data.raw["unit-spawner"]["bob-spitter-spawner"].result_units = (function() + local res = {} + + res[1] = {"small-biter", {{0.00, 0.3}, {0.05, 0.3}, {0.10, 0.0}}} + + res[2] = {"small-spitter", {{0.05, 0.3}, {0.35, 0.3}, {0.45, 0.0}}} + res[3] = {"small-spitter-Mk2", {{0.15, 0.0}, {0.45, 0.3}, {0.55, 0.0}}} + res[4] = {"small-spitter-Mk3", {{0.25, 0.0}, {0.55, 0.3}, {0.65, 0.0}}} + + res[5] = {"medium-spitter", {{0.35, 0.0}, {0.65, 0.3}, {0.75, 0.0}}} + res[6] = {"medium-spitter-Mk2", {{0.45, 0.0}, {0.75, 0.3}, {0.85, 0.0}}} + res[7] = {"medium-spitter-Mk3", {{0.55, 0.0}, {0.85, 0.3}, {0.95, 0.0}}} + + res[8] = {"big-spitter", {{0.65, 0.0}, {0.95, 0.3}, {1.00, 0.0}}} + + res[9] = {"bob-big-electric-spitter", {{0.7, 0.0}, {0.8, 0.4}, {0.9, 0.0}}} + res[10] = {"bob-huge-explosive-spitter", {{0.7, 0.0}, {0.8, 0.2}}} + res[11] = {"bob-huge-acid-spitter", {{0.7, 0.0}, {0.8, 0.1}}} + res[12] = {"bob-giant-fire-spitter", {{0.8, 0.0}, {0.9, 0.2}}} + res[13] = {"bob-giant-poison-spitter", {{0.8, 0.0}, {0.9, 0.1}}} + res[14] = {"bob-titan-spitter", {{0.9, 0.0}, {1.0, 0.3}}} + res[15] = {"bob-behemoth-spitter", {{0.99, 0.0}, {1.0, 0.3}}} + res[16] = {"bob-leviathan-spitter", {{0.99, 0.0}, {1.0, 0.05}}} + + return res + end)() + diff --git a/Natural_Evolution_Enemies_6.3.0/prototypes/Vanilla_Changes/Explosions.lua b/Natural_Evolution_Enemies_6.3.1/prototypes/Vanilla_Changes/Explosions.lua similarity index 96% rename from Natural_Evolution_Enemies_6.3.0/prototypes/Vanilla_Changes/Explosions.lua rename to Natural_Evolution_Enemies_6.3.1/prototypes/Vanilla_Changes/Explosions.lua index 97d8a6e..0f6dfa7 100644 --- a/Natural_Evolution_Enemies_6.3.0/prototypes/Vanilla_Changes/Explosions.lua +++ b/Natural_Evolution_Enemies_6.3.1/prototypes/Vanilla_Changes/Explosions.lua @@ -1,408 +1,408 @@ -function acidtint() -return {r = 0.1, g = 0.7, b = 0.1} -end - -function acidparticlescale() - return 1.3 -end - -function shadowtint() -return {r = 0, g = 0, b = 0} -end - -function event_animation() -return - { - layers = - { - { - filename = "__Natural_Evolution_Enemies__/graphics/icons/empty.png", - width = 1, - height = 1, - frame_count = 1, - animation_speed = 10, - axially_symmetrical = false, - direction_count = 1, - } - } - } -end - -data:extend( -{ - - { - type = "particle", - name = "acid-particle", - flags = {"not-on-map"}, - movement_modifier_when_on_ground = 0, - life_time = 180, - pictures = - { - { - filename = "__base__/graphics/entity/blood-particle/blood-particle-01.png", - priority = "extra-high", - width = 5, - height = 6, - frame_count = 6, - scale = acidparticlescale(), - tint = acidtint() - }, - { - filename = "__base__/graphics/entity/blood-particle/blood-particle-02.png", - priority = "extra-high", - width = 4, - height = 3, - frame_count = 6, - scale = acidparticlescale(), - tint = acidtint() - }, - { - filename = "__base__/graphics/entity/blood-particle/blood-particle-03.png", - priority = "extra-high", - width = 4, - height = 7, - frame_count = 6, - scale = acidparticlescale(), - tint = acidtint() - }, - { - filename = "__base__/graphics/entity/blood-particle/blood-particle-04.png", - priority = "extra-high", - width = 3, - height = 3, - frame_count = 6, - scale = acidparticlescale(), - tint = acidtint() - }, - { - filename = "__base__/graphics/entity/blood-particle/blood-particle-05.png", - priority = "extra-high", - width = 4, - height = 5, - frame_count = 6, - scale = acidparticlescale(), - tint = acidtint() - }, - { - filename = "__base__/graphics/entity/blood-particle/blood-particle-06.png", - priority = "extra-high", - width = 7, - height = 3, - frame_count = 6, - scale = acidparticlescale(), - tint = acidtint() - }, - { - filename = "__base__/graphics/entity/blood-particle/blood-particle-07.png", - priority = "extra-high", - width = 5, - height = 5, - frame_count = 6, - scale = acidparticlescale(), - tint = acidtint() - }, - { - filename = "__base__/graphics/entity/blood-particle/blood-particle-08.png", - priority = "extra-high", - width = 9, - height = 10, - frame_count = 6, - scale = acidparticlescale(), - tint = acidtint() - }, - { - filename = "__base__/graphics/entity/blood-particle/blood-particle-09.png", - priority = "extra-high", - width = 7, - height = 4, - frame_count = 6, - scale = acidparticlescale(), - tint = acidtint() - }, - { - filename = "__base__/graphics/entity/blood-particle/blood-particle-10.png", - priority = "extra-high", - width = 4, - height = 5, - frame_count = 6, - scale = acidparticlescale(), - tint = acidtint() - }, - { - filename = "__base__/graphics/entity/blood-particle/blood-particle-11.png", - priority = "extra-high", - width = 4, - height = 5, - frame_count = 6, - scale = acidparticlescale(), - tint = acidtint() - }, - { - filename = "__base__/graphics/entity/blood-particle/blood-particle-12.png", - priority = "extra-high", - width = 4, - height = 5, - frame_count = 6, - scale = acidparticlescale(), - tint = acidtint() - }, - { - filename = "__base__/graphics/entity/blood-particle/blood-particle-13.png", - priority = "extra-high", - width = 4, - height = 5, - frame_count = 6, - scale = acidparticlescale(), - tint = acidtint() - } - }, - shadows = - { - { - filename = "__base__/graphics/entity/blood-particle/blood-particle-01.png", - priority = "extra-high", - width = 5, - height = 6, - frame_count = 6, - scale = acidparticlescale(), - tint = shadowtint() - }, - { - filename = "__base__/graphics/entity/blood-particle/blood-particle-02.png", - priority = "extra-high", - width = 4, - height = 3, - frame_count = 6, - scale = acidparticlescale(), - tint = shadowtint() - }, - { - filename = "__base__/graphics/entity/blood-particle/blood-particle-03.png", - priority = "extra-high", - width = 4, - height = 7, - frame_count = 6, - scale = acidparticlescale(), - tint = shadowtint() - }, - { - filename = "__base__/graphics/entity/blood-particle/blood-particle-04.png", - priority = "extra-high", - width = 3, - height = 3, - frame_count = 6, - scale = acidparticlescale(), - tint = shadowtint() - }, - { - filename = "__base__/graphics/entity/blood-particle/blood-particle-05.png", - priority = "extra-high", - width = 4, - height = 5, - frame_count = 6, - scale = acidparticlescale(), - tint = shadowtint() - }, - { - filename = "__base__/graphics/entity/blood-particle/blood-particle-06.png", - priority = "extra-high", - width = 7, - height = 3, - frame_count = 6, - scale = acidparticlescale(), - tint = shadowtint() - }, - { - filename = "__base__/graphics/entity/blood-particle/blood-particle-07.png", - priority = "extra-high", - width = 5, - height = 5, - frame_count = 6, - scale = acidparticlescale(), - tint = shadowtint() - }, - { - filename = "__base__/graphics/entity/blood-particle/blood-particle-08.png", - priority = "extra-high", - width = 9, - height = 10, - frame_count = 6, - scale = acidparticlescale(), - tint = shadowtint() - }, - { - filename = "__base__/graphics/entity/blood-particle/blood-particle-09.png", - priority = "extra-high", - width = 7, - height = 4, - frame_count = 6, - scale = acidparticlescale(), - tint = shadowtint() - }, - { - filename = "__base__/graphics/entity/blood-particle/blood-particle-10.png", - priority = "extra-high", - width = 4, - height = 5, - frame_count = 6, - scale = acidparticlescale(), - tint = shadowtint() - }, - { - filename = "__base__/graphics/entity/blood-particle/blood-particle-11.png", - priority = "extra-high", - width = 4, - height = 5, - frame_count = 6, - scale = acidparticlescale(), - tint = shadowtint() - }, - { - filename = "__base__/graphics/entity/blood-particle/blood-particle-12.png", - priority = "extra-high", - width = 4, - height = 5, - frame_count = 6, - scale = acidparticlescale(), - tint = shadowtint() - }, - { - filename = "__base__/graphics/entity/blood-particle/blood-particle-13.png", - priority = "extra-high", - width = 4, - height = 5, - frame_count = 6, - scale = acidparticlescale(), - tint = shadowtint() - } - } - }, - - { - type = "particle-source", - name = "acid-fountain-big", - particle = "acid-particle", - time_to_live = 30, - time_to_live_deviation = 5, - time_before_start = 0, - time_before_start_deviation = 10, - height = 0.4, - height_deviation = 0.1, - vertical_speed = 0.15, - vertical_speed_deviation = 0.05, - horizontal_speed = 0.04, - horizontal_speed_deviation = 0.04 - }, - - { - type = "explosion", - name = "acid-explosion-huge", - flags = {"not-on-map"}, - animations = - { - { - filename = "__core__/graphics/empty.png", - priority = "extra-high", - width = 1, - height = 1, - frame_count = 1 - } - }, - created_effect = - { - type = "direct", - action_delivery = - { - type = "instant", - target_effects = - { - { - type = "create-particle", - repeat_count = 150, - entity_name = "acid-particle", - initial_height = 0.5, - speed_from_center = 0.08, - speed_from_center_deviation = 0.05, - initial_vertical_speed = -0.01, - initial_vertical_speed_deviation = 0.02, - offset_deviation = {{-0.4, -0.4}, {0.4, 0.4}} - }, - { - type = "create-entity", - entity_name = "acid-fountain-big", - repeat_count = 35, - offset_deviation = {{-1.6, -1.6}, {1.6, 1.6}} - } - } - } - } - }, - - { - type = "explosion", - name = "acid-splash", - flags = {"not-on-map"}, - animations = - { - { - filename = "__base__/graphics/entity/flamethrower-fire-stream/flamethrower-explosion.png", - priority = "extra-high", - width = 64, - height = 64, - scale = 3.2, - tint = {r=0, g=0.6, b=0, a=1}, - frame_count = 64, - line_length = 8, - animation_speed = 0.7, - }, - { - filename = "__base__/graphics/entity/flamethrower-fire-stream/flamethrower-explosion.png", - priority = "extra-high", - width = 64, - height = 64, - scale = 3.4, - tint = {r=0.15, g=0.7, b=0, a=1}, - frame_count = 64, - line_length = 8, - animation_speed = 0.7, - }, - { - filename = "__base__/graphics/entity/flamethrower-fire-stream/flamethrower-explosion.png", - priority = "extra-high", - width = 64, - height = 64, - scale = 3.6, - tint = {r=0.3, g=0.8, b=0, a=1}, - frame_count = 64, - line_length = 8, - animation_speed = 0.7, - }, - { - filename = "__base__/graphics/entity/flamethrower-fire-stream/flamethrower-explosion.png", - priority = "extra-high", - width = 64, - height = 64, - scale = 3.8, - tint = {r=0.45, g=0.9, b=0, a=1}, - frame_count = 64, - line_length = 8, - animation_speed = 0.7, - }, - { - filename = "__base__/graphics/entity/flamethrower-fire-stream/flamethrower-explosion.png", - priority = "extra-high", - width = 64, - height = 64, - scale = 4, - tint = {r=0.6, g=1, b=0, a=1}, - frame_count = 64, - line_length = 8, - animation_speed = 1, - }, - }, - }, - - - -}) +function acidtint() +return {r = 0.1, g = 0.7, b = 0.1} +end + +function acidparticlescale() + return 1.3 +end + +function shadowtint() +return {r = 0, g = 0, b = 0} +end + +function event_animation() +return + { + layers = + { + { + filename = "__Natural_Evolution_Enemies__/graphics/icons/empty.png", + width = 1, + height = 1, + frame_count = 1, + animation_speed = 10, + axially_symmetrical = false, + direction_count = 1, + } + } + } +end + +data:extend( +{ + + { + type = "particle", + name = "acid-particle", + flags = {"not-on-map"}, + movement_modifier_when_on_ground = 0, + life_time = 180, + pictures = + { + { + filename = "__base__/graphics/entity/blood-particle/blood-particle-01.png", + priority = "extra-high", + width = 5, + height = 6, + frame_count = 6, + scale = acidparticlescale(), + tint = acidtint() + }, + { + filename = "__base__/graphics/entity/blood-particle/blood-particle-02.png", + priority = "extra-high", + width = 4, + height = 3, + frame_count = 6, + scale = acidparticlescale(), + tint = acidtint() + }, + { + filename = "__base__/graphics/entity/blood-particle/blood-particle-03.png", + priority = "extra-high", + width = 4, + height = 7, + frame_count = 6, + scale = acidparticlescale(), + tint = acidtint() + }, + { + filename = "__base__/graphics/entity/blood-particle/blood-particle-04.png", + priority = "extra-high", + width = 3, + height = 3, + frame_count = 6, + scale = acidparticlescale(), + tint = acidtint() + }, + { + filename = "__base__/graphics/entity/blood-particle/blood-particle-05.png", + priority = "extra-high", + width = 4, + height = 5, + frame_count = 6, + scale = acidparticlescale(), + tint = acidtint() + }, + { + filename = "__base__/graphics/entity/blood-particle/blood-particle-06.png", + priority = "extra-high", + width = 7, + height = 3, + frame_count = 6, + scale = acidparticlescale(), + tint = acidtint() + }, + { + filename = "__base__/graphics/entity/blood-particle/blood-particle-07.png", + priority = "extra-high", + width = 5, + height = 5, + frame_count = 6, + scale = acidparticlescale(), + tint = acidtint() + }, + { + filename = "__base__/graphics/entity/blood-particle/blood-particle-08.png", + priority = "extra-high", + width = 9, + height = 10, + frame_count = 6, + scale = acidparticlescale(), + tint = acidtint() + }, + { + filename = "__base__/graphics/entity/blood-particle/blood-particle-09.png", + priority = "extra-high", + width = 7, + height = 4, + frame_count = 6, + scale = acidparticlescale(), + tint = acidtint() + }, + { + filename = "__base__/graphics/entity/blood-particle/blood-particle-10.png", + priority = "extra-high", + width = 4, + height = 5, + frame_count = 6, + scale = acidparticlescale(), + tint = acidtint() + }, + { + filename = "__base__/graphics/entity/blood-particle/blood-particle-11.png", + priority = "extra-high", + width = 4, + height = 5, + frame_count = 6, + scale = acidparticlescale(), + tint = acidtint() + }, + { + filename = "__base__/graphics/entity/blood-particle/blood-particle-12.png", + priority = "extra-high", + width = 4, + height = 5, + frame_count = 6, + scale = acidparticlescale(), + tint = acidtint() + }, + { + filename = "__base__/graphics/entity/blood-particle/blood-particle-13.png", + priority = "extra-high", + width = 4, + height = 5, + frame_count = 6, + scale = acidparticlescale(), + tint = acidtint() + } + }, + shadows = + { + { + filename = "__base__/graphics/entity/blood-particle/blood-particle-01.png", + priority = "extra-high", + width = 5, + height = 6, + frame_count = 6, + scale = acidparticlescale(), + tint = shadowtint() + }, + { + filename = "__base__/graphics/entity/blood-particle/blood-particle-02.png", + priority = "extra-high", + width = 4, + height = 3, + frame_count = 6, + scale = acidparticlescale(), + tint = shadowtint() + }, + { + filename = "__base__/graphics/entity/blood-particle/blood-particle-03.png", + priority = "extra-high", + width = 4, + height = 7, + frame_count = 6, + scale = acidparticlescale(), + tint = shadowtint() + }, + { + filename = "__base__/graphics/entity/blood-particle/blood-particle-04.png", + priority = "extra-high", + width = 3, + height = 3, + frame_count = 6, + scale = acidparticlescale(), + tint = shadowtint() + }, + { + filename = "__base__/graphics/entity/blood-particle/blood-particle-05.png", + priority = "extra-high", + width = 4, + height = 5, + frame_count = 6, + scale = acidparticlescale(), + tint = shadowtint() + }, + { + filename = "__base__/graphics/entity/blood-particle/blood-particle-06.png", + priority = "extra-high", + width = 7, + height = 3, + frame_count = 6, + scale = acidparticlescale(), + tint = shadowtint() + }, + { + filename = "__base__/graphics/entity/blood-particle/blood-particle-07.png", + priority = "extra-high", + width = 5, + height = 5, + frame_count = 6, + scale = acidparticlescale(), + tint = shadowtint() + }, + { + filename = "__base__/graphics/entity/blood-particle/blood-particle-08.png", + priority = "extra-high", + width = 9, + height = 10, + frame_count = 6, + scale = acidparticlescale(), + tint = shadowtint() + }, + { + filename = "__base__/graphics/entity/blood-particle/blood-particle-09.png", + priority = "extra-high", + width = 7, + height = 4, + frame_count = 6, + scale = acidparticlescale(), + tint = shadowtint() + }, + { + filename = "__base__/graphics/entity/blood-particle/blood-particle-10.png", + priority = "extra-high", + width = 4, + height = 5, + frame_count = 6, + scale = acidparticlescale(), + tint = shadowtint() + }, + { + filename = "__base__/graphics/entity/blood-particle/blood-particle-11.png", + priority = "extra-high", + width = 4, + height = 5, + frame_count = 6, + scale = acidparticlescale(), + tint = shadowtint() + }, + { + filename = "__base__/graphics/entity/blood-particle/blood-particle-12.png", + priority = "extra-high", + width = 4, + height = 5, + frame_count = 6, + scale = acidparticlescale(), + tint = shadowtint() + }, + { + filename = "__base__/graphics/entity/blood-particle/blood-particle-13.png", + priority = "extra-high", + width = 4, + height = 5, + frame_count = 6, + scale = acidparticlescale(), + tint = shadowtint() + } + } + }, + + { + type = "particle-source", + name = "acid-fountain-big", + particle = "acid-particle", + time_to_live = 30, + time_to_live_deviation = 5, + time_before_start = 0, + time_before_start_deviation = 10, + height = 0.4, + height_deviation = 0.1, + vertical_speed = 0.15, + vertical_speed_deviation = 0.05, + horizontal_speed = 0.04, + horizontal_speed_deviation = 0.04 + }, + + { + type = "explosion", + name = "acid-explosion-huge", + flags = {"not-on-map"}, + animations = + { + { + filename = "__core__/graphics/empty.png", + priority = "extra-high", + width = 1, + height = 1, + frame_count = 1 + } + }, + created_effect = + { + type = "direct", + action_delivery = + { + type = "instant", + target_effects = + { + { + type = "create-particle", + repeat_count = 150, + entity_name = "acid-particle", + initial_height = 0.5, + speed_from_center = 0.08, + speed_from_center_deviation = 0.05, + initial_vertical_speed = -0.01, + initial_vertical_speed_deviation = 0.02, + offset_deviation = {{-0.4, -0.4}, {0.4, 0.4}} + }, + { + type = "create-entity", + entity_name = "acid-fountain-big", + repeat_count = 35, + offset_deviation = {{-1.6, -1.6}, {1.6, 1.6}} + } + } + } + } + }, + + { + type = "explosion", + name = "acid-splash", + flags = {"not-on-map"}, + animations = + { + { + filename = "__base__/graphics/entity/flamethrower-fire-stream/flamethrower-explosion.png", + priority = "extra-high", + width = 64, + height = 64, + scale = 3.2, + tint = {r=0, g=0.6, b=0, a=1}, + frame_count = 64, + line_length = 8, + animation_speed = 0.7, + }, + { + filename = "__base__/graphics/entity/flamethrower-fire-stream/flamethrower-explosion.png", + priority = "extra-high", + width = 64, + height = 64, + scale = 3.4, + tint = {r=0.15, g=0.7, b=0, a=1}, + frame_count = 64, + line_length = 8, + animation_speed = 0.7, + }, + { + filename = "__base__/graphics/entity/flamethrower-fire-stream/flamethrower-explosion.png", + priority = "extra-high", + width = 64, + height = 64, + scale = 3.6, + tint = {r=0.3, g=0.8, b=0, a=1}, + frame_count = 64, + line_length = 8, + animation_speed = 0.7, + }, + { + filename = "__base__/graphics/entity/flamethrower-fire-stream/flamethrower-explosion.png", + priority = "extra-high", + width = 64, + height = 64, + scale = 3.8, + tint = {r=0.45, g=0.9, b=0, a=1}, + frame_count = 64, + line_length = 8, + animation_speed = 0.7, + }, + { + filename = "__base__/graphics/entity/flamethrower-fire-stream/flamethrower-explosion.png", + priority = "extra-high", + width = 64, + height = 64, + scale = 4, + tint = {r=0.6, g=1, b=0, a=1}, + frame_count = 64, + line_length = 8, + animation_speed = 1, + }, + }, + }, + + + +}) diff --git a/Natural_Evolution_Enemies_6.3.0/prototypes/Vanilla_Changes/Functions.lua b/Natural_Evolution_Enemies_6.3.1/prototypes/Vanilla_Changes/Functions.lua similarity index 91% rename from Natural_Evolution_Enemies_6.3.0/prototypes/Vanilla_Changes/Functions.lua rename to Natural_Evolution_Enemies_6.3.1/prototypes/Vanilla_Changes/Functions.lua index b85d580..47b4c46 100644 --- a/Natural_Evolution_Enemies_6.3.0/prototypes/Vanilla_Changes/Functions.lua +++ b/Natural_Evolution_Enemies_6.3.1/prototypes/Vanilla_Changes/Functions.lua @@ -1,139 +1,139 @@ - - ----- Biter Attack Function - Normal Biter -function Biter_Melee_Attack_Healthy(damagevalue) - return - { - category = "melee", - target_type = "entity", - action = - { - type = "direct", - action_delivery = - { - type = "instant", - target_effects = - { - type = "damage", - damage = { amount = damagevalue , type = "physical"} - }, - } - } - } -end - - ----- Biter Attack Function - Infected Biter -function Biter_Melee_Attack_Infected(damagevalue, damagevalue2) - return - { - category = "melee", - target_type = "entity", - action = - { - type = "direct", - action_delivery = - { - type = "instant", - target_effects = - { - type = "damage", - damage = { amount = damagevalue2 , type = "physical"} - }, - { - type = "damage", - damage = { amount = damagevalue , type = "poison"} - }, - } - } - } -end - - ----- Biter Attack Function - Mutated Biter -function Biter_Melee_Attack_Mutated(damagevalue, damagevalue2) - return - { - category = "melee", - target_type = "entity", - action = - { - type = "direct", - action_delivery = - { - type = "instant", - target_effects = - { - type = "damage", - damage = { amount = damagevalue2 , type = "physical"} - }, - { - type = "damage", - damage = { amount = damagevalue , type = "acid"} - }, - } - } - } -end - - ----- Spitter Attack Functions - Infected Spitter -function Spitter_Attack_Infected(data) - return - { - type = "projectile", - ammo_category = "rocket", - cooldown = data.cooldown, - range = data.range, - projectile_creation_distance = 1.9, - damage_modifier = data.damage_modifier, - warmup = 30, - ammo_type = - { - category = "biological", - action = - { - type = "direct", - action_delivery = - { - type = "projectile", - projectile = "Infected-Projectile", - starting_speed = 1 - } - } - }, - sound = make_spitter_roars(0.75), - animation = spitterattackanimation(data.scale, data.tint), - } -end - ----- Spitter Attack Functions - Mutated Spitter -function Spitter_Attack_Mutated(data) - return - { - type = "projectile", - ammo_category = "rocket", - cooldown = data.cooldown, - range = data.range, - projectile_creation_distance = 1.9, - damage_modifier = data.damage_modifier, - warmup = 30, - ammo_type = - { - category = "biological", - action = - { - type = "direct", - action_delivery = - { - type = "projectile", - projectile = "Mutated-Projectile", - starting_speed = 1.5 - } - } - }, - sound = make_spitter_roars(0.75), - animation = spitterattackanimation(data.scale, data.tint), - } -end - + + +---- Biter Attack Function - Normal Biter +function Biter_Melee_Attack_Healthy(damagevalue) + return + { + category = "melee", + target_type = "entity", + action = + { + type = "direct", + action_delivery = + { + type = "instant", + target_effects = + { + type = "damage", + damage = { amount = damagevalue , type = "physical"} + }, + } + } + } +end + + +---- Biter Attack Function - Infected Biter (Poison / Physical) +function Biter_Melee_Attack_Infected(damagevalue, damagevalue2) + return + { + category = "melee", + target_type = "entity", + action = + { + type = "direct", + action_delivery = + { + type = "instant", + target_effects = + { + type = "damage", + damage = { amount = damagevalue2 , type = "physical"} + }, + { + type = "damage", + damage = { amount = damagevalue , type = "poison"} + }, + } + } + } +end + + +---- Biter Attack Function - Mutated Biter (Acid / Physical) +function Biter_Melee_Attack_Mutated(damagevalue, damagevalue2) + return + { + category = "melee", + target_type = "entity", + action = + { + type = "direct", + action_delivery = + { + type = "instant", + target_effects = + { + type = "damage", + damage = { amount = damagevalue2 , type = "physical"} + }, + { + type = "damage", + damage = { amount = damagevalue , type = "acid"} + }, + } + } + } +end + + +---- Spitter Attack Functions - Infected Spitter +function Spitter_Attack_Infected(data) + return + { + type = "projectile", + ammo_category = "rocket", + cooldown = data.cooldown, + range = data.range, + projectile_creation_distance = 1.9, + damage_modifier = data.damage_modifier, + warmup = 30, + ammo_type = + { + category = "biological", + action = + { + type = "direct", + action_delivery = + { + type = "projectile", + projectile = "Infected-Projectile", + starting_speed = 1 + } + } + }, + sound = make_spitter_roars(0.75), + animation = spitterattackanimation(data.scale, data.tint), + } +end + +---- Spitter Attack Functions - Mutated Spitter +function Spitter_Attack_Mutated(data) + return + { + type = "projectile", + ammo_category = "rocket", + cooldown = data.cooldown, + range = data.range, + projectile_creation_distance = 1.9, + damage_modifier = data.damage_modifier, + warmup = 30, + ammo_type = + { + category = "biological", + action = + { + type = "direct", + action_delivery = + { + type = "projectile", + projectile = "Mutated-Projectile", + starting_speed = 1.5 + } + } + }, + sound = make_spitter_roars(0.75), + animation = spitterattackanimation(data.scale, data.tint), + } +end + diff --git a/Natural_Evolution_Enemies_6.3.0/prototypes/Vanilla_Changes/New_Biter_Units.lua b/Natural_Evolution_Enemies_6.3.1/prototypes/Vanilla_Changes/New_Biter_Units.lua similarity index 96% rename from Natural_Evolution_Enemies_6.3.0/prototypes/Vanilla_Changes/New_Biter_Units.lua rename to Natural_Evolution_Enemies_6.3.1/prototypes/Vanilla_Changes/New_Biter_Units.lua index 9b352b5..c6ee7a3 100644 --- a/Natural_Evolution_Enemies_6.3.0/prototypes/Vanilla_Changes/New_Biter_Units.lua +++ b/Natural_Evolution_Enemies_6.3.1/prototypes/Vanilla_Changes/New_Biter_Units.lua @@ -1,547 +1,547 @@ -require "prototypes.Vanilla_Changes.Settings" - - -smallbiterscale = 0.5 -small_biter_tint1 = {r=0.56, g=0.46, b=0.42, a=0.65} -small_biter_tint2 = {r=1, g=0.63, b=0, a=0.4} - -smallbiterMk2scale = 0.55 -small_biter_Mk2_tint1 = {r=0.56, g=0.66, b=0.42, a=0.65} -small_biter_Mk2_tint2 = {r=1, g=0.63, b=0.5, a=0.4} - -smallbiterMk3scale = 0.6 -small_biter_Mk3_tint1 = {r=0.56, g=0.86, b=0.42, a=0.65} -small_biter_Mk3_tint2 = {r=1, g=0.63, b=1, a=0.4} - - -mediumbiterscale = 0.7 -medium_biter_tint1 = {r=0.78, g=0.15, b=0.15, a=0.6} -medium_biter_tint2 = {r=0.9, g=0.3, b=0.3, a=0.75} - -mediumbiterMk2scale = 0.75 -medium_biter_Mk2_tint1 = {r=0.78, g=0.45, b=0.15, a=0.6} -medium_biter_Mk2_tint2 = {r=0.9, g=0.6, b=0.3, a=0.75} - -mediumbiterMk3scale = 0.8 -medium_biter_Mk3_tint1 = {r=0.78, g=0.75, b=0.15, a=0.6} -medium_biter_Mk3_tint2 = {r=0.9, g=0.9, b=0.3, a=0.75} - - -bigbiterscale = 1.0 -big_biter_tint1 = {r=0.34, g=0.68, b=0.90, a=0.6} -big_biter_tint2 = {r=0.31, g=0.61, b=0.95, a=0.85} - -bigbiterMk2scale = 1.05 -big_biter_Mk2_tint1 = {r=0.34, g=0.68, b=0.60, a=0.6} -big_biter_Mk2_tint2 = {r=0.31, g=0.61, b=0.65, a=0.85} - -bigbiterMk3scale = 1.1 -big_biter_Mk3_tint1 = {r=0.34, g=0.68, b=0.30, a=0.6} -big_biter_Mk3_tint2 = {r=0.31, g=0.61, b=0.35, a=0.85} - - - -behemothbiterscale = 2 -behemoth_biter_tint1 = {r=0.3, g=0.9, b=0.3, a=0.75} -behemoth_biter_tint2 = {r=0.88, g=0.24, b=0.24, a=0.9} - - -unit_cluster_scale = 1.2 -unit_cluster_tint1 = {r=0.34, g=0.68, b=0.30, a=0.6} -unit_cluster_tint2 = {r=0.78, g=0.75, b=0.15, a=0.6} - - -function web_animation(scale, tint1, tint2) - return - { - layers= - { - { - width = 64, - height = 64, - frame_count = 1, - direction_count = 1, - shift = {scale * 0.714844, scale * -0.246094}, - scale = scale, - stripes = - { - { - filename = "__Natural_Evolution_Enemies__/graphics/entity/Web_64_shadow.png", - width_in_frames = 1, - height_in_frames = 1, - }, - { - filename = "__Natural_Evolution_Enemies__/graphics/entity/Web_64.png", - width_in_frames = 1, - height_in_frames = 1, - } - } - }, - - { - filename = "__Natural_Evolution_Enemies__/graphics/entity/Web_64_shadow.png", - width = 64, - height = 64, - frame_count = 1, - direction_count = 1, - shift = {scale * 0.117188, scale * -0.867188}, - scale = scale, - tint = tint1 - }, - - { - filename = "__Natural_Evolution_Enemies__/graphics/entity/Web_64.png", - line_length = 1, - width = 64, - height = 64, - frame_count = 1, - direction_count = 1, - shift = {scale * 0.117188, scale * -0.855469}, - scale = scale, - tint = tint2 - } - - } - } -end - - - -data:extend( -{ ---- Vanilla Small Biter ---[[ - { - type = "unit", - name = "small-biter", - icon = "__base__/graphics/icons/creeper.png", - flags = {"placeable-player", "placeable-enemy", "placeable-off-grid", "breaths-air"}, - max_health = Health.Small_Biter, - order = "b-b-a", - subgroup="enemies", - resistances = Resistances.Small_Biter, - healing_per_tick = 0.01, - collision_box = {{-0.2, -0.2}, {0.2, 0.2}}, - selection_box = {{-0.4, -0.7}, {0.7, 0.4}}, - attack_parameters = - { - type = "projectile", - range = 0.5, - cooldown = 35, - ammo_category = "melee", - ammo_type = make_unit_melee_ammo_type(6), - sound = make_biter_roars(0.5), - animation = biterattackanimation(smallbiterscale, small_biter_tint1, small_biter_tint2) - }, - vision_distance = 30, - movement_speed = 0.2, - distance_per_frame = 0.1, - pollution_to_join_attack = 200, - distraction_cooldown = 300, - corpse = "small-biter-corpse", - dying_explosion = "blood-explosion-small", - dying_sound = make_biter_dying_sounds(1.0), - working_sound = make_biter_calls(0.7), - run_animation = biterrunanimation(smallbiterscale, small_biter_tint1, small_biter_tint2) - }, ---]] - ---- New Small Biter 1 - { - type = "unit", - name = "small-biter-Mk2", - icon = "__base__/graphics/icons/creeper.png", - flags = {"placeable-player", "placeable-enemy", "placeable-off-grid", "breaths-air"}, - max_health = Health.Small_Biter_Mk2, - order = "b-b-b", - subgroup="enemies", - resistances = Resistances.Small_Biter_Mk2, - healing_per_tick = 0.01, - collision_box = {{-0.2, -0.2}, {0.2, 0.2}}, - selection_box = {{-0.4, -0.7}, {0.7, 0.4}}, - attack_parameters = - { - type = "projectile", - range = 0.5, - cooldown = 35, - ammo_category = "melee", - ammo_type = Damage.Small_Biter_Mk2, - sound = make_biter_roars(0.5), - animation = biterattackanimation(smallbiterMk2scale, small_biter_Mk2_tint1, small_biter_Mk2_tint2) - }, - vision_distance = 30, - movement_speed = 0.2, - distance_per_frame = 0.1, - pollution_to_join_attack = 200, - distraction_cooldown = 300, - corpse = "small-biter-corpse", - dying_explosion = "blood-explosion-small", - dying_sound = make_biter_dying_sounds(1.0), - working_sound = make_biter_calls(0.7), - run_animation = biterrunanimation(smallbiterMk2scale, small_biter_Mk2_tint1, small_biter_Mk2_tint2) - }, - - --- New Small Biter 2 - { - type = "unit", - name = "small-biter-Mk3", - icon = "__base__/graphics/icons/creeper.png", - flags = {"placeable-player", "placeable-enemy", "placeable-off-grid", "breaths-air"}, - max_health = Health.Small_Biter_Mk3, - order = "b-b-c", - subgroup="enemies", - resistances = Resistances.Small_Biter_Mk3, - healing_per_tick = 0.01, - collision_box = {{-0.2, -0.2}, {0.2, 0.2}}, - selection_box = {{-0.4, -0.7}, {0.7, 0.4}}, - attack_parameters = - { - type = "projectile", - range = 0.5, - cooldown = 35, - ammo_category = "melee", - ammo_type = Damage.Small_Biter_Mk3, - sound = make_biter_roars(0.5), - animation = biterattackanimation(smallbiterMk3scale, small_biter_Mk3_tint1, small_biter_Mk3_tint2) - }, - vision_distance = 30, - movement_speed = 0.2, - distance_per_frame = 0.1, - pollution_to_join_attack = 200, - distraction_cooldown = 300, - corpse = "small-biter-corpse", - dying_explosion = "blood-explosion-small", - dying_sound = make_biter_dying_sounds(1.0), - working_sound = make_biter_calls(0.7), - run_animation = biterrunanimation(smallbiterMk3scale, small_biter_Mk3_tint1, small_biter_Mk3_tint2) - }, - ---- Vanilla Medium Biter ---[[ - { - type = "unit", - name = "medium-biter", - icon = "__base__/graphics/icons/creeper.png", - flags = {"placeable-player", "placeable-enemy", "placeable-off-grid", "breaths-air", "not-repairable"}, - max_health = Health.Medium_Biter, - order="b-b-d", - subgroup="enemies", - resistances = Resistances.Medium_Biter, - healing_per_tick = 0.015, - collision_box = {{-0.3, -0.3}, {0.3, 0.3}}, - selection_box = {{-0.7, -1.5}, {0.7, 0.3}}, - sticker_box = {{-0.3, -0.5}, {0.3, 0.1}}, - distraction_cooldown = 300, - attack_parameters = - { - type = "projectile", - ammo_category = "melee", - ammo_type = make_unit_melee_ammo_type(15), - range = 1, - cooldown = 35, - sound = make_biter_roars(0.7), - animation = biterattackanimation(mediumbiterscale, medium_biter_tint1, medium_biter_tint2) - }, - vision_distance = 30, - movement_speed = 0.185, - distance_per_frame = 0.15, - -- in pu - pollution_to_join_attack = 1000, - corpse = "medium-biter-corpse", - dying_explosion = "blood-explosion-small", - working_sound = make_biter_calls(0.8), - dying_sound = make_biter_dying_sounds(1.0), - run_animation = biterrunanimation(mediumbiterscale, medium_biter_tint1, medium_biter_tint2) - }, - --]] - --- New Medium Biter 1 - { - type = "unit", - name = "medium-biter-Mk2", - icon = "__base__/graphics/icons/creeper.png", - flags = {"placeable-player", "placeable-enemy", "placeable-off-grid", "breaths-air", "not-repairable"}, - max_health = Health.Medium_Biter_Mk2, - order="b-b-e", - subgroup="enemies", - resistances = Resistances.Medium_Biter_Mk2, - healing_per_tick = 0.015, - collision_box = {{-0.3, -0.3}, {0.3, 0.3}}, - selection_box = {{-0.7, -1.5}, {0.7, 0.3}}, - sticker_box = {{-0.3, -0.5}, {0.3, 0.1}}, - distraction_cooldown = 300, - attack_parameters = - { - type = "projectile", - ammo_category = "melee", - ammo_type = Damage.Medium_Biter_Mk2, - range = 1, - cooldown = 35, - sound = make_biter_roars(0.7), - animation = biterattackanimation(mediumbiterMk2scale, medium_biter_Mk2_tint1, medium_biter_Mk2_tint2) - }, - vision_distance = 30, - movement_speed = 0.185, - distance_per_frame = 0.15, - -- in pu - pollution_to_join_attack = 800, - corpse = "medium-biter-corpse", - dying_explosion = "blood-explosion-small", - working_sound = make_biter_calls(0.8), - dying_sound = make_biter_dying_sounds(1.0), - run_animation = biterrunanimation(mediumbiterMk2scale, medium_biter_Mk2_tint1, medium_biter_Mk2_tint2) - }, - - --- New Medium Biter 2 - { - type = "unit", - name = "medium-biter-Mk3", - icon = "__base__/graphics/icons/creeper.png", - flags = {"placeable-player", "placeable-enemy", "placeable-off-grid", "breaths-air", "not-repairable"}, - max_health = Health.Medium_Biter_Mk3, - order="b-b-f", - subgroup="enemies", - resistances = Resistances.Medium_Biter_Mk3, - healing_per_tick = 0.015, - collision_box = {{-0.3, -0.3}, {0.3, 0.3}}, - selection_box = {{-0.7, -1.5}, {0.7, 0.3}}, - sticker_box = {{-0.3, -0.5}, {0.3, 0.1}}, - distraction_cooldown = 300, - attack_parameters = - { - type = "projectile", - ammo_category = "melee", - ammo_type = Damage.Medium_Biter_Mk3, - range = 1, - cooldown = 35, - sound = make_biter_roars(0.7), - animation = biterattackanimation(mediumbiterMk3scale, medium_biter_Mk3_tint1, medium_biter_Mk3_tint2) - }, - vision_distance = 30, - movement_speed = 0.185, - distance_per_frame = 0.15, - -- in pu - pollution_to_join_attack = 800, - corpse = "medium-biter-corpse", - dying_explosion = "blood-explosion-small", - working_sound = make_biter_calls(0.8), - dying_sound = make_biter_dying_sounds(1.0), - run_animation = biterrunanimation(mediumbiterMk3scale, medium_biter_Mk3_tint1, medium_biter_Mk3_tint2) - }, - - ------ Vanilla Big Biter - --[[ - { - type = "unit", - name = "big-biter", - icon = "__base__/graphics/icons/creeper.png", - flags = {"placeable-player", "placeable-enemy", "placeable-off-grid", "breaths-air", "not-repairable"}, - max_health = Health.Big_Biter, - order="b-b-g", - subgroup="enemies", - resistances = Resistances.Big_Biter, - spawning_time_modifier = 2, - healing_per_tick = 0.02, - collision_box = {{-0.4, -0.4}, {0.4, 0.4}}, - selection_box = {{-0.7, -1.5}, {0.7, 0.3}}, - sticker_box = {{-0.6, -0.8}, {0.6, 0}}, - distraction_cooldown = 300, - attack_parameters = - { - type = "projectile", - range = 1.5, - cooldown = 35, - ammo_category = "melee", - ammo_type = make_unit_melee_ammo_type(30), - sound = make_biter_roars(0.6), - animation = biterattackanimation(bigbiterscale, big_biter_tint1, big_biter_tint2) - }, - vision_distance = 30, - movement_speed = 0.17, - distance_per_frame = 0.2, - -- in pu - pollution_to_join_attack = 4000, - corpse = "big-biter-corpse", - dying_explosion = "blood-explosion-big", - working_sound = make_biter_calls(0.9), - dying_sound = make_biter_dying_sounds(1.0), - run_animation = biterrunanimation(bigbiterscale, big_biter_tint1, big_biter_tint2) - }, ---]] - ----- New Big Biter 1 - { - type = "unit", - name = "big-biter-Mk2", - icon = "__base__/graphics/icons/creeper.png", - flags = {"placeable-player", "placeable-enemy", "placeable-off-grid", "breaths-air", "not-repairable"}, - max_health = Health.Big_Biter_Mk2, - order="b-b-h", - subgroup="enemies", - resistances = Resistances.Big_Biter_Mk2, - spawning_time_modifier = 2, - healing_per_tick = 0.02, - collision_box = {{-0.4, -0.4}, {0.4, 0.4}}, - selection_box = {{-0.7, -1.5}, {0.7, 0.3}}, - sticker_box = {{-0.6, -0.8}, {0.6, 0}}, - distraction_cooldown = 300, - attack_parameters = - { - type = "projectile", - range = 1.5, - cooldown = 35, - ammo_category = "melee", - ammo_type = Damage.Big_Biter_Mk2, - sound = make_biter_roars(0.6), - animation = biterattackanimation(bigbiterMk2scale, big_biter_Mk2_tint1, big_Mk2_biter_tint2) - }, - vision_distance = 30, - movement_speed = 0.17, - distance_per_frame = 0.2, - -- in pu - pollution_to_join_attack = 1000, - corpse = "big-biter-corpse", - dying_explosion = "blood-explosion-big", - working_sound = make_biter_calls(0.9), - dying_sound = make_biter_dying_sounds(1.0), - run_animation = biterrunanimation(bigbiterMk2scale, big_biter_Mk2_tint1, big_Mk2_biter_tint2) - }, - ------ New Big Biter 2 - - { - type = "unit", - name = "big-biter-Mk3", - icon = "__base__/graphics/icons/creeper.png", - flags = {"placeable-player", "placeable-enemy", "placeable-off-grid", "breaths-air", "not-repairable"}, - max_health = Health.Big_Biter_Mk3, - order="b-b-i", - subgroup="enemies", - resistances = Resistances.Big_Biter_Mk3, - spawning_time_modifier = 2, - healing_per_tick = 0.02, - collision_box = {{-0.4, -0.4}, {0.4, 0.4}}, - selection_box = {{-0.7, -1.5}, {0.7, 0.3}}, - sticker_box = {{-0.6, -0.8}, {0.6, 0}}, - distraction_cooldown = 300, - attack_parameters = - { - type = "projectile", - range = 1.5, - cooldown = 35, - ammo_category = "melee", - ammo_type = Damage.Big_Biter_Mk3, - sound = make_biter_roars(0.6), - animation = biterattackanimation(bigbiterMk3scale, big_biter_Mk3_tint1, big_Mk3_biter_tint2) - }, - vision_distance = 30, - movement_speed = 0.17, - distance_per_frame = 0.2, - -- in pu - pollution_to_join_attack = 1000, - corpse = "big-biter-corpse", - dying_explosion = "blood-explosion-big", - working_sound = make_biter_calls(0.9), - dying_sound = make_biter_dying_sounds(1.0), - run_animation = biterrunanimation(bigbiterMk3scale, big_biter_Mk3_tint1, big_Mk3_biter_tint2) - }, - - --- Vanilla Behemoth Biter - --[[ - { - type = "unit", - name = "behemoth-biter", - icon = "__base__/graphics/icons/creeper.png", - flags = {"placeable-player", "placeable-enemy", "placeable-off-grid", "breaths-air", "not-repairable"}, - max_health = Health.Behemoth_Biter, - order="b-b-i", - subgroup="enemies", - resistances = Resistances.Behemoth_Biter, - spawning_time_modifier = 8, - healing_per_tick = 0.1, - collision_box = {{-0.4, -0.4}, {0.4, 0.4}}, - selection_box = {{-0.7, -1.5}, {0.7, 0.3}}, - sticker_box = {{-0.6, -0.8}, {0.6, 0}}, - distraction_cooldown = 300, - attack_parameters = - { - type = "projectile", - range = 1.5, - cooldown = 50, - ammo_category = "melee", - ammo_type = make_unit_melee_ammo_type(100), - sound = make_biter_roars(0.8), - animation = biterattackanimation(behemothbiterscale, behemoth_biter_tint1, behemoth_biter_tint2) - }, - vision_distance = 30, - movement_speed = 0.17, - distance_per_frame = 0.2, - -- in pu - pollution_to_join_attack = 20000, - corpse = "behemoth-biter-corpse", - dying_explosion = "blood-explosion-big", - working_sound = make_biter_calls(1.2), - dying_sound = make_biter_dying_sounds(1.0), - run_animation = biterrunanimation(behemothbiterscale, behemoth_biter_tint1, behemoth_biter_tint2) - }, ---]] -}) - - ---- Unit Cluster Entity. A unit that will be killed once it's generated, to spwan the actual units. -data:extend( -{ - - { - type = "unit", - name = "unit-cluster", - icon = "__base__/graphics/icons/creeper.png", - flags = {"placeable-player", "placeable-enemy", "placeable-off-grid", "breaths-air"}, - max_health = 10, - order = "b-b-a", - subgroup="enemies", - healing_per_tick = -1, - collision_box = {{-0.2, -0.2}, {0.2, 0.2}}, - selection_box = {{-0.4, -0.7}, {0.7, 0.4}}, - attack_parameters = - { - type = "projectile", - range = 0.0005, - cooldown = 3000, - ammo_category = "melee", - ammo_type = make_unit_melee_ammo_type(0), - sound = make_biter_roars(0), - animation = web_animation(unit_cluster_scale, unit_cluster_tint1, unit_cluster_tint2) - - }, - vision_distance = 1, - movement_speed = 0.00002, - distance_per_frame = 0.1, - pollution_to_join_attack = 200000, - distraction_cooldown = 300, - corpse = "unit-cluster-corpse", - dying_explosion = "blood-explosion-small", - dying_sound = make_biter_dying_sounds(0), - working_sound = make_biter_calls(0), - run_animation = web_animation(unit_cluster_scale, unit_cluster_tint1, unit_cluster_tint2) - - }, - - { - type = "corpse", - name = "unit-cluster-corpse", - icon = "__base__/graphics/icons/small-biter-corpse.png", - selection_box = {{-0.8, -0.8}, {0.8, 0.8}}, - selectable_in_game = false, - subgroup="corpses", - order = "c[corpse]-a[biter]-a[small]", - flags = {"placeable-neutral", "placeable-off-grid", "building-direction-8-way", "not-repairable", "not-on-map"}, - dying_speed = 1, - time_before_removed = 1, - final_render_layer = "corpse", - animation = web_animation(unit_cluster_scale, unit_cluster_tint1, unit_cluster_tint2) - }, - - -}) - - - +require "prototypes.Vanilla_Changes.Settings" + + +smallbiterscale = 0.5 +small_biter_tint1 = {r=0.56, g=0.46, b=0.42, a=0.65} +small_biter_tint2 = {r=1, g=0.63, b=0, a=0.4} + +smallbiterMk2scale = 0.55 +small_biter_Mk2_tint1 = {r=0.56, g=0.66, b=0.42, a=0.65} +small_biter_Mk2_tint2 = {r=1, g=0.63, b=0.5, a=0.4} + +smallbiterMk3scale = 0.6 +small_biter_Mk3_tint1 = {r=0.56, g=0.86, b=0.42, a=0.65} +small_biter_Mk3_tint2 = {r=1, g=0.63, b=1, a=0.4} + + +mediumbiterscale = 0.7 +medium_biter_tint1 = {r=0.78, g=0.15, b=0.15, a=0.6} +medium_biter_tint2 = {r=0.9, g=0.3, b=0.3, a=0.75} + +mediumbiterMk2scale = 0.75 +medium_biter_Mk2_tint1 = {r=0.78, g=0.45, b=0.15, a=0.6} +medium_biter_Mk2_tint2 = {r=0.9, g=0.6, b=0.3, a=0.75} + +mediumbiterMk3scale = 0.8 +medium_biter_Mk3_tint1 = {r=0.78, g=0.75, b=0.15, a=0.6} +medium_biter_Mk3_tint2 = {r=0.9, g=0.9, b=0.3, a=0.75} + + +bigbiterscale = 1.0 +big_biter_tint1 = {r=0.34, g=0.68, b=0.90, a=0.6} +big_biter_tint2 = {r=0.31, g=0.61, b=0.95, a=0.85} + +bigbiterMk2scale = 1.05 +big_biter_Mk2_tint1 = {r=0.34, g=0.68, b=0.60, a=0.6} +big_biter_Mk2_tint2 = {r=0.31, g=0.61, b=0.65, a=0.85} + +bigbiterMk3scale = 1.1 +big_biter_Mk3_tint1 = {r=0.34, g=0.68, b=0.30, a=0.6} +big_biter_Mk3_tint2 = {r=0.31, g=0.61, b=0.35, a=0.85} + + + +behemothbiterscale = 2 +behemoth_biter_tint1 = {r=0.3, g=0.9, b=0.3, a=0.75} +behemoth_biter_tint2 = {r=0.88, g=0.24, b=0.24, a=0.9} + + +unit_cluster_scale = 1.2 +unit_cluster_tint1 = {r=0.34, g=0.68, b=0.30, a=0.6} +unit_cluster_tint2 = {r=0.78, g=0.75, b=0.15, a=0.6} + + +function web_animation(scale, tint1, tint2) + return + { + layers= + { + { + width = 64, + height = 64, + frame_count = 1, + direction_count = 1, + shift = {scale * 0.714844, scale * -0.246094}, + scale = scale, + stripes = + { + { + filename = "__Natural_Evolution_Enemies__/graphics/entity/Web_64_shadow.png", + width_in_frames = 1, + height_in_frames = 1, + }, + { + filename = "__Natural_Evolution_Enemies__/graphics/entity/Web_64.png", + width_in_frames = 1, + height_in_frames = 1, + } + } + }, + + { + filename = "__Natural_Evolution_Enemies__/graphics/entity/Web_64_shadow.png", + width = 64, + height = 64, + frame_count = 1, + direction_count = 1, + shift = {scale * 0.117188, scale * -0.867188}, + scale = scale, + tint = tint1 + }, + + { + filename = "__Natural_Evolution_Enemies__/graphics/entity/Web_64.png", + line_length = 1, + width = 64, + height = 64, + frame_count = 1, + direction_count = 1, + shift = {scale * 0.117188, scale * -0.855469}, + scale = scale, + tint = tint2 + } + + } + } +end + + + +data:extend( +{ +--- Vanilla Small Biter +--[[ + { + type = "unit", + name = "small-biter", + icon = "__base__/graphics/icons/creeper.png", + flags = {"placeable-player", "placeable-enemy", "placeable-off-grid", "breaths-air"}, + max_health = Health.Small_Biter, + order = "b-b-a", + subgroup="enemies", + resistances = Resistances.Small_Biter, + healing_per_tick = 0.01, + collision_box = {{-0.2, -0.2}, {0.2, 0.2}}, + selection_box = {{-0.4, -0.7}, {0.7, 0.4}}, + attack_parameters = + { + type = "projectile", + range = 0.5, + cooldown = 35, + ammo_category = "melee", + ammo_type = make_unit_melee_ammo_type(6), + sound = make_biter_roars(0.5), + animation = biterattackanimation(smallbiterscale, small_biter_tint1, small_biter_tint2) + }, + vision_distance = 30, + movement_speed = 0.2, + distance_per_frame = 0.1, + pollution_to_join_attack = 200, + distraction_cooldown = 300, + corpse = "small-biter-corpse", + dying_explosion = "blood-explosion-small", + dying_sound = make_biter_dying_sounds(1.0), + working_sound = make_biter_calls(0.7), + run_animation = biterrunanimation(smallbiterscale, small_biter_tint1, small_biter_tint2) + }, +--]] + +--- New Small Biter 1 + { + type = "unit", + name = "small-biter-Mk2", + icon = "__base__/graphics/icons/creeper.png", + flags = {"placeable-player", "placeable-enemy", "placeable-off-grid", "breaths-air"}, + max_health = Health.Small_Biter_Mk2, + order = "b-b-b", + subgroup="enemies", + resistances = Resistances.Small_Biter_Mk2, + healing_per_tick = 0.01, + collision_box = {{-0.2, -0.2}, {0.2, 0.2}}, + selection_box = {{-0.4, -0.7}, {0.7, 0.4}}, + attack_parameters = + { + type = "projectile", + range = 0.5, + cooldown = 35, + ammo_category = "melee", + ammo_type = Damage.Small_Biter_Mk2, + sound = make_biter_roars(0.5), + animation = biterattackanimation(smallbiterMk2scale, small_biter_Mk2_tint1, small_biter_Mk2_tint2) + }, + vision_distance = 30, + movement_speed = 0.2, + distance_per_frame = 0.1, + pollution_to_join_attack = 200, + distraction_cooldown = 300, + corpse = "small-biter-corpse", + dying_explosion = "blood-explosion-small", + dying_sound = make_biter_dying_sounds(1.0), + working_sound = make_biter_calls(0.7), + run_animation = biterrunanimation(smallbiterMk2scale, small_biter_Mk2_tint1, small_biter_Mk2_tint2) + }, + + --- New Small Biter 2 + { + type = "unit", + name = "small-biter-Mk3", + icon = "__base__/graphics/icons/creeper.png", + flags = {"placeable-player", "placeable-enemy", "placeable-off-grid", "breaths-air"}, + max_health = Health.Small_Biter_Mk3, + order = "b-b-c", + subgroup="enemies", + resistances = Resistances.Small_Biter_Mk3, + healing_per_tick = 0.01, + collision_box = {{-0.2, -0.2}, {0.2, 0.2}}, + selection_box = {{-0.4, -0.7}, {0.7, 0.4}}, + attack_parameters = + { + type = "projectile", + range = 0.5, + cooldown = 35, + ammo_category = "melee", + ammo_type = Damage.Small_Biter_Mk3, + sound = make_biter_roars(0.5), + animation = biterattackanimation(smallbiterMk3scale, small_biter_Mk3_tint1, small_biter_Mk3_tint2) + }, + vision_distance = 30, + movement_speed = 0.2, + distance_per_frame = 0.1, + pollution_to_join_attack = 200, + distraction_cooldown = 300, + corpse = "small-biter-corpse", + dying_explosion = "blood-explosion-small", + dying_sound = make_biter_dying_sounds(1.0), + working_sound = make_biter_calls(0.7), + run_animation = biterrunanimation(smallbiterMk3scale, small_biter_Mk3_tint1, small_biter_Mk3_tint2) + }, + +--- Vanilla Medium Biter +--[[ + { + type = "unit", + name = "medium-biter", + icon = "__base__/graphics/icons/creeper.png", + flags = {"placeable-player", "placeable-enemy", "placeable-off-grid", "breaths-air", "not-repairable"}, + max_health = Health.Medium_Biter, + order="b-b-d", + subgroup="enemies", + resistances = Resistances.Medium_Biter, + healing_per_tick = 0.015, + collision_box = {{-0.3, -0.3}, {0.3, 0.3}}, + selection_box = {{-0.7, -1.5}, {0.7, 0.3}}, + sticker_box = {{-0.3, -0.5}, {0.3, 0.1}}, + distraction_cooldown = 300, + attack_parameters = + { + type = "projectile", + ammo_category = "melee", + ammo_type = make_unit_melee_ammo_type(15), + range = 1, + cooldown = 35, + sound = make_biter_roars(0.7), + animation = biterattackanimation(mediumbiterscale, medium_biter_tint1, medium_biter_tint2) + }, + vision_distance = 30, + movement_speed = 0.185, + distance_per_frame = 0.15, + -- in pu + pollution_to_join_attack = 1000, + corpse = "medium-biter-corpse", + dying_explosion = "blood-explosion-small", + working_sound = make_biter_calls(0.8), + dying_sound = make_biter_dying_sounds(1.0), + run_animation = biterrunanimation(mediumbiterscale, medium_biter_tint1, medium_biter_tint2) + }, + --]] + --- New Medium Biter 1 + { + type = "unit", + name = "medium-biter-Mk2", + icon = "__base__/graphics/icons/creeper.png", + flags = {"placeable-player", "placeable-enemy", "placeable-off-grid", "breaths-air", "not-repairable"}, + max_health = Health.Medium_Biter_Mk2, + order="b-b-e", + subgroup="enemies", + resistances = Resistances.Medium_Biter_Mk2, + healing_per_tick = 0.015, + collision_box = {{-0.3, -0.3}, {0.3, 0.3}}, + selection_box = {{-0.7, -1.5}, {0.7, 0.3}}, + sticker_box = {{-0.3, -0.5}, {0.3, 0.1}}, + distraction_cooldown = 300, + attack_parameters = + { + type = "projectile", + ammo_category = "melee", + ammo_type = Damage.Medium_Biter_Mk2, + range = 1, + cooldown = 35, + sound = make_biter_roars(0.7), + animation = biterattackanimation(mediumbiterMk2scale, medium_biter_Mk2_tint1, medium_biter_Mk2_tint2) + }, + vision_distance = 30, + movement_speed = 0.185, + distance_per_frame = 0.15, + -- in pu + pollution_to_join_attack = 800, + corpse = "medium-biter-corpse", + dying_explosion = "blood-explosion-small", + working_sound = make_biter_calls(0.8), + dying_sound = make_biter_dying_sounds(1.0), + run_animation = biterrunanimation(mediumbiterMk2scale, medium_biter_Mk2_tint1, medium_biter_Mk2_tint2) + }, + + --- New Medium Biter 2 + { + type = "unit", + name = "medium-biter-Mk3", + icon = "__base__/graphics/icons/creeper.png", + flags = {"placeable-player", "placeable-enemy", "placeable-off-grid", "breaths-air", "not-repairable"}, + max_health = Health.Medium_Biter_Mk3, + order="b-b-f", + subgroup="enemies", + resistances = Resistances.Medium_Biter_Mk3, + healing_per_tick = 0.015, + collision_box = {{-0.3, -0.3}, {0.3, 0.3}}, + selection_box = {{-0.7, -1.5}, {0.7, 0.3}}, + sticker_box = {{-0.3, -0.5}, {0.3, 0.1}}, + distraction_cooldown = 300, + attack_parameters = + { + type = "projectile", + ammo_category = "melee", + ammo_type = Damage.Medium_Biter_Mk3, + range = 1, + cooldown = 35, + sound = make_biter_roars(0.7), + animation = biterattackanimation(mediumbiterMk3scale, medium_biter_Mk3_tint1, medium_biter_Mk3_tint2) + }, + vision_distance = 30, + movement_speed = 0.185, + distance_per_frame = 0.15, + -- in pu + pollution_to_join_attack = 800, + corpse = "medium-biter-corpse", + dying_explosion = "blood-explosion-small", + working_sound = make_biter_calls(0.8), + dying_sound = make_biter_dying_sounds(1.0), + run_animation = biterrunanimation(mediumbiterMk3scale, medium_biter_Mk3_tint1, medium_biter_Mk3_tint2) + }, + + ------ Vanilla Big Biter + --[[ + { + type = "unit", + name = "big-biter", + icon = "__base__/graphics/icons/creeper.png", + flags = {"placeable-player", "placeable-enemy", "placeable-off-grid", "breaths-air", "not-repairable"}, + max_health = Health.Big_Biter, + order="b-b-g", + subgroup="enemies", + resistances = Resistances.Big_Biter, + spawning_time_modifier = 2, + healing_per_tick = 0.02, + collision_box = {{-0.4, -0.4}, {0.4, 0.4}}, + selection_box = {{-0.7, -1.5}, {0.7, 0.3}}, + sticker_box = {{-0.6, -0.8}, {0.6, 0}}, + distraction_cooldown = 300, + attack_parameters = + { + type = "projectile", + range = 1.5, + cooldown = 35, + ammo_category = "melee", + ammo_type = make_unit_melee_ammo_type(30), + sound = make_biter_roars(0.6), + animation = biterattackanimation(bigbiterscale, big_biter_tint1, big_biter_tint2) + }, + vision_distance = 30, + movement_speed = 0.17, + distance_per_frame = 0.2, + -- in pu + pollution_to_join_attack = 4000, + corpse = "big-biter-corpse", + dying_explosion = "blood-explosion-big", + working_sound = make_biter_calls(0.9), + dying_sound = make_biter_dying_sounds(1.0), + run_animation = biterrunanimation(bigbiterscale, big_biter_tint1, big_biter_tint2) + }, +--]] + ----- New Big Biter 1 + { + type = "unit", + name = "big-biter-Mk2", + icon = "__base__/graphics/icons/creeper.png", + flags = {"placeable-player", "placeable-enemy", "placeable-off-grid", "breaths-air", "not-repairable"}, + max_health = Health.Big_Biter_Mk2, + order="b-b-h", + subgroup="enemies", + resistances = Resistances.Big_Biter_Mk2, + spawning_time_modifier = 2, + healing_per_tick = 0.02, + collision_box = {{-0.4, -0.4}, {0.4, 0.4}}, + selection_box = {{-0.7, -1.5}, {0.7, 0.3}}, + sticker_box = {{-0.6, -0.8}, {0.6, 0}}, + distraction_cooldown = 300, + attack_parameters = + { + type = "projectile", + range = 1.5, + cooldown = 35, + ammo_category = "melee", + ammo_type = Damage.Big_Biter_Mk2, + sound = make_biter_roars(0.6), + animation = biterattackanimation(bigbiterMk2scale, big_biter_Mk2_tint1, big_Mk2_biter_tint2) + }, + vision_distance = 30, + movement_speed = 0.17, + distance_per_frame = 0.2, + -- in pu + pollution_to_join_attack = 1000, + corpse = "big-biter-corpse", + dying_explosion = "blood-explosion-big", + working_sound = make_biter_calls(0.9), + dying_sound = make_biter_dying_sounds(1.0), + run_animation = biterrunanimation(bigbiterMk2scale, big_biter_Mk2_tint1, big_Mk2_biter_tint2) + }, + +----- New Big Biter 2 + + { + type = "unit", + name = "big-biter-Mk3", + icon = "__base__/graphics/icons/creeper.png", + flags = {"placeable-player", "placeable-enemy", "placeable-off-grid", "breaths-air", "not-repairable"}, + max_health = Health.Big_Biter_Mk3, + order="b-b-i", + subgroup="enemies", + resistances = Resistances.Big_Biter_Mk3, + spawning_time_modifier = 2, + healing_per_tick = 0.02, + collision_box = {{-0.4, -0.4}, {0.4, 0.4}}, + selection_box = {{-0.7, -1.5}, {0.7, 0.3}}, + sticker_box = {{-0.6, -0.8}, {0.6, 0}}, + distraction_cooldown = 300, + attack_parameters = + { + type = "projectile", + range = 1.5, + cooldown = 35, + ammo_category = "melee", + ammo_type = Damage.Big_Biter_Mk3, + sound = make_biter_roars(0.6), + animation = biterattackanimation(bigbiterMk3scale, big_biter_Mk3_tint1, big_Mk3_biter_tint2) + }, + vision_distance = 30, + movement_speed = 0.17, + distance_per_frame = 0.2, + -- in pu + pollution_to_join_attack = 1000, + corpse = "big-biter-corpse", + dying_explosion = "blood-explosion-big", + working_sound = make_biter_calls(0.9), + dying_sound = make_biter_dying_sounds(1.0), + run_animation = biterrunanimation(bigbiterMk3scale, big_biter_Mk3_tint1, big_Mk3_biter_tint2) + }, + + --- Vanilla Behemoth Biter + --[[ + { + type = "unit", + name = "behemoth-biter", + icon = "__base__/graphics/icons/creeper.png", + flags = {"placeable-player", "placeable-enemy", "placeable-off-grid", "breaths-air", "not-repairable"}, + max_health = Health.Behemoth_Biter, + order="b-b-i", + subgroup="enemies", + resistances = Resistances.Behemoth_Biter, + spawning_time_modifier = 8, + healing_per_tick = 0.1, + collision_box = {{-0.4, -0.4}, {0.4, 0.4}}, + selection_box = {{-0.7, -1.5}, {0.7, 0.3}}, + sticker_box = {{-0.6, -0.8}, {0.6, 0}}, + distraction_cooldown = 300, + attack_parameters = + { + type = "projectile", + range = 1.5, + cooldown = 50, + ammo_category = "melee", + ammo_type = make_unit_melee_ammo_type(100), + sound = make_biter_roars(0.8), + animation = biterattackanimation(behemothbiterscale, behemoth_biter_tint1, behemoth_biter_tint2) + }, + vision_distance = 30, + movement_speed = 0.17, + distance_per_frame = 0.2, + -- in pu + pollution_to_join_attack = 20000, + corpse = "behemoth-biter-corpse", + dying_explosion = "blood-explosion-big", + working_sound = make_biter_calls(1.2), + dying_sound = make_biter_dying_sounds(1.0), + run_animation = biterrunanimation(behemothbiterscale, behemoth_biter_tint1, behemoth_biter_tint2) + }, +--]] +}) + + +--- Unit Cluster Entity. A unit that will be killed once it's generated, to spwan the actual units. +data:extend( +{ + + { + type = "unit", + name = "unit-cluster", + icon = "__base__/graphics/icons/creeper.png", + flags = {"placeable-player", "placeable-enemy", "placeable-off-grid", "breaths-air"}, + max_health = 10, + order = "b-b-a", + subgroup="enemies", + healing_per_tick = -1, + collision_box = {{-0.2, -0.2}, {0.2, 0.2}}, + selection_box = {{-0.4, -0.7}, {0.7, 0.4}}, + attack_parameters = + { + type = "projectile", + range = 0.0005, + cooldown = 3000, + ammo_category = "melee", + ammo_type = make_unit_melee_ammo_type(0), + sound = make_biter_roars(0), + animation = web_animation(unit_cluster_scale, unit_cluster_tint1, unit_cluster_tint2) + + }, + vision_distance = 1, + movement_speed = 0.00002, + distance_per_frame = 0.1, + pollution_to_join_attack = 200000, + distraction_cooldown = 300, + corpse = "unit-cluster-corpse", + dying_explosion = "blood-explosion-small", + dying_sound = make_biter_dying_sounds(0), + working_sound = make_biter_calls(0), + run_animation = web_animation(unit_cluster_scale, unit_cluster_tint1, unit_cluster_tint2) + + }, + + { + type = "corpse", + name = "unit-cluster-corpse", + icon = "__base__/graphics/icons/small-biter-corpse.png", + selection_box = {{-0.8, -0.8}, {0.8, 0.8}}, + selectable_in_game = false, + subgroup="corpses", + order = "c[corpse]-a[biter]-a[small]", + flags = {"placeable-neutral", "placeable-off-grid", "building-direction-8-way", "not-repairable", "not-on-map"}, + dying_speed = 1, + time_before_removed = 1, + final_render_layer = "corpse", + animation = web_animation(unit_cluster_scale, unit_cluster_tint1, unit_cluster_tint2) + }, + + +}) + + + diff --git a/Natural_Evolution_Enemies_6.3.0/prototypes/Vanilla_Changes/New_Spitter_Units.lua b/Natural_Evolution_Enemies_6.3.1/prototypes/Vanilla_Changes/New_Spitter_Units.lua similarity index 97% rename from Natural_Evolution_Enemies_6.3.0/prototypes/Vanilla_Changes/New_Spitter_Units.lua rename to Natural_Evolution_Enemies_6.3.1/prototypes/Vanilla_Changes/New_Spitter_Units.lua index 6dc3183..e91db6e 100644 --- a/Natural_Evolution_Enemies_6.3.0/prototypes/Vanilla_Changes/New_Spitter_Units.lua +++ b/Natural_Evolution_Enemies_6.3.1/prototypes/Vanilla_Changes/New_Spitter_Units.lua @@ -1,380 +1,380 @@ -require "prototypes.Vanilla_Changes.Settings" -require "prototypes.Vanilla_Changes.Functions" -require "prototypes.Vanilla_Changes.Projectiles" - -smallspitterscale = 0.5 -smallspittertint = {r=0.68, g=0.4, b=0, a=1} - -smallspitterMk2scale = 0.55 -smallspitterMk2tint = {r=0.68, g=0.4, b=0.5, a=1} - -smallspitterMk3scale = 0.6 -smallspitterMk3tint = {r=0.68, g=0.4, b=1, a=1} - -mediumspitterscale = 0.7 -mediumspittertint = {r=0.83, g=0.39, b=0.36, a=0.75} - -mediumspitterMk2scale = 0.75 -mediumspitterMk2tint = {r=0.83, g=0.69, b=0.36, a=0.75} - -mediumspitterMk3scale = 0.8 -mediumspitterMk3tint = {r=0.83, g=0.99, b=0.36, a=0.75} - -bigspitterscale = 1 -bigspittertint = {r=0.54, g=0.58, b=0.85, a=0.6} - -bigspitterMk2scale = 1.05 -bigspitterMk2tint = {r=0.74, g=0.58, b=0.85, a=0.6} - -bigspitterMk3scale = 1.1 -bigspitterMk3tint = {r=0.94, g=0.58, b=0.85, a=0.6} - -behemothspitterscale = 2 -behemothspittertint = {r=0.3, g=0.9, b=0.3, a=0.75} - - - -data:extend( -{ - ----- Vanilla Small Spitter ---[[ - { - type = "unit", - name = "small-spitter", - icon = "__base__/graphics/icons/creeper.png", - flags = {"placeable-player", "placeable-enemy", "placeable-off-grid", "breaths-air", "not-repairable"}, - max_health = Health.Small_Spitter, - order="b-d-a", - subgroup="enemies", - resistances = Resistances.Small_Spitter, - healing_per_tick = 0.01, - collision_box = {{-0.3, -0.3}, {0.3, 0.3}}, - selection_box = {{-0.4, -0.4}, {0.4, 0.4}}, - sticker_box = {{-0.3, -0.5}, {0.3, 0.1}}, - distraction_cooldown = 300, - attack_parameters = spitterattackparameters({range=15, - cooldown=100, - damage_modifier=1, - scale=smallspitterscale, - tint=smallspittertint, - roarvolume=0.7}), - vision_distance = 30, - movement_speed = 0.185, - distance_per_frame = 0.05, - -- in pu - pollution_to_join_attack = 200, - corpse = "small-spitter-corpse", - dying_explosion = "blood-explosion-small", - working_sound = make_biter_calls(0.65), - dying_sound = make_spitter_dying_sounds(1.0), - run_animation = spitterrunanimation(smallspitterscale, smallspittertint) - }, ---]] ----- New Small Spitter 1 - { - type = "unit", - name = "small-spitter-Mk2", - icon = "__base__/graphics/icons/creeper.png", - flags = {"placeable-player", "placeable-enemy", "placeable-off-grid", "breaths-air", "not-repairable"}, - max_health = Health.Small_Spitter_Mk2, - order="b-d-b", - subgroup="enemies", - resistances = Resistances.Small_Spitter_Mk2, - healing_per_tick = 0.01, - collision_box = {{-0.3, -0.3}, {0.3, 0.3}}, - selection_box = {{-0.4, -0.4}, {0.4, 0.4}}, - sticker_box = {{-0.3, -0.5}, {0.3, 0.1}}, - distraction_cooldown = 300, - attack_parameters = Spitter_Attack_Infected({range=13, - cooldown=100, - damage_modifier=1.1, - scale=smallspitterMk2scale, - tint=smallspitterMk2tint, - roarvolume=0.7}), - vision_distance = 30, - movement_speed = 0.185, - distance_per_frame = 0.05, - -- in pu - pollution_to_join_attack = 200, - corpse = "small-spitter-corpse", - dying_explosion = "blood-explosion-small", - working_sound = make_biter_calls(0.65), - dying_sound = make_spitter_dying_sounds(1.0), - run_animation = spitterrunanimation(smallspitterMk2scale, smallspitterMk2tint) - }, - ----- New Small Spitter 2 - { - type = "unit", - name = "small-spitter-Mk3", - icon = "__base__/graphics/icons/creeper.png", - flags = {"placeable-player", "placeable-enemy", "placeable-off-grid", "breaths-air", "not-repairable"}, - max_health = Health.Small_Spitter_Mk3, - order="b-d-c", - subgroup="enemies", - resistances = Resistances.Small_Spitter_Mk3, - healing_per_tick = 0.01, - collision_box = {{-0.3, -0.3}, {0.3, 0.3}}, - selection_box = {{-0.4, -0.4}, {0.4, 0.4}}, - sticker_box = {{-0.3, -0.5}, {0.3, 0.1}}, - distraction_cooldown = 300, - attack_parameters = Spitter_Attack_Mutated({range=13, - cooldown=100, - damage_modifier=1.2, - scale=smallspitterMk3scale, - tint=smallspitterMk3tint, - roarvolume=0.7}), - vision_distance = 30, - movement_speed = 0.185, - distance_per_frame = 0.05, - -- in pu - pollution_to_join_attack = 200, - corpse = "small-spitter-corpse", - dying_explosion = "blood-explosion-small", - working_sound = make_biter_calls(0.65), - dying_sound = make_spitter_dying_sounds(1.0), - run_animation = spitterrunanimation(smallspitterMk3scale, smallspitterMk3tint) - }, - ----- Vanilla Medium Spitter ---[[ - { - type = "unit", - name = "medium-spitter", - icon = "__base__/graphics/icons/creeper.png", - flags = {"placeable-player", "placeable-enemy", "placeable-off-grid", "breaths-air", "not-repairable"}, - max_health = Health.Medium_Spitter, - order="b-d-d", - subgroup="enemies", - resistances = Resistances.Medium_Spitter, - healing_per_tick = 0.015, - collision_box = {{-0.4, -0.4}, {0.4, 0.4}}, - selection_box = {{-0.5, -0.7}, {0.5, 0.7}}, - sticker_box = {{-0.3, -0.5}, {0.3, 0.1}}, - distraction_cooldown = 300, - attack_parameters = spitterattackparameters({range=15, - cooldown=100, - damage_modifier=2, - scale=mediumspitterscale, - tint=mediumspittertint, - roarvolume=0.85}), - vision_distance = 30, - movement_speed = 0.165, - distance_per_frame = 0.05, - -- in pu - pollution_to_join_attack = 600, - corpse = "medium-spitter-corpse", - dying_explosion = "blood-explosion-small", - working_sound = make_biter_calls(0.75), - dying_sound = make_spitter_dying_sounds(1.0), - run_animation = spitterrunanimation(mediumspitterscale, mediumspittertint) - }, ---]] ---- New Medium Spitter 1 - { - type = "unit", - name = "medium-spitter-Mk2", - icon = "__base__/graphics/icons/creeper.png", - flags = {"placeable-player", "placeable-enemy", "placeable-off-grid", "breaths-air", "not-repairable"}, - max_health = Health.Medium_Spitter_Mk2, - order="b-d-e", - subgroup="enemies", - resistances = Resistances.Medium_Spitter_Mk2, - healing_per_tick = 0.015, - collision_box = {{-0.4, -0.4}, {0.4, 0.4}}, - selection_box = {{-0.5, -0.7}, {0.5, 0.7}}, - sticker_box = {{-0.3, -0.5}, {0.3, 0.1}}, - distraction_cooldown = 300, - attack_parameters = Spitter_Attack_Infected({range=14, - cooldown=100, - damage_modifier=2.3, - scale=mediumspitterMk2scale, - tint=mediumspitterMk2tint, - roarvolume=0.85}), - vision_distance = 30, - movement_speed = 0.165, - distance_per_frame = 0.05, - -- in pu - pollution_to_join_attack = 600, - corpse = "medium-spitter-corpse", - dying_explosion = "blood-explosion-small", - working_sound = make_biter_calls(0.75), - dying_sound = make_spitter_dying_sounds(1.0), - run_animation = spitterrunanimation(mediumspitterMk2scale, mediumspitterMk2tint) - }, - - --- New Medium Spitter 2 - { - type = "unit", - name = "medium-spitter-Mk3", - icon = "__base__/graphics/icons/creeper.png", - flags = {"placeable-player", "placeable-enemy", "placeable-off-grid", "breaths-air", "not-repairable"}, - max_health = Health.Medium_Spitter_Mk3, - order="b-d-f", - subgroup="enemies", - resistances = Resistances.Medium_Spitter_Mk3, - healing_per_tick = 0.015, - collision_box = {{-0.4, -0.4}, {0.4, 0.4}}, - selection_box = {{-0.5, -0.7}, {0.5, 0.7}}, - sticker_box = {{-0.3, -0.5}, {0.3, 0.1}}, - distraction_cooldown = 300, - attack_parameters = Spitter_Attack_Mutated({range=14, - cooldown=100, - damage_modifier=2.6, - scale=mediumspitterMk3scale, - tint=mediumspitterMk3tint, - roarvolume=0.85}), - vision_distance = 30, - movement_speed = 0.165, - distance_per_frame = 0.05, - -- in pu - pollution_to_join_attack = 600, - corpse = "medium-spitter-corpse", - dying_explosion = "blood-explosion-small", - working_sound = make_biter_calls(0.75), - dying_sound = make_spitter_dying_sounds(1.0), - run_animation = spitterrunanimation(mediumspitterMk3scale, mediumspitterMk3tint) - }, - - --- Vanilla Big Spitter - --[[ - { - type = "unit", - name = "big-spitter", - icon = "__base__/graphics/icons/creeper.png", - flags = {"placeable-player", "placeable-enemy", "placeable-off-grid", "breaths-air", "not-repairable"}, - max_health = Health.Big_Spitter, - order="b-d-g", - subgroup="enemies", - resistances = Resistances.Big_Spitter, - spawning_time_modifier = 2, - healing_per_tick = 0.02, - collision_box = {{-0.5, -0.5}, {0.5, 0.5}}, - selection_box = {{-0.7, -1.0}, {0.7, 1.0}}, - sticker_box = {{-0.3, -0.5}, {0.3, 0.1}}, - distraction_cooldown = 300, - attack_parameters = spitterattackparameters({range=15, - cooldown=100, - damage_modifier=3, - scale=bigspitterscale, - tint=bigspittertint, - roarvolume=0.95}), - vision_distance = 30, - movement_speed = 0.15, - distance_per_frame = 0.05, - -- in pu - pollution_to_join_attack = 1500, - corpse = "big-spitter-corpse", - dying_explosion = "blood-explosion-big", - working_sound = make_biter_calls(0.9), - dying_sound = make_spitter_dying_sounds(1.0), - run_animation = spitterrunanimation(bigspitterscale, bigspittertint) - }, - --]] - --- New Big Spitter 1 - { - type = "unit", - name = "big-spitter-Mk2", - icon = "__base__/graphics/icons/creeper.png", - flags = {"placeable-player", "placeable-enemy", "placeable-off-grid", "breaths-air", "not-repairable"}, - max_health = Health.Big_Spitter_Mk2, - order="b-d-h", - subgroup="enemies", - resistances = Resistances.Big_Spitter_Mk2, - spawning_time_modifier = 2, - healing_per_tick = 0.02, - collision_box = {{-0.5, -0.5}, {0.5, 0.5}}, - selection_box = {{-0.7, -1.0}, {0.7, 1.0}}, - sticker_box = {{-0.3, -0.5}, {0.3, 0.1}}, - distraction_cooldown = 300, - attack_parameters = Spitter_Attack_Infected({range=16, - cooldown=100, - damage_modifier=3.3, - scale=bigspitterMk2scale, - tint=bigspitterMk2tint, - roarvolume=0.95}), - vision_distance = 30, - movement_speed = 0.15, - distance_per_frame = 0.05, - -- in pu - pollution_to_join_attack = 1200, - corpse = "big-spitter-corpse", - dying_explosion = "blood-explosion-big", - working_sound = make_biter_calls(0.9), - dying_sound = make_spitter_dying_sounds(1.0), - run_animation = spitterrunanimation(bigspitterMk2scale, bigspitterMk2tint) - }, - - --- New Big Spitter 2 - { - type = "unit", - name = "big-spitter-Mk3", - icon = "__base__/graphics/icons/creeper.png", - flags = {"placeable-player", "placeable-enemy", "placeable-off-grid", "breaths-air", "not-repairable"}, - max_health = Health.Big_Spitter_Mk3, - order="b-d-i", - subgroup="enemies", - resistances = Resistances.Big_Spitter_Mk3, - spawning_time_modifier = 2, - healing_per_tick = 0.02, - collision_box = {{-0.5, -0.5}, {0.5, 0.5}}, - selection_box = {{-0.7, -1.0}, {0.7, 1.0}}, - sticker_box = {{-0.3, -0.5}, {0.3, 0.1}}, - distraction_cooldown = 300, - attack_parameters = Spitter_Attack_Mutated({range=16, - cooldown=100, - damage_modifier=3.6, - scale=bigspitterMk3scale, - tint=bigspitterMk3tint, - roarvolume=0.95}), - vision_distance = 30, - movement_speed = 0.15, - distance_per_frame = 0.05, - -- in pu - pollution_to_join_attack = 1200, - corpse = "big-spitter-corpse", - dying_explosion = "blood-explosion-big", - working_sound = make_biter_calls(0.9), - dying_sound = make_spitter_dying_sounds(1.0), - run_animation = spitterrunanimation(bigspitterMk3scale, bigspitterMk3tint) - }, - - --- Vanilla Behemoth Spitter - --[[ - { - type = "unit", - name = "behemoth-spitter", - icon = "__base__/graphics/icons/creeper.png", - flags = {"placeable-player", "placeable-enemy", "placeable-off-grid", "breaths-air", "not-repairable"}, - max_health = Health.Behemoth_Spitter, - order="b-d-j", - subgroup="enemies", - resistances = Resistances.Behemoth_Spitter, - spawning_time_modifier = 8, - healing_per_tick = 0.1, - collision_box = {{-0.5, -0.5}, {0.5, 0.5}}, - selection_box = {{-0.7, -1.0}, {0.7, 1.0}}, - sticker_box = {{-0.3, -0.5}, {0.3, 0.1}}, - distraction_cooldown = 300, - attack_parameters = spitterattackparameters({range=15, - cooldown=100, - damage_modifier=5, - scale=behemothspitterscale, - tint=behemothspittertint}), - vision_distance = 30, - movement_speed = 0.15, - distance_per_frame = 0.05, - -- in pu - pollution_to_join_attack = 10000, - corpse = "behemoth-spitter-corpse", - dying_explosion = "blood-explosion-big", - dying_sound = make_spitter_dying_sounds(1.0), - run_animation = spitterrunanimation(behemothspitterscale, behemothspittertint) - }, ---]] - -}) - - - +require "prototypes.Vanilla_Changes.Settings" +require "prototypes.Vanilla_Changes.Functions" +require "prototypes.Vanilla_Changes.Projectiles" + +smallspitterscale = 0.5 +smallspittertint = {r=0.68, g=0.4, b=0, a=1} + +smallspitterMk2scale = 0.55 +smallspitterMk2tint = {r=0.68, g=0.4, b=0.5, a=1} + +smallspitterMk3scale = 0.6 +smallspitterMk3tint = {r=0.68, g=0.4, b=1, a=1} + +mediumspitterscale = 0.7 +mediumspittertint = {r=0.83, g=0.39, b=0.36, a=0.75} + +mediumspitterMk2scale = 0.75 +mediumspitterMk2tint = {r=0.83, g=0.69, b=0.36, a=0.75} + +mediumspitterMk3scale = 0.8 +mediumspitterMk3tint = {r=0.83, g=0.99, b=0.36, a=0.75} + +bigspitterscale = 1 +bigspittertint = {r=0.54, g=0.58, b=0.85, a=0.6} + +bigspitterMk2scale = 1.05 +bigspitterMk2tint = {r=0.74, g=0.58, b=0.85, a=0.6} + +bigspitterMk3scale = 1.1 +bigspitterMk3tint = {r=0.94, g=0.58, b=0.85, a=0.6} + +behemothspitterscale = 2 +behemothspittertint = {r=0.3, g=0.9, b=0.3, a=0.75} + + + +data:extend( +{ + +---- Vanilla Small Spitter +--[[ + { + type = "unit", + name = "small-spitter", + icon = "__base__/graphics/icons/creeper.png", + flags = {"placeable-player", "placeable-enemy", "placeable-off-grid", "breaths-air", "not-repairable"}, + max_health = Health.Small_Spitter, + order="b-d-a", + subgroup="enemies", + resistances = Resistances.Small_Spitter, + healing_per_tick = 0.01, + collision_box = {{-0.3, -0.3}, {0.3, 0.3}}, + selection_box = {{-0.4, -0.4}, {0.4, 0.4}}, + sticker_box = {{-0.3, -0.5}, {0.3, 0.1}}, + distraction_cooldown = 300, + attack_parameters = spitterattackparameters({range=15, + cooldown=100, + damage_modifier=1, + scale=smallspitterscale, + tint=smallspittertint, + roarvolume=0.7}), + vision_distance = 30, + movement_speed = 0.185, + distance_per_frame = 0.05, + -- in pu + pollution_to_join_attack = 200, + corpse = "small-spitter-corpse", + dying_explosion = "blood-explosion-small", + working_sound = make_biter_calls(0.65), + dying_sound = make_spitter_dying_sounds(1.0), + run_animation = spitterrunanimation(smallspitterscale, smallspittertint) + }, +--]] +---- New Small Spitter 1 + { + type = "unit", + name = "small-spitter-Mk2", + icon = "__base__/graphics/icons/creeper.png", + flags = {"placeable-player", "placeable-enemy", "placeable-off-grid", "breaths-air", "not-repairable"}, + max_health = Health.Small_Spitter_Mk2, + order="b-d-b", + subgroup="enemies", + resistances = Resistances.Small_Spitter_Mk2, + healing_per_tick = 0.01, + collision_box = {{-0.3, -0.3}, {0.3, 0.3}}, + selection_box = {{-0.4, -0.4}, {0.4, 0.4}}, + sticker_box = {{-0.3, -0.5}, {0.3, 0.1}}, + distraction_cooldown = 300, + attack_parameters = Spitter_Attack_Infected({range=13, + cooldown=100, + damage_modifier=1.1, + scale=smallspitterMk2scale, + tint=smallspitterMk2tint, + roarvolume=0.7}), + vision_distance = 30, + movement_speed = 0.185, + distance_per_frame = 0.05, + -- in pu + pollution_to_join_attack = 200, + corpse = "small-spitter-corpse", + dying_explosion = "blood-explosion-small", + working_sound = make_biter_calls(0.65), + dying_sound = make_spitter_dying_sounds(1.0), + run_animation = spitterrunanimation(smallspitterMk2scale, smallspitterMk2tint) + }, + +---- New Small Spitter 2 + { + type = "unit", + name = "small-spitter-Mk3", + icon = "__base__/graphics/icons/creeper.png", + flags = {"placeable-player", "placeable-enemy", "placeable-off-grid", "breaths-air", "not-repairable"}, + max_health = Health.Small_Spitter_Mk3, + order="b-d-c", + subgroup="enemies", + resistances = Resistances.Small_Spitter_Mk3, + healing_per_tick = 0.01, + collision_box = {{-0.3, -0.3}, {0.3, 0.3}}, + selection_box = {{-0.4, -0.4}, {0.4, 0.4}}, + sticker_box = {{-0.3, -0.5}, {0.3, 0.1}}, + distraction_cooldown = 300, + attack_parameters = Spitter_Attack_Mutated({range=13, + cooldown=100, + damage_modifier=1.2, + scale=smallspitterMk3scale, + tint=smallspitterMk3tint, + roarvolume=0.7}), + vision_distance = 30, + movement_speed = 0.185, + distance_per_frame = 0.05, + -- in pu + pollution_to_join_attack = 200, + corpse = "small-spitter-corpse", + dying_explosion = "blood-explosion-small", + working_sound = make_biter_calls(0.65), + dying_sound = make_spitter_dying_sounds(1.0), + run_animation = spitterrunanimation(smallspitterMk3scale, smallspitterMk3tint) + }, + +---- Vanilla Medium Spitter +--[[ + { + type = "unit", + name = "medium-spitter", + icon = "__base__/graphics/icons/creeper.png", + flags = {"placeable-player", "placeable-enemy", "placeable-off-grid", "breaths-air", "not-repairable"}, + max_health = Health.Medium_Spitter, + order="b-d-d", + subgroup="enemies", + resistances = Resistances.Medium_Spitter, + healing_per_tick = 0.015, + collision_box = {{-0.4, -0.4}, {0.4, 0.4}}, + selection_box = {{-0.5, -0.7}, {0.5, 0.7}}, + sticker_box = {{-0.3, -0.5}, {0.3, 0.1}}, + distraction_cooldown = 300, + attack_parameters = spitterattackparameters({range=15, + cooldown=100, + damage_modifier=2, + scale=mediumspitterscale, + tint=mediumspittertint, + roarvolume=0.85}), + vision_distance = 30, + movement_speed = 0.165, + distance_per_frame = 0.05, + -- in pu + pollution_to_join_attack = 600, + corpse = "medium-spitter-corpse", + dying_explosion = "blood-explosion-small", + working_sound = make_biter_calls(0.75), + dying_sound = make_spitter_dying_sounds(1.0), + run_animation = spitterrunanimation(mediumspitterscale, mediumspittertint) + }, +--]] +--- New Medium Spitter 1 + { + type = "unit", + name = "medium-spitter-Mk2", + icon = "__base__/graphics/icons/creeper.png", + flags = {"placeable-player", "placeable-enemy", "placeable-off-grid", "breaths-air", "not-repairable"}, + max_health = Health.Medium_Spitter_Mk2, + order="b-d-e", + subgroup="enemies", + resistances = Resistances.Medium_Spitter_Mk2, + healing_per_tick = 0.015, + collision_box = {{-0.4, -0.4}, {0.4, 0.4}}, + selection_box = {{-0.5, -0.7}, {0.5, 0.7}}, + sticker_box = {{-0.3, -0.5}, {0.3, 0.1}}, + distraction_cooldown = 300, + attack_parameters = Spitter_Attack_Infected({range=14, + cooldown=100, + damage_modifier=2.3, + scale=mediumspitterMk2scale, + tint=mediumspitterMk2tint, + roarvolume=0.85}), + vision_distance = 30, + movement_speed = 0.165, + distance_per_frame = 0.05, + -- in pu + pollution_to_join_attack = 600, + corpse = "medium-spitter-corpse", + dying_explosion = "blood-explosion-small", + working_sound = make_biter_calls(0.75), + dying_sound = make_spitter_dying_sounds(1.0), + run_animation = spitterrunanimation(mediumspitterMk2scale, mediumspitterMk2tint) + }, + + --- New Medium Spitter 2 + { + type = "unit", + name = "medium-spitter-Mk3", + icon = "__base__/graphics/icons/creeper.png", + flags = {"placeable-player", "placeable-enemy", "placeable-off-grid", "breaths-air", "not-repairable"}, + max_health = Health.Medium_Spitter_Mk3, + order="b-d-f", + subgroup="enemies", + resistances = Resistances.Medium_Spitter_Mk3, + healing_per_tick = 0.015, + collision_box = {{-0.4, -0.4}, {0.4, 0.4}}, + selection_box = {{-0.5, -0.7}, {0.5, 0.7}}, + sticker_box = {{-0.3, -0.5}, {0.3, 0.1}}, + distraction_cooldown = 300, + attack_parameters = Spitter_Attack_Mutated({range=14, + cooldown=100, + damage_modifier=2.6, + scale=mediumspitterMk3scale, + tint=mediumspitterMk3tint, + roarvolume=0.85}), + vision_distance = 30, + movement_speed = 0.165, + distance_per_frame = 0.05, + -- in pu + pollution_to_join_attack = 600, + corpse = "medium-spitter-corpse", + dying_explosion = "blood-explosion-small", + working_sound = make_biter_calls(0.75), + dying_sound = make_spitter_dying_sounds(1.0), + run_animation = spitterrunanimation(mediumspitterMk3scale, mediumspitterMk3tint) + }, + + --- Vanilla Big Spitter + --[[ + { + type = "unit", + name = "big-spitter", + icon = "__base__/graphics/icons/creeper.png", + flags = {"placeable-player", "placeable-enemy", "placeable-off-grid", "breaths-air", "not-repairable"}, + max_health = Health.Big_Spitter, + order="b-d-g", + subgroup="enemies", + resistances = Resistances.Big_Spitter, + spawning_time_modifier = 2, + healing_per_tick = 0.02, + collision_box = {{-0.5, -0.5}, {0.5, 0.5}}, + selection_box = {{-0.7, -1.0}, {0.7, 1.0}}, + sticker_box = {{-0.3, -0.5}, {0.3, 0.1}}, + distraction_cooldown = 300, + attack_parameters = spitterattackparameters({range=15, + cooldown=100, + damage_modifier=3, + scale=bigspitterscale, + tint=bigspittertint, + roarvolume=0.95}), + vision_distance = 30, + movement_speed = 0.15, + distance_per_frame = 0.05, + -- in pu + pollution_to_join_attack = 1500, + corpse = "big-spitter-corpse", + dying_explosion = "blood-explosion-big", + working_sound = make_biter_calls(0.9), + dying_sound = make_spitter_dying_sounds(1.0), + run_animation = spitterrunanimation(bigspitterscale, bigspittertint) + }, + --]] + --- New Big Spitter 1 + { + type = "unit", + name = "big-spitter-Mk2", + icon = "__base__/graphics/icons/creeper.png", + flags = {"placeable-player", "placeable-enemy", "placeable-off-grid", "breaths-air", "not-repairable"}, + max_health = Health.Big_Spitter_Mk2, + order="b-d-h", + subgroup="enemies", + resistances = Resistances.Big_Spitter_Mk2, + spawning_time_modifier = 2, + healing_per_tick = 0.02, + collision_box = {{-0.5, -0.5}, {0.5, 0.5}}, + selection_box = {{-0.7, -1.0}, {0.7, 1.0}}, + sticker_box = {{-0.3, -0.5}, {0.3, 0.1}}, + distraction_cooldown = 300, + attack_parameters = Spitter_Attack_Infected({range=16, + cooldown=100, + damage_modifier=3.3, + scale=bigspitterMk2scale, + tint=bigspitterMk2tint, + roarvolume=0.95}), + vision_distance = 30, + movement_speed = 0.15, + distance_per_frame = 0.05, + -- in pu + pollution_to_join_attack = 1200, + corpse = "big-spitter-corpse", + dying_explosion = "blood-explosion-big", + working_sound = make_biter_calls(0.9), + dying_sound = make_spitter_dying_sounds(1.0), + run_animation = spitterrunanimation(bigspitterMk2scale, bigspitterMk2tint) + }, + + --- New Big Spitter 2 + { + type = "unit", + name = "big-spitter-Mk3", + icon = "__base__/graphics/icons/creeper.png", + flags = {"placeable-player", "placeable-enemy", "placeable-off-grid", "breaths-air", "not-repairable"}, + max_health = Health.Big_Spitter_Mk3, + order="b-d-i", + subgroup="enemies", + resistances = Resistances.Big_Spitter_Mk3, + spawning_time_modifier = 2, + healing_per_tick = 0.02, + collision_box = {{-0.5, -0.5}, {0.5, 0.5}}, + selection_box = {{-0.7, -1.0}, {0.7, 1.0}}, + sticker_box = {{-0.3, -0.5}, {0.3, 0.1}}, + distraction_cooldown = 300, + attack_parameters = Spitter_Attack_Mutated({range=16, + cooldown=100, + damage_modifier=3.6, + scale=bigspitterMk3scale, + tint=bigspitterMk3tint, + roarvolume=0.95}), + vision_distance = 30, + movement_speed = 0.15, + distance_per_frame = 0.05, + -- in pu + pollution_to_join_attack = 1200, + corpse = "big-spitter-corpse", + dying_explosion = "blood-explosion-big", + working_sound = make_biter_calls(0.9), + dying_sound = make_spitter_dying_sounds(1.0), + run_animation = spitterrunanimation(bigspitterMk3scale, bigspitterMk3tint) + }, + + --- Vanilla Behemoth Spitter + --[[ + { + type = "unit", + name = "behemoth-spitter", + icon = "__base__/graphics/icons/creeper.png", + flags = {"placeable-player", "placeable-enemy", "placeable-off-grid", "breaths-air", "not-repairable"}, + max_health = Health.Behemoth_Spitter, + order="b-d-j", + subgroup="enemies", + resistances = Resistances.Behemoth_Spitter, + spawning_time_modifier = 8, + healing_per_tick = 0.1, + collision_box = {{-0.5, -0.5}, {0.5, 0.5}}, + selection_box = {{-0.7, -1.0}, {0.7, 1.0}}, + sticker_box = {{-0.3, -0.5}, {0.3, 0.1}}, + distraction_cooldown = 300, + attack_parameters = spitterattackparameters({range=15, + cooldown=100, + damage_modifier=5, + scale=behemothspitterscale, + tint=behemothspittertint}), + vision_distance = 30, + movement_speed = 0.15, + distance_per_frame = 0.05, + -- in pu + pollution_to_join_attack = 10000, + corpse = "behemoth-spitter-corpse", + dying_explosion = "blood-explosion-big", + dying_sound = make_spitter_dying_sounds(1.0), + run_animation = spitterrunanimation(behemothspitterscale, behemothspittertint) + }, +--]] + +}) + + + diff --git a/Natural_Evolution_Enemies_6.3.0/prototypes/Vanilla_Changes/New_Worm_Units.lua b/Natural_Evolution_Enemies_6.3.1/prototypes/Vanilla_Changes/New_Worm_Units.lua similarity index 96% rename from Natural_Evolution_Enemies_6.3.0/prototypes/Vanilla_Changes/New_Worm_Units.lua rename to Natural_Evolution_Enemies_6.3.1/prototypes/Vanilla_Changes/New_Worm_Units.lua index 1cc45b4..2aa5ce2 100644 --- a/Natural_Evolution_Enemies_6.3.0/prototypes/Vanilla_Changes/New_Worm_Units.lua +++ b/Natural_Evolution_Enemies_6.3.1/prototypes/Vanilla_Changes/New_Worm_Units.lua @@ -1,262 +1,262 @@ ----------------------------------------------------------- ----------------------------------------------------------- --- THIS IS NOT BIENG USED AT THE MOMENT -- ----------------------------------------------------------- ----------------------------------------------------------- - - - -require "util" -require "prototypes.Vanilla_Changes.Settings" -require "prototypes.Vanilla_Changes.Projectiles" - - -medium_launcher_worm_scale = 0.95 -medium_launcher_worm_tint = {r=0.92, g=0.97, b=0.55, a=1.0} - -big_launcher_worm_scale = 1 -big_launcher_worm_tint = {r=0.16, g=0.87, b=0.26, a=1.0} - - -function shift_medium_worm(shiftx, shifty) - return {shiftx - 0.15, shifty + 0.15} -end - - -function shift_big_worm(shiftx, shifty) - return {shiftx - 0.2, shifty + 0.2} -end - - - -data:extend( -{ - { - type = "turret", - name = "medium-launcher-worm-turret", - icon = "__base__/graphics/icons/medium-worm.png", - flags = {"placeable-player", "placeable-enemy", "not-repairable", "breaths-air"}, - order="b-b-e", - subgroup="enemies", - max_health = 800, - resistances = - { - {type = "fire", decrease = 0, percent = -60}, - {type = "physical", decrease = 0, percent = 0}, - {type = "impact", decrease = 5, percent = 5}, - {type = "explosion", decrease = 5, percent = 5}, - {type = "acid", decrease = 5, percent = 5}, - {type = "poison", decrease = 0, percent = 5}, - {type = "laser", decrease = 10, percent = 10} - }, - healing_per_tick = 0.015, - collision_box = {{-1.1, -1.0}, {1.1, 1.0}}, - selection_box = {{-1.1, -1.0}, {1.1, 1.0}}, - shooting_cursor_size = 3.5, - rotation_speed = 1, - corpse = "medium-launcher-worm-corpse", - dying_explosion = "blood-explosion-big", - dying_sound = make_worm_dying_sounds(0.9), - folded_speed = 0.01, - folded_animation = worm_folded_animation(medium_launcher_worm_scale, medium_launcher_worm_tint), - prepare_range = 25, - preparing_speed = 0.025, - preparing_animation = worm_preparing_animation(medium_launcher_worm_scale, medium_launcher_worm_tint, "forward"), - prepared_speed = 0.015, - prepared_animation = worm_prepared_animation(medium_launcher_worm_scale, medium_launcher_worm_tint), - starting_attack_speed = 0.03, - starting_attack_animation = worm_attack_animation(medium_launcher_worm_scale, medium_launcher_worm_tint, "forward"), - starting_attack_sound = make_worm_roars(0.8), - ending_attack_speed = 0.03, - ending_attack_animation = worm_attack_animation(medium_launcher_worm_scale, medium_launcher_worm_tint, "backward"), - folding_speed = 0.015, - folding_animation = worm_preparing_animation(medium_launcher_worm_scale, medium_launcher_worm_tint, "backward"), - prepare_range = 30, - attack_parameters = - { - type = "projectile", - ammo_category = "rocket", - cooldown = 50, - range = 25, - projectile_creation_distance = 1.9, - damage_modifier = 3, - ammo_type = - { - category = "biological", - action = - { - type = "direct", - action_delivery = - { - type = "projectile", - projectile = "medium-unit-projectile", - starting_speed = 0.8 - } - } - }, - }, - autoplace = - { - sharpness = 0.3, - control = "enemy-base", - order = "b[enemy]-a[base]", - force = "enemy", - peaks = - { - { - influence = -10.0, - starting_area_weight_optimal = 1, - starting_area_weight_range = 0, - starting_area_weight_max_range = 2, - }, - { - influence = 0.14, - noise_layer = "enemy-base", - noise_octaves_difference = -1.8, - noise_persistence = 0.5, - }, - { - influence = 0.38, - noise_layer = "enemy-base", - noise_octaves_difference = -1.8, - noise_persistence = 0.5, - tier_from_start_optimal = 10, - tier_from_start_top_property_limit = 10, - tier_from_start_max_range = 20, - }, - } - } - }, - - { - type = "turret", - name = "big-launcher-worm-turret", - icon = "__base__/graphics/icons/big-worm.png", - flags = {"placeable-player", "placeable-enemy", "not-repairable", "breaths-air"}, - max_health = 1500, - order="b-b-f", - subgroup="enemies", - resistances = - { - {type = "fire", decrease = 0, percent = -50}, - {type = "physical", decrease = 5, percent = 20}, - {type = "impact", decrease = 10, percent = 10}, - {type = "explosion", decrease = 10, percent = 10}, - {type = "acid", decrease = 10, percent = 10}, - {type = "poison", decrease = 0, percent = 10}, - {type = "laser", decrease = 15, percent = 25} - }, - healing_per_tick = 0.02, - collision_box = {{-1.4, -1.2}, {1.4, 1.2}}, - selection_box = {{-1.4, -1.2}, {1.4, 1.2}}, - shooting_cursor_size = 4, - rotation_speed = 1, - corpse = "big-launcher-worm-corpse", - dying_explosion = "blood-explosion-big", - dying_sound = make_worm_dying_sounds(1.0), - inventory_size = 2, - folded_speed = 0.01, - folded_animation = worm_folded_animation(big_launcher_worm_scale, big_launcher_worm_tint), - prepare_range = 25, - preparing_speed = 0.025, - preparing_animation = worm_preparing_animation(big_launcher_worm_scale, big_launcher_worm_tint, "forward"), - prepared_speed = 0.015, - prepared_animation = worm_prepared_animation(big_launcher_worm_scale, big_launcher_worm_tint), - starting_attack_speed = 0.03, - starting_attack_animation = worm_attack_animation(big_launcher_worm_scale, big_launcher_worm_tint, "forward"), - starting_attack_sound = make_worm_roars(0.95), - ending_attack_speed = 0.03, - ending_attack_animation = worm_attack_animation(big_launcher_worm_scale, big_launcher_worm_tint, "backward"), - folding_speed = 0.015, - folding_animation = worm_preparing_animation(big_launcher_worm_scale, big_launcher_worm_tint, "backward"), - prepare_range = 30, - attack_parameters = - { - type = "projectile", - ammo_category = "rocket", - cooldown = 50, - range = 30, - projectile_creation_distance = 2.1, - damage_modifier = 6, - ammo_type = - { - category = "biological", - action = - { - type = "direct", - action_delivery = - { - type = "projectile", - projectile = "big-unit-projectile", - starting_speed = 1 - } - } - } - }, - autoplace = - { - sharpness = 0.3, - control = "enemy-base", - order = "b[enemy]-a[base]", - force = "enemy", - peaks = - { - { - influence = -10.0, - starting_area_weight_optimal = 1, - starting_area_weight_range = 0, - starting_area_weight_max_range = 2, - }, - { - influence = 0.07, - noise_layer = "enemy-base", - noise_octaves_difference = -1.8, - noise_persistence = 0.5, - }, - { - influence = 0.3, - noise_layer = "enemy-base", - noise_octaves_difference = -1.8, - noise_persistence = 0.5, - tier_from_start_optimal = 10, - tier_from_start_top_property_limit = 10, - tier_from_start_max_range = 20, - } - } - } - }, - - { - type = "corpse", - name = "medium-launcher-worm-corpse", - icon = "__base__/graphics/icons/medium-worm-corpse.png", - selection_box = {{-0.8, -0.8}, {0.8, 0.8}}, - selectable_in_game = false, - subgroup="corpses", - order = "c[corpse]-c[worm]-b[medium]", - flags = {"placeable-neutral", "placeable-off-grid", "building-direction-8-way", "not-repairable", "not-on-map"}, - dying_speed = 0.01, - time_before_removed = 15 * 60 * 60, - final_render_layer = "corpse", - animation = worm_die_animation(medium_launcher_worm_scale, medium_launcher_worm_tint) - }, - { - type = "corpse", - name = "big-launcher-worm-corpse", - icon = "__base__/graphics/icons/big-worm-corpse.png", - selection_box = {{-0.8, -0.8}, {0.8, 0.8}}, - selectable_in_game = false, - subgroup="corpses", - order = "c[corpse]-c[worm]-c[big]", - flags = {"placeable-neutral", "placeable-off-grid", "building-direction-8-way", "not-repairable", "not-on-map"}, - dying_speed = 0.01, - time_before_removed = 15 * 60 * 60, - final_render_layer = "corpse", - animation = worm_die_animation(big_launcher_worm_scale, big_launcher_worm_tint) - } - - -}) - - - +---------------------------------------------------------- +---------------------------------------------------------- +-- THIS IS NOT BIENG USED AT THE MOMENT -- +---------------------------------------------------------- +---------------------------------------------------------- + + + +require "util" +require "prototypes.Vanilla_Changes.Settings" +require "prototypes.Vanilla_Changes.Projectiles" + + +medium_launcher_worm_scale = 0.95 +medium_launcher_worm_tint = {r=0.92, g=0.97, b=0.55, a=1.0} + +big_launcher_worm_scale = 1 +big_launcher_worm_tint = {r=0.16, g=0.87, b=0.26, a=1.0} + + +function shift_medium_worm(shiftx, shifty) + return {shiftx - 0.15, shifty + 0.15} +end + + +function shift_big_worm(shiftx, shifty) + return {shiftx - 0.2, shifty + 0.2} +end + + + +data:extend( +{ + { + type = "turret", + name = "medium-launcher-worm-turret", + icon = "__base__/graphics/icons/medium-worm.png", + flags = {"placeable-player", "placeable-enemy", "not-repairable", "breaths-air"}, + order="b-b-e", + subgroup="enemies", + max_health = 800, + resistances = + { + {type = "fire", decrease = 0, percent = -60}, + {type = "physical", decrease = 0, percent = 0}, + {type = "impact", decrease = 5, percent = 5}, + {type = "explosion", decrease = 5, percent = 5}, + {type = "acid", decrease = 5, percent = 5}, + {type = "poison", decrease = 0, percent = 5}, + {type = "laser", decrease = 10, percent = 10} + }, + healing_per_tick = 0.015, + collision_box = {{-1.1, -1.0}, {1.1, 1.0}}, + selection_box = {{-1.1, -1.0}, {1.1, 1.0}}, + shooting_cursor_size = 3.5, + rotation_speed = 1, + corpse = "medium-launcher-worm-corpse", + dying_explosion = "blood-explosion-big", + dying_sound = make_worm_dying_sounds(0.9), + folded_speed = 0.01, + folded_animation = worm_folded_animation(medium_launcher_worm_scale, medium_launcher_worm_tint), + prepare_range = 25, + preparing_speed = 0.025, + preparing_animation = worm_preparing_animation(medium_launcher_worm_scale, medium_launcher_worm_tint, "forward"), + prepared_speed = 0.015, + prepared_animation = worm_prepared_animation(medium_launcher_worm_scale, medium_launcher_worm_tint), + starting_attack_speed = 0.03, + starting_attack_animation = worm_attack_animation(medium_launcher_worm_scale, medium_launcher_worm_tint, "forward"), + starting_attack_sound = make_worm_roars(0.8), + ending_attack_speed = 0.03, + ending_attack_animation = worm_attack_animation(medium_launcher_worm_scale, medium_launcher_worm_tint, "backward"), + folding_speed = 0.015, + folding_animation = worm_preparing_animation(medium_launcher_worm_scale, medium_launcher_worm_tint, "backward"), + prepare_range = 30, + attack_parameters = + { + type = "projectile", + ammo_category = "rocket", + cooldown = 50, + range = 25, + projectile_creation_distance = 1.9, + damage_modifier = 3, + ammo_type = + { + category = "biological", + action = + { + type = "direct", + action_delivery = + { + type = "projectile", + projectile = "medium-unit-projectile", + starting_speed = 0.8 + } + } + }, + }, + autoplace = + { + sharpness = 0.3, + control = "enemy-base", + order = "b[enemy]-a[base]", + force = "enemy", + peaks = + { + { + influence = -10.0, + starting_area_weight_optimal = 1, + starting_area_weight_range = 0, + starting_area_weight_max_range = 2, + }, + { + influence = 0.14, + noise_layer = "enemy-base", + noise_octaves_difference = -1.8, + noise_persistence = 0.5, + }, + { + influence = 0.38, + noise_layer = "enemy-base", + noise_octaves_difference = -1.8, + noise_persistence = 0.5, + tier_from_start_optimal = 10, + tier_from_start_top_property_limit = 10, + tier_from_start_max_range = 20, + }, + } + } + }, + + { + type = "turret", + name = "big-launcher-worm-turret", + icon = "__base__/graphics/icons/big-worm.png", + flags = {"placeable-player", "placeable-enemy", "not-repairable", "breaths-air"}, + max_health = 1500, + order="b-b-f", + subgroup="enemies", + resistances = + { + {type = "fire", decrease = 0, percent = -50}, + {type = "physical", decrease = 5, percent = 20}, + {type = "impact", decrease = 10, percent = 10}, + {type = "explosion", decrease = 10, percent = 10}, + {type = "acid", decrease = 10, percent = 10}, + {type = "poison", decrease = 0, percent = 10}, + {type = "laser", decrease = 15, percent = 25} + }, + healing_per_tick = 0.02, + collision_box = {{-1.4, -1.2}, {1.4, 1.2}}, + selection_box = {{-1.4, -1.2}, {1.4, 1.2}}, + shooting_cursor_size = 4, + rotation_speed = 1, + corpse = "big-launcher-worm-corpse", + dying_explosion = "blood-explosion-big", + dying_sound = make_worm_dying_sounds(1.0), + inventory_size = 2, + folded_speed = 0.01, + folded_animation = worm_folded_animation(big_launcher_worm_scale, big_launcher_worm_tint), + prepare_range = 25, + preparing_speed = 0.025, + preparing_animation = worm_preparing_animation(big_launcher_worm_scale, big_launcher_worm_tint, "forward"), + prepared_speed = 0.015, + prepared_animation = worm_prepared_animation(big_launcher_worm_scale, big_launcher_worm_tint), + starting_attack_speed = 0.03, + starting_attack_animation = worm_attack_animation(big_launcher_worm_scale, big_launcher_worm_tint, "forward"), + starting_attack_sound = make_worm_roars(0.95), + ending_attack_speed = 0.03, + ending_attack_animation = worm_attack_animation(big_launcher_worm_scale, big_launcher_worm_tint, "backward"), + folding_speed = 0.015, + folding_animation = worm_preparing_animation(big_launcher_worm_scale, big_launcher_worm_tint, "backward"), + prepare_range = 30, + attack_parameters = + { + type = "projectile", + ammo_category = "rocket", + cooldown = 50, + range = 30, + projectile_creation_distance = 2.1, + damage_modifier = 6, + ammo_type = + { + category = "biological", + action = + { + type = "direct", + action_delivery = + { + type = "projectile", + projectile = "big-unit-projectile", + starting_speed = 1 + } + } + } + }, + autoplace = + { + sharpness = 0.3, + control = "enemy-base", + order = "b[enemy]-a[base]", + force = "enemy", + peaks = + { + { + influence = -10.0, + starting_area_weight_optimal = 1, + starting_area_weight_range = 0, + starting_area_weight_max_range = 2, + }, + { + influence = 0.07, + noise_layer = "enemy-base", + noise_octaves_difference = -1.8, + noise_persistence = 0.5, + }, + { + influence = 0.3, + noise_layer = "enemy-base", + noise_octaves_difference = -1.8, + noise_persistence = 0.5, + tier_from_start_optimal = 10, + tier_from_start_top_property_limit = 10, + tier_from_start_max_range = 20, + } + } + } + }, + + { + type = "corpse", + name = "medium-launcher-worm-corpse", + icon = "__base__/graphics/icons/medium-worm-corpse.png", + selection_box = {{-0.8, -0.8}, {0.8, 0.8}}, + selectable_in_game = false, + subgroup="corpses", + order = "c[corpse]-c[worm]-b[medium]", + flags = {"placeable-neutral", "placeable-off-grid", "building-direction-8-way", "not-repairable", "not-on-map"}, + dying_speed = 0.01, + time_before_removed = 15 * 60 * 60, + final_render_layer = "corpse", + animation = worm_die_animation(medium_launcher_worm_scale, medium_launcher_worm_tint) + }, + { + type = "corpse", + name = "big-launcher-worm-corpse", + icon = "__base__/graphics/icons/big-worm-corpse.png", + selection_box = {{-0.8, -0.8}, {0.8, 0.8}}, + selectable_in_game = false, + subgroup="corpses", + order = "c[corpse]-c[worm]-c[big]", + flags = {"placeable-neutral", "placeable-off-grid", "building-direction-8-way", "not-repairable", "not-on-map"}, + dying_speed = 0.01, + time_before_removed = 15 * 60 * 60, + final_render_layer = "corpse", + animation = worm_die_animation(big_launcher_worm_scale, big_launcher_worm_tint) + } + + +}) + + + diff --git a/Natural_Evolution_Enemies_6.3.0/prototypes/Vanilla_Changes/Projectiles.lua b/Natural_Evolution_Enemies_6.3.1/prototypes/Vanilla_Changes/Projectiles.lua similarity index 86% rename from Natural_Evolution_Enemies_6.3.0/prototypes/Vanilla_Changes/Projectiles.lua rename to Natural_Evolution_Enemies_6.3.1/prototypes/Vanilla_Changes/Projectiles.lua index 4f15cb6..6de5a18 100644 --- a/Natural_Evolution_Enemies_6.3.0/prototypes/Vanilla_Changes/Projectiles.lua +++ b/Natural_Evolution_Enemies_6.3.1/prototypes/Vanilla_Changes/Projectiles.lua @@ -1,721 +1,791 @@ - -require "config" -require("prototypes.Vanilla_Changes.Explosions") - ---- Difficulty settings - if NE_Difficulty == nil then - NE_Difficulty = 1 - end - if NE_Enemies_Config.Set_Difficulty == 1 then - NE_Difficulty = 1 -- Normal difficulty - else NE_Difficulty = 2 -- Hard difficulty - end - - -data:extend( -{ ---[[ Vanilla Spitter Projectile -{ - type = "projectile", - name = "acid-projectile-purple", - flags = {"not-on-map"}, - acceleration = 0.005, - action = - { - type = "direct", - action_delivery = - { - type = "instant", - target_effects = - { - { - type = "play-sound", - sound = - { - { - filename = "__base__/sound/creatures/projectile-acid-burn-1.ogg", - volume = 0.8 - }, - { - filename = "__base__/sound/creatures/projectile-acid-burn-2.ogg", - volume = 0.8 - }, - { - filename = "__base__/sound/creatures/projectile-acid-burn-long-1.ogg", - volume = 0.8 - }, - { - filename = "__base__/sound/creatures/projectile-acid-burn-long-2.ogg", - volume = 0.8 - } - } - }, - { - type = "create-entity", - entity_name = "acid-splash-purple" - }, - { - type = "damage", - damage = {amount = 10, type = "acid"} - } - } - } - }, - animation = - { - filename = "__base__/graphics/entity/acid-projectile-purple/acid-projectile-purple.png", - line_length = 5, - width = 16, - height = 18, - frame_count = 33, - priority = "high" - }, - shadow = - { - filename = "__base__/graphics/entity/acid-projectile-purple/acid-projectile-purple-shadow.png", - line_length = 5, - width = 28, - height = 16, - frame_count = 33, - priority = "high", - shift = {-0.09, 0.395} - }, - rotatable = false - } - --]] - ---- Infected Projectile - { - type = "projectile", - name = "Infected-Projectile", - flags = {"not-on-map"}, - acceleration = 0.005, - action = - { - type = "direct", - action_delivery = - { - type = "instant", - target_effects = - { - { - type = "play-sound", - sound = - { - { - filename = "__base__/sound/creatures/projectile-acid-burn-1.ogg", - volume = 0.8 - }, - { - filename = "__base__/sound/creatures/projectile-acid-burn-2.ogg", - volume = 0.8 - }, - { - filename = "__base__/sound/creatures/projectile-acid-burn-long-1.ogg", - volume = 0.8 - }, - { - filename = "__base__/sound/creatures/projectile-acid-burn-long-2.ogg", - volume = 0.8 - } - } - }, - - { - type = "create-entity", - entity_name = "Infected-Poison-Cloud" - }, - - { - type = "damage", - damage = {amount = 7*NE_Difficulty, type = "explosion"} - }, - { - type = "damage", - damage = {amount = 14*NE_Difficulty, type = "poison"} - } - } - } - }, - animation = - { - filename = "__Natural_Evolution_Enemies__/graphics/entity/acid-projectile-yellow.png", - line_length = 5, - width = 16, - height = 18, - frame_count = 33, - priority = "high" - }, - shadow = - { - filename = "__base__/graphics/entity/acid-projectile-purple/acid-projectile-purple-shadow.png", - line_length = 5, - width = 28, - height = 16, - frame_count = 33, - priority = "high", - shift = {-0.09, 0.395} - }, - rotatable = false - }, - - --- Mutated Projectile - { - type = "projectile", - name = "Mutated-Projectile", - flags = {"not-on-map"}, - acceleration = 0.005, - action = - { - type = "direct", - action_delivery = - { - type = "instant", - target_effects = - { - { - type = "play-sound", - sound = - { - { - filename = "__base__/sound/creatures/projectile-acid-burn-1.ogg", - volume = 0.8 - }, - { - filename = "__base__/sound/creatures/projectile-acid-burn-2.ogg", - volume = 0.8 - }, - { - filename = "__base__/sound/creatures/projectile-acid-burn-long-1.ogg", - volume = 0.8 - }, - { - filename = "__base__/sound/creatures/projectile-acid-burn-long-2.ogg", - volume = 0.8 - } - } - }, - { - type = "create-entity", - entity_name = "acid-splash-purple" - }, - { - type = "nested-result", - action = - { - type = "area", - perimeter = 2, - action_delivery = - { - type = "instant", - target_effects = - { - { - type = "damage", - damage = {amount = 5*NE_Difficulty, type = "explosion"} - }, - { - type = "damage", - damage = {amount = 14*NE_Difficulty, type = "acid"} - }, - } - } - } - } - } - } - }, - animation = - { - filename = "__Natural_Evolution_Enemies__/graphics/entity/acid-projectile-red.png", - line_length = 5, - width = 16, - height = 18, - frame_count = 33, - priority = "high" - }, - shadow = - { - filename = "__base__/graphics/entity/acid-projectile-purple/acid-projectile-purple-shadow.png", - line_length = 5, - width = 28, - height = 16, - frame_count = 33, - priority = "high", - shift = {-0.09, 0.395} - }, - rotatable = false - }, - - ------------------------------------ - ----------- WORM Projectiles ------- - ------------------------------------ - - --- Infected WORM Projectile - { - type = "projectile", - name = "Infected-Projectile-Worm", - flags = {"not-on-map"}, - acceleration = 0.05, - action = - { - type = "direct", - action_delivery = - { - type = "instant", - target_effects = - { - { - type = "play-sound", - sound = - { - { - filename = "__base__/sound/creatures/projectile-acid-burn-1.ogg", - volume = 0.8 - }, - { - filename = "__base__/sound/creatures/projectile-acid-burn-2.ogg", - volume = 0.8 - }, - { - filename = "__base__/sound/creatures/projectile-acid-burn-long-1.ogg", - volume = 0.8 - }, - { - filename = "__base__/sound/creatures/projectile-acid-burn-long-2.ogg", - volume = 0.8 - } - } - }, - { - type = "create-entity", - entity_name = "unit-cluster", - trigger_created_entity = "true" - }, - { - type = "create-sticker", - sticker = "slowdown-sticker" - }, - - { - type = "create-entity", - entity_name = "Infected-Poison-Cloud" - }, - - { - type = "damage", - damage = {amount = 12*NE_Difficulty, type = "explosion"} - }, - { - type = "damage", - damage = {amount = 24*NE_Difficulty, type = "poison"} - } - } - } - }, - animation = - { - filename = "__Natural_Evolution_Enemies__/graphics/entity/acid-projectile-yellow.png", - line_length = 5, - width = 16, - height = 18, - frame_count = 33, - priority = "high" - }, - shadow = - { - filename = "__base__/graphics/entity/acid-projectile-purple/acid-projectile-purple-shadow.png", - line_length = 5, - width = 28, - height = 16, - frame_count = 33, - priority = "high", - shift = {-0.09, 0.395} - }, - rotatable = false - }, - - --- Mutated WORM Projectile - { - type = "projectile", - name = "Mutated-Projectile-Worm", - flags = {"not-on-map"}, - acceleration = 0.005, - action = - { - type = "direct", - action_delivery = - { - type = "instant", - target_effects = - { - { - type = "play-sound", - sound = - { - { - filename = "__base__/sound/creatures/projectile-acid-burn-1.ogg", - volume = 0.8 - }, - { - filename = "__base__/sound/creatures/projectile-acid-burn-2.ogg", - volume = 0.8 - }, - { - filename = "__base__/sound/creatures/projectile-acid-burn-long-1.ogg", - volume = 0.8 - }, - { - filename = "__base__/sound/creatures/projectile-acid-burn-long-2.ogg", - volume = 0.8 - } - } - }, - { - type = "create-entity", - entity_name = "unit-cluster", - trigger_created_entity = "true" - }, - { - type = "create-sticker", - sticker = "slowdown-sticker" - }, - { - type = "create-entity", - entity_name = "acid-splash-purple" - }, - { - type = "nested-result", - action = - { - type = "area", - perimeter = 2, - action_delivery = - { - type = "instant", - target_effects = - { - { - type = "damage", - damage = {amount = 10*NE_Difficulty, type = "explosion"} - }, - { - type = "damage", - damage = {amount = 20*NE_Difficulty, type = "acid"} - }, - } - } - } - } - } - } - }, - animation = - { - filename = "__Natural_Evolution_Enemies__/graphics/entity/acid-projectile-red.png", - line_length = 5, - width = 16, - height = 18, - frame_count = 33, - priority = "high" - }, - shadow = - { - filename = "__base__/graphics/entity/acid-projectile-purple/acid-projectile-purple-shadow.png", - line_length = 5, - width = 28, - height = 16, - frame_count = 33, - priority = "high", - shift = {-0.09, 0.395} - }, - rotatable = false - }, - - -------------------------- - --- Infected Poison Cloud - { - type = "smoke", - name = "Infected-Poison-Cloud", - flags = {"not-on-map"}, - show_when_smoke_off = true, - animation = - { - filename = "__base__/graphics/entity/cloud/cloud-45-frames.png", - priority = "low", - width = 256, - height = 256, - frame_count = 45, - animation_speed = 3, - line_length = 7, - scale = 1, - }, - slow_down_factor = 0, - wind_speed_factor = 0, - cyclic = true, - duration = 60 * 10, - fade_away_duration = 2 * 60, - spread_duration = 10, - color = { r = 0.2, g = 0.9, b = 0.2 }, - action = - { - type = "direct", - action_delivery = - { - type = "instant", - target_effects = - { - type = "nested-result", - action = - { - type = "area", - perimeter = 3, - entity_flags = {"breaths-air", "player-creation", "placeable-neutral", "placeable-player", "placeable-enemy"}, - action_delivery = - { - type = "instant", - target_effects = - { - type = "damage", - damage = { amount = 6*NE_Difficulty, type = "poison"} - } - } - } - } - } - }, - action_frequency = 30 - }, - - - --- Huge Acid Splash Continue - { - type = "explosion", - name = "NE-Acid-explosion", - flags = {"not-on-map"}, - acceleration = 0.005, - created_effect = - { - type = "direct", - action_delivery = - { - type = "instant", - target_effects = - { - { - type = "create-entity", - entity_name = "acid-explosion-huge" - }, - { - type = "create-entity", - entity_name = "acid-splash" - }, - { - type = "nested-result", - action = - { - { - type = "area", - perimeter = 1, - entity_flags = {"player-creation", "placeable-player", "placeable-neutral", "pushable"}, - action_delivery = { type = "instant", target_effects = { type = "damage", damage = { amount = 21, type = "acid" }}}}, - { - type = "area", - perimeter = 2, - entity_flags = {"player-creation", "placeable-player", "placeable-neutral", "pushable"}, - action_delivery = { type = "instant", target_effects = { type = "damage", damage = { amount = 11, type = "acid" }}}}, - { - type = "area", - perimeter = 3, - entity_flags = {"player-creation", "placeable-player", "placeable-neutral", "pushable"}, - action_delivery = { type = "instant", target_effects = { type = "damage", damage = { amount = 11, type = "acid" }}}}, - { - type = "area", - perimeter = 4, - entity_flags = {"player-creation", "placeable-player", "placeable-neutral", "pushable"}, - action_delivery = { type = "instant", target_effects = { type = "damage", damage = { amount = 11, type = "acid" }}}}, - { - type = "area", - perimeter = 5, - entity_flags = {"player-creation", "placeable-player", "placeable-neutral", "pushable"}, - action_delivery = { type = "instant", target_effects = { type = "damage", damage = { amount = 5.4, type = "acid" }}}}, - { - type = "area", - perimeter = 6, - entity_flags = {"player-creation", "placeable-player", "placeable-neutral", "pushable"}, - action_delivery = { type = "instant", target_effects = { type = "damage", damage = { amount = 5.4, type = "acid" }}}} - }, - } - } - } - }, - light = {intensity = 0.5, size = 4}, - animations = - {{ - filename = "__base__/graphics/entity/grenade/grenade-shadow.png", - frame_count = 1, - width = 1, - height = 1, - priority = "high" - }} - }, - - - ----- Fire Clouds. - ---- Small Fire Cloud - { - type = "smoke-with-trigger", - name = "small-fire-cloud", - flags = {"not-on-map"}, - show_when_smoke_off = true, - animation = - { - filename = "__Natural_Evolution_Enemies__/graphics/entity/fire.png", - priority = "low", - width = 30, - height = 50, - frame_count = 30, - animation_speed = 1, - line_length = 30, - scale = 3, - }, - slow_down_factor = 0, - affected_by_wind = false, - cyclic = true, - duration = 60 * 8, - fade_away_duration = 2 * 60, - spread_duration = 8, - action = - { - type = "direct", - action_delivery = - { - type = "instant", - target_effects = - { - type = "nested-result", - action = - { - type = "area", - perimeter = 3, - action_delivery = - { - type = "instant", - target_effects = - { - type = "damage", - damage = { amount = 3, type = "fire"} - } - } - } - } - } - }, - action_frequency = 30 - }, - - --- medium File Cloud - { - type = "smoke-with-trigger", - name = "medium-fire-cloud", - flags = {"not-on-map"}, - show_when_smoke_off = true, - animation = - { - filename = "__Natural_Evolution_Enemies__/graphics/entity/fire.png", - priority = "low", - width = 30, - height = 50, - frame_count = 30, - animation_speed = 1, - line_length = 30, - scale = 3, - }, - slow_down_factor = 0, - affected_by_wind = false, - cyclic = true, - duration = 60 * 10, - fade_away_duration = 2 * 60, - spread_duration = 10, - action = - { - type = "direct", - action_delivery = - { - type = "instant", - target_effects = - { - type = "nested-result", - action = - { - type = "area", - perimeter = 4, - action_delivery = - { - type = "instant", - target_effects = - { - type = "damage", - damage = { amount = 4, type = "fire"} - } - } - } - } - } - }, - action_frequency = 30 - }, - - --- big File Cloud - { - type = "smoke-with-trigger", - name = "big-fire-cloud", - flags = {"not-on-map"}, - show_when_smoke_off = true, - animation = - { - filename = "__Natural_Evolution_Enemies__/graphics/entity/fire.png", - priority = "low", - width = 30, - height = 50, - frame_count = 30, - animation_speed = 1, - line_length = 30, - scale = 3, - }, - slow_down_factor = 0, - affected_by_wind = false, - cyclic = true, - duration = 60 * 12, - fade_away_duration = 2 * 60, - spread_duration = 12, - action = - { - type = "direct", - action_delivery = - { - type = "instant", - target_effects = - { - type = "nested-result", - action = - { - type = "area", - perimeter = 5, - action_delivery = - { - type = "instant", - target_effects = - { - type = "damage", - damage = { amount = 5, type = "fire"} - } - } - } - } - } - }, - action_frequency = 30 - }, -} -) + +require "config" +require("prototypes.Vanilla_Changes.Explosions") + +--- Difficulty settings + if NE_Difficulty == nil then + NE_Difficulty = 1 + end + if NE_Enemies_Config.Set_Difficulty == 1 then + NE_Difficulty = 1 -- Normal difficulty + else NE_Difficulty = 2 -- Hard difficulty + end + + +data:extend( +{ +--[[ Vanilla Spitter Projectile +{ + type = "projectile", + name = "acid-projectile-purple", + flags = {"not-on-map"}, + acceleration = 0.005, + action = + { + type = "direct", + action_delivery = + { + type = "instant", + target_effects = + { + { + type = "play-sound", + sound = + { + { + filename = "__base__/sound/creatures/projectile-acid-burn-1.ogg", + volume = 0.8 + }, + { + filename = "__base__/sound/creatures/projectile-acid-burn-2.ogg", + volume = 0.8 + }, + { + filename = "__base__/sound/creatures/projectile-acid-burn-long-1.ogg", + volume = 0.8 + }, + { + filename = "__base__/sound/creatures/projectile-acid-burn-long-2.ogg", + volume = 0.8 + } + } + }, + { + type = "create-entity", + entity_name = "acid-splash-purple" + }, + { + type = "damage", + damage = {amount = 10, type = "acid"} + } + } + } + }, + animation = + { + filename = "__base__/graphics/entity/acid-projectile-purple/acid-projectile-purple.png", + line_length = 5, + width = 16, + height = 18, + frame_count = 33, + priority = "high" + }, + shadow = + { + filename = "__base__/graphics/entity/acid-projectile-purple/acid-projectile-purple-shadow.png", + line_length = 5, + width = 28, + height = 16, + frame_count = 33, + priority = "high", + shift = {-0.09, 0.395} + }, + rotatable = false + } + --]] + +--- Infected Projectile + { + type = "projectile", + name = "Infected-Projectile", + flags = {"not-on-map"}, + acceleration = 0.005, + action = + { + type = "direct", + action_delivery = + { + type = "instant", + target_effects = + { + { + type = "play-sound", + sound = + { + { + filename = "__base__/sound/creatures/projectile-acid-burn-1.ogg", + volume = 0.8 + }, + { + filename = "__base__/sound/creatures/projectile-acid-burn-2.ogg", + volume = 0.8 + }, + { + filename = "__base__/sound/creatures/projectile-acid-burn-long-1.ogg", + volume = 0.8 + }, + { + filename = "__base__/sound/creatures/projectile-acid-burn-long-2.ogg", + volume = 0.8 + } + } + }, + + { + type = "create-entity", + entity_name = "Infected-Poison-Cloud" + }, + + { + type = "damage", + damage = {amount = 7*NE_Difficulty, type = "explosion"} + }, + { + type = "damage", + damage = {amount = 14*NE_Difficulty, type = "poison"} + } + } + } + }, + animation = + { + filename = "__Natural_Evolution_Enemies__/graphics/entity/acid-projectile-yellow.png", + line_length = 5, + width = 16, + height = 18, + frame_count = 33, + priority = "high" + }, + shadow = + { + filename = "__base__/graphics/entity/acid-projectile-purple/acid-projectile-purple-shadow.png", + line_length = 5, + width = 28, + height = 16, + frame_count = 33, + priority = "high", + shift = {-0.09, 0.395} + }, + rotatable = false + }, + + --- Mutated Projectile + { + type = "projectile", + name = "Mutated-Projectile", + flags = {"not-on-map"}, + acceleration = 0.005, + action = + { + type = "direct", + action_delivery = + { + type = "instant", + target_effects = + { + { + type = "play-sound", + sound = + { + { + filename = "__base__/sound/creatures/projectile-acid-burn-1.ogg", + volume = 0.8 + }, + { + filename = "__base__/sound/creatures/projectile-acid-burn-2.ogg", + volume = 0.8 + }, + { + filename = "__base__/sound/creatures/projectile-acid-burn-long-1.ogg", + volume = 0.8 + }, + { + filename = "__base__/sound/creatures/projectile-acid-burn-long-2.ogg", + volume = 0.8 + } + } + }, + { + type = "create-entity", + entity_name = "acid-splash-purple" + }, + { + type = "create-entity", + entity_name = "acid-splash-mutated" + }, + { + type = "nested-result", + action = + { + type = "area", + perimeter = 2, + action_delivery = + { + type = "instant", + target_effects = + { + { + type = "damage", + damage = {amount = 7*NE_Difficulty, type = "explosion"} + }, + { + type = "damage", + damage = {amount = 14*NE_Difficulty, type = "acid"} + }, + } + } + } + } + } + } + }, + animation = + { + filename = "__Natural_Evolution_Enemies__/graphics/entity/acid-projectile-red.png", + line_length = 5, + width = 16, + height = 18, + frame_count = 33, + priority = "high" + }, + shadow = + { + filename = "__base__/graphics/entity/acid-projectile-purple/acid-projectile-purple-shadow.png", + line_length = 5, + width = 28, + height = 16, + frame_count = 33, + priority = "high", + shift = {-0.09, 0.395} + }, + rotatable = false + }, + + ------------------------------------ + ----------- WORM Projectiles ------- + ------------------------------------ + + --- Infected WORM Projectile + { + type = "projectile", + name = "Infected-Projectile-Worm", + flags = {"not-on-map"}, + acceleration = 0.05, + action = + { + type = "direct", + action_delivery = + { + type = "instant", + target_effects = + { + { + type = "play-sound", + sound = + { + { + filename = "__base__/sound/creatures/projectile-acid-burn-1.ogg", + volume = 0.8 + }, + { + filename = "__base__/sound/creatures/projectile-acid-burn-2.ogg", + volume = 0.8 + }, + { + filename = "__base__/sound/creatures/projectile-acid-burn-long-1.ogg", + volume = 0.8 + }, + { + filename = "__base__/sound/creatures/projectile-acid-burn-long-2.ogg", + volume = 0.8 + } + } + }, + { + type = "create-entity", + entity_name = "unit-cluster", + trigger_created_entity = "true" + }, + { + type = "create-sticker", + sticker = "slowdown-sticker" + }, + + { + type = "create-entity", + entity_name = "Infected-Poison-Cloud" + }, + + { + type = "damage", + damage = {amount = 12*NE_Difficulty, type = "explosion"} + }, + { + type = "damage", + damage = {amount = 24*NE_Difficulty, type = "poison"} + } + } + } + }, + animation = + { + filename = "__Natural_Evolution_Enemies__/graphics/entity/acid-projectile-yellow.png", + line_length = 5, + width = 16, + height = 18, + frame_count = 33, + priority = "high" + }, + shadow = + { + filename = "__base__/graphics/entity/acid-projectile-purple/acid-projectile-purple-shadow.png", + line_length = 5, + width = 28, + height = 16, + frame_count = 33, + priority = "high", + shift = {-0.09, 0.395} + }, + rotatable = false + }, + + --- Mutated WORM Projectile + { + type = "projectile", + name = "Mutated-Projectile-Worm", + flags = {"not-on-map"}, + acceleration = 0.005, + action = + { + type = "direct", + action_delivery = + { + type = "instant", + target_effects = + { + { + type = "play-sound", + sound = + { + { + filename = "__base__/sound/creatures/projectile-acid-burn-1.ogg", + volume = 0.8 + }, + { + filename = "__base__/sound/creatures/projectile-acid-burn-2.ogg", + volume = 0.8 + }, + { + filename = "__base__/sound/creatures/projectile-acid-burn-long-1.ogg", + volume = 0.8 + }, + { + filename = "__base__/sound/creatures/projectile-acid-burn-long-2.ogg", + volume = 0.8 + } + } + }, + { + type = "create-entity", + entity_name = "unit-cluster", + trigger_created_entity = "true" + }, + { + type = "create-sticker", + sticker = "slowdown-sticker" + }, + { + type = "create-entity", + entity_name = "acid-splash-purple" + }, + { + type = "nested-result", + action = + { + type = "area", + perimeter = 2, + action_delivery = + { + type = "instant", + target_effects = + { + { + type = "damage", + damage = {amount = 10*NE_Difficulty, type = "explosion"} + }, + { + type = "damage", + damage = {amount = 20*NE_Difficulty, type = "acid"} + }, + } + } + } + } + } + } + }, + animation = + { + filename = "__Natural_Evolution_Enemies__/graphics/entity/acid-projectile-red.png", + line_length = 5, + width = 16, + height = 18, + frame_count = 33, + priority = "high" + }, + shadow = + { + filename = "__base__/graphics/entity/acid-projectile-purple/acid-projectile-purple-shadow.png", + line_length = 5, + width = 28, + height = 16, + frame_count = 33, + priority = "high", + shift = {-0.09, 0.395} + }, + rotatable = false + }, + + -------------------------- + --- Infected Poison Cloud + { + type = "smoke", + name = "Infected-Poison-Cloud", + flags = {"not-on-map"}, + show_when_smoke_off = true, + animation = + { + filename = "__base__/graphics/entity/cloud/cloud-45-frames.png", + priority = "low", + width = 256, + height = 256, + frame_count = 45, + animation_speed = 3, + line_length = 7, + scale = 1, + }, + slow_down_factor = 0, + wind_speed_factor = 0, + cyclic = true, + duration = 60 * 10, + fade_away_duration = 2 * 60, + spread_duration = 10, + color = { r = 0.2, g = 0.9, b = 0.2 }, + action = + { + type = "direct", + action_delivery = + { + type = "instant", + target_effects = + { + type = "nested-result", + action = + { + type = "area", + perimeter = 3, + entity_flags = {"breaths-air", "player-creation", "placeable-neutral", "placeable-player", "placeable-enemy"}, + action_delivery = + { + type = "instant", + target_effects = + { + type = "damage", + damage = { amount = 6*NE_Difficulty, type = "poison"} + } + } + } + } + } + }, + action_frequency = 30 + }, + + + --- Huge Acid Splash Continue + { + type = "explosion", + name = "NE-Acid-explosion", + flags = {"not-on-map"}, + acceleration = 0.005, + created_effect = + { + type = "direct", + action_delivery = + { + type = "instant", + target_effects = + { + { + type = "create-entity", + entity_name = "acid-explosion-huge" + }, + { + type = "create-entity", + entity_name = "acid-splash" + }, + { + type = "nested-result", + action = + { + { + type = "area", + perimeter = 1, + entity_flags = {"player-creation", "placeable-player", "placeable-neutral", "pushable"}, + action_delivery = { type = "instant", target_effects = { type = "damage", damage = { amount = 21, type = "acid" }}}}, + { + type = "area", + perimeter = 2, + entity_flags = {"player-creation", "placeable-player", "placeable-neutral", "pushable"}, + action_delivery = { type = "instant", target_effects = { type = "damage", damage = { amount = 11, type = "acid" }}}}, + { + type = "area", + perimeter = 3, + entity_flags = {"player-creation", "placeable-player", "placeable-neutral", "pushable"}, + action_delivery = { type = "instant", target_effects = { type = "damage", damage = { amount = 11, type = "acid" }}}}, + { + type = "area", + perimeter = 4, + entity_flags = {"player-creation", "placeable-player", "placeable-neutral", "pushable"}, + action_delivery = { type = "instant", target_effects = { type = "damage", damage = { amount = 11, type = "acid" }}}}, + { + type = "area", + perimeter = 5, + entity_flags = {"player-creation", "placeable-player", "placeable-neutral", "pushable"}, + action_delivery = { type = "instant", target_effects = { type = "damage", damage = { amount = 5.4, type = "acid" }}}}, + { + type = "area", + perimeter = 6, + entity_flags = {"player-creation", "placeable-player", "placeable-neutral", "pushable"}, + action_delivery = { type = "instant", target_effects = { type = "damage", damage = { amount = 5.4, type = "acid" }}}} + }, + } + } + } + }, + light = {intensity = 0.5, size = 4}, + animations = + {{ + filename = "__base__/graphics/entity/grenade/grenade-shadow.png", + frame_count = 1, + width = 1, + height = 1, + priority = "high" + }} + }, + + + ----- Fire Clouds. + ---- Small Fire Cloud + { + type = "smoke-with-trigger", + name = "small-fire-cloud", + flags = {"not-on-map"}, + show_when_smoke_off = true, + animation = + { + filename = "__Natural_Evolution_Enemies__/graphics/entity/fire.png", + priority = "low", + width = 30, + height = 50, + frame_count = 30, + animation_speed = 1, + line_length = 30, + scale = 3, + }, + slow_down_factor = 0, + affected_by_wind = false, + cyclic = true, + duration = 60 * 8, + fade_away_duration = 2 * 60, + spread_duration = 8, + action = + { + type = "direct", + action_delivery = + { + type = "instant", + target_effects = + { + type = "nested-result", + action = + { + type = "area", + perimeter = 3, + action_delivery = + { + type = "instant", + target_effects = + { + type = "damage", + damage = { amount = 3, type = "fire"} + } + } + } + } + } + }, + action_frequency = 30 + }, + + --- medium File Cloud + { + type = "smoke-with-trigger", + name = "medium-fire-cloud", + flags = {"not-on-map"}, + show_when_smoke_off = true, + animation = + { + filename = "__Natural_Evolution_Enemies__/graphics/entity/fire.png", + priority = "low", + width = 30, + height = 50, + frame_count = 30, + animation_speed = 1, + line_length = 30, + scale = 3, + }, + slow_down_factor = 0, + affected_by_wind = false, + cyclic = true, + duration = 60 * 10, + fade_away_duration = 2 * 60, + spread_duration = 10, + action = + { + type = "direct", + action_delivery = + { + type = "instant", + target_effects = + { + type = "nested-result", + action = + { + type = "area", + perimeter = 4, + action_delivery = + { + type = "instant", + target_effects = + { + type = "damage", + damage = { amount = 4, type = "fire"} + } + } + } + } + } + }, + action_frequency = 30 + }, + + --- big File Cloud + { + type = "smoke-with-trigger", + name = "big-fire-cloud", + flags = {"not-on-map"}, + show_when_smoke_off = true, + animation = + { + filename = "__Natural_Evolution_Enemies__/graphics/entity/fire.png", + priority = "low", + width = 30, + height = 50, + frame_count = 30, + animation_speed = 1, + line_length = 30, + scale = 3, + }, + slow_down_factor = 0, + affected_by_wind = false, + cyclic = true, + duration = 60 * 12, + fade_away_duration = 2 * 60, + spread_duration = 12, + action = + { + type = "direct", + action_delivery = + { + type = "instant", + target_effects = + { + type = "nested-result", + action = + { + type = "area", + perimeter = 5, + action_delivery = + { + type = "instant", + target_effects = + { + type = "damage", + damage = { amount = 5, type = "fire"} + } + } + } + } + } + }, + action_frequency = 30 + }, + + + { + type = "explosion", + name = "acid-splash-mutated", + flags = {"not-on-map"}, + animations = + { + { + filename = "__base__/graphics/entity/flamethrower-fire-stream/flamethrower-explosion.png", + priority = "extra-high", + width = 64, + height = 64, + scale = 1.4, + tint = {r=0, g=0.6, b=0.6, a=1}, + frame_count = 64, + line_length = 8, + animation_speed = 0.7, + }, + { + filename = "__base__/graphics/entity/flamethrower-fire-stream/flamethrower-explosion.png", + priority = "extra-high", + width = 64, + height = 64, + scale = 1.6, + tint = {r=0, g=0.7, b=0.5, a=1}, + frame_count = 64, + line_length = 8, + animation_speed = 0.7, + }, + { + filename = "__base__/graphics/entity/flamethrower-fire-stream/flamethrower-explosion.png", + priority = "extra-high", + width = 64, + height = 64, + scale = 1.8, + tint = {r=0.3, g=0.8, b=0.4, a=1}, + frame_count = 64, + line_length = 8, + animation_speed = 0.7, + }, + { + filename = "__base__/graphics/entity/flamethrower-fire-stream/flamethrower-explosion.png", + priority = "extra-high", + width = 64, + height = 64, + scale = 2, + tint = {r=0, g=0.9, b=0.3, a=1}, + frame_count = 64, + line_length = 8, + animation_speed = 0.7, + }, + { + filename = "__base__/graphics/entity/flamethrower-fire-stream/flamethrower-explosion.png", + priority = "extra-high", + width = 64, + height = 64, + scale = 2.2, + tint = {r=0, g=1, b=0.2, a=1}, + frame_count = 64, + line_length = 8, + animation_speed = 1, + }, + }, + }, + +} +) diff --git a/Natural_Evolution_Enemies_6.3.1/prototypes/Vanilla_Changes/Settings.lua b/Natural_Evolution_Enemies_6.3.1/prototypes/Vanilla_Changes/Settings.lua new file mode 100644 index 0000000..4b87b96 --- /dev/null +++ b/Natural_Evolution_Enemies_6.3.1/prototypes/Vanilla_Changes/Settings.lua @@ -0,0 +1,311 @@ + +require "prototypes.Vanilla_Changes.Functions" +require "config" + +--- Difficulty settings + if NE_Difficulty == nil then + NE_Difficulty = 1 + end + if NE_Enemies_Config.Set_Difficulty == 1 then + NE_Difficulty = 1 -- Normal difficulty + else NE_Difficulty = 2 -- Hard difficulty + end + + -- Healthy + -- Damage 1 = Physical + + -- Infected: + -- Damage 1 = Poison + -- Damage 2 = Physical + + -- Mutated: + -- Damage 1 = Acid + -- Damage 2 = Physical + +Damage = { + Small_Biter = Biter_Melee_Attack_Healthy(10*NE_Difficulty), + Small_Biter_Mk2 = Biter_Melee_Attack_Infected(8*NE_Difficulty,5*NE_Difficulty), + Small_Biter_Mk3 = Biter_Melee_Attack_Mutated(12*NE_Difficulty,5*NE_Difficulty), + Medium_Biter = Biter_Melee_Attack_Healthy(35*NE_Difficulty), + Medium_Biter_Mk2 = Biter_Melee_Attack_Infected(30*NE_Difficulty,10*NE_Difficulty), + Medium_Biter_Mk3 = Biter_Melee_Attack_Mutated(35*NE_Difficulty,10*NE_Difficulty), + Big_Biter = Biter_Melee_Attack_Healthy(80*NE_Difficulty), + Big_Biter_Mk2 = Biter_Melee_Attack_Infected(70*NE_Difficulty,30*NE_Difficulty), + Big_Biter_Mk3 = Biter_Melee_Attack_Mutated(80*NE_Difficulty,30*NE_Difficulty), + Behemoth_Biter = Biter_Melee_Attack_Healthy(175*NE_Difficulty) + } + + +Health = { + Small_Biter = 15, + Small_Biter_Mk2 = 20*NE_Difficulty, + Small_Biter_Mk3 = 45*NE_Difficulty, + Medium_Biter = 75*NE_Difficulty, + Medium_Biter_Mk2 = 150*NE_Difficulty, + Medium_Biter_Mk3 = 225*NE_Difficulty, + Big_Biter = 450*NE_Difficulty, + Big_Biter_Mk2 = 900*NE_Difficulty, + Big_Biter_Mk3 = 1800*NE_Difficulty, + Behemoth_Biter = 5000*NE_Difficulty, + Small_Spitter = 10, + Small_Spitter_Mk2 = 15*NE_Difficulty, + Small_Spitter_Mk3 = 20*NE_Difficulty, + Medium_Spitter = 50*NE_Difficulty, + Medium_Spitter_Mk2 = 100*NE_Difficulty, + Medium_Spitter_Mk3 = 150*NE_Difficulty, + Big_Spitter = 200*NE_Difficulty, + Big_Spitter_Mk2 = 450*NE_Difficulty, + Big_Spitter_Mk3 = 700*NE_Difficulty, + Behemoth_Spitter = 2000*NE_Difficulty, + Small_Worm = 400*NE_Difficulty, + Medium_Worm = 700*NE_Difficulty, + Big_Worm = 1000*NE_Difficulty + + + } + + + +Resistances = { + -- Healthy (Physical) + Small_Biter = { + {type = "fire", decrease = 0, percent = -90}, + {type = "physical", decrease = 1, percent = 5*NE_Difficulty}, + {type = "impact", decrease = 0, percent = 0}, + {type = "explosion", decrease = 0, percent = 0}, + {type = "acid", decrease = 0, percent = 0}, + {type = "poison", decrease = 0, percent = 0}, + {type = "laser", decrease = 0, percent = 0}}, + + -- Infected (Poison / Explosion) + Small_Biter_Mk2 = { + {type = "fire", decrease = 0, percent = -85}, + {type = "physical", decrease = 1, percent = 0}, + {type = "impact", decrease = 1, percent = 0}, + {type = "explosion", decrease = 2, percent = 5*NE_Difficulty}, + {type = "acid", decrease = 1, percent = 0}, + {type = "poison", decrease = 2, percent = 5*NE_Difficulty}, + {type = "laser", decrease = 1, percent = 0}}, + + -- Mutated (Acid / Laser) + Small_Biter_Mk3 = { + {type = "fire", decrease = 0, percent = -80}, + {type = "physical", decrease = 4, percent = 5*NE_Difficulty}, + {type = "impact", decrease = 2, percent = 0}, + {type = "explosion", decrease = 2, percent = 0}, + {type = "acid", decrease = 2, percent = 0}, + {type = "poison", decrease = 2, percent = 0}, + {type = "laser", decrease = 4, percent = 5*NE_Difficulty}}, + + -- Healthy (Physical) + Medium_Biter = { + {type = "fire", decrease = 0, percent = -75}, + {type = "physical", decrease = 6, percent = 10*NE_Difficulty}, + {type = "impact", decrease = 4, percent = 0}, + {type = "explosion", decrease = 4, percent = 0}, + {type = "acid", decrease = 4, percent = 0}, + {type = "poison", decrease = 4, percent = 0}, + {type = "laser", decrease = 4, percent = 0}}, + + -- Infected (Poison / Explosion) + Medium_Biter_Mk2 = { + {type = "fire", decrease = 0, percent = -70}, + {type = "physical", decrease = 6, percent = 0}, + {type = "impact", decrease = 6, percent = 0}, + {type = "explosion", decrease = 8, percent = 10*NE_Difficulty}, + {type = "acid", decrease = 6, percent = 0}, + {type = "poison", decrease = 8, percent = 10*NE_Difficulty}, + {type = "laser", decrease = 6, percent = 0}}, + + -- Mutated (Acid / Laser) + Medium_Biter_Mk3 = { + {type = "fire", decrease = 0, percent = -65}, + {type = "physical", decrease = 8, percent = 0}, + {type = "impact", decrease = 8, percent = 0}, + {type = "explosion", decrease = 8, percent = 0}, + {type = "acid", decrease = 10, percent = 10*NE_Difficulty}, + {type = "poison", decrease = 8, percent = 0}, + {type = "laser", decrease = 10, percent = 10*NE_Difficulty}}, + + -- Healthy (Physical) + Big_Biter = { + {type = "fire", decrease = 0, percent = -60}, + {type = "physical", decrease = 14, percent = 15*NE_Difficulty}, + {type = "impact", decrease = 10, percent = 0}, + {type = "explosion", decrease = 10, percent = 0}, + {type = "acid", decrease = 10, percent = 0}, + {type = "poison", decrease = 10, percent = 0}, + {type = "laser", decrease = 10, percent = 0}}, + + -- Infected (Poison / Explosion) + Big_Biter_Mk2 = { + {type = "fire", decrease = 0, percent = -55}, + {type = "physical", decrease = 12, percent = 0}, + {type = "impact", decrease = 12, percent = 0}, + {type = "explosion", decrease = 16, percent = 15*NE_Difficulty}, + {type = "acid", decrease = 12, percent = 0}, + {type = "poison", decrease = 16, percent = 15*NE_Difficulty}, + {type = "laser", decrease = 12, percent = 0}}, + + -- Mutated (Acid / Laser) + Big_Biter_Mk3 = { + {type = "fire", decrease = 0, percent = -50}, + {type = "physical", decrease = 14, percent = 0}, + {type = "impact", decrease = 14, percent = 0}, + {type = "explosion", decrease = 14, percent = 0}, + {type = "acid", decrease = 18, percent = 15*NE_Difficulty}, + {type = "poison", decrease = 14, percent = 0}, + {type = "laser", decrease = 18, percent = 15*NE_Difficulty}}, + + -- Healthy (Physical) + Behemoth_Biter = { + {type = "fire", decrease = 0, percent = -40}, + {type = "physical", decrease = 20, percent = 20*NE_Difficulty}, + {type = "impact", decrease = 16, percent = 0}, + {type = "explosion", decrease = 16, percent = 0}, + {type = "acid", decrease = 16, percent = 0}, + {type = "poison", decrease = 16, percent = 0}, + {type = "laser", decrease = 16, percent = 0}}, + + -- Healthy (Physical) + Small_Spitter = { + {type = "fire", decrease = 0, percent = -90}, + {type = "physical", decrease = 1, percent = 5*NE_Difficulty}, + {type = "impact", decrease = 0, percent = 0}, + {type = "explosion", decrease = 0, percent = 0}, + {type = "acid", decrease = 0, percent = 0}, + {type = "poison", decrease = 0, percent = 0}, + {type = "laser", decrease = 0, percent = 0}}, + + -- Infected (Poison / Explosion) + Small_Spitter_Mk2 = { + {type = "fire", decrease = 1, percent = -85}, + {type = "physical", decrease = 1, percent = 0}, + {type = "impact", decrease = 1, percent = 0}, + {type = "explosion", decrease = 2, percent = 5*NE_Difficulty}, + {type = "acid", decrease = 1, percent = 0}, + {type = "poison", decrease = 2, percent = 5*NE_Difficulty}, + {type = "laser", decrease = 1, percent = 0}}, + + -- Mutated (Acid / Laser) + Small_Spitter_Mk3 = { + {type = "fire", decrease = 2, percent = -80}, + {type = "physical", decrease = 2, percent = 0}, + {type = "impact", decrease = 2, percent = 0}, + {type = "explosion", decrease = 2, percent = 0}, + {type = "acid", decrease = 3, percent = 5*NE_Difficulty}, + {type = "poison", decrease = 2, percent = 0}, + {type = "laser", decrease = 3, percent = 5*NE_Difficulty}}, + + -- Healthy (Physical) + Medium_Spitter = { + {type = "fire", decrease = 0, percent = -75}, + {type = "physical", decrease = 4, percent = 10*NE_Difficulty}, + {type = "impact", decrease = 3, percent = 0}, + {type = "explosion", decrease = 3, percent = 0}, + {type = "acid", decrease = 3, percent = 0}, + {type = "poison", decrease = 3, percent = 0}, + {type = "laser", decrease = 3, percent = 0}}, + + -- Infected (Poison / Explosion) + Medium_Spitter_Mk2 = { + {type = "fire", decrease = 0, percent = -70}, + {type = "physical", decrease = 4, percent = 0}, + {type = "impact", decrease = 4, percent = 0}, + {type = "explosion", decrease = 5, percent = 10*NE_Difficulty}, + {type = "acid", decrease = 4, percent = 0}, + {type = "poison", decrease = 5, percent = 10*NE_Difficulty}, + {type = "laser", decrease = 4, percent = 0}}, + + -- Mutated (Acid / Laser) + Medium_Spitter_Mk3 = { + {type = "fire", decrease = 0, percent = -65}, + {type = "physical", decrease = 5, percent = 0}, + {type = "impact", decrease = 5, percent = 0}, + {type = "explosion", decrease = 5, percent = 0}, + {type = "acid", decrease = 6, percent = 10*NE_Difficulty}, + {type = "poison", decrease = 5, percent = 0}, + {type = "laser", decrease = 6, percent = 10*NE_Difficulty}}, + + -- Healthy (Physical) + Big_Spitter = { + {type = "fire", decrease = 0, percent = -60}, + {type = "physical", decrease = 8, percent = 15*NE_Difficulty}, + {type = "impact", decrease = 6, percent = 0}, + {type = "explosion", decrease = 6, percent = 0}, + {type = "acid", decrease = 6, percent = 0}, + {type = "poison", decrease = 6, percent = 0}, + {type = "laser", decrease = 6, percent = 0}}, + + -- Infected (Poison / Explosion) + Big_Spitter_Mk2 = { + {type = "fire", decrease = 0, percent = -55}, + {type = "physical", decrease = 7, percent = 0}, + {type = "impact", decrease = 7, percent = 0}, + {type = "explosion", decrease = 9, percent = 15*NE_Difficulty}, + {type = "acid", decrease = 7, percent = 0}, + {type = "poison", decrease = 9, percent = 15*NE_Difficulty}, + {type = "laser", decrease = 7, percent = 0}}, + + -- Mutated (Acid / Laser) + Big_Spitter_Mk3 = { + {type = "fire", decrease = 0, percent = -50}, + {type = "physical", decrease = 8, percent = 0}, + {type = "impact", decrease = 8, percent = 0}, + {type = "explosion", decrease = 8, percent = 0}, + {type = "acid", decrease = 10, percent = 15*NE_Difficulty}, + {type = "poison", decrease = 8, percent = 0}, + {type = "laser", decrease = 10, percent = 15*NE_Difficulty}}, + + -- Healthy (Physical) + Behemoth_Spitter = { + {type = "fire", decrease = 0, percent = -40}, + {type = "physical", decrease = 14, percent = 20*NE_Difficulty}, + {type = "impact", decrease = 10, percent = 0}, + {type = "explosion", decrease = 10, percent = 0}, + {type = "acid", decrease = 10, percent = 0}, + {type = "poison", decrease = 10, percent = 0}, + {type = "laser", decrease = 10, percent = 0}}, + + ---- Worms + Small_Worm = { + {type = "fire", decrease = 0, percent = -90}, + {type = "physical", decrease = 0, percent = 5}, + {type = "impact", decrease = 0, percent = 0}, + {type = "explosion", decrease = 5, percent = 0}, + {type = "acid", decrease = 1, percent = 0}, + {type = "poison", decrease = 0, percent = 0}, + {type = "laser", decrease = 5, percent = 5}}, + + Medium_Worm = { + {type = "fire", decrease = 0, percent = -80}, + {type = "physical", decrease = 10, percent = 10}, + {type = "impact", decrease = 0, percent = 0}, + {type = "explosion", decrease = 10, percent = 10}, + {type = "acid", decrease = 5, percent = 0}, + {type = "poison", decrease = 0, percent = 0}, + {type = "laser", decrease = 10, percent = 10}}, + + + Big_Worm = { + {type = "fire", decrease = 0, percent = -70}, + {type = "physical", decrease = 15, percent = 15}, + {type = "impact", decrease = 0, percent = 0}, + {type = "explosion", decrease = 15, percent = 15}, + {type = "acid", decrease = 10, percent = 0}, + {type = "poison", decrease = 0, percent = 0}, + {type = "laser", decrease = 15, percent = 15}}, + + --- Spawner + + Spawner = { + {type = "fire", decrease = 0, percent = -100}, + {type = "physical", decrease = 5, percent = 10*NE_Difficulty}, + {type = "impact", decrease = 15, percent = 15*NE_Difficulty}, + {type = "explosion", decrease = 15, percent = 30*NE_Difficulty}, + {type = "acid", decrease = 15, percent = 15*NE_Difficulty}, + {type = "poison", decrease = 0, percent = 15*NE_Difficulty}, + {type = "laser", decrease = 10, percent = 15*NE_Difficulty}}, + Fire = { + {type = "fire", decrease = 0, percent = 75}}, +} \ No newline at end of file diff --git a/Natural_Evolution_Enemies_6.3.0/prototypes/Vanilla_Changes/Spitter_Evolution.lua b/Natural_Evolution_Enemies_6.3.1/prototypes/Vanilla_Changes/Spitter_Evolution.lua similarity index 98% rename from Natural_Evolution_Enemies_6.3.0/prototypes/Vanilla_Changes/Spitter_Evolution.lua rename to Natural_Evolution_Enemies_6.3.1/prototypes/Vanilla_Changes/Spitter_Evolution.lua index c3bf5fe..8b523f8 100644 --- a/Natural_Evolution_Enemies_6.3.0/prototypes/Vanilla_Changes/Spitter_Evolution.lua +++ b/Natural_Evolution_Enemies_6.3.1/prototypes/Vanilla_Changes/Spitter_Evolution.lua @@ -1,21 +1,21 @@ -data.raw["unit-spawner"]["spitter-spawner"].result_units = (function() - local res = {} - - res[1] = {"small-biter", {{0.00, 0.3}, {0.05, 0.3}, {0.10, 0.0}}} - - res[2] = {"small-spitter", {{0.05, 0.3}, {0.35, 0.3}, {0.45, 0.0}}} - res[3] = {"small-spitter-Mk2", {{0.15, 0.0}, {0.45, 0.3}, {0.55, 0.0}}} - res[4] = {"small-spitter-Mk3", {{0.25, 0.0}, {0.55, 0.3}, {0.65, 0.0}}} - - res[5] = {"medium-spitter", {{0.35, 0.0}, {0.65, 0.3}, {0.75, 0.0}}} - res[6] = {"medium-spitter-Mk2", {{0.45, 0.0}, {0.75, 0.3}, {0.85, 0.0}}} - res[7] = {"medium-spitter-Mk3", {{0.55, 0.0}, {0.85, 0.3}, {0.95, 0.0}}} - - res[8] = {"big-spitter", {{0.65, 0.0}, {0.95, 0.3}, {1.00, 0.0}}} - res[9] = {"big-spitter-Mk2", {{0.75, 0.0}, {1.00, 0.3}}} - res[10] = {"big-spitter-Mk3", {{0.85, 0.0}, {1.00, 0.3}}} - - res[11] = {"behemoth-spitter", {{0.95, 0.0}, {1.00, 0.3}}} - - return res +data.raw["unit-spawner"]["spitter-spawner"].result_units = (function() + local res = {} + + res[1] = {"small-biter", {{0.00, 0.3}, {0.05, 0.3}, {0.10, 0.0}}} + + res[2] = {"small-spitter", {{0.05, 0.3}, {0.35, 0.3}, {0.45, 0.0}}} + res[3] = {"small-spitter-Mk2", {{0.15, 0.0}, {0.45, 0.3}, {0.55, 0.0}}} + res[4] = {"small-spitter-Mk3", {{0.25, 0.0}, {0.55, 0.3}, {0.65, 0.0}}} + + res[5] = {"medium-spitter", {{0.35, 0.0}, {0.65, 0.3}, {0.75, 0.0}}} + res[6] = {"medium-spitter-Mk2", {{0.45, 0.0}, {0.75, 0.3}, {0.85, 0.0}}} + res[7] = {"medium-spitter-Mk3", {{0.55, 0.0}, {0.85, 0.3}, {0.95, 0.0}}} + + res[8] = {"big-spitter", {{0.65, 0.0}, {0.95, 0.3}, {1.00, 0.0}}} + res[9] = {"big-spitter-Mk2", {{0.75, 0.0}, {1.00, 0.3}}} + res[10] = {"big-spitter-Mk3", {{0.85, 0.0}, {1.00, 0.3}}} + + res[11] = {"behemoth-spitter", {{0.95, 0.0}, {1.00, 0.3}}} + + return res end)() \ No newline at end of file diff --git a/Natural_Evolution_Expansion_6.3.0/config.lua b/Natural_Evolution_Expansion_6.3.1/config.lua similarity index 97% rename from Natural_Evolution_Expansion_6.3.0/config.lua rename to Natural_Evolution_Expansion_6.3.1/config.lua index e3db97b..7cca02d 100644 --- a/Natural_Evolution_Expansion_6.3.0/config.lua +++ b/Natural_Evolution_Expansion_6.3.1/config.lua @@ -1,87 +1,87 @@ -local NE = NE_Expansion_Config ---[[--------------------------------------------------------------------------- -------------------------------------- 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 . -Bonesbro - His tweaks to improve the mod. -Rsending91, DOSorDIE and SpeedyBrain - Item/Corpse Collector Mod. -Supercheese - Swarm Mod. -Afforess - Misanthrope Mod. -Orzelek - RSO, Coding help and answering questions! -ThaPear, Semvoz, Billw, Adil, Rseding91, Chlue - Coding help! -DySoch - DyTech, showing me what was possible -Bobingabout - Bob's Mods - Learned a lot from looking at your amazing work. -YuokiTani - Art!! Amazing work! - ---------------------------------------------------------------------------- ---------------------------------------------------------------------------- ------------------------- On / Off Toggles --------------------------------- ---------------------------------------------------------------------------- ---- true = On / Yes ---- false = Off / No --- NOTE -- When changing most of the below values, this will only affect new games, not existing games. - ----------------------------------------------------------------------------]] - - -NE.Single_Player_Only = true ---- Some people have reported lag and crashes with MP. So if you do, set this to false if you're playing a MP and hopefully that should work. ---- You will not have any EVO_GUI info if set to false. ---- AGAIN MP should be fixed now, but if you do have problems, try setting this to false. - -NE.Expansion = true --- Kinda defeats the purpose of this mod if you turn this off... --- Do you want this mod to manage biter/spitter expansion. --- A tiered approach that gets a lot more difficult at higher evolution rates. - - - -NE.LongReach = false ---- Long Reach ---- Do you want double the vanilla reach - - -NE.EvolutionFactor = true -- Changing this will only affect new games, not existing games --- Do you want to use the new Evolution rate settings of: --- TIME: Only 87.5% of vanilla. From 0.000004 to 0.0000035 --- POLLUTION: Double the vanilla Pollution Evolution, so don't pollute! From 0.000015 to 0.00003 --- KILLING EMENY SPAWNERS: 10% of Vanilla for killing Enemy Spawners. From 0.002 to 0.0002 - - -NE.HarderEndGame = true --- Gets a lot harder once you build a rocket silo. Expect enemies trying to destroy the rocket silo. --- Cost of Rocket parts doubled. - -NE.ScienceCost = true --- Doubles the cost of Science Bottles, so you need to go look for some more resources... - - - - ---------- If you want to tweak the Expansion Phase settings, you can adjust the below. AT YOUR OWN RISK :) - -NE.Reduce_Evo_on_Phase_Change = true --- A small deduction in the Evolution factor after aeach Phase. - -NE.Evolution_Timer = 5 -- Time Per Phase in Min. At 0% Evo, Each Phase will be 5Min at 100% Evo Each Phase will be 15Min. Formula: Natural_Evolution_Timer = (evolution_Timer + (game.evolution_factor * evolution_Timer) * 2) - -NE.Settler_Group_Size = 1.0 -- Multiplier to the number of biters that are sent to build each new expansion. - -- Larger values are probably harder, I guess? - - -NE.Enemy_Speedup = 1.4 -- Adjustment to the speed of enemies when they've fallen behind the group they're following. Default is 40% speed up (same as stock). -NE.Enemy_Speedup_Endgame = 2 -- Adjustment to the speed of enemies when they've fallen behind the group they're following. 100% speed up during armageddon! - - ------------------------------ END ------------------------------------------- - -NE.QCCode = false --- Used for QC --- Displays messages used for checking my code - - - +local NE = NE_Expansion_Config +--[[--------------------------------------------------------------------------- +------------------------------------- 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 . +Bonesbro - His tweaks to improve the mod. +Rsending91, DOSorDIE and SpeedyBrain - Item/Corpse Collector Mod. +Supercheese - Swarm Mod. +Afforess - Misanthrope Mod. +Orzelek - RSO, Coding help and answering questions! +ThaPear, Semvoz, Billw, Adil, Rseding91, Chlue - Coding help! +DySoch - DyTech, showing me what was possible +Bobingabout - Bob's Mods - Learned a lot from looking at your amazing work. +YuokiTani - Art!! Amazing work! + +--------------------------------------------------------------------------- +--------------------------------------------------------------------------- +------------------------ On / Off Toggles --------------------------------- +--------------------------------------------------------------------------- +--- true = On / Yes +--- false = Off / No +-- NOTE -- When changing most of the below values, this will only affect new games, not existing games. + +---------------------------------------------------------------------------]] + + +NE.Single_Player_Only = true +--- Some people have reported lag and crashes with MP. So if you do, set this to false if you're playing a MP and hopefully that should work. +--- You will not have any EVO_GUI info if set to false. +--- AGAIN MP should be fixed now, but if you do have problems, try setting this to false. + +NE.Expansion = true +-- Kinda defeats the purpose of this mod if you turn this off... +-- Do you want this mod to manage biter/spitter expansion. +-- A tiered approach that gets a lot more difficult at higher evolution rates. + + + +NE.LongReach = false +--- Long Reach +--- Do you want double the vanilla reach + + +NE.EvolutionFactor = true -- Changing this will only affect new games, not existing games +-- Do you want to use the new Evolution rate settings of: +-- TIME: Only 87.5% of vanilla. From 0.000004 to 0.0000035 +-- POLLUTION: Double the vanilla Pollution Evolution, so don't pollute! From 0.000015 to 0.00003 +-- KILLING EMENY SPAWNERS: 10% of Vanilla for killing Enemy Spawners. From 0.002 to 0.0002 + + +NE.HarderEndGame = true +-- Gets a lot harder once you build a rocket silo. Expect enemies trying to destroy the rocket silo. +-- Cost of Rocket parts doubled. + +NE.ScienceCost = true +-- Doubles the cost of Science Bottles, so you need to go look for some more resources... + + + + +--------- If you want to tweak the Expansion Phase settings, you can adjust the below. AT YOUR OWN RISK :) + +NE.Reduce_Evo_on_Phase_Change = true --- A small deduction in the Evolution factor after aeach Phase. + +NE.Evolution_Timer = 5 -- Time Per Phase in Min. At 0% Evo, Each Phase will be 5Min at 100% Evo Each Phase will be 15Min. Formula: Natural_Evolution_Timer = (evolution_Timer + (game.evolution_factor * evolution_Timer) * 2) + +NE.Settler_Group_Size = 1.0 -- Multiplier to the number of biters that are sent to build each new expansion. + -- Larger values are probably harder, I guess? + + +NE.Enemy_Speedup = 1.4 -- Adjustment to the speed of enemies when they've fallen behind the group they're following. Default is 40% speed up (same as stock). +NE.Enemy_Speedup_Endgame = 2 -- Adjustment to the speed of enemies when they've fallen behind the group they're following. 100% speed up during armageddon! + + +----------------------------- END ------------------------------------------- + +NE.QCCode = false +-- Used for QC +-- Displays messages used for checking my code + + + diff --git a/Natural_Evolution_Expansion_6.3.0/control.lua b/Natural_Evolution_Expansion_6.3.1/control.lua similarity index 95% rename from Natural_Evolution_Expansion_6.3.0/control.lua rename to Natural_Evolution_Expansion_6.3.1/control.lua index 7fafd33..a1152a6 100644 --- a/Natural_Evolution_Expansion_6.3.0/control.lua +++ b/Natural_Evolution_Expansion_6.3.1/control.lua @@ -1,622 +1,624 @@ ---- EXPANSION v.6.3.0 - -if not NE_Expansion_Config then NE_Expansion_Config = {} end -if not NE_Expansion_Config.mod then NE_Expansion_Config.mod = {} end - - -require ("util") -require ("config") -require ("libs/event") - -if NE_Expansion_Config.Single_Player_Only and remote.interfaces.EvoGUI then - require ("libs/EvoGUI") -end - - ---------------------------------------------- -function On_Init() - ----- Expansion Initialization ---- - if not global.Natural_Evolution_state then - global.Natural_Evolution_state = "Peaceful" - end - if not global.Natural_Evolution_Timer then - global.Natural_Evolution_Timer = 0 - end - if not global.Peace_Timer then - global.Peace_Timer = 0 - end - if not global.Natural_Evolution_Counter then - global.Natural_Evolution_Counter = 0 - end - - - --- Harder End Game - ---- Rocket Silo Initialization ---- - if not global.RocketSiloBuilt then - global.RocketSiloBuilt = 0 - end - - - if not global.Total_Phase_Evo_Deduction then - global.Total_Phase_Evo_Deduction = 0 - elseif global.Total_Phase_Evo_Deduction < 0 then - global.Total_Phase_Evo_Deduction = 0 - end - - --- Initial Expansion Values - Expansion_Initial_Setup() - -end - - -function On_Change() - - if not global.Peace_Timer then - global.Peace_Timer = 0 - end - - -end - ---------------------------------------------- - - -if NE_Expansion_Config.HarderEndGame then - - --------------------------------------------- - script.on_event({defines.events.on_robot_built_entity,defines.events.on_built_entity,},function(event) On_Built(event) end) - script.on_event({defines.events.on_entity_died,defines.events.on_robot_pre_mined,defines.events.on_preplayer_mined_item,},function(event) On_Remove(event) end) - ---------------------------------------------- - function On_Built(event) - - --- Harder Ending Some action if you built the Rocket-silo! - if event.created_entity.name == "rocket-silo" then - - global.RocketSiloBuilt = global.RocketSiloBuilt + 1 - writeDebug("The number of Rocket Silos is: " .. global.RocketSiloBuilt) - -- Increase Evolution factor by 10% of remaining evolution once a Rocket Silo is built - if game.evolution_factor < 0.89999 then - game.evolution_factor = game.evolution_factor + (1 - game.evolution_factor)/10 - else - game.evolution_factor = 0.9999 - end - - -- Biters will attack the newly built Rocket Silo - event.created_entity.surface.set_multi_command{command = {type=defines.command.attack, target=event.created_entity, distraction=defines.distraction.by_enemy},unit_count = math.floor(4000 * game.evolution_factor), unit_search_distance = 1500} - - for i, player in pairs(game.players) do - player.print("WARNING!") - player.print("Building a Rocket Silo caused a lot of noise and biter will Attack!!!") - end - - end - end - - - --------------------------------------------- - function On_Remove(event) - - ---- Remove Rocket Silo count - if event.entity.name == "rocket-silo" then - global.RocketSiloBuilt = global.RocketSiloBuilt - 1 - writeDebug("The number of Rocket Silos is: " .. global.RocketSiloBuilt) - end - end - -end - - -------------------- -function Expansion_Initial_Setup() - - local enemy_expansion = game.map_settings.enemy_expansion - local unit_group = game.map_settings.unit_group - - enemy_expansion.enabled = false -- Disable Initial Expansion - Vanilla = True - enemy_expansion.min_base_spacing = 3 -- Vanilla 3 - enemy_expansion.max_expansion_distance = 5 -- Vanilla 7 - enemy_expansion.building_coefficient = 0.8 -- vanilla 0.1 - enemy_expansion.other_base_coefficient = 2.1 -- vanilla 2.0 - enemy_expansion.neighbouring_chunk_coefficient = 0.6 -- vanilla 0.5 - enemy_expansion.neighbouring_base_chunk_coefficient = 0.5 -- vanilla 0.4 - enemy_expansion.settler_group_min_size = 2 -- Vanilla 5 - enemy_expansion.settler_group_max_size = 4 -- Vanilla 20 - --- - unit_group.max_group_radius = 20 -- Vanilla 30 - unit_group.min_group_radius = 5 -- Vanilla 5 - -end - - - - - ---------------------------------------------- -if NE_Expansion_Config.Expansion then - - local evolution_Timer_Peace = (NE_Expansion_Config.Evolution_Timer * 3600) * 2 -- Default is 10min. There will thus be a random 0-10min peace after each Phase. - --- global.Peace_Timer is only used for EvoGui value - global.Peace_Timer = evolution_Timer_Peace - - - Event.register(defines.events.on_tick, function(event) - - if global.Peace_Timer > 0 then - global.Peace_Timer = global.Peace_Timer - 1 - elseif global.Peace_Timer == 0 then - global.Peace_Timer = evolution_Timer_Peace - end - - - --------------- Expansion ---------------------------------- - - --- Check every minute. Nothing will happen until at leasst 5% evolution - if (game.tick % (evolution_Timer_Peace) == 0) and (game.evolution_factor >= .005) and (global.Natural_Evolution_state == "Peaceful") then - - - --- Should generate a random value between 0 and 200 - local expansionChance = math.random(math.floor((game.evolution_factor * 100) + global.Natural_Evolution_Counter), math.floor((game.evolution_factor * 100) + 100)) - - -- For Early game, has about a 25% change to start Evolution - if expansionChance >= 75 and expansionChance < 100 then - Natural_Evolution_SetExpansionLevel("Awakening") - - - -- Evolution Factor = 1% - 9%: - elseif expansionChance >= 100 and expansionChance < 110 then - Natural_Evolution_SetExpansionLevel("Phase 1") - if game.evolution_factor >.1 and global.Natural_Evolution_Counter < 10 then - global.Natural_Evolution_Counter = global.Natural_Evolution_Counter + 1 - end - - -- Evolution Factor = 10% - 19%: - elseif expansionChance >= 110 and expansionChance < 120 then - Natural_Evolution_SetExpansionLevel("Phase 2") - if game.evolution_factor >.2 and global.Natural_Evolution_Counter < 15 then - global.Natural_Evolution_Counter = global.Natural_Evolution_Counter + 1 - end - - -- Evolution Factor = 20% - 29%: - elseif expansionChance >= 120 and expansionChance < 130 then - Natural_Evolution_SetExpansionLevel("Phase 3") - if game.evolution_factor >.3 and global.Natural_Evolution_Counter < 20 then - global.Natural_Evolution_Counter = global.Natural_Evolution_Counter + 1 - end - - -- Evolution Factor = 30% - 39%: - elseif expansionChance >= 130 and expansionChance < 140 then - Natural_Evolution_SetExpansionLevel("Phase 4") - if game.evolution_factor >.4 and global.Natural_Evolution_Counter < 25 then - global.Natural_Evolution_Counter = global.Natural_Evolution_Counter + 1 - end - - -- Evolution Factor = 40% - 49%: - elseif expansionChance >= 140 and expansionChance < 150 then - Natural_Evolution_SetExpansionLevel("Phase 5") - if game.evolution_factor >.5 and global.Natural_Evolution_Counter < 30 then - global.Natural_Evolution_Counter = global.Natural_Evolution_Counter + 1 - end - - -- Evolution Factor = 50% - 59%: - elseif expansionChance >= 150 and expansionChance < 160 then - Natural_Evolution_SetExpansionLevel("Phase 6") - if game.evolution_factor >.6 and global.Natural_Evolution_Counter < 35 then - global.Natural_Evolution_Counter = global.Natural_Evolution_Counter + 1 - end - - -- Evolution Factor = 60% - 69%: - elseif expansionChance >= 160 and expansionChance < 170 then - Natural_Evolution_SetExpansionLevel("Phase 7") - if game.evolution_factor >.7 and global.Natural_Evolution_Counter < 40 then - global.Natural_Evolution_Counter = global.Natural_Evolution_Counter + 1 - end - - -- Evolution Factor = 70% - 79%: - elseif expansionChance >= 170 and expansionChance < 180 then - Natural_Evolution_SetExpansionLevel("Phase 8") - if game.evolution_factor >.7 and global.Natural_Evolution_Counter < 45 then - global.Natural_Evolution_Counter = global.Natural_Evolution_Counter + 1 - end - - -- Evolution Factor = 80% - 89%: - elseif expansionChance >= 180 and expansionChance < 190 then - Natural_Evolution_SetExpansionLevel("Phase 9") - if game.evolution_factor >.8 and global.Natural_Evolution_Counter < 50 then - global.Natural_Evolution_Counter = global.Natural_Evolution_Counter + 1 - end - - -- Evolution Factor = 90% - 98%: - elseif expansionChance >= 190 and expansionChance < 199 then - Natural_Evolution_SetExpansionLevel("Phase 10") - if game.evolution_factor >.9 and global.Natural_Evolution_Counter < 50 then - global.Natural_Evolution_Counter = global.Natural_Evolution_Counter + 1 - end - - -- Evolution Factor = 99% - 100%: - elseif expansionChance >= 199 and expansionChance <= 200 then - Natural_Evolution_SetExpansionLevel("Armageddon") - end - - writeDebug("The Expansion Chance is: " .. expansionChance) - writeDebug("The Natural_Evolution Counter is: " .. global.Natural_Evolution_Counter) - - end - ---- - if global.Natural_Evolution_state ~= "Peaceful" then - if global.Natural_Evolution_Timer > 0 then - global.Natural_Evolution_Timer = global.Natural_Evolution_Timer - 1 - else - Natural_Evolution_SetExpansionLevel("Peaceful") - global.Peace_Timer = evolution_Timer_Peace - end - end - end) - - - ----Harder Endgame Function - Will send waves of enemies to attack the player once the Rocket Silo is built. Will also increase the Evolutio factor slightly with each wave. - function Harder_Endgame(Evo_Increase,Enemy_Count) - if NE_Expansion_Config.HarderEndGame then - if global.RocketSiloBuilt > 0 then - local E_Increase = 0 - if ((1-game.evolution_factor) / (10 * Evo_Increase)) > 0.05 then - E_Increase = 0.05 - else - E_Increase = ((1-game.evolution_factor) / (10 * Evo_Increase)) - end - - if game.evolution_factor < 0.9899 then - game.evolution_factor = game.evolution_factor + E_Increase - - else - game.evolution_factor = 0.99999 - end - - ---- Attack the player, since you have a silo built - for _, player in pairs(game.players) do - if player.connected and player.valid and player.character and player.character.valid then - player.surface.set_multi_command{command = {type=defines.command.attack, target=player.character, distraction=defines.distraction.by_enemy},unit_count = math.floor(Enemy_Count * game.evolution_factor), unit_search_distance = 1500} - end - end - - writeDebug("Attack wave inbound") - end - end - end - - - -------------------- - function Natural_Evolution_Expansion_Settings(evolution_Timer, NE_Min_Base_Spacing, NE_Max_Expansion_Distance, NE_building_coefficient, NE_Settler_Group_Min_Size, NE_Settler_Group_Max_Size, NE_Max_Group_Radius, NE_Min_Group_Radius, NE_Speedup, NE_other_base_coefficient,NE_neighbouring_chunk_coefficient, NE_neighbouring_base_chunk_coefficient) - - local enemy_expansion = game.map_settings.enemy_expansion - local unit_group = game.map_settings.unit_group - ----- - - --Current formula 5 min + 0min @ 0% evo and 10min @ 100% evo. So A phase can last 5 - 15min. - global.Natural_Evolution_Timer = (evolution_Timer + (game.evolution_factor * evolution_Timer) * 2) - - - -- Below 5% evolution, no expansion - if game.evolution_factor > 0.05 then - enemy_expansion.enabled = true - else - enemy_expansion.enabled = false - end - - enemy_expansion.min_base_spacing = NE_Min_Base_Spacing - enemy_expansion.max_expansion_distance = NE_Max_Expansion_Distance - enemy_expansion.building_coefficient = NE_building_coefficient - enemy_expansion.other_base_coefficient = NE_other_base_coefficient - enemy_expansion.neighbouring_chunk_coefficient = NE_neighbouring_chunk_coefficient - enemy_expansion.neighbouring_base_chunk_coefficient = NE_neighbouring_base_chunk_coefficient - enemy_expansion.settler_group_min_size = NE_Settler_Group_Min_Size + global.Natural_Evolution_Counter - enemy_expansion.settler_group_max_size = NE_Settler_Group_Max_Size + global.Natural_Evolution_Counter - enemy_expansion.min_Expansion_Cooldown = math.floor(global.Natural_Evolution_Timer / 4) - enemy_expansion.max_Expansion_Cooldown = math.floor(global.Natural_Evolution_Timer / 2) - - unit_group.min_group_gathering_time = math.floor(global.Natural_Evolution_Timer / 4) - unit_group.max_group_gathering_time = math.floor(global.Natural_Evolution_Timer / 2) - unit_group.max_wait_time_for_late_members = math.floor(global.Natural_Evolution_Timer / 8) - unit_group.max_group_radius = NE_Max_Group_Radius + (global.Natural_Evolution_Counter / 2) - unit_group.min_group_radius = NE_Min_Group_Radius + (global.Natural_Evolution_Counter / 2) - unit_group.max_member_speedup_when_behind = NE_Speedup + (global.Natural_Evolution_Counter / 10) - - - - writeDebug("The Global.Natural_Evolution_Timer is: " .. global.Natural_Evolution_Timer) - writeDebug("The Min Cooldown is: " .. (global.Natural_Evolution_Timer / 4)) - writeDebug("The Max Cooldown is: " .. (global.Natural_Evolution_Timer / 2)) - - - end - - -------------------- - function Natural_Evolution_SetExpansionLevel(Expansion_State) - - Expansion_State = Expansion_State or "Peaceful" - - - -- allow biters to path from farther away (minor performance hit) - if expansion_state ~= "Peaceful" then - game.map_settings.path_finder.max_steps_worked_per_tick = 500 - else - game.map_settings.path_finder.max_steps_worked_per_tick = 50 - end - - -- DEFAULT expansion settings for the "Peace" & "Awakening" state. Awake state has Expansion Enabled though. - - local min_Base_Spacing = 3 -- Vanilla 3 - local max_Expansion_Distance = 5 -- Vanilla 7 - - local building_coefficient = 0.6 - (global.Natural_Evolution_Counter / 250) -- vanilla 0.1 - local other_base_coefficient = 2.1 - (global.Natural_Evolution_Counter / 1000) -- vanilla 2.0 - local neighbouring_chunk_coefficient = 0.6 - (global.Natural_Evolution_Counter / 1000) -- vanilla 0.5 - local neighbouring_base_chunk_coefficient = 0.45 - (global.Natural_Evolution_Counter / 1000) -- vanilla 0.4 - - - local settler_Group_Min_Size = 2 -- Vanilla 5 - local settler_Group_Max_Size = 4 -- Vanilla 20 - - local max_Group_Radius = 20 -- Vanilla 30 - local min_Group_Radius = 5 -- Vanilla 5 - local enemy_speedup = NE_Expansion_Config.Enemy_Speedup_Endgame - - if Expansion_State == "Peaceful" then - - game.map_settings.enemy_expansion.enabled = false --- No Expansion during Peaceful time - global.Natural_Evolution_Timer = 0 - - -- Each time a Phase is triggered, the Evolution Factor is decreased slightly, just during the Phase. - if NE_Expansion_Config.Reduce_Evo_on_Phase_Change then - if game.evolution_factor > 0.05 then - if global.Natural_Evolution_state == "Awakening" then - game.evolution_factor = game.evolution_factor - else - - local Evo_Deduction = (0.0025 * (1 - game.evolution_factor)) - - game.evolution_factor = game.evolution_factor - Evo_Deduction - global.Total_Phase_Evo_Deduction = global.Total_Phase_Evo_Deduction + Evo_Deduction - writeDebug("Evolution Deduction during Expansion: " .. Evo_Deduction) - writeDebug("Total Evolution Deduction from Phase Switch: " .. global.Total_Phase_Evo_Deduction) - end - - end - end - - -- Defines the values for the different Evolution States. - elseif Expansion_State == "Awakening" then - -- No adjustments needed - Awakening is the default. - - - elseif Expansion_State == "Phase 1" then - ----- Harder Ending - Harder_Endgame(1,500) - ----- - max_Expansion_Distance = max_Expansion_Distance + 1 - - building_coefficient = 0.4 - (global.Natural_Evolution_Counter / 1000) -- vanilla 0.1 - other_base_coefficient = 2.0 - (global.Natural_Evolution_Counter / 1000) -- vanilla 2.0 - neighbouring_chunk_coefficient = 0.55 - (global.Natural_Evolution_Counter / 1000) -- vanilla 0.5 - neighbouring_base_chunk_coefficient = 0.45 - (global.Natural_Evolution_Counter / 1000) -- vanilla 0.4 - - settler_Group_Min_Size = 2 - settler_Group_Max_Size = 4 - - - - elseif Expansion_State == "Phase 2" then - ----- Harder Ending - Harder_Endgame(1,500) - ----- - max_Expansion_Distance = max_Expansion_Distance + 3 - - building_coefficient = 0.4 - (global.Natural_Evolution_Counter / 1000) -- vanilla 0.1 - other_base_coefficient = 2.0 - (global.Natural_Evolution_Counter / 1000) -- vanilla 2.0 - neighbouring_chunk_coefficient = 0.55 - (global.Natural_Evolution_Counter / 1000) -- vanilla 0.5 - neighbouring_base_chunk_coefficient = 0.4 - (global.Natural_Evolution_Counter / 1000) -- vanilla 0.4 - - settler_Group_Min_Size = 4 - settler_Group_Max_Size = 7 - - - - elseif Expansion_State == "Phase 3" then - ----- Harder Ending - Harder_Endgame(1,500) - ----- - - max_Expansion_Distance = max_Expansion_Distance + 5 - - building_coefficient = 0.2 - (global.Natural_Evolution_Counter / 1000) -- vanilla 0.1 - other_base_coefficient = 2.0 - (global.Natural_Evolution_Counter / 1000) -- vanilla 2.0 - neighbouring_chunk_coefficient = 0.5 - (global.Natural_Evolution_Counter / 1000) -- vanilla 0.5 - neighbouring_base_chunk_coefficient = 0.45 - (global.Natural_Evolution_Counter / 1000) -- vanilla 0.4 - - settler_Group_Min_Size = 6 - settler_Group_Max_Size = 10 - - - - elseif Expansion_State == "Phase 4" then - ----- Harder Ending - Harder_Endgame(1,500) - ----- - - max_Expansion_Distance = max_Expansion_Distance + 7 - - building_coefficient = 0.15 - (global.Natural_Evolution_Counter / 1000) -- vanilla 0.1 - other_base_coefficient = 2.0 - (global.Natural_Evolution_Counter / 1000) -- vanilla 2.0 - neighbouring_chunk_coefficient = 0.5 - (global.Natural_Evolution_Counter / 1000) -- vanilla 0.5 - neighbouring_base_chunk_coefficient = 0.4 - (global.Natural_Evolution_Counter / 1000) -- vanilla 0.4 - - settler_Group_Min_Size = 8 - settler_Group_Max_Size = 13 - - - - elseif Expansion_State == "Phase 5" then - ----- Harder Ending - Harder_Endgame(1,1000) - ----- - - min_Base_Spacing = min_Base_Spacing - 1 - max_Expansion_Distance = max_Expansion_Distance + 8 - - building_coefficient = 0.1 - (global.Natural_Evolution_Counter / 1000) -- vanilla 0.1 - other_base_coefficient = 2.0 - (global.Natural_Evolution_Counter / 1000) -- vanilla 2.0 - neighbouring_chunk_coefficient = 0.5 - (global.Natural_Evolution_Counter / 1000) -- vanilla 0.5 - neighbouring_base_chunk_coefficient = 0.4 - (global.Natural_Evolution_Counter / 1000) -- vanilla 0.4 - - settler_Group_Min_Size = 10 - settler_Group_Max_Size = 16 - - - - elseif Expansion_State == "Phase 6" then - ----- Harder Ending - Harder_Endgame(1.5,1500) - ----- - - min_Base_Spacing = min_Base_Spacing - 1 - max_Expansion_Distance = max_Expansion_Distance + 9 - - building_coefficient = 0.1 - (global.Natural_Evolution_Counter / 1000) -- vanilla 0.1 - other_base_coefficient = 2.0 - (global.Natural_Evolution_Counter / 1000) -- vanilla 2.0 - neighbouring_chunk_coefficient = 0.5 - (global.Natural_Evolution_Counter / 1000) -- vanilla 0.5 - neighbouring_base_chunk_coefficient = 0.35 - (global.Natural_Evolution_Counter / 1000) -- vanilla 0.4 - - settler_Group_Min_Size = 12 - settler_Group_Max_Size = 19 - - - - elseif Expansion_State == "Phase 7" then - ----- Harder Ending - Harder_Endgame(1.5,2000) - ----- - - min_Base_Spacing = min_Base_Spacing - 1 - max_Expansion_Distance = max_Expansion_Distance + 10 - - building_coefficient = 0.1 - (global.Natural_Evolution_Counter / 1000) -- vanilla 0.1 - other_base_coefficient = 1.8 - (global.Natural_Evolution_Counter / 1000) -- vanilla 2.0 - neighbouring_chunk_coefficient = 0.45 - (global.Natural_Evolution_Counter / 1000) -- vanilla 0.5 - neighbouring_base_chunk_coefficient = 0.35 - (global.Natural_Evolution_Counter / 1000) -- vanilla 0.4 - - settler_Group_Min_Size = 14 - settler_Group_Max_Size = 22 - - - - elseif Expansion_State == "Phase 8" then - ----- Harder Ending - Harder_Endgame(1.5,2500) - ----- - - min_Base_Spacing = min_Base_Spacing - 1 - max_Expansion_Distance = max_Expansion_Distance + 11 - - building_coefficient = 0.08 - (global.Natural_Evolution_Counter / 1000) -- vanilla 0.1 - other_base_coefficient = 1.8 - (global.Natural_Evolution_Counter / 1000) -- vanilla 2.0 - neighbouring_chunk_coefficient = 0.4 - (global.Natural_Evolution_Counter / 1000) -- vanilla 0.5 - neighbouring_base_chunk_coefficient = 0.32 - (global.Natural_Evolution_Counter / 1000) -- vanilla 0.4 - - settler_Group_Min_Size = 16 - settler_Group_Max_Size = 25 - - - - elseif Expansion_State == "Phase 9" then - ----- Harder Ending - Harder_Endgame(2,3000) - ----- - - min_Base_Spacing = min_Base_Spacing - 2 - max_Expansion_Distance = max_Expansion_Distance + 13 - - building_coefficient = 0.06 - (global.Natural_Evolution_Counter / 1000) -- vanilla 0.1 - other_base_coefficient = 1.6 - (global.Natural_Evolution_Counter / 1000) -- vanilla 2.0 - neighbouring_chunk_coefficient = 0.38 - (global.Natural_Evolution_Counter / 1000) -- vanilla 0.5 - neighbouring_base_chunk_coefficient = 0.32 - (global.Natural_Evolution_Counter / 1000) -- vanilla 0.4 - - settler_Group_Min_Size = 18 - settler_Group_Max_Size = 28 - - - - elseif Expansion_State == "Phase 10" then - ----- Harder Ending - Harder_Endgame(2,3000) - ----- - - min_Base_Spacing = min_Base_Spacing - 2 - max_Expansion_Distance = max_Expansion_Distance + 15 - - building_coefficient = 0.04 - (global.Natural_Evolution_Counter / 1000) -- vanilla 0.1 - other_base_coefficient = 1.4 - (global.Natural_Evolution_Counter / 1000) -- vanilla 2.0 - neighbouring_chunk_coefficient = 0.34 - (global.Natural_Evolution_Counter / 1000) -- vanilla 0.5 - neighbouring_base_chunk_coefficient = 0.3 - (global.Natural_Evolution_Counter / 1000) -- vanilla 0.4 - - settler_Group_Min_Size = 30 - settler_Group_Max_Size = 75 - - enemy_speedup = NE_Expansion_Config.Enemy_Speedup_Endgame - - - elseif Expansion_State == "Armageddon" then - ----- Harder Ending - Harder_Endgame(2.5,3000) - ----- - - min_Base_Spacing = min_Base_Spacing - 2 - max_Expansion_Distance = max_Expansion_Distance + 20 - - building_coefficient = 0.04 - (global.Natural_Evolution_Counter / 1000) -- vanilla 0.1 - other_base_coefficient = 1.0 - (global.Natural_Evolution_Counter / 1000) -- vanilla 2.0 - neighbouring_chunk_coefficient = 0.3 - (global.Natural_Evolution_Counter / 1000) -- vanilla 0.5 - neighbouring_base_chunk_coefficient = 0.3 - (global.Natural_Evolution_Counter / 1000) -- vanilla 0.4 - - settler_Group_Min_Size = 100 - settler_Group_Max_Size = 200 - - enemy_speedup = NE_Expansion_Config.Enemy_Speedup_Endgame - - - end - - global.Natural_Evolution_state = Expansion_State - - if Expansion_State ~= "Peaceful" then - -- adjust the expansion settings based on any customizations from the config settings, making sure they stay above zero - - evolution_Timer = (NE_Expansion_Config.Evolution_Timer * 3600) - - settler_Group_Min_Size = math.max(1, settler_Group_Min_Size * NE_Expansion_Config.Settler_Group_Size) - settler_Group_Max_Size = math.max(1, settler_Group_Max_Size * NE_Expansion_Config.Settler_Group_Size) - - - -- apply the expansion settings - Natural_Evolution_Expansion_Settings(evolution_Timer, min_Base_Spacing, max_Expansion_Distance, building_coefficient, settler_Group_Min_Size, settler_Group_Max_Size, max_Group_Radius, min_Group_Radius, enemy_speedup, other_base_coefficient, neighbouring_chunk_coefficient, neighbouring_base_chunk_coefficient) - - end - - end - -end - - ---------------------------------------------- -script.on_init(On_Init) ---script.on_load(On_Load) -script.on_configuration_changed(On_Change) - ---------------------------------------------- ---- DeBug Messages -function writeDebug(message) - if NE_Expansion_Config.QCCode then - for i, player in pairs(game.players) do - player.print(tostring(message)) - end - end -end +--- EXPANSION v.6.3.1 + +if not NE_Expansion_Config then NE_Expansion_Config = {} end +if not NE_Expansion_Config.mod then NE_Expansion_Config.mod = {} end + + +require ("util") +require ("config") +require ("libs/event") + +if NE_Expansion_Config.Single_Player_Only and remote.interfaces.EvoGUI then + require ("libs/EvoGUI") +end + + +--------------------------------------------- +function On_Init() + +---- Expansion Initialization ---- + if not global.Natural_Evolution_state then + global.Natural_Evolution_state = "Peaceful" + end + if not global.Natural_Evolution_Timer then + global.Natural_Evolution_Timer = 0 + end + if not global.Peace_Timer then + global.Peace_Timer = 0 + end + if not global.Natural_Evolution_Counter then + global.Natural_Evolution_Counter = 0 + end + + + --- Harder End Game + ---- Rocket Silo Initialization ---- + if not global.RocketSiloBuilt then + global.RocketSiloBuilt = 0 + end + + + if not global.Total_Phase_Evo_Deduction then + global.Total_Phase_Evo_Deduction = 0 + elseif global.Total_Phase_Evo_Deduction < 0 then + global.Total_Phase_Evo_Deduction = 0 + end + + --- Initial Expansion Values + Expansion_Initial_Setup() + +end + + +function On_Change() + + if not global.Peace_Timer then + global.Peace_Timer = 0 + end + + +end + +--------------------------------------------- + + +if NE_Expansion_Config.HarderEndGame then + + --------------------------------------------- + script.on_event({defines.events.on_robot_built_entity,defines.events.on_built_entity,},function(event) On_Built(event) end) + script.on_event({defines.events.on_entity_died,defines.events.on_robot_pre_mined,defines.events.on_preplayer_mined_item,},function(event) On_Remove(event) end) + +--------------------------------------------- + function On_Built(event) + + --- Harder Ending Some action if you built the Rocket-silo! + if event.created_entity.name == "rocket-silo" then + + global.RocketSiloBuilt = global.RocketSiloBuilt + 1 + writeDebug("The number of Rocket Silos is: " .. global.RocketSiloBuilt) + -- Increase Evolution factor by 10% of remaining evolution once a Rocket Silo is built + if game.evolution_factor < 0.89999 then + game.evolution_factor = game.evolution_factor + (1 - game.evolution_factor)/10 + else + game.evolution_factor = 0.9999 + end + + -- Biters will attack the newly built Rocket Silo + event.created_entity.surface.set_multi_command{command = {type=defines.command.attack, target=event.created_entity, distraction=defines.distraction.by_enemy},unit_count = math.floor(4000 * game.evolution_factor), unit_search_distance = 1500} + + for i, player in pairs(game.players) do + player.print("WARNING!") + player.print("Building a Rocket Silo caused a lot of noise and biter will Attack!!!") + end + + end + end + + + --------------------------------------------- + function On_Remove(event) + + ---- Remove Rocket Silo count + if event.entity.name == "rocket-silo" then + global.RocketSiloBuilt = global.RocketSiloBuilt - 1 + writeDebug("The number of Rocket Silos is: " .. global.RocketSiloBuilt) + end + end + +end + + -------------------- +function Expansion_Initial_Setup() + + local enemy_expansion = game.map_settings.enemy_expansion + local unit_group = game.map_settings.unit_group + + enemy_expansion.enabled = false -- Disable Initial Expansion - Vanilla = True + enemy_expansion.min_base_spacing = 3 -- Vanilla 3 + enemy_expansion.max_expansion_distance = 5 -- Vanilla 7 + enemy_expansion.building_coefficient = 0.8 -- vanilla 0.1 + enemy_expansion.other_base_coefficient = 2.1 -- vanilla 2.0 + enemy_expansion.neighbouring_chunk_coefficient = 0.6 -- vanilla 0.5 + enemy_expansion.neighbouring_base_chunk_coefficient = 0.5 -- vanilla 0.4 + enemy_expansion.settler_group_min_size = 2 -- Vanilla 5 + enemy_expansion.settler_group_max_size = 4 -- Vanilla 20 + --- + unit_group.max_group_radius = 20 -- Vanilla 30 + unit_group.min_group_radius = 5 -- Vanilla 5 + +end + + + + + +--------------------------------------------- +if NE_Expansion_Config.Expansion then + + local evolution_Timer_Peace = (NE_Expansion_Config.Evolution_Timer * 3600) * 2 -- Default is 10min. There will thus be a random 0-10min peace after each Phase. + --- global.Peace_Timer is only used for EvoGui value + global.Peace_Timer = evolution_Timer_Peace + + + Event.register(defines.events.on_tick, function(event) + + if global.Peace_Timer > 0 then + global.Peace_Timer = global.Peace_Timer - 1 + elseif global.Peace_Timer == 0 then + global.Peace_Timer = evolution_Timer_Peace + end + + + --------------- Expansion ---------------------------------- + + --- Check every minute. Nothing will happen until at leasst 5% evolution + if (game.tick % (evolution_Timer_Peace) == 0) and (game.evolution_factor >= .005) and (global.Natural_Evolution_state == "Peaceful") then + + + --- Should generate a random value between 0 and 200 + local expansionChance = math.random(math.floor((game.evolution_factor * 100) + global.Natural_Evolution_Counter), math.floor((game.evolution_factor * 100) + 100)) + + -- For Early game, has about a 25% change to start Evolution + if expansionChance >= 75 and expansionChance < 100 then + Natural_Evolution_SetExpansionLevel("Awakening") + + + -- Evolution Factor = 1% - 9%: + elseif expansionChance >= 100 and expansionChance < 110 then + Natural_Evolution_SetExpansionLevel("Phase 1") + if game.evolution_factor >.1 and global.Natural_Evolution_Counter < 10 then + global.Natural_Evolution_Counter = global.Natural_Evolution_Counter + 1 + end + + -- Evolution Factor = 10% - 19%: + elseif expansionChance >= 110 and expansionChance < 120 then + Natural_Evolution_SetExpansionLevel("Phase 2") + if game.evolution_factor >.2 and global.Natural_Evolution_Counter < 15 then + global.Natural_Evolution_Counter = global.Natural_Evolution_Counter + 1 + end + + -- Evolution Factor = 20% - 29%: + elseif expansionChance >= 120 and expansionChance < 130 then + Natural_Evolution_SetExpansionLevel("Phase 3") + if game.evolution_factor >.3 and global.Natural_Evolution_Counter < 20 then + global.Natural_Evolution_Counter = global.Natural_Evolution_Counter + 1 + end + + -- Evolution Factor = 30% - 39%: + elseif expansionChance >= 130 and expansionChance < 140 then + Natural_Evolution_SetExpansionLevel("Phase 4") + if game.evolution_factor >.4 and global.Natural_Evolution_Counter < 25 then + global.Natural_Evolution_Counter = global.Natural_Evolution_Counter + 1 + end + + -- Evolution Factor = 40% - 49%: + elseif expansionChance >= 140 and expansionChance < 150 then + Natural_Evolution_SetExpansionLevel("Phase 5") + if game.evolution_factor >.5 and global.Natural_Evolution_Counter < 30 then + global.Natural_Evolution_Counter = global.Natural_Evolution_Counter + 1 + end + + -- Evolution Factor = 50% - 59%: + elseif expansionChance >= 150 and expansionChance < 160 then + Natural_Evolution_SetExpansionLevel("Phase 6") + if game.evolution_factor >.6 and global.Natural_Evolution_Counter < 35 then + global.Natural_Evolution_Counter = global.Natural_Evolution_Counter + 1 + end + + -- Evolution Factor = 60% - 69%: + elseif expansionChance >= 160 and expansionChance < 170 then + Natural_Evolution_SetExpansionLevel("Phase 7") + if game.evolution_factor >.7 and global.Natural_Evolution_Counter < 40 then + global.Natural_Evolution_Counter = global.Natural_Evolution_Counter + 1 + end + + -- Evolution Factor = 70% - 79%: + elseif expansionChance >= 170 and expansionChance < 180 then + Natural_Evolution_SetExpansionLevel("Phase 8") + if game.evolution_factor >.7 and global.Natural_Evolution_Counter < 45 then + global.Natural_Evolution_Counter = global.Natural_Evolution_Counter + 1 + end + + -- Evolution Factor = 80% - 89%: + elseif expansionChance >= 180 and expansionChance < 190 then + Natural_Evolution_SetExpansionLevel("Phase 9") + if game.evolution_factor >.8 and global.Natural_Evolution_Counter < 50 then + global.Natural_Evolution_Counter = global.Natural_Evolution_Counter + 1 + end + + -- Evolution Factor = 90% - 98%: + elseif expansionChance >= 190 and expansionChance < 199 then + Natural_Evolution_SetExpansionLevel("Phase 10") + if game.evolution_factor >.9 and global.Natural_Evolution_Counter < 50 then + global.Natural_Evolution_Counter = global.Natural_Evolution_Counter + 1 + end + + -- Evolution Factor = 99% - 100%: + elseif expansionChance >= 199 and expansionChance <= 200 then + Natural_Evolution_SetExpansionLevel("Armageddon") + end + + writeDebug("The Expansion Chance is: " .. expansionChance) + writeDebug("The Natural_Evolution Counter is: " .. global.Natural_Evolution_Counter) + + end + ---- + if global.Natural_Evolution_state ~= "Peaceful" then + if global.Natural_Evolution_Timer > 0 then + global.Natural_Evolution_Timer = global.Natural_Evolution_Timer - 1 + else + Natural_Evolution_SetExpansionLevel("Peaceful") + global.Peace_Timer = evolution_Timer_Peace + end + end + end) + + + ----Harder Endgame Function - Will send waves of enemies to attack the player once the Rocket Silo is built. Will also increase the Evolutio factor slightly with each wave. + function Harder_Endgame(Evo_Increase,Enemy_Count) + if NE_Expansion_Config.HarderEndGame then + if global.RocketSiloBuilt > 0 then + local E_Increase = 0 + if ((1-game.evolution_factor) / (10 * Evo_Increase)) > 0.05 then + E_Increase = 0.05 + else + E_Increase = ((1-game.evolution_factor) / (10 * Evo_Increase)) + end + + if game.evolution_factor < 0.9899 then + game.evolution_factor = game.evolution_factor + E_Increase + + else + game.evolution_factor = 0.99999 + end + + ---- Attack the player, since you have a silo built + for _, player in pairs(game.players) do + if player.connected and player.valid and player.character and player.character.valid then + player.surface.set_multi_command{command = {type=defines.command.attack, target=player.character, distraction=defines.distraction.by_enemy},unit_count = math.floor(Enemy_Count * game.evolution_factor), unit_search_distance = 1500} + end + end + + writeDebug("Attack wave inbound") + end + end + end + + + -------------------- + function Natural_Evolution_Expansion_Settings(evolution_Timer, NE_Min_Base_Spacing, NE_Max_Expansion_Distance, NE_building_coefficient, NE_Settler_Group_Min_Size, NE_Settler_Group_Max_Size, NE_Max_Group_Radius, NE_Min_Group_Radius, NE_Speedup, NE_other_base_coefficient,NE_neighbouring_chunk_coefficient, NE_neighbouring_base_chunk_coefficient) + + local enemy_expansion = game.map_settings.enemy_expansion + local unit_group = game.map_settings.unit_group + ----- + + --Current formula 5 min + 0min @ 0% evo and 10min @ 100% evo. So A phase can last 5 - 15min. + global.Natural_Evolution_Timer = (evolution_Timer + (game.evolution_factor * evolution_Timer) * 2) + + + -- Below 5% evolution, no expansion + if game.evolution_factor > 0.05 then + enemy_expansion.enabled = true + else + enemy_expansion.enabled = false + end + + if NE_Min_Base_Spacing < 1 then NE_Min_Base_Spacing = 1 end + + enemy_expansion.min_base_spacing = NE_Min_Base_Spacing + enemy_expansion.max_expansion_distance = NE_Max_Expansion_Distance + enemy_expansion.building_coefficient = NE_building_coefficient + enemy_expansion.other_base_coefficient = NE_other_base_coefficient + enemy_expansion.neighbouring_chunk_coefficient = NE_neighbouring_chunk_coefficient + enemy_expansion.neighbouring_base_chunk_coefficient = NE_neighbouring_base_chunk_coefficient + enemy_expansion.settler_group_min_size = NE_Settler_Group_Min_Size + global.Natural_Evolution_Counter + enemy_expansion.settler_group_max_size = NE_Settler_Group_Max_Size + global.Natural_Evolution_Counter + enemy_expansion.min_Expansion_Cooldown = math.floor(global.Natural_Evolution_Timer / 4) + enemy_expansion.max_Expansion_Cooldown = math.floor(global.Natural_Evolution_Timer / 2) + + unit_group.min_group_gathering_time = math.floor(global.Natural_Evolution_Timer / 4) + unit_group.max_group_gathering_time = math.floor(global.Natural_Evolution_Timer / 2) + unit_group.max_wait_time_for_late_members = math.floor(global.Natural_Evolution_Timer / 8) + unit_group.max_group_radius = NE_Max_Group_Radius + (global.Natural_Evolution_Counter / 2) + unit_group.min_group_radius = NE_Min_Group_Radius + (global.Natural_Evolution_Counter / 2) + unit_group.max_member_speedup_when_behind = NE_Speedup + (global.Natural_Evolution_Counter / 10) + + + + writeDebug("The Global.Natural_Evolution_Timer is: " .. global.Natural_Evolution_Timer) + writeDebug("The Min Cooldown is: " .. (global.Natural_Evolution_Timer / 4)) + writeDebug("The Max Cooldown is: " .. (global.Natural_Evolution_Timer / 2)) + + + end + + -------------------- + function Natural_Evolution_SetExpansionLevel(Expansion_State) + + Expansion_State = Expansion_State or "Peaceful" + + + -- allow biters to path from farther away (minor performance hit) + if expansion_state ~= "Peaceful" then + game.map_settings.path_finder.max_steps_worked_per_tick = 500 + else + game.map_settings.path_finder.max_steps_worked_per_tick = 50 + end + + -- DEFAULT expansion settings for the "Peace" & "Awakening" state. Awake state has Expansion Enabled though. + + local min_Base_Spacing = 3 -- Vanilla 3 + local max_Expansion_Distance = 5 -- Vanilla 7 + + local building_coefficient = 0.6 - (global.Natural_Evolution_Counter / 250) -- vanilla 0.1 + local other_base_coefficient = 2.1 - (global.Natural_Evolution_Counter / 1000) -- vanilla 2.0 + local neighbouring_chunk_coefficient = 0.6 - (global.Natural_Evolution_Counter / 1000) -- vanilla 0.5 + local neighbouring_base_chunk_coefficient = 0.45 - (global.Natural_Evolution_Counter / 1000) -- vanilla 0.4 + + + local settler_Group_Min_Size = 2 -- Vanilla 5 + local settler_Group_Max_Size = 4 -- Vanilla 20 + + local max_Group_Radius = 20 -- Vanilla 30 + local min_Group_Radius = 5 -- Vanilla 5 + local enemy_speedup = NE_Expansion_Config.Enemy_Speedup_Endgame + + if Expansion_State == "Peaceful" then + + game.map_settings.enemy_expansion.enabled = false --- No Expansion during Peaceful time + global.Natural_Evolution_Timer = 0 + + -- Each time a Phase is triggered, the Evolution Factor is decreased slightly, just during the Phase. + if NE_Expansion_Config.Reduce_Evo_on_Phase_Change then + if game.evolution_factor > 0.05 then + if global.Natural_Evolution_state == "Awakening" then + game.evolution_factor = game.evolution_factor + else + + local Evo_Deduction = (0.0025 * (1 - game.evolution_factor)*(1 - game.evolution_factor)) + + game.evolution_factor = game.evolution_factor - Evo_Deduction + global.Total_Phase_Evo_Deduction = global.Total_Phase_Evo_Deduction + Evo_Deduction + writeDebug("Evolution Deduction during Expansion: " .. Evo_Deduction) + writeDebug("Total Evolution Deduction from Phase Switch: " .. global.Total_Phase_Evo_Deduction) + end + + end + end + + -- Defines the values for the different Evolution States. + elseif Expansion_State == "Awakening" then + -- No adjustments needed - Awakening is the default. + + + elseif Expansion_State == "Phase 1" then + ----- Harder Ending + Harder_Endgame(1,500) + ----- + max_Expansion_Distance = max_Expansion_Distance + 1 + + building_coefficient = 0.4 - (global.Natural_Evolution_Counter / 1000) -- vanilla 0.1 + other_base_coefficient = 2.0 - (global.Natural_Evolution_Counter / 1000) -- vanilla 2.0 + neighbouring_chunk_coefficient = 0.55 - (global.Natural_Evolution_Counter / 1000) -- vanilla 0.5 + neighbouring_base_chunk_coefficient = 0.45 - (global.Natural_Evolution_Counter / 1000) -- vanilla 0.4 + + settler_Group_Min_Size = 2 + settler_Group_Max_Size = 4 + + + + elseif Expansion_State == "Phase 2" then + ----- Harder Ending + Harder_Endgame(1,500) + ----- + max_Expansion_Distance = max_Expansion_Distance + 3 + + building_coefficient = 0.4 - (global.Natural_Evolution_Counter / 1000) -- vanilla 0.1 + other_base_coefficient = 2.0 - (global.Natural_Evolution_Counter / 1000) -- vanilla 2.0 + neighbouring_chunk_coefficient = 0.55 - (global.Natural_Evolution_Counter / 1000) -- vanilla 0.5 + neighbouring_base_chunk_coefficient = 0.4 - (global.Natural_Evolution_Counter / 1000) -- vanilla 0.4 + + settler_Group_Min_Size = 6 + settler_Group_Max_Size = 12 + + + + elseif Expansion_State == "Phase 3" then + ----- Harder Ending + Harder_Endgame(1,500) + ----- + + max_Expansion_Distance = max_Expansion_Distance + 5 + + building_coefficient = 0.2 - (global.Natural_Evolution_Counter / 1000) -- vanilla 0.1 + other_base_coefficient = 2.0 - (global.Natural_Evolution_Counter / 1000) -- vanilla 2.0 + neighbouring_chunk_coefficient = 0.5 - (global.Natural_Evolution_Counter / 1000) -- vanilla 0.5 + neighbouring_base_chunk_coefficient = 0.45 - (global.Natural_Evolution_Counter / 1000) -- vanilla 0.4 + + settler_Group_Min_Size = 8 + settler_Group_Max_Size = 16 + + + + elseif Expansion_State == "Phase 4" then + ----- Harder Ending + Harder_Endgame(1,500) + ----- + + max_Expansion_Distance = max_Expansion_Distance + 7 + + building_coefficient = 0.15 - (global.Natural_Evolution_Counter / 1000) -- vanilla 0.1 + other_base_coefficient = 2.0 - (global.Natural_Evolution_Counter / 1000) -- vanilla 2.0 + neighbouring_chunk_coefficient = 0.5 - (global.Natural_Evolution_Counter / 1000) -- vanilla 0.5 + neighbouring_base_chunk_coefficient = 0.4 - (global.Natural_Evolution_Counter / 1000) -- vanilla 0.4 + + settler_Group_Min_Size = 10 + settler_Group_Max_Size = 20 + + + + elseif Expansion_State == "Phase 5" then + ----- Harder Ending + Harder_Endgame(1,1000) + ----- + + min_Base_Spacing = min_Base_Spacing - 1 + max_Expansion_Distance = max_Expansion_Distance + 8 + + building_coefficient = 0.1 - (global.Natural_Evolution_Counter / 1000) -- vanilla 0.1 + other_base_coefficient = 2.0 - (global.Natural_Evolution_Counter / 1000) -- vanilla 2.0 + neighbouring_chunk_coefficient = 0.5 - (global.Natural_Evolution_Counter / 1000) -- vanilla 0.5 + neighbouring_base_chunk_coefficient = 0.4 - (global.Natural_Evolution_Counter / 1000) -- vanilla 0.4 + + settler_Group_Min_Size = 12 + settler_Group_Max_Size = 24 + + + + elseif Expansion_State == "Phase 6" then + ----- Harder Ending + Harder_Endgame(1.5,1500) + ----- + + min_Base_Spacing = min_Base_Spacing - 1 + max_Expansion_Distance = max_Expansion_Distance + 9 + + building_coefficient = 0.1 - (global.Natural_Evolution_Counter / 1000) -- vanilla 0.1 + other_base_coefficient = 2.0 - (global.Natural_Evolution_Counter / 1000) -- vanilla 2.0 + neighbouring_chunk_coefficient = 0.5 - (global.Natural_Evolution_Counter / 1000) -- vanilla 0.5 + neighbouring_base_chunk_coefficient = 0.35 - (global.Natural_Evolution_Counter / 1000) -- vanilla 0.4 + + settler_Group_Min_Size = 14 + settler_Group_Max_Size = 28 + + + + elseif Expansion_State == "Phase 7" then + ----- Harder Ending + Harder_Endgame(1.5,2000) + ----- + + min_Base_Spacing = min_Base_Spacing - 1 + max_Expansion_Distance = max_Expansion_Distance + 10 + + building_coefficient = 0.1 - (global.Natural_Evolution_Counter / 1000) -- vanilla 0.1 + other_base_coefficient = 1.8 - (global.Natural_Evolution_Counter / 1000) -- vanilla 2.0 + neighbouring_chunk_coefficient = 0.45 - (global.Natural_Evolution_Counter / 1000) -- vanilla 0.5 + neighbouring_base_chunk_coefficient = 0.35 - (global.Natural_Evolution_Counter / 1000) -- vanilla 0.4 + + settler_Group_Min_Size = 16 + settler_Group_Max_Size = 36 + + + + elseif Expansion_State == "Phase 8" then + ----- Harder Ending + Harder_Endgame(1.5,2500) + ----- + + min_Base_Spacing = min_Base_Spacing - 1 + max_Expansion_Distance = max_Expansion_Distance + 11 + + building_coefficient = 0.08 - (global.Natural_Evolution_Counter / 1000) -- vanilla 0.1 + other_base_coefficient = 1.8 - (global.Natural_Evolution_Counter / 1000) -- vanilla 2.0 + neighbouring_chunk_coefficient = 0.4 - (global.Natural_Evolution_Counter / 1000) -- vanilla 0.5 + neighbouring_base_chunk_coefficient = 0.32 - (global.Natural_Evolution_Counter / 1000) -- vanilla 0.4 + + settler_Group_Min_Size = 20 + settler_Group_Max_Size = 44 + + + + elseif Expansion_State == "Phase 9" then + ----- Harder Ending + Harder_Endgame(2,3000) + ----- + + min_Base_Spacing = min_Base_Spacing - 2 + max_Expansion_Distance = max_Expansion_Distance + 13 + + building_coefficient = 0.06 - (global.Natural_Evolution_Counter / 1000) -- vanilla 0.1 + other_base_coefficient = 1.6 - (global.Natural_Evolution_Counter / 1000) -- vanilla 2.0 + neighbouring_chunk_coefficient = 0.38 - (global.Natural_Evolution_Counter / 1000) -- vanilla 0.5 + neighbouring_base_chunk_coefficient = 0.32 - (global.Natural_Evolution_Counter / 1000) -- vanilla 0.4 + + settler_Group_Min_Size = 22 + settler_Group_Max_Size = 56 + + + + elseif Expansion_State == "Phase 10" then + ----- Harder Ending + Harder_Endgame(2,3000) + ----- + + min_Base_Spacing = min_Base_Spacing - 2 + max_Expansion_Distance = max_Expansion_Distance + 15 + + building_coefficient = 0.04 - (global.Natural_Evolution_Counter / 1000) -- vanilla 0.1 + other_base_coefficient = 1.4 - (global.Natural_Evolution_Counter / 1000) -- vanilla 2.0 + neighbouring_chunk_coefficient = 0.34 - (global.Natural_Evolution_Counter / 1000) -- vanilla 0.5 + neighbouring_base_chunk_coefficient = 0.3 - (global.Natural_Evolution_Counter / 1000) -- vanilla 0.4 + + settler_Group_Min_Size = 30 + settler_Group_Max_Size = 75 + + enemy_speedup = NE_Expansion_Config.Enemy_Speedup_Endgame + + + elseif Expansion_State == "Armageddon" then + ----- Harder Ending + Harder_Endgame(2.5,3000) + ----- + + min_Base_Spacing = min_Base_Spacing - 2 + max_Expansion_Distance = max_Expansion_Distance + 20 + + building_coefficient = 0.04 - (global.Natural_Evolution_Counter / 1000) -- vanilla 0.1 + other_base_coefficient = 1.0 - (global.Natural_Evolution_Counter / 1000) -- vanilla 2.0 + neighbouring_chunk_coefficient = 0.3 - (global.Natural_Evolution_Counter / 1000) -- vanilla 0.5 + neighbouring_base_chunk_coefficient = 0.3 - (global.Natural_Evolution_Counter / 1000) -- vanilla 0.4 + + settler_Group_Min_Size = 100 + settler_Group_Max_Size = 200 + + enemy_speedup = NE_Expansion_Config.Enemy_Speedup_Endgame + + + end + + global.Natural_Evolution_state = Expansion_State + + if Expansion_State ~= "Peaceful" then + -- adjust the expansion settings based on any customizations from the config settings, making sure they stay above zero + + evolution_Timer = (NE_Expansion_Config.Evolution_Timer * 3600) + + settler_Group_Min_Size = math.max(1, settler_Group_Min_Size * NE_Expansion_Config.Settler_Group_Size) + settler_Group_Max_Size = math.max(1, settler_Group_Max_Size * NE_Expansion_Config.Settler_Group_Size) + + + -- apply the expansion settings + Natural_Evolution_Expansion_Settings(evolution_Timer, min_Base_Spacing, max_Expansion_Distance, building_coefficient, settler_Group_Min_Size, settler_Group_Max_Size, max_Group_Radius, min_Group_Radius, enemy_speedup, other_base_coefficient, neighbouring_chunk_coefficient, neighbouring_base_chunk_coefficient) + + end + + end + +end + + +--------------------------------------------- +script.on_init(On_Init) +--script.on_load(On_Load) +script.on_configuration_changed(On_Change) + +--------------------------------------------- +--- DeBug Messages +function writeDebug(message) + if NE_Expansion_Config.QCCode then + for i, player in pairs(game.players) do + player.print(tostring(message)) + end + end +end diff --git a/Natural_Evolution_Expansion_6.3.0/data-updates.lua b/Natural_Evolution_Expansion_6.3.1/data-updates.lua similarity index 94% rename from Natural_Evolution_Expansion_6.3.0/data-updates.lua rename to Natural_Evolution_Expansion_6.3.1/data-updates.lua index 26eadd4..b236af1 100644 --- a/Natural_Evolution_Expansion_6.3.0/data-updates.lua +++ b/Natural_Evolution_Expansion_6.3.1/data-updates.lua @@ -1,65 +1,66 @@ - -require ("config") -require ("libs.detectmod") --Detect supported Mods, Bob's Enemies and others -require ("libs.NE_Functions") - ---- Got tierd of reaching limits... -if NE_Expansion_Config.LongReach or NE_Expansion_Config.QCCode then - if data.raw.player.player.build_distance < 24 then - data.raw.player.player.build_distance = 24 - data.raw.player.player.reach_distance = 20 - data.raw.player.player.reach_resource_distance = 20 - data.raw.player.player.drop_item_distance = 20 - end -end - --- cause pollution to spread farther -data.raw["map-settings"]["map-settings"].pollution.diffusion_ratio = 0.04 -data.raw["map-settings"]["map-settings"].pollution.min_to_diffuse = 10 - - - ----- Evolution Modifications ---------------------------------- -if NE_Expansion_Config.EvolutionFactor then - - -- TIME: Only 75% of vanilla - -- percentual increase in the evolve factor for every second (60 ticks). Default = 0.000004 - data.raw["map-settings"]["map-settings"]["enemy_evolution"].time_factor = data.raw["map-settings"]["map-settings"]["enemy_evolution"].time_factor * 0.75 - - -- POLLUTION: 2x times the vanilla Pollution Evolution, so don't pollute! - -- percentual increase in the evolve factor for 1000 PU. Default = 0.000015 - data.raw["map-settings"]["map-settings"]["enemy_evolution"].pollution_factor = data.raw["map-settings"]["map-settings"]["enemy_evolution"].pollution_factor * 2.0 - - -- KILLING EMENY SPAWNERS: 10% of vanilla. You are going to kill a lot more bases... - -- percentual increase in the evolve factor for every destroyed spawner. Default = 0.002 - data.raw["map-settings"]["map-settings"]["enemy_evolution"].destroy_factor = data.raw["map-settings"]["map-settings"]["enemy_evolution"].destroy_factor * 0.1 - -end ----- END Evolution Modifications ---------------------------------- - - - -if NE_Expansion_Config.ScienceCost then - - --- Science Pack Cost Tweaks - NE_Functions.Ingredient_Multiplier("science-pack-1",2) - NE_Functions.Ingredient_Multiplier("science-pack-2",2) - NE_Functions.Ingredient_Multiplier("science-pack-3",2) - NE_Functions.Ingredient_Multiplier("alien-science-pack",2) - - --- If Bob Tech - NE_Functions.Ingredient_Multiplier("science-pack-4",2) - -end - - - --- Rocket Part Cost Tweaks -if NE_Expansion_Config.HarderEndGame then - NE_Functions.Ingredient_Multiplier("low-density-structure",2) - NE_Functions.Ingredient_Multiplier("rocket-fuel",2) - NE_Functions.Ingredient_Multiplier("rocket-control-unit",2) - NE_Functions.Ingredient_Multiplier("rocket-part",2) - NE_Functions.Ingredient_Multiplier("satellite",2) - -end - + +require ("config") +require ("libs.detectmod") --Detect supported Mods, Bob's Enemies and others +require ("libs.NE_Functions") + +--- Got tierd of reaching limits... +if NE_Expansion_Config.LongReach or NE_Expansion_Config.QCCode then + if data.raw.player.player.build_distance < 24 then + data.raw.player.player.build_distance = 24 + data.raw.player.player.reach_distance = 20 + data.raw.player.player.reach_resource_distance = 20 + data.raw.player.player.drop_item_distance = 20 + end +end + +-- cause pollution to spread farther +data.raw["map-settings"]["map-settings"].pollution.diffusion_ratio = 0.04 +data.raw["map-settings"]["map-settings"].pollution.min_to_diffuse = 25 +data.raw["map-settings"]["map-settings"].min_pollution_to_damage_trees = 1500 + + + +---- Evolution Modifications ---------------------------------- +if NE_Expansion_Config.EvolutionFactor then + + -- TIME: Only 75% of vanilla + -- percentual increase in the evolve factor for every second (60 ticks). Default = 0.000004 + data.raw["map-settings"]["map-settings"]["enemy_evolution"].time_factor = data.raw["map-settings"]["map-settings"]["enemy_evolution"].time_factor * 0.75 + + -- POLLUTION: 2x times the vanilla Pollution Evolution, so don't pollute! + -- percentual increase in the evolve factor for 1000 PU. Default = 0.000015 + data.raw["map-settings"]["map-settings"]["enemy_evolution"].pollution_factor = data.raw["map-settings"]["map-settings"]["enemy_evolution"].pollution_factor * 2.0 + + -- KILLING EMENY SPAWNERS: 10% of vanilla. You are going to kill a lot more bases... + -- percentual increase in the evolve factor for every destroyed spawner. Default = 0.002 + data.raw["map-settings"]["map-settings"]["enemy_evolution"].destroy_factor = data.raw["map-settings"]["map-settings"]["enemy_evolution"].destroy_factor * 0.1 + +end +---- END Evolution Modifications ---------------------------------- + + + +if NE_Expansion_Config.ScienceCost then + + --- Science Pack Cost Tweaks + NE_Functions.Ingredient_Multiplier("science-pack-1",2) + NE_Functions.Ingredient_Multiplier("science-pack-2",2) + NE_Functions.Ingredient_Multiplier("science-pack-3",2) + NE_Functions.Ingredient_Multiplier("alien-science-pack",2) + + --- If Bob Tech + NE_Functions.Ingredient_Multiplier("science-pack-4",2) + +end + + + --- Rocket Part Cost Tweaks +if NE_Expansion_Config.HarderEndGame then + NE_Functions.Ingredient_Multiplier("low-density-structure",2) + NE_Functions.Ingredient_Multiplier("rocket-fuel",2) + NE_Functions.Ingredient_Multiplier("rocket-control-unit",2) + NE_Functions.Ingredient_Multiplier("rocket-part",2) + NE_Functions.Ingredient_Multiplier("satellite",2) + +end + diff --git a/Natural_Evolution_Expansion_6.3.0/data.lua b/Natural_Evolution_Expansion_6.3.1/data.lua similarity index 97% rename from Natural_Evolution_Expansion_6.3.0/data.lua rename to Natural_Evolution_Expansion_6.3.1/data.lua index 52db805..50bc1c5 100644 --- a/Natural_Evolution_Expansion_6.3.0/data.lua +++ b/Natural_Evolution_Expansion_6.3.1/data.lua @@ -1,8 +1,8 @@ - -if not NE_Expansion_Config then NE_Expansion_Config = {} end -if not NE_Expansion_Config.mod then NE_Expansion_Config.mod = {} end -if not NE_Functions then NE_Functions = {} end - -require ("config") -require ("libs.detectmod") --Detect supported Mods, Bob's Enemies and others + +if not NE_Expansion_Config then NE_Expansion_Config = {} end +if not NE_Expansion_Config.mod then NE_Expansion_Config.mod = {} end +if not NE_Functions then NE_Functions = {} end + +require ("config") +require ("libs.detectmod") --Detect supported Mods, Bob's Enemies and others require ("libs.NE_Functions") \ No newline at end of file diff --git a/Natural_Evolution_Expansion_6.3.0/info.json b/Natural_Evolution_Expansion_6.3.1/info.json similarity index 94% rename from Natural_Evolution_Expansion_6.3.0/info.json rename to Natural_Evolution_Expansion_6.3.1/info.json index cc15a9b..a7a337c 100644 --- a/Natural_Evolution_Expansion_6.3.0/info.json +++ b/Natural_Evolution_Expansion_6.3.1/info.json @@ -1,11 +1,11 @@ -{ - "name": "Natural_Evolution_Expansion", - "version": "6.3.0", - "title": "Natural Evolution Expansion", - "author": "TheSAguy", - "contact": "vvwmisc@hotmail.com", - "homepage": "http://www.factorioforums.com/forum/viewtopic.php?f=91&t=13562&p", - "description": "Manages Evolution & Expansion. Expansion now comes in Phases: Peacefull to Armageddron. At each Phase the Expansion becomes largeer and tougher. Part of the N.E. Mods, but can be used as Standalone. Please visit home page for more details.", - "dependencies": ["base >= 0.14", "? EvoGUI"], - "factorio_version": "0.14" +{ + "name": "Natural_Evolution_Expansion", + "version": "6.3.1", + "title": "Natural Evolution Expansion", + "author": "TheSAguy", + "contact": "vvwmisc@hotmail.com", + "homepage": "http://www.factorioforums.com/forum/viewtopic.php?f=91&t=13562&p", + "description": "Manages Evolution & Expansion. Expansion now comes in Phases: Peacefull to Armageddron. At each Phase the Expansion becomes largeer and tougher. Part of the N.E. Mods, but can be used as Standalone. Please visit home page for more details.", + "dependencies": ["base >= 0.14", "? EvoGUI"], + "factorio_version": "0.14" } \ No newline at end of file diff --git a/Natural_Evolution_Expansion_6.3.0/libs/EvoGUI.lua b/Natural_Evolution_Expansion_6.3.1/libs/EvoGUI.lua similarity index 92% rename from Natural_Evolution_Expansion_6.3.0/libs/EvoGUI.lua rename to Natural_Evolution_Expansion_6.3.1/libs/EvoGUI.lua index 9f1f8f3..363ee8a 100644 --- a/Natural_Evolution_Expansion_6.3.0/libs/EvoGUI.lua +++ b/Natural_Evolution_Expansion_6.3.1/libs/EvoGUI.lua @@ -1,114 +1,120 @@ -require ("libs/event") - -EvoGUI = {} - - - - function EvoGUI.create_Evolution_Rate_Text() - local diff = game.evolution_factor - global.exponential_moving_average - -- percentage is decimal * 100, * 60 for per minute value - local evo_rate_per_min = math.abs(diff * 100 * 60) - - -- this nonsense is because string.format(%.3f) is not safe in MP across platforms, but integer math is - local whole_number = math.floor(evo_rate_per_min) - local fractional_component = math.floor((evo_rate_per_min - whole_number) * 1000) - local text = string.format("%d.%04d%%", whole_number, fractional_component) - if diff > 0 then - return "Evolution Rate: +" .. text .. " / min" - else - return "Evolution Rate: -" .. text .. " / min" - end - end - - - function EvoGUI.create_Evolution_Text() - local text = "Evolution State: " .. global.Natural_Evolution_state - if global.Natural_Evolution_state ~= "Peaceful" then - text = text .. " ( " .. math.floor(global.Natural_Evolution_Timer / 60) .. "s )" - else - text = text .. " ( " .. math.floor(global.Peace_Timer / 60) .. "s )" - end - return text - end - - - function EvoGUI.create_Phase_Text() - - local whole_number = math.floor(global.Total_Phase_Evo_Deduction*100) - local fractional_component = math.floor((global.Total_Phase_Evo_Deduction*100 - whole_number) * 1000) - local text2 = string.format("%d.%03d%%", whole_number, fractional_component) - local text = "Evo Deduction from Exp Phases: " .. text2 - - return text - end - - - function EvoGUI.calculate_Evolution_Rate_Color() - local diff = game.evolution_factor - global.exponential_moving_average - - if diff > 0 then - local red = (100 * 255 * diff) / 0.0035 - return { r = math.max(0, math.min(255, math.floor( red ))), g = math.max(0, math.min(255, math.floor( 255 - red ))), b = 0 } - else - return { r = 0, g = 255, b = 0 } - end - end - - - - function EvoGUI.setup() - if remote.interfaces.EvoGUI and remote.interfaces.EvoGUI.create_remote_sensor then - global.evo_gui.detected = true - - remote.call("EvoGUI", "create_remote_sensor", { - mod_name = "Natural Evolution", - name = "evolution_state", - text = "Evolution State:", - caption = "Evolution State" - }) - remote.call("EvoGUI", "create_remote_sensor", { - mod_name = "Natural Evolution", - name = "evolution_rate", - text = "Evolution Rate:", - caption = "Evolution Rate" - }) - remote.call("EvoGUI", "create_remote_sensor", { - mod_name = "Natural Evolution", - name = "phase_deduction", - text = "Total Phase Evo Deduction:", - caption = "Total Phase Evo Deduction" - }) - EvoGUI.update_gui() - end - end - - -Event.register(defines.events.on_tick, function(event) - if not global.evo_gui then global.evo_gui = {} end - if not global.exponential_moving_average then - global.exponential_moving_average = game.evolution_factor - end - - if not global.evo_gui.detected then - EvoGUI.setup() - end - if global.evo_gui.detected and game.tick % 10 == 0 then - if remote.interfaces.EvoGUI then - EvoGUI.update_gui() - global.exponential_moving_average = global.exponential_moving_average + (0.8 * (game.evolution_factor - global.exponential_moving_average)) - end - end - end) - - function EvoGUI.update_gui() - -- figure out what color to make the text here (if any) - local color = { r = 255, g = 255, b = 255 } - - remote.call("EvoGUI", "update_remote_sensor", "evolution_state", EvoGUI.create_Evolution_Text(), color) - remote.call("EvoGUI", "update_remote_sensor", "evolution_rate", EvoGUI.create_Evolution_Rate_Text(), EvoGUI.calculate_Evolution_Rate_Color()) - remote.call("EvoGUI", "update_remote_sensor", "phase_deduction", EvoGUI.create_Phase_Text(), color) - end - - - +require ("libs/event") + +EvoGUI = {} + + + + if not global.Total_Phase_Evo_Deduction then + global.Total_Phase_Evo_Deduction = 0 + elseif global.Total_Phase_Evo_Deduction < 0 then + global.Total_Phase_Evo_Deduction = 0 + end + + function EvoGUI.create_Evolution_Rate_Text() + local diff = game.evolution_factor - global.exponential_moving_average + -- percentage is decimal * 100, * 60 for per minute value + local evo_rate_per_min = math.abs(diff * 100 * 60) + + -- this nonsense is because string.format(%.3f) is not safe in MP across platforms, but integer math is + local whole_number = math.floor(evo_rate_per_min) + local fractional_component = math.floor((evo_rate_per_min - whole_number) * 1000) + local text = string.format("%d.%04d%%", whole_number, fractional_component) + if diff > 0 then + return "Evolution Rate: +" .. text .. " / min" + else + return "Evolution Rate: -" .. text .. " / min" + end + end + + + function EvoGUI.create_Evolution_Text() + local text = "Evolution State: " .. global.Natural_Evolution_state + if global.Natural_Evolution_state ~= "Peaceful" then + text = text .. " ( " .. math.floor(global.Natural_Evolution_Timer / 60) .. "s )" + else + text = text .. " ( " .. math.floor(global.Peace_Timer / 60) .. "s )" + end + return text + end + + + function EvoGUI.create_Phase_Text() + + local whole_number = math.floor(global.Total_Phase_Evo_Deduction*100) + local fractional_component = math.floor((global.Total_Phase_Evo_Deduction*100 - whole_number) * 1000) + local text2 = string.format("%d.%03d%%", whole_number, fractional_component) + local text = "Evo Deduction from Exp Phases: " .. text2 + + return text + end + + + function EvoGUI.calculate_Evolution_Rate_Color() + local diff = game.evolution_factor - global.exponential_moving_average + + if diff > 0 then + local red = (100 * 255 * diff) / 0.0035 + return { r = math.max(0, math.min(255, math.floor( red ))), g = math.max(0, math.min(255, math.floor( 255 - red ))), b = 0 } + else + return { r = 0, g = 255, b = 0 } + end + end + + + + function EvoGUI.setup() + if remote.interfaces.EvoGUI and remote.interfaces.EvoGUI.create_remote_sensor then + global.evo_gui.detected = true + + remote.call("EvoGUI", "create_remote_sensor", { + mod_name = "Natural Evolution", + name = "evolution_state", + text = "Evolution State:", + caption = "Evolution State" + }) + remote.call("EvoGUI", "create_remote_sensor", { + mod_name = "Natural Evolution", + name = "evolution_rate", + text = "Evolution Rate:", + caption = "Evolution Rate" + }) + remote.call("EvoGUI", "create_remote_sensor", { + mod_name = "Natural Evolution", + name = "phase_deduction", + text = "Total Phase Evo Deduction:", + caption = "Total Phase Evo Deduction" + }) + EvoGUI.update_gui() + end + end + + +Event.register(defines.events.on_tick, function(event) + if not global.evo_gui then global.evo_gui = {} end + if not global.exponential_moving_average then + global.exponential_moving_average = game.evolution_factor + end + + if not global.evo_gui.detected then + EvoGUI.setup() + end + if global.evo_gui.detected and game.tick % 10 == 0 then + if remote.interfaces.EvoGUI then + EvoGUI.update_gui() + global.exponential_moving_average = global.exponential_moving_average + (0.8 * (game.evolution_factor - global.exponential_moving_average)) + end + end + end) + + function EvoGUI.update_gui() + -- figure out what color to make the text here (if any) + local color = { r = 255, g = 255, b = 255 } + + remote.call("EvoGUI", "update_remote_sensor", "evolution_state", EvoGUI.create_Evolution_Text(), color) + remote.call("EvoGUI", "update_remote_sensor", "evolution_rate", EvoGUI.create_Evolution_Rate_Text(), EvoGUI.calculate_Evolution_Rate_Color()) + remote.call("EvoGUI", "update_remote_sensor", "phase_deduction", EvoGUI.create_Phase_Text(), color) + end + + + return EvoGUI \ No newline at end of file diff --git a/Natural_Evolution_Buildings_6.3.0/libs/NE_Functions.lua b/Natural_Evolution_Expansion_6.3.1/libs/NE_Functions.lua similarity index 96% rename from Natural_Evolution_Buildings_6.3.0/libs/NE_Functions.lua rename to Natural_Evolution_Expansion_6.3.1/libs/NE_Functions.lua index 72b488b..c98f641 100644 --- a/Natural_Evolution_Buildings_6.3.0/libs/NE_Functions.lua +++ b/Natural_Evolution_Expansion_6.3.1/libs/NE_Functions.lua @@ -1,71 +1,71 @@ ------------------------ ---NE Functions-- ------------------------ - ---- Multiplies ingridient -function NE_Functions.Ingredient_Multiplier(Input, Multiplier) - if data.raw.recipe[Input] ~= nil then - for _, recipe in pairs({Input}) do - for _, ingredient in pairs(data.raw.recipe[recipe].ingredients) do - if ingredient[2] ~= nil then - ingredient[2] = ingredient[2] * Multiplier - elseif ingredient.amount ~= nil then - ingredient.amount = ingredient.amount * Multiplier - end - end - end - end -end - --- Adds a resistance of a single damage type to an entity -function NE_Functions.Add_Damage_Resists(D_Type,Raw,percent) - if data.raw["damage-type"][D_Type] ~= nil then - local Resist = {type = D_Type, percent = percent} - for i,d in pairs(Raw) do - if d.resistances == nil then - d.resistances = {} - table.insert(d.resistances, Resist) - else - local found = false - for _, resistance in pairs(d.resistances) do - if resistance.type == Resist.type and resistance.percent then - if resistance.percent < Resist.percent then - resistance.percent = Resist.percent - end - found = true - end - end - - if not found then - table.insert(d.resistances, Resist) - end - end - end - end -end - - --- Adds a resistance of all damage types to an entity -function NE_Functions.Add_ALL_Damage_Resists(Raw,Percent) - if Raw ~= nil then - for k, v in pairs(data.raw["damage-type"]) do - NE_Functions.Add_Damage_Resists(v.name, Raw, Percent) - end - end -end - - ----- Makes it that Biters don't attack rail. Side effect though is that rails don't show up on mini-map or blue-prints -function NE_Functions.Biters_Dont_Attack(Raw) - for i,d in pairs(Raw) do - local newflags = {} - for pos=1,#d.flags do - if not (d.flags[pos] == "player-creation") then - table.insert(newflags, d.flags[pos]) - end - end - d.flags = newflags - - end -end - +----------------------- +--NE Functions-- +----------------------- + +--- Multiplies ingridient +function NE_Functions.Ingredient_Multiplier(Input, Multiplier) + if data.raw.recipe[Input] ~= nil then + for _, recipe in pairs({Input}) do + for _, ingredient in pairs(data.raw.recipe[recipe].ingredients) do + if ingredient[2] ~= nil then + ingredient[2] = ingredient[2] * Multiplier + elseif ingredient.amount ~= nil then + ingredient.amount = ingredient.amount * Multiplier + end + end + end + end +end + +-- Adds a resistance of a single damage type to an entity +function NE_Functions.Add_Damage_Resists(D_Type,Raw,percent) + if data.raw["damage-type"][D_Type] ~= nil then + local Resist = {type = D_Type, percent = percent} + for i,d in pairs(Raw) do + if d.resistances == nil then + d.resistances = {} + table.insert(d.resistances, Resist) + else + local found = false + for _, resistance in pairs(d.resistances) do + if resistance.type == Resist.type and resistance.percent then + if resistance.percent < Resist.percent then + resistance.percent = Resist.percent + end + found = true + end + end + + if not found then + table.insert(d.resistances, Resist) + end + end + end + end +end + + +-- Adds a resistance of all damage types to an entity +function NE_Functions.Add_ALL_Damage_Resists(Raw,Percent) + if Raw ~= nil then + for k, v in pairs(data.raw["damage-type"]) do + NE_Functions.Add_Damage_Resists(v.name, Raw, Percent) + end + end +end + + +---- Makes it that Biters don't attack rail. Side effect though is that rails don't show up on mini-map or blue-prints +function NE_Functions.Biters_Dont_Attack(Raw) + for i,d in pairs(Raw) do + local newflags = {} + for pos=1,#d.flags do + if not (d.flags[pos] == "player-creation") then + table.insert(newflags, d.flags[pos]) + end + end + d.flags = newflags + + end +end + diff --git a/Natural_Evolution_Buildings_6.3.0/libs/core.lua b/Natural_Evolution_Expansion_6.3.1/libs/core.lua similarity index 100% rename from Natural_Evolution_Buildings_6.3.0/libs/core.lua rename to Natural_Evolution_Expansion_6.3.1/libs/core.lua diff --git a/Natural_Evolution_Expansion_6.3.0/libs/detectmod.lua b/Natural_Evolution_Expansion_6.3.1/libs/detectmod.lua similarity index 96% rename from Natural_Evolution_Expansion_6.3.0/libs/detectmod.lua rename to Natural_Evolution_Expansion_6.3.1/libs/detectmod.lua index 653c77e..1b480ce 100644 --- a/Natural_Evolution_Expansion_6.3.0/libs/detectmod.lua +++ b/Natural_Evolution_Expansion_6.3.1/libs/detectmod.lua @@ -1,33 +1,33 @@ ------------------------ ---Cross Mod Detection-- ------------------------ - -if not NE_Expansion_Config then NE_Expansion_Config = {} end -if not NE_Expansion_Config.mod then NE_Expansion_Config.mod = {} end - ------------------------ - - - ---Detect Bob's Enemies -if data.raw["unit"]["bob-big-piercing-biter"] ~= nil and data.raw["unit"]["bob-big-electric-spitter"] ~= nil then - NE_Expansion_Config.mod.BobEnemies=true -else - NE_Expansion_Config.mod.BobEnemies=false -end - - ---Detect Bob's Tech -if data.raw["tool"]["science-pack-4"] ~= nil then - NE_Expansion_Config.mod.BobTech=true -else - NE_Expansion_Config.mod.BobTech=false -end - - ---Detect Supreme Warfare -if data.raw["technology"]["artillery"] ~= nil and data.raw["technology"]["advanced-artillery"] ~= nil then - NE_Expansion_Config.mod.SupremeWarfare=true -else - NE_Expansion_Config.mod.SupremeWarfare=false +----------------------- +--Cross Mod Detection-- +----------------------- + +if not NE_Expansion_Config then NE_Expansion_Config = {} end +if not NE_Expansion_Config.mod then NE_Expansion_Config.mod = {} end + +----------------------- + + + +--Detect Bob's Enemies +if data.raw["unit"]["bob-big-piercing-biter"] ~= nil and data.raw["unit"]["bob-big-electric-spitter"] ~= nil then + NE_Expansion_Config.mod.BobEnemies=true +else + NE_Expansion_Config.mod.BobEnemies=false +end + + +--Detect Bob's Tech +if data.raw["tool"]["science-pack-4"] ~= nil then + NE_Expansion_Config.mod.BobTech=true +else + NE_Expansion_Config.mod.BobTech=false +end + + +--Detect Supreme Warfare +if data.raw["technology"]["artillery"] ~= nil and data.raw["technology"]["advanced-artillery"] ~= nil then + NE_Expansion_Config.mod.SupremeWarfare=true +else + NE_Expansion_Config.mod.SupremeWarfare=false end \ No newline at end of file diff --git a/Natural_Evolution_Buildings_6.3.0/libs/event.lua b/Natural_Evolution_Expansion_6.3.1/libs/event.lua similarity index 100% rename from Natural_Evolution_Buildings_6.3.0/libs/event.lua rename to Natural_Evolution_Expansion_6.3.1/libs/event.lua diff --git a/Bio_Industries_1.4.0/libs/functions.lua b/Natural_Evolution_Expansion_6.3.1/libs/functions.lua similarity index 97% rename from Bio_Industries_1.4.0/libs/functions.lua rename to Natural_Evolution_Expansion_6.3.1/libs/functions.lua index 56bdcb1..e87a40a 100644 --- a/Bio_Industries_1.4.0/libs/functions.lua +++ b/Natural_Evolution_Expansion_6.3.1/libs/functions.lua @@ -1,51 +1,51 @@ --- 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 - thxbob.lib.table_merge(table1[index], table2[index]) - else - table1[index] = value - end - end -end - - -function thxbob.lib.result_check(object) - if object then - if object.results == nil then - object.results = {} - end - - if object.result then - local item = thxbob.lib.item.basic_item({name = object.result}) - if object.result_count then - item.amount = object.result_count - object.result_count = nil - end - thxbob.lib.item.add_new(object.results, item) - - 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 - if not object.icon and data.raw[item.type][object.result].icon then - object.icon = data.raw[item.type][object.result].icon - end - if not object.subgroup 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].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 - log(object .. " does not exist.") - end -end - +-- 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 + thxbob.lib.table_merge(table1[index], table2[index]) + else + table1[index] = value + end + end +end + + +function thxbob.lib.result_check(object) + if object then + if object.results == nil then + object.results = {} + end + + if object.result then + local item = thxbob.lib.item.basic_item({name = object.result}) + if object.result_count then + item.amount = object.result_count + object.result_count = nil + end + thxbob.lib.item.add_new(object.results, item) + + 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 + if not object.icon and data.raw[item.type][object.result].icon then + object.icon = data.raw[item.type][object.result].icon + end + if not object.subgroup 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].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 + log(object .. " does not exist.") + end +end + diff --git a/Natural_Evolution_Buildings_6.3.0/libs/game.lua b/Natural_Evolution_Expansion_6.3.1/libs/game.lua similarity index 100% rename from Natural_Evolution_Buildings_6.3.0/libs/game.lua rename to Natural_Evolution_Expansion_6.3.1/libs/game.lua diff --git a/Natural_Evolution_Buildings_6.3.0/libs/item-functions.lua b/Natural_Evolution_Expansion_6.3.1/libs/item-functions.lua similarity index 96% rename from Natural_Evolution_Buildings_6.3.0/libs/item-functions.lua rename to Natural_Evolution_Expansion_6.3.1/libs/item-functions.lua index c25b191..fb1db4d 100644 --- a/Natural_Evolution_Buildings_6.3.0/libs/item-functions.lua +++ b/Natural_Evolution_Expansion_6.3.1/libs/item-functions.lua @@ -1,149 +1,149 @@ -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"} - 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 - - 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 - object = 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 - - +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"} + 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 + + 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 + object = 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 + + diff --git a/Natural_Evolution_Expansion_6.3.0/libs/legacy.lua b/Natural_Evolution_Expansion_6.3.1/libs/legacy.lua similarity index 96% rename from Natural_Evolution_Expansion_6.3.0/libs/legacy.lua rename to Natural_Evolution_Expansion_6.3.1/libs/legacy.lua index 9c1fc8b..68d9c73 100644 --- a/Natural_Evolution_Expansion_6.3.0/libs/legacy.lua +++ b/Natural_Evolution_Expansion_6.3.1/libs/legacy.lua @@ -1,186 +1,186 @@ -function thxbob.lib.basic_item(inputs) - return thxbob.lib.item.basic_item(inputs) -end - ---[[ Cannot be used in legacy, due to new group conflict. -function thxbob.lib.item(inputs) - return thxbob.lib.item.item(inputs) -end -]]-- - -function thxbob.lib.get_item_type(name) - return thxbob.lib.item.get_type(name) -end - -function thxbob.lib.get_basic_item_type(name) - return thxbob.lib.item.get_basic_type(name) -end - -function thxbob.lib.combine_items(item1_in, item2_in) - return thxbob.lib.item.combine(item1_in, item2_in) -end - -function thxbob.lib.add_item(list, item_in) - thxbob.lib.item.add(list, item_in) --increments amount if exists -end - -function thxbob.lib.add_new_item(list, item_in) - thxbob.lib.item.add_new(list, item_in) --ignores if exists -end - -function thxbob.lib.remove_item(list, item) - thxbob.lib.item.remove(list, item) -end - - - -function thxbob.lib.replace_science_pack (technology, old, new) - thxbob.lib.tech.replace_science_pack (technology, old, new) -end - -function thxbob.lib.add_new_science_pack (technology, pack, amount) - thxbob.lib.tech.add_new_science_pack (technology, pack, amount) -end - -function thxbob.lib.add_science_pack (technology, pack, amount) - thxbob.lib.tech.add_science_pack (technology, pack, amount) -end - -function thxbob.lib.remove_science_pack (technology, pack) - thxbob.lib.tech.remove_science_pack (technology, pack) -end - -function thxbob.lib.add_technology_recipe (technology, recipe) - thxbob.lib.tech.add_recipe_unlock (technology, recipe) -end - -function thxbob.lib.remove_technology_recipe (technology, recipe) - thxbob.lib.tech.remove_recipe_unlock (technology, recipe) -end - -function thxbob.lib.replace_technology_prerequisite (technology, old, new) - thxbob.lib.tech.replace_prerequisite (technology, old, new) -end - -function thxbob.lib.add_technology_prerequisite (technology, prerequisite) - thxbob.lib.tech.add_prerequisite (technology, prerequisite) -end - -function thxbob.lib.remove_technology_prerequisite (technology, prerequisite) - thxbob.lib.tech.remove_prerequisite (technology, prerequisite) -end - - - -function thxbob.lib.add_productivity_limitation(intermediate) - thxbob.lib.module.add_productivity_limitation(intermediate) -end - -function thxbob.lib.add_productivity_limitations(intermediates) - thxbob.lib.module.add_productivity_limitations(intermediates) -end - - - -function thxbob.lib.replace_recipe_item (recipe, old, new) - thxbob.lib.recipe.replace_ingredient(recipe, old, new) -end - -function thxbob.lib.replace_recipe_item_crude (recipe, old, new) - thxbob.lib.recipe.replace_ingredient_crude(recipe, old, new) -end - -function thxbob.lib.replace_item_all_recipes (old, new) - thxbob.lib.recipe.replace_ingredient_in_all(old, new) -end - -function thxbob.lib.remove_recipe_item (recipe, item) - thxbob.lib.recipe.remove_ingredient(recipe, item) -end - -function thxbob.lib.add_new_recipe_item (recipe, item) - thxbob.lib.recipe.add_new_ingredient(recipe, item) -end - -function thxbob.lib.add_recipe_item (recipe, item) - thxbob.lib.recipe.add_ingredient(recipe, item) -end - -function thxbob.lib.add_recipe_result(recipe, item) - thxbob.lib.recipe.add_result(recipe, item) -end - -function thxbob.lib.remove_recipe_result(recipe, item) - thxbob.lib.recipe.remove_result(recipe, item) -end - - - -function thxbob.lib.create_autoplace(inputs) - return thxbob.lib.resource.create_autoplace(inputs) -end - -function thxbob.lib.autoplace_peak(inputs) - return thxbob.lib.resource.autoplace_peak(inputs) -end - -function thxbob.lib.add_autoplace_peak(inputs) - thxbob.lib.resource.add_autoplace_peak(inputs) -end - -function thxbob.lib.add_item_to_resource(resource, item) - thxbob.lib.resource.add_result(resource, item) -end - -function thxbob.lib.remove_item_from_resource(resource, item) - thxbob.lib.resource.remove_result(resource, item) -end - -function thxbob.lib.stage_counts(stages, mult) - return thxbob.lib.resource.stage_counts(stages, mult) -end - -function thxbob.lib.ore_sprite(inputs) - return thxbob.lib.resource.sprite(inputs) -end - -function thxbob.lib.create_ore_item(inputs) - thxbob.lib.resource.create_item(inputs) -end - -function thxbob.lib.create_ore_resource(inputs) - thxbob.lib.resource.create(inputs) -end - -function thxbob.lib.create_ore_particle(inputs) - thxbob.lib.resource.create_particle(inputs) -end - -function thxbob.lib.generate_ore_data_stage(inputs) - thxbob.lib.resource.generate_data_stage(inputs) -end - -function thxbob.lib.generate_ore_updates_stage(inputs) - thxbob.lib.resource.generate_updates_stage(inputs) -end - -function thxbob.lib.generate_ore(inputs) - thxbob.lib.resource.generate(inputs) -end - - - -function thxbob.lib.machine_has_category(machine, category_in) - return thxbob.lib.machine.has_category(machine, category_in) -end - -function thxbob.lib.machine_add_category(machine, category) - thxbob.lib.machine.add_category(machine, category) -end - -function thxbob.lib.machine_type_if_category_add_category(machine_type, category, category_to_add) - thxbob.lib.machine.type_if_add_category(machine_type, category, category_to_add) -end - - - +function thxbob.lib.basic_item(inputs) + return thxbob.lib.item.basic_item(inputs) +end + +--[[ Cannot be used in legacy, due to new group conflict. +function thxbob.lib.item(inputs) + return thxbob.lib.item.item(inputs) +end +]]-- + +function thxbob.lib.get_item_type(name) + return thxbob.lib.item.get_type(name) +end + +function thxbob.lib.get_basic_item_type(name) + return thxbob.lib.item.get_basic_type(name) +end + +function thxbob.lib.combine_items(item1_in, item2_in) + return thxbob.lib.item.combine(item1_in, item2_in) +end + +function thxbob.lib.add_item(list, item_in) + thxbob.lib.item.add(list, item_in) --increments amount if exists +end + +function thxbob.lib.add_new_item(list, item_in) + thxbob.lib.item.add_new(list, item_in) --ignores if exists +end + +function thxbob.lib.remove_item(list, item) + thxbob.lib.item.remove(list, item) +end + + + +function thxbob.lib.replace_science_pack (technology, old, new) + thxbob.lib.tech.replace_science_pack (technology, old, new) +end + +function thxbob.lib.add_new_science_pack (technology, pack, amount) + thxbob.lib.tech.add_new_science_pack (technology, pack, amount) +end + +function thxbob.lib.add_science_pack (technology, pack, amount) + thxbob.lib.tech.add_science_pack (technology, pack, amount) +end + +function thxbob.lib.remove_science_pack (technology, pack) + thxbob.lib.tech.remove_science_pack (technology, pack) +end + +function thxbob.lib.add_technology_recipe (technology, recipe) + thxbob.lib.tech.add_recipe_unlock (technology, recipe) +end + +function thxbob.lib.remove_technology_recipe (technology, recipe) + thxbob.lib.tech.remove_recipe_unlock (technology, recipe) +end + +function thxbob.lib.replace_technology_prerequisite (technology, old, new) + thxbob.lib.tech.replace_prerequisite (technology, old, new) +end + +function thxbob.lib.add_technology_prerequisite (technology, prerequisite) + thxbob.lib.tech.add_prerequisite (technology, prerequisite) +end + +function thxbob.lib.remove_technology_prerequisite (technology, prerequisite) + thxbob.lib.tech.remove_prerequisite (technology, prerequisite) +end + + + +function thxbob.lib.add_productivity_limitation(intermediate) + thxbob.lib.module.add_productivity_limitation(intermediate) +end + +function thxbob.lib.add_productivity_limitations(intermediates) + thxbob.lib.module.add_productivity_limitations(intermediates) +end + + + +function thxbob.lib.replace_recipe_item (recipe, old, new) + thxbob.lib.recipe.replace_ingredient(recipe, old, new) +end + +function thxbob.lib.replace_recipe_item_crude (recipe, old, new) + thxbob.lib.recipe.replace_ingredient_crude(recipe, old, new) +end + +function thxbob.lib.replace_item_all_recipes (old, new) + thxbob.lib.recipe.replace_ingredient_in_all(old, new) +end + +function thxbob.lib.remove_recipe_item (recipe, item) + thxbob.lib.recipe.remove_ingredient(recipe, item) +end + +function thxbob.lib.add_new_recipe_item (recipe, item) + thxbob.lib.recipe.add_new_ingredient(recipe, item) +end + +function thxbob.lib.add_recipe_item (recipe, item) + thxbob.lib.recipe.add_ingredient(recipe, item) +end + +function thxbob.lib.add_recipe_result(recipe, item) + thxbob.lib.recipe.add_result(recipe, item) +end + +function thxbob.lib.remove_recipe_result(recipe, item) + thxbob.lib.recipe.remove_result(recipe, item) +end + + + +function thxbob.lib.create_autoplace(inputs) + return thxbob.lib.resource.create_autoplace(inputs) +end + +function thxbob.lib.autoplace_peak(inputs) + return thxbob.lib.resource.autoplace_peak(inputs) +end + +function thxbob.lib.add_autoplace_peak(inputs) + thxbob.lib.resource.add_autoplace_peak(inputs) +end + +function thxbob.lib.add_item_to_resource(resource, item) + thxbob.lib.resource.add_result(resource, item) +end + +function thxbob.lib.remove_item_from_resource(resource, item) + thxbob.lib.resource.remove_result(resource, item) +end + +function thxbob.lib.stage_counts(stages, mult) + return thxbob.lib.resource.stage_counts(stages, mult) +end + +function thxbob.lib.ore_sprite(inputs) + return thxbob.lib.resource.sprite(inputs) +end + +function thxbob.lib.create_ore_item(inputs) + thxbob.lib.resource.create_item(inputs) +end + +function thxbob.lib.create_ore_resource(inputs) + thxbob.lib.resource.create(inputs) +end + +function thxbob.lib.create_ore_particle(inputs) + thxbob.lib.resource.create_particle(inputs) +end + +function thxbob.lib.generate_ore_data_stage(inputs) + thxbob.lib.resource.generate_data_stage(inputs) +end + +function thxbob.lib.generate_ore_updates_stage(inputs) + thxbob.lib.resource.generate_updates_stage(inputs) +end + +function thxbob.lib.generate_ore(inputs) + thxbob.lib.resource.generate(inputs) +end + + + +function thxbob.lib.machine_has_category(machine, category_in) + return thxbob.lib.machine.has_category(machine, category_in) +end + +function thxbob.lib.machine_add_category(machine, category) + thxbob.lib.machine.add_category(machine, category) +end + +function thxbob.lib.machine_type_if_category_add_category(machine_type, category, category_to_add) + thxbob.lib.machine.type_if_add_category(machine_type, category, category_to_add) +end + + + diff --git a/Natural_Evolution_Expansion_6.3.0/libs/recipe-functions.lua b/Natural_Evolution_Expansion_6.3.1/libs/recipe-functions.lua similarity index 97% rename from Natural_Evolution_Expansion_6.3.0/libs/recipe-functions.lua rename to Natural_Evolution_Expansion_6.3.1/libs/recipe-functions.lua index 2d85652..6484e13 100644 --- a/Natural_Evolution_Expansion_6.3.0/libs/recipe-functions.lua +++ b/Natural_Evolution_Expansion_6.3.1/libs/recipe-functions.lua @@ -1,118 +1,118 @@ -if not thxbob.lib.recipe then thxbob.lib.recipe = {} end - - -function thxbob.lib.recipe.replace_ingredient(recipe, old, new) - if data.raw.recipe[recipe] and thxbob.lib.item.get_type(new) then - local amount = 0 - for i, ingredient in pairs(data.raw.recipe[recipe].ingredients) do - if ingredient[1] == old then - amount = ingredient[2] + amount - end - if ingredient.name == old then - amount = ingredient.amount + amount - end - end - if amount > 0 then - thxbob.lib.recipe.remove_ingredient(recipe, old) - thxbob.lib.recipe.add_ingredient(recipe, {new, amount}) - end - else - if not data.raw.recipe[recipe] then - log("Recipe " .. recipe .. " does not exist.") - end - if not thxbob.lib.item.get_type(new) then - log("Ingredient " .. new .. " does not exist.") - end - end -end - -function thxbob.lib.recipe.replace_ingredient_crude(recipe, old, new) - if data.raw.recipe[recipe] and thxbob.lib.item.get_basic_type(new) then - for i, ingredient in pairs(data.raw.recipe[recipe].ingredients) do - if ingredient[1] == old or ingredient.name == old then - local item = thxbob.lib.item.basic_item(ingredient) - item.name = new - item.type = thxbob.lib.item.get_basic_type(new) - ingredient = item - end - end - else - if not data.raw.recipe[recipe] then - log("Recipe " .. recipe .. " does not exist.") - end - if not thxbob.lib.item.get_type(new) then - log("Ingredient " .. new .. " does not exist.") - end - end -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 - log("Ingredient " .. new .. " does not exist.") - end -end - -function thxbob.lib.recipe.remove_ingredient(recipe, item) - if data.raw.recipe[recipe] then - thxbob.lib.item.remove(data.raw.recipe[recipe].ingredients, item) - else - log("Recipe " .. recipe .. " does not exist.") - 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 - thxbob.lib.item.add_new(data.raw.recipe[recipe].ingredients, thxbob.lib.item.basic_item(item)) - else - if not data.raw.recipe[recipe] then - log("Recipe " .. recipe .. " does not exist.") - end - if not thxbob.lib.item.get_type(item) then - log("Ingredient " .. thxbob.lib.item.basic_item(item).name .. " does not exist.") - 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 - thxbob.lib.item.add(data.raw.recipe[recipe].ingredients, thxbob.lib.item.basic_item(item)) - else - if not data.raw.recipe[recipe] then - log("Recipe " .. recipe .. " does not exist.") - end - if not thxbob.lib.item.get_basic_type(thxbob.lib.item.basic_item(item).name) then - log("Ingredient " .. thxbob.lib.item.basic_item(item).name .. " does not exist.") - 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 - thxbob.lib.result_check(data.raw.recipe[recipe]) - thxbob.lib.item.add(data.raw.recipe[recipe].results, item) - else - if not data.raw.recipe[recipe] then - log("Recipe " .. recipe .. " does not exist.") - end - if not thxbob.lib.item.get_basic_type(thxbob.lib.item.basic_item(item).name) then - log("Item " .. thxbob.lib.item.basic_item(item).name .. " does not exist.") - end - end -end - -function thxbob.lib.recipe.remove_result(recipe, item) - if data.raw.recipe[recipe] then - thxbob.lib.result_check(data.raw.recipe[recipe]) - thxbob.lib.item.remove(data.raw.recipe[recipe].results, item) - else - log("Recipe " .. recipe .. " does not exist.") - end -end - - - +if not thxbob.lib.recipe then thxbob.lib.recipe = {} end + + +function thxbob.lib.recipe.replace_ingredient(recipe, old, new) + if data.raw.recipe[recipe] and thxbob.lib.item.get_type(new) then + local amount = 0 + for i, ingredient in pairs(data.raw.recipe[recipe].ingredients) do + if ingredient[1] == old then + amount = ingredient[2] + amount + end + if ingredient.name == old then + amount = ingredient.amount + amount + end + end + if amount > 0 then + thxbob.lib.recipe.remove_ingredient(recipe, old) + thxbob.lib.recipe.add_ingredient(recipe, {new, amount}) + end + else + if not data.raw.recipe[recipe] then + log("Recipe " .. recipe .. " does not exist.") + end + if not thxbob.lib.item.get_type(new) then + log("Ingredient " .. new .. " does not exist.") + end + end +end + +function thxbob.lib.recipe.replace_ingredient_crude(recipe, old, new) + if data.raw.recipe[recipe] and thxbob.lib.item.get_basic_type(new) then + for i, ingredient in pairs(data.raw.recipe[recipe].ingredients) do + if ingredient[1] == old or ingredient.name == old then + local item = thxbob.lib.item.basic_item(ingredient) + item.name = new + item.type = thxbob.lib.item.get_basic_type(new) + ingredient = item + end + end + else + if not data.raw.recipe[recipe] then + log("Recipe " .. recipe .. " does not exist.") + end + if not thxbob.lib.item.get_type(new) then + log("Ingredient " .. new .. " does not exist.") + end + end +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 + log("Ingredient " .. new .. " does not exist.") + end +end + +function thxbob.lib.recipe.remove_ingredient(recipe, item) + if data.raw.recipe[recipe] then + thxbob.lib.item.remove(data.raw.recipe[recipe].ingredients, item) + else + log("Recipe " .. recipe .. " does not exist.") + 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 + thxbob.lib.item.add_new(data.raw.recipe[recipe].ingredients, thxbob.lib.item.basic_item(item)) + else + if not data.raw.recipe[recipe] then + log("Recipe " .. recipe .. " does not exist.") + end + if not thxbob.lib.item.get_type(item) then + log("Ingredient " .. thxbob.lib.item.basic_item(item).name .. " does not exist.") + 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 + thxbob.lib.item.add(data.raw.recipe[recipe].ingredients, thxbob.lib.item.basic_item(item)) + else + if not data.raw.recipe[recipe] then + log("Recipe " .. recipe .. " does not exist.") + end + if not thxbob.lib.item.get_basic_type(thxbob.lib.item.basic_item(item).name) then + log("Ingredient " .. thxbob.lib.item.basic_item(item).name .. " does not exist.") + 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 + thxbob.lib.result_check(data.raw.recipe[recipe]) + thxbob.lib.item.add(data.raw.recipe[recipe].results, item) + else + if not data.raw.recipe[recipe] then + log("Recipe " .. recipe .. " does not exist.") + end + if not thxbob.lib.item.get_basic_type(thxbob.lib.item.basic_item(item).name) then + log("Item " .. thxbob.lib.item.basic_item(item).name .. " does not exist.") + end + end +end + +function thxbob.lib.recipe.remove_result(recipe, item) + if data.raw.recipe[recipe] then + thxbob.lib.result_check(data.raw.recipe[recipe]) + thxbob.lib.item.remove(data.raw.recipe[recipe].results, item) + else + log("Recipe " .. recipe .. " does not exist.") + end +end + + + diff --git a/Natural_Evolution_Expansion_6.3.0/libs/technology-functions.lua b/Natural_Evolution_Expansion_6.3.1/libs/technology-functions.lua similarity index 97% rename from Natural_Evolution_Expansion_6.3.0/libs/technology-functions.lua rename to Natural_Evolution_Expansion_6.3.1/libs/technology-functions.lua index ad90d3f..2fe45d5 100644 --- a/Natural_Evolution_Expansion_6.3.0/libs/technology-functions.lua +++ b/Natural_Evolution_Expansion_6.3.1/libs/technology-functions.lua @@ -1,172 +1,172 @@ -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 - log("Technology " .. technology .. " does not exist.") - end - if not data.raw.tool[new] then - log("Science pack " .. new .. " does not exist.") - 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 - log("Technology " .. technology .. " does not exist.") - end - if not data.raw.tool[pack] then - log("Science pack " .. new .. " does not exist.") - 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 - log("Technology " .. technology .. " does not exist.") - end - if not data.raw.tool[pack] then - log("Science pack " .. new .. " does not exist.") - 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 - log("Technology " .. technology .. " does not exist.") - 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 - log("Technology " .. technology .. " does not exist.") - end - if not data.raw.recipe[recipe] then - log("Recipe " .. recipe .. " does not exist.") - 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 - log("Technology " .. technology .. " does not exist.") - 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 - log("Technology " .. technology .. " does not exist.") - end - if not data.raw.technology[new] then - log("Technology " .. new .. " does not exist.") - 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 - log("Technology " .. technology .. " does not exist.") - end - if not data.raw.technology[prerequisite] then - log("Technology " .. prerequisite .. " does not exist.") - 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 - log("Technology " .. technology .. " does not exist.") - end -end - - +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 + log("Technology " .. technology .. " does not exist.") + end + if not data.raw.tool[new] then + log("Science pack " .. new .. " does not exist.") + 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 + log("Technology " .. technology .. " does not exist.") + end + if not data.raw.tool[pack] then + log("Science pack " .. new .. " does not exist.") + 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 + log("Technology " .. technology .. " does not exist.") + end + if not data.raw.tool[pack] then + log("Science pack " .. new .. " does not exist.") + 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 + log("Technology " .. technology .. " does not exist.") + 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 + log("Technology " .. technology .. " does not exist.") + end + if not data.raw.recipe[recipe] then + log("Recipe " .. recipe .. " does not exist.") + 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 + log("Technology " .. technology .. " does not exist.") + 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 + log("Technology " .. technology .. " does not exist.") + end + if not data.raw.technology[new] then + log("Technology " .. new .. " does not exist.") + 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 + log("Technology " .. technology .. " does not exist.") + end + if not data.raw.technology[prerequisite] then + log("Technology " .. prerequisite .. " does not exist.") + 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 + log("Technology " .. technology .. " does not exist.") + end +end + + diff --git a/Natural_Evolution_Expansion_6.3.0/license.txt b/Natural_Evolution_Expansion_6.3.1/license.txt similarity index 94% rename from Natural_Evolution_Expansion_6.3.0/license.txt rename to Natural_Evolution_Expansion_6.3.1/license.txt index 263082f..ead2130 100644 --- a/Natural_Evolution_Expansion_6.3.0/license.txt +++ b/Natural_Evolution_Expansion_6.3.1/license.txt @@ -1,7 +1,10 @@ -Copyright (c) 2015 TheSAguy - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - +The MIT License (MIT) + + +Copyright (c) 2016 TheSAguy + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file diff --git a/ShuttleTrain_1.1.3/LICENSE b/ShuttleTrain_1.1.4/LICENSE similarity index 98% rename from ShuttleTrain_1.1.3/LICENSE rename to ShuttleTrain_1.1.4/LICENSE index 96eb20e..8ad857f 100644 --- a/ShuttleTrain_1.1.3/LICENSE +++ b/ShuttleTrain_1.1.4/LICENSE @@ -1,21 +1,21 @@ -The MIT License (MIT) - -Copyright (c) 2016 simwir - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. +The MIT License (MIT) + +Copyright (c) 2016 simwir + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/ShuttleTrain_1.1.3/control.lua b/ShuttleTrain_1.1.4/control.lua similarity index 97% rename from ShuttleTrain_1.1.3/control.lua rename to ShuttleTrain_1.1.4/control.lua index 803f1a7..ca3da18 100644 --- a/ShuttleTrain_1.1.3/control.lua +++ b/ShuttleTrain_1.1.4/control.lua @@ -1,309 +1,309 @@ -require "util" - -function init() - global.trainStations = global.trainStations or game.surfaces[1].find_entities_filtered{area = {{-10000,-10000}, {10000,10000}}, type="train-stop"} or {} - global.shuttleTrains = global.shuttleTrains or game.surfaces[1].find_entities_filtered{area = {{-10000,-10000}, {10000,10000}}, name="shuttleTrain"} or {} - load() -end - -function load() - global.version = "1.1.3" - global.filters = global.filters or {} - global.current_page = global.current_page or {} - global.filters.meta_data = {force_update = false } - global.filtered_stations = global.filtered_stations or {} - global.trainStations = global.trainStations or {} - global.shuttleTrains = global.shuttleTrains or {} - global.force_shuttle_call_GUI_update = true; -end - -script.on_init(init) -script.on_configuration_changed(load) - - -script.on_event(defines.events.on_tick, function(event) on_tick(event) end) -- register update function - -script.on_event(defines.events.on_player_created, function(event) - UpdateShuttleCallButton(game.players[event.player_index]) -end) - -script.on_event(defines.events.on_research_finished, function(event) - if event.research.name == "shuttleTrain_tech" then - for _, player in pairs(event.research.force.players) do - global.force_shuttle_call_GUI_update = true; - end - return - end -end) - -script.on_event(defines.events.on_player_driving_changed_state, function(event) - local player = game.players[event.player_index] - if (player.vehicle ~= nil and isShuttle(player.vehicle)) then - if (player.gui.left.shuttleTrain == nil) then - createGUI(player) - end - end - if (player.vehicle == nil and player.gui.left.shuttleTrain ~= nil) then - player.gui.left.shuttleTrain.destroy() - end -end) - -script.on_event(defines.events.on_train_changed_state, function(event) - if anyFrontMoverIsShuttle(event.train.locomotives["front_movers"]) and event.train.state == defines.train_state.wait_station and #event.train.schedule.records == 1 then - event.train.manual_mode = true - end -end) - -function anyFrontMoverIsShuttle(front_movers) - for _, loco in pairs(front_movers)do - if isShuttle(loco) then - return true - end - end - return false -end - -function isShuttle(locomotive) - if locomotive.name == "shuttleTrain" then - return true - else - return false - end -end - -function UpdateShuttleCallButton(player) - if player.force.technologies["shuttleTrain_tech"].researched then - if not player.gui.top.shuttle_call_Frame then - player.gui.top.add{type="frame", name="shuttle_call_Frame", direction = "vertical", style="st_top_button_frame_style"} - player.gui.top.shuttle_call_Frame.add{type="button", name="shuttle_call_button", style="st_top_image_button_style" } - end - else - if player.gui.top.shuttle_call_Frame then - player.gui.top.shuttle_call_Frame.destroy() - end - end -end - -function on_tick(event) - if global.force_shuttle_call_GUI_update then - for _, player in pairs(game.players) do - if player.gui.top.shuttleFrame then player.gui.top.shuttleFrame.destroy() end - UpdateShuttleCallButton(player) - end - global.force_shuttle_call_GUI_update = nil - end - if event == null or (event.tick % 60 == 0) then -- every second or when the function is called without arg - update_GUI_with_filter() - end -end - - -function update_GUI_with_filter() - for player_id,player in pairs(game.players) do - if player.gui.left.shuttleTrain then - if global.filters[player_id] ~= player.gui.left.shuttleTrain.filter.filter_txfield.text or global.filters.meta_data.force_update then - global.current_page[player_id] = 1 - global.filters[player_id] = player.gui.left.shuttleTrain.filter.filter_txfield.text or "" - global.filtered_stations[player_id] = {} - local names = {} - for _,station in pairs(global.trainStations) do - if (station.valid == false) then - removeTrainStopFromArray(station) - elseif string.find(string.upper(station.backer_name), string.upper(global.filters[player_id]), 1, true) and not names[station.backer_name] then -- case-insensitive - names[station.backer_name] = true -- allows to keep track of which station has already been added - table.insert(global.filtered_stations[player_id], station) - end - end - table.sort(global.filtered_stations[player_id], function (a, b) return a.backer_name < b.backer_name end) - updateStationsGUI(player) - end - end - end - global.filters.meta_data.force_update = false -end - - -script.on_event(defines.events.on_gui_click, function(event) - local player = game.players[event.player_index] - - if event.element.name == "shuttle_call_button" then - if player.gui.left.shuttleTrain == nil then - createGUI(player) - else - player.gui.left.shuttleTrain.destroy() - end - end - - if (player.gui.left.shuttleTrain == nil) then - return - end - - if (event.element.name == "nextPage") then - if (global.current_page[player.index] < math.floor((#global.filtered_stations[player.index] -1) / 10) + 1) then - global.current_page[player.index] = global.current_page[player.index] + 1 - updateStationsGUI(player) - end - end - - if (event.element.name == "prevPage") then - if (global.current_page[player.index] > 1) then - global.current_page[player.index] = global.current_page[player.index] -1 - updateStationsGUI(player) - end - end - - if (event.element.parent == player.gui.left.shuttleTrain.flow) then - - for key, station in pairs(global.trainStations) do - if (station.valid == false) then - removeTrainStopFromArray(station) - elseif (event.element.caption == station.backer_name) then - local schedule = {current = 1, records = {[1] = {time_to_wait = 30, station = event.element.caption}}} - if(player.vehicle ~= nil and isShuttle(player.vehicle)) then - player.vehicle.train.schedule= schedule - player.vehicle.train.manual_mode = false - elseif global.shuttleTrains ~= nil or global.shuttleTrains ~= {} then - if global.shuttleTrains[1] == nil then - global.shuttleTrains = game.surfaces[1].find_entities_filtered{area = {{-10000,-10000}, {10000,10000}}, name="shuttleTrain"} - end - local closestTrain - local distanceToClosestTrain = 99999999999999999999999999 - for key, train in pairs(global.shuttleTrains)do - local distance = util.distance(train.position, station.position) - if distance < distanceToClosestTrain then - if train.train.state == defines.train_state.no_schedule or train.train.state == defines.train_state.no_path or train.train.state == defines.train_state.wait_station or train.train.state == defines.train_state.manual_control then - closestTrain = train - distanceToClosestTrain = distance - end - end - end - if closestTrain == nil then - player.print("No unused shuttle train found") - else - player.print(string.format("Sent shuttle %q to station %q from %um away", closestTrain.backer_name, station.backer_name, distanceToClosestTrain)) - closestTrain.train.schedule = schedule - closestTrain.train.manual_mode = false - end - break; - end - end - end - end -end) - -function entityBuilt (event) - local entity = event.created_entity - if (entity.type == "train-stop") then - table.insert(global.trainStations, entity) - - global.filters.meta_data.force_update = true - on_tick(event) -- force an update of the GUI (in case someone is in the GUI) - - elseif isShuttle(entity) then - table.insert(global.shuttleTrains, entity) - end -end - -script.on_event({defines.events.on_built_entity, defines.events.on_robot_built_entity}, entityBuilt) - -function entityDestroyed (event) - local entity = event.entity - if (entity.type == "train-stop" and global.trainStations ~= nil) then - removeTrainStopFromArray(entity) - elseif isShuttle(entity) and global.shuttleTrains ~= nil then - for key, value in pairs(global.shuttleTrains) do - if entity == value then - table.remove(global.shuttleTrains, key) - end - end - end -end - -function removeTrainStopFromArray(entity) - for key, station in pairs(global.trainStations) do - if entity == station then - table.remove(global.trainStations, key) - global.filters.meta_data.force_update = true - on_tick() -- force an update of the GUI (in case someone is in the GUI) - end - end -end - -script.on_event(defines.events.on_entity_died, entityDestroyed) -script.on_event(defines.events.on_preplayer_mined_item, entityDestroyed) -script.on_event(defines.events.on_robot_pre_mined, entityDestroyed) - -function createGUI(player) - if player.gui.left.shuttleTrain ~= nil then return end - - player.gui.left.add{type = "frame", name = "shuttleTrain", direction = "vertical"} - player.gui.left.shuttleTrain.add{type = "flow", name = "title", direction = "horizontal"} - player.gui.left.shuttleTrain.title.add{type = "label", name = "label", caption = "Shuttle Train", style = "st_label_title"} - player.gui.left.shuttleTrain.add{type = "flow", name = "filter", direction = "horizontal"} - player.gui.left.shuttleTrain.filter.add{type = "label", name = "filter_lbl", caption = "Filter:", style = "st_label_simple_text"} - player.gui.left.shuttleTrain.filter.add{type = "textfield", name = "filter_txfield", style = "st_textfield"} - player.gui.left.shuttleTrain.add{type = "flow", name = "header", direction = "horizontal"} - player.gui.left.shuttleTrain.header.add{type = "button", name = "prevPage", caption = "<", style = "st-nav-button-arrow"} - player.gui.left.shuttleTrain.header.add{type = "button", name = "pageNumber", caption = "1", style = "st-nav-button-pagination"} - player.gui.left.shuttleTrain.header.add{type = "button", name = "nextPage", caption = ">", style = "st-nav-button-arrow"} - - player.gui.left.shuttleTrain.add{type="flow", name="flow", direction="vertical" } - player.gui.left.shuttleTrain.flow.add{type = "label", name = "loading", caption = "Loading Stations", style = "st_label_title"} - - global.filters.meta_data.force_update = true - update_GUI_with_filter() -- force an update of the GUI - - global.current_page[player.index] = 1 - if global.filters[player.index] then -- retrieve filter from data - player.gui.left.shuttleTrain.filter.filter_txfield.text = global.filters[player.index] - global.filters.meta_data.force_update = true - end -end - - -function updateStationsGUI(player) - - if (global.current_page[player.index] == 1) then - player.gui.left.shuttleTrain.header.prevPage.style = "st-nav-button-arrow-disabled" - else - player.gui.left.shuttleTrain.header.prevPage.style = "st-nav-button-arrow" - end - - - if (global.current_page[player.index] == math.floor((#global.filtered_stations[player.index] -1) / 10) + 1 or math.floor((#global.filtered_stations[player.index] -1) / 10) + 1 == 0) then - player.gui.left.shuttleTrain.header.nextPage.style = "st-nav-button-arrow-disabled" - else - player.gui.left.shuttleTrain.header.nextPage.style = "st-nav-button-arrow" - end - - if(player.gui.left.shuttleTrain.flow ~= nil) then - player.gui.left.shuttleTrain.flow.destroy() - end - - player.gui.left.shuttleTrain.add{type = "flow", name = "flow", direction = "vertical"} - - if #global.filtered_stations[player.index] == 0 then -- when no station match the search - player.gui.left.shuttleTrain.flow.add{type = "label", name = "loading", caption = "No station found", style = "st_label_title"} - player.gui.left.shuttleTrain.header.pageNumber.caption = "-/-" - else - player.gui.left.shuttleTrain.header.pageNumber.caption = global.current_page[player.index] .. "/" .. math.floor((#global.filtered_stations[player.index] -1) / 10) + 1 - end - - - if (global.filtered_stations[player.index] ~= nil or #global.filtered_stations[player.index] ~= 0) then - local stationsAdded = 0 - local startIndex = (global.current_page[player.index] -1) * 10 + 1 - while stationsAdded < 10 and global.filtered_stations[player.index][startIndex + stationsAdded] ~= nil do - local name = global.filtered_stations[player.index][startIndex + stationsAdded].backer_name - player.gui.left.shuttleTrain.flow.add{type = "button", name = stationsAdded+1, caption = name, style = "st-station-button"} - stationsAdded = stationsAdded + 1 - end - end -end - ---####### DEBUG ####### -function sendMessageToAllPlayers(message) - for _,player in pairs(game.players)do - player.print(message) - end -end +require "util" + +function init() + global.trainStations = global.trainStations or game.surfaces[1].find_entities_filtered{area = {{-10000,-10000}, {10000,10000}}, type="train-stop"} or {} + global.shuttleTrains = global.shuttleTrains or game.surfaces[1].find_entities_filtered{area = {{-10000,-10000}, {10000,10000}}, name="shuttleTrain"} or {} + load() +end + +function load() + global.version = "1.1.4" + global.filters = global.filters or {} + global.current_page = global.current_page or {} + global.filters.meta_data = {force_update = false } + global.filtered_stations = global.filtered_stations or {} + global.trainStations = global.trainStations or {} + global.shuttleTrains = global.shuttleTrains or {} + global.force_shuttle_call_GUI_update = true; +end + +script.on_init(init) +script.on_configuration_changed(load) + + +script.on_event(defines.events.on_tick, function(event) on_tick(event) end) -- register update function + +script.on_event(defines.events.on_player_created, function(event) + UpdateShuttleCallButton(game.players[event.player_index]) +end) + +script.on_event(defines.events.on_research_finished, function(event) + if event.research.name == "shuttleTrain_tech" then + for _, player in pairs(event.research.force.players) do + global.force_shuttle_call_GUI_update = true; + end + return + end +end) + +script.on_event(defines.events.on_player_driving_changed_state, function(event) + local player = game.players[event.player_index] + if (player.vehicle ~= nil and isShuttle(player.vehicle)) then + if (player.gui.left.shuttleTrain == nil) then + createGUI(player) + end + end + if (player.vehicle == nil and player.gui.left.shuttleTrain ~= nil) then + player.gui.left.shuttleTrain.destroy() + end +end) + +script.on_event(defines.events.on_train_changed_state, function(event) + if anyFrontMoverIsShuttle(event.train.locomotives["front_movers"]) and event.train.state == defines.train_state.wait_station and #event.train.schedule.records == 1 then + event.train.manual_mode = true + end +end) + +function anyFrontMoverIsShuttle(front_movers) + for _, loco in pairs(front_movers)do + if isShuttle(loco) then + return true + end + end + return false +end + +function isShuttle(locomotive) + if locomotive.name == "shuttleTrain" then + return true + else + return false + end +end + +function UpdateShuttleCallButton(player) + if player.force.technologies["shuttleTrain_tech"].researched then + if not player.gui.top.shuttle_call_Frame then + player.gui.top.add{type="frame", name="shuttle_call_Frame", direction = "vertical", style="st_top_button_frame_style"} + player.gui.top.shuttle_call_Frame.add{type="button", name="shuttle_call_button", style="st_top_image_button_style" } + end + else + if player.gui.top.shuttle_call_Frame then + player.gui.top.shuttle_call_Frame.destroy() + end + end +end + +function on_tick(event) + if global.force_shuttle_call_GUI_update then + for _, player in pairs(game.players) do + if player.gui.top.shuttleFrame then player.gui.top.shuttleFrame.destroy() end + UpdateShuttleCallButton(player) + end + global.force_shuttle_call_GUI_update = nil + end + if event == null or (event.tick % 60 == 0) then -- every second or when the function is called without arg + update_GUI_with_filter() + end +end + + +function update_GUI_with_filter() + for player_id,player in pairs(game.players) do + if player.gui.left.shuttleTrain then + if global.filters[player_id] ~= player.gui.left.shuttleTrain.filter.filter_txfield.text or global.filters.meta_data.force_update then + global.current_page[player_id] = 1 + global.filters[player_id] = player.gui.left.shuttleTrain.filter.filter_txfield.text or "" + global.filtered_stations[player_id] = {} + local names = {} + for _,station in pairs(global.trainStations) do + if (station.valid == false) then + removeTrainStopFromArray(station) + elseif string.find(string.upper(station.backer_name), string.upper(global.filters[player_id]), 1, true) and not names[station.backer_name] then -- case-insensitive + names[station.backer_name] = true -- allows to keep track of which station has already been added + table.insert(global.filtered_stations[player_id], station) + end + end + table.sort(global.filtered_stations[player_id], function (a, b) return a.backer_name < b.backer_name end) + updateStationsGUI(player) + end + end + end + global.filters.meta_data.force_update = false +end + + +script.on_event(defines.events.on_gui_click, function(event) + local player = game.players[event.player_index] + + if event.element.name == "shuttle_call_button" then + if player.gui.left.shuttleTrain == nil then + createGUI(player) + else + player.gui.left.shuttleTrain.destroy() + end + end + + if (player.gui.left.shuttleTrain == nil) then + return + end + + if (event.element.name == "nextPage") then + if (global.current_page[player.index] < math.floor((#global.filtered_stations[player.index] -1) / 10) + 1) then + global.current_page[player.index] = global.current_page[player.index] + 1 + updateStationsGUI(player) + end + end + + if (event.element.name == "prevPage") then + if (global.current_page[player.index] > 1) then + global.current_page[player.index] = global.current_page[player.index] -1 + updateStationsGUI(player) + end + end + + if (event.element.parent == player.gui.left.shuttleTrain.flow) then + + for key, station in pairs(global.trainStations) do + if (station.valid == false) then + removeTrainStopFromArray(station) + elseif (event.element.caption == station.backer_name) then + local schedule = {current = 1, records = {[1] = {time_to_wait = 30, station = event.element.caption}}} + if(player.vehicle ~= nil and isShuttle(player.vehicle)) then + player.vehicle.train.schedule= schedule + player.vehicle.train.manual_mode = false + elseif global.shuttleTrains ~= nil or global.shuttleTrains ~= {} then + if global.shuttleTrains[1] == nil then + global.shuttleTrains = game.surfaces[1].find_entities_filtered{area = {{-10000,-10000}, {10000,10000}}, name="shuttleTrain"} + end + local closestTrain + local distanceToClosestTrain = 99999999999999999999999999 + for key, train in pairs(global.shuttleTrains)do + local distance = util.distance(train.position, station.position) + if distance < distanceToClosestTrain then + if train.train.state == defines.train_state.no_schedule or train.train.state == defines.train_state.no_path or train.train.state == defines.train_state.wait_station or train.train.state == defines.train_state.manual_control then + closestTrain = train + distanceToClosestTrain = distance + end + end + end + if closestTrain == nil then + player.print("No unused shuttle train found") + else + player.print(string.format("Sent shuttle %q to station %q from %um away", closestTrain.backer_name, station.backer_name, distanceToClosestTrain)) + closestTrain.train.schedule = schedule + closestTrain.train.manual_mode = false + end + break; + end + end + end + end +end) + +function entityBuilt (event) + local entity = event.created_entity + if (entity.type == "train-stop") then + table.insert(global.trainStations, entity) + + global.filters.meta_data.force_update = true + on_tick(event) -- force an update of the GUI (in case someone is in the GUI) + + elseif isShuttle(entity) then + table.insert(global.shuttleTrains, entity) + end +end + +script.on_event({defines.events.on_built_entity, defines.events.on_robot_built_entity}, entityBuilt) + +function entityDestroyed (event) + local entity = event.entity + if (entity.type == "train-stop" and global.trainStations ~= nil) then + removeTrainStopFromArray(entity) + elseif isShuttle(entity) and global.shuttleTrains ~= nil then + for key, value in pairs(global.shuttleTrains) do + if entity == value then + table.remove(global.shuttleTrains, key) + end + end + end +end + +function removeTrainStopFromArray(entity) + for key, station in pairs(global.trainStations) do + if entity == station then + table.remove(global.trainStations, key) + global.filters.meta_data.force_update = true + on_tick() -- force an update of the GUI (in case someone is in the GUI) + end + end +end + +script.on_event(defines.events.on_entity_died, entityDestroyed) +script.on_event(defines.events.on_preplayer_mined_item, entityDestroyed) +script.on_event(defines.events.on_robot_pre_mined, entityDestroyed) + +function createGUI(player) + if player.gui.left.shuttleTrain ~= nil then return end + + player.gui.left.add{type = "frame", name = "shuttleTrain", direction = "vertical"} + player.gui.left.shuttleTrain.add{type = "flow", name = "title", direction = "horizontal"} + player.gui.left.shuttleTrain.title.add{type = "label", name = "label", caption = "Shuttle Train", style = "st_label_title"} + player.gui.left.shuttleTrain.add{type = "flow", name = "filter", direction = "horizontal"} + player.gui.left.shuttleTrain.filter.add{type = "label", name = "filter_lbl", caption = "Filter:", style = "st_label_simple_text"} + player.gui.left.shuttleTrain.filter.add{type = "textfield", name = "filter_txfield", style = "st_textfield"} + player.gui.left.shuttleTrain.add{type = "flow", name = "header", direction = "horizontal"} + player.gui.left.shuttleTrain.header.add{type = "button", name = "prevPage", caption = "<", style = "st-nav-button-arrow"} + player.gui.left.shuttleTrain.header.add{type = "button", name = "pageNumber", caption = "1", style = "st-nav-button-pagination"} + player.gui.left.shuttleTrain.header.add{type = "button", name = "nextPage", caption = ">", style = "st-nav-button-arrow"} + + player.gui.left.shuttleTrain.add{type="flow", name="flow", direction="vertical" } + player.gui.left.shuttleTrain.flow.add{type = "label", name = "loading", caption = "Loading Stations", style = "st_label_title"} + + global.filters.meta_data.force_update = true + update_GUI_with_filter() -- force an update of the GUI + + global.current_page[player.index] = 1 + if global.filters[player.index] then -- retrieve filter from data + player.gui.left.shuttleTrain.filter.filter_txfield.text = global.filters[player.index] + global.filters.meta_data.force_update = true + end +end + + +function updateStationsGUI(player) + + if (global.current_page[player.index] == 1) then + player.gui.left.shuttleTrain.header.prevPage.style = "st-nav-button-arrow-disabled" + else + player.gui.left.shuttleTrain.header.prevPage.style = "st-nav-button-arrow" + end + + + if (global.current_page[player.index] == math.floor((#global.filtered_stations[player.index] -1) / 10) + 1 or math.floor((#global.filtered_stations[player.index] -1) / 10) + 1 == 0) then + player.gui.left.shuttleTrain.header.nextPage.style = "st-nav-button-arrow-disabled" + else + player.gui.left.shuttleTrain.header.nextPage.style = "st-nav-button-arrow" + end + + if(player.gui.left.shuttleTrain.flow ~= nil) then + player.gui.left.shuttleTrain.flow.destroy() + end + + player.gui.left.shuttleTrain.add{type = "flow", name = "flow", direction = "vertical"} + + if #global.filtered_stations[player.index] == 0 then -- when no station match the search + player.gui.left.shuttleTrain.flow.add{type = "label", name = "loading", caption = "No station found", style = "st_label_title"} + player.gui.left.shuttleTrain.header.pageNumber.caption = "-/-" + else + player.gui.left.shuttleTrain.header.pageNumber.caption = global.current_page[player.index] .. "/" .. math.floor((#global.filtered_stations[player.index] -1) / 10) + 1 + end + + + if (global.filtered_stations[player.index] ~= nil or #global.filtered_stations[player.index] ~= 0) then + local stationsAdded = 0 + local startIndex = (global.current_page[player.index] -1) * 10 + 1 + while stationsAdded < 10 and global.filtered_stations[player.index][startIndex + stationsAdded] ~= nil do + local name = global.filtered_stations[player.index][startIndex + stationsAdded].backer_name + player.gui.left.shuttleTrain.flow.add{type = "button", name = stationsAdded+1, caption = name, style = "st-station-button"} + stationsAdded = stationsAdded + 1 + end + end +end + +--####### DEBUG ####### +function sendMessageToAllPlayers(message) + for _,player in pairs(game.players)do + player.print(message) + end +end diff --git a/ShuttleTrain_1.1.3/data.lua b/ShuttleTrain_1.1.4/data.lua similarity index 97% rename from ShuttleTrain_1.1.3/data.lua rename to ShuttleTrain_1.1.4/data.lua index f41207f..ad5c33a 100644 --- a/ShuttleTrain_1.1.3/data.lua +++ b/ShuttleTrain_1.1.4/data.lua @@ -1,5 +1,5 @@ -require("prototypes.style") -require("prototypes.item") -require("prototypes.recipe") -require("prototypes.entity") +require("prototypes.style") +require("prototypes.item") +require("prototypes.recipe") +require("prototypes.entity") require("prototypes.technology") \ No newline at end of file diff --git a/ShuttleTrain_1.1.3/graphics/icon_shuttleTrain.png b/ShuttleTrain_1.1.4/graphics/icon_shuttleTrain.png similarity index 100% rename from ShuttleTrain_1.1.3/graphics/icon_shuttleTrain.png rename to ShuttleTrain_1.1.4/graphics/icon_shuttleTrain.png diff --git a/ShuttleTrain_1.1.3/graphics/icon_shuttleTrain_tech.png b/ShuttleTrain_1.1.4/graphics/icon_shuttleTrain_tech.png similarity index 100% rename from ShuttleTrain_1.1.3/graphics/icon_shuttleTrain_tech.png rename to ShuttleTrain_1.1.4/graphics/icon_shuttleTrain_tech.png diff --git a/ShuttleTrain_1.1.3/info.json b/ShuttleTrain_1.1.4/info.json similarity index 93% rename from ShuttleTrain_1.1.3/info.json rename to ShuttleTrain_1.1.4/info.json index 94eac9f..d5d1a7a 100644 --- a/ShuttleTrain_1.1.3/info.json +++ b/ShuttleTrain_1.1.4/info.json @@ -1,10 +1,10 @@ -{ - "name": "ShuttleTrain", - "version": "1.1.3", - "factorio_version": "0.14", - "title": "Shuttle Train", - "author": "Simwir", - "contact": "contact@simwir.dk", - "homepage": "https://simwir.dk/category/factorio/shuttle-train/", - "description": "Want to get from one end of your big expansive base to the other? Hate running or driving cars? Then why not take the train. With this mod you get a quick and effective way to use your rail infrastructure for personal transportation." +{ + "name": "ShuttleTrain", + "version": "1.1.4", + "factorio_version": "0.14", + "title": "Shuttle Train", + "author": "Simwir", + "contact": "contact@simwir.dk", + "homepage": "https://simwir.dk/category/factorio/shuttle-train/", + "description": "Want to get from one end of your big expansive base to the other? Hate running or driving cars? Then why not take the train. With this mod you get a quick and effective way to use your rail infrastructure for personal transportation." } \ No newline at end of file diff --git a/ShuttleTrain_1.1.3/locale/de/locale.cfg b/ShuttleTrain_1.1.4/locale/de/locale.cfg similarity index 96% rename from ShuttleTrain_1.1.3/locale/de/locale.cfg rename to ShuttleTrain_1.1.4/locale/de/locale.cfg index dc2d2da..d0107a7 100644 --- a/ShuttleTrain_1.1.3/locale/de/locale.cfg +++ b/ShuttleTrain_1.1.4/locale/de/locale.cfg @@ -1,17 +1,17 @@ -[item-name] -shuttleTrain = Shuttle Zug - -[item-description] -shuttleTrain = Ein Zug speziell für den einfachen Transportbedarf von Personen. - -[technology-name] -shuttleTrain_tech = Shuttle Zug - -[technology-description] -shuttleTrain_tech = Schaltet den Shuttle Zug frei und ermöglicht das schnelle und (kollisions-)freie Reisen von und zu Haltestellen. - -[entity-name] -shuttleTrain = Shuttle Zug - -[entity-description] -shuttleTrain = Ein Zug speziell für den einfachen Transportbedarf von Personen. +[item-name] +shuttleTrain = Shuttle Zug + +[item-description] +shuttleTrain = Ein Zug speziell für den einfachen Transportbedarf von Personen. + +[technology-name] +shuttleTrain_tech = Shuttle Zug + +[technology-description] +shuttleTrain_tech = Schaltet den Shuttle Zug frei und ermöglicht das schnelle und (kollisions-)freie Reisen von und zu Haltestellen. + +[entity-name] +shuttleTrain = Shuttle Zug + +[entity-description] +shuttleTrain = Ein Zug speziell für den einfachen Transportbedarf von Personen. diff --git a/ShuttleTrain_1.1.3/locale/en/locale.cfg b/ShuttleTrain_1.1.4/locale/en/locale.cfg similarity index 96% rename from ShuttleTrain_1.1.3/locale/en/locale.cfg rename to ShuttleTrain_1.1.4/locale/en/locale.cfg index e61877c..ada3859 100644 --- a/ShuttleTrain_1.1.3/locale/en/locale.cfg +++ b/ShuttleTrain_1.1.4/locale/en/locale.cfg @@ -1,17 +1,17 @@ -[item-name] -shuttleTrain = Shuttle Train - -[item-description] -shuttleTrain = A train for personal transportation - -[technology-name] -shuttleTrain_tech = Shuttle Train - -[technology-description] -shuttleTrain_tech = Unlocks the Shuttle train for fast personal transportation - -[entity-name] -shuttleTrain = Shuttle Train - -[entity-description] +[item-name] +shuttleTrain = Shuttle Train + +[item-description] +shuttleTrain = A train for personal transportation + +[technology-name] +shuttleTrain_tech = Shuttle Train + +[technology-description] +shuttleTrain_tech = Unlocks the Shuttle train for fast personal transportation + +[entity-name] +shuttleTrain = Shuttle Train + +[entity-description] shuttleTrain = A train for personal transportation \ No newline at end of file diff --git a/ShuttleTrain_1.1.3/prototypes/entity.lua b/ShuttleTrain_1.1.4/prototypes/entity.lua similarity index 97% rename from ShuttleTrain_1.1.3/prototypes/entity.lua rename to ShuttleTrain_1.1.4/prototypes/entity.lua index 738e0e7..7a5ce80 100644 --- a/ShuttleTrain_1.1.3/prototypes/entity.lua +++ b/ShuttleTrain_1.1.4/prototypes/entity.lua @@ -1,237 +1,238 @@ -data:extend({ - { - type = "locomotive", - name = "shuttleTrain", - icon = "__ShuttleTrain__/graphics/icon_shuttleTrain.png", - flags = {"placeable-neutral", "player-creation", "placeable-off-grid", "not-on-map"}, - minable = {mining_time = 1, result = "shuttleTrain"}, - mined_sound = {filename = "__core__/sound/deconstruct-medium.ogg"}, - max_health = 1000, - corpse = "medium-remnants", - dying_explosion = "medium-explosion", - collision_box = {{-0.6, -2.6}, {0.6, 2.6}}, - selection_box = {{-0.85, -2.6}, {0.9, 2.5}}, - drawing_box = {{-1, -4}, {1, 3}}, - weight = 2000, - max_speed = 1.2, - max_power = "600kW", - reversing_power_modifier = 0.6, - braking_force = 10, - friction_force = 0.50, - -- this is a percentage of current speed that will be subtracted - air_resistance = 0.0075, - connection_distance = 3, - joint_distance = 4, - energy_per_hit_point = 5, - resistances = - { - { - type = "fire", - decrease = 15, - percent = 50 - }, - { - type = "physical", - decrease = 15, - percent = 30 - }, - { - type = "impact", - decrease = 50, - percent = 60 - }, - { - type = "explosion", - decrease = 15, - percent = 30 - }, - { - type = "acid", - decrease = 10, - percent = 20 - } - }, - energy_source = - { - type = "burner", - effectivity = 1, - fuel_inventory_size = 3, - smoke = - { - { - name = "train-smoke", - deviation = {0.3, 0.3}, - frequency = 100, - position = {0, 0}, - starting_frame = 0, - starting_frame_deviation = 60, - height = 2, - height_deviation = 0.5, - starting_vertical_speed = 0.2, - starting_vertical_speed_deviation = 0.1, - } - } - }, - front_light = - { - { - type = "oriented", - minimum_darkness = 0.3, - picture = - { - filename = "__core__/graphics/light-cone.png", - priority = "medium", - scale = 2, - width = 200, - height = 200 - }, - shift = {-0.6, -16}, - size = 2, - intensity = 0.6 - }, - { - type = "oriented", - minimum_darkness = 0.3, - picture = - { - filename = "__core__/graphics/light-cone.png", - priority = "medium", - scale = 2, - width = 200, - height = 200 - }, - shift = {0.6, -16}, - size = 2, - intensity = 0.6 - } - }, - back_light = rolling_stock_back_light(), - stand_by_light = rolling_stock_stand_by_light(), - color = {r = 0.07, g = 0.92, b = 0, a = 0.5}, - pictures = - { - layers = - { - { - priority = "very-low", - width = 238, - height = 230, - direction_count = 256, - filenames = - { - "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-01.png", - "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-02.png", - "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-03.png", - "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-04.png", - "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-05.png", - "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-06.png", - "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-07.png", - "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-08.png" - }, - line_length = 4, - lines_per_file = 8, - shift = {0.0, -0.5} - }, - { - priority = "very-low", - flags = { "mask" }, - width = 236, - height = 228, - direction_count = 256, - filenames = - { - "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-mask-01.png", - "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-mask-02.png", - "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-mask-03.png", - "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-mask-04.png", - "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-mask-05.png", - "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-mask-06.png", - "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-mask-07.png", - "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-mask-08.png" - }, - line_length = 4, - lines_per_file = 8, - shift = {0.0, -0.5}, - apply_runtime_tint = true - }, - { - priority = "very-low", - flags = { "compressed" }, - width = 253, - height = 212, - direction_count = 256, - draw_as_shadow = true, - filenames = - { - "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-shadow-01.png", - "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-shadow-02.png", - "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-shadow-03.png", - "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-shadow-04.png", - "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-shadow-05.png", - "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-shadow-06.png", - "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-shadow-07.png", - "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-shadow-08.png" - }, - line_length = 4, - lines_per_file = 8, - shift = {1, 0.3} - } - } - }, - wheels = standard_train_wheels, - rail_category = "regular", - stop_trigger = - { - -- left side - { - type = "create-smoke", - repeat_count = 125, - entity_name = "smoke-train-stop", - initial_height = 0, - -- smoke goes to the left - speed = {-0.03, 0}, - speed_multiplier = 0.75, - speed_multiplier_deviation = 1.1, - offset_deviation = {{-0.75, -2.7}, {-0.3, 2.7}} - }, - -- right side - { - type = "create-smoke", - repeat_count = 125, - entity_name = "smoke-train-stop", - initial_height = 0, - -- smoke goes to the right - speed = {0.03, 0}, - speed_multiplier = 0.75, - speed_multiplier_deviation = 1.1, - offset_deviation = {{0.3, -2.7}, {0.75, 2.7}} - }, - { - type = "play-sound", - sound = - { - { - filename = "__base__/sound/train-breaks.ogg", - volume = 0.6 - }, - } - }, - }, - drive_over_tie_trigger = drive_over_tie(), - tie_distance = 50, - vehicle_impact_sound = { filename = "__base__/sound/car-metal-impact.ogg", volume = 0.65 }, - working_sound = - { - sound = - { - filename = "__base__/sound/train-engine.ogg", - volume = 0.4 - }, - match_speed_to_activity = true, - }, - open_sound = { filename = "__base__/sound/car-door-open.ogg", volume=0.7 }, - close_sound = { filename = "__base__/sound/car-door-close.ogg", volume = 0.7 }, - sound_minimum_speed = 0.5; - }, - +data:extend({ + { + type = "locomotive", + name = "shuttleTrain", + icon = "__ShuttleTrain__/graphics/icon_shuttleTrain.png", + flags = {"placeable-neutral", "player-creation", "placeable-off-grid", "not-on-map"}, + minable = {mining_time = 1, result = "shuttleTrain"}, + mined_sound = {filename = "__core__/sound/deconstruct-medium.ogg"}, + max_health = 1000, + corpse = "medium-remnants", + dying_explosion = "medium-explosion", + collision_box = {{-0.6, -2.6}, {0.6, 2.6}}, + selection_box = {{-0.85, -2.6}, {0.9, 2.5}}, + drawing_box = {{-1, -4}, {1, 3}}, + weight = 2000, + max_speed = 1.2, + max_power = "600kW", + reversing_power_modifier = 0.6, + braking_force = 10, + friction_force = 0.50, + vertical_selection_shift = -0.5, + -- this is a percentage of current speed that will be subtracted + air_resistance = 0.0075, + connection_distance = 3, + joint_distance = 4, + energy_per_hit_point = 5, + resistances = + { + { + type = "fire", + decrease = 15, + percent = 50 + }, + { + type = "physical", + decrease = 15, + percent = 30 + }, + { + type = "impact", + decrease = 50, + percent = 60 + }, + { + type = "explosion", + decrease = 15, + percent = 30 + }, + { + type = "acid", + decrease = 10, + percent = 20 + } + }, + energy_source = + { + type = "burner", + effectivity = 1, + fuel_inventory_size = 3, + smoke = + { + { + name = "train-smoke", + deviation = {0.3, 0.3}, + frequency = 100, + position = {0, 0}, + starting_frame = 0, + starting_frame_deviation = 60, + height = 2, + height_deviation = 0.5, + starting_vertical_speed = 0.2, + starting_vertical_speed_deviation = 0.1, + } + } + }, + front_light = + { + { + type = "oriented", + minimum_darkness = 0.3, + picture = + { + filename = "__core__/graphics/light-cone.png", + priority = "medium", + scale = 2, + width = 200, + height = 200 + }, + shift = {-0.6, -16}, + size = 2, + intensity = 0.6 + }, + { + type = "oriented", + minimum_darkness = 0.3, + picture = + { + filename = "__core__/graphics/light-cone.png", + priority = "medium", + scale = 2, + width = 200, + height = 200 + }, + shift = {0.6, -16}, + size = 2, + intensity = 0.6 + } + }, + back_light = rolling_stock_back_light(), + stand_by_light = rolling_stock_stand_by_light(), + color = {r = 0.07, g = 0.92, b = 0, a = 0.5}, + pictures = + { + layers = + { + { + priority = "very-low", + width = 238, + height = 230, + direction_count = 256, + filenames = + { + "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-01.png", + "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-02.png", + "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-03.png", + "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-04.png", + "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-05.png", + "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-06.png", + "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-07.png", + "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-08.png" + }, + line_length = 4, + lines_per_file = 8, + shift = {0.0, -0.5} + }, + { + priority = "very-low", + flags = { "mask" }, + width = 236, + height = 228, + direction_count = 256, + filenames = + { + "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-mask-01.png", + "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-mask-02.png", + "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-mask-03.png", + "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-mask-04.png", + "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-mask-05.png", + "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-mask-06.png", + "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-mask-07.png", + "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-mask-08.png" + }, + line_length = 4, + lines_per_file = 8, + shift = {0.0, -0.5}, + apply_runtime_tint = true + }, + { + priority = "very-low", + flags = { "compressed" }, + width = 253, + height = 212, + direction_count = 256, + draw_as_shadow = true, + filenames = + { + "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-shadow-01.png", + "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-shadow-02.png", + "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-shadow-03.png", + "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-shadow-04.png", + "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-shadow-05.png", + "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-shadow-06.png", + "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-shadow-07.png", + "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-shadow-08.png" + }, + line_length = 4, + lines_per_file = 8, + shift = {1, 0.3} + } + } + }, + wheels = standard_train_wheels, + rail_category = "regular", + stop_trigger = + { + -- left side + { + type = "create-smoke", + repeat_count = 125, + entity_name = "smoke-train-stop", + initial_height = 0, + -- smoke goes to the left + speed = {-0.03, 0}, + speed_multiplier = 0.75, + speed_multiplier_deviation = 1.1, + offset_deviation = {{-0.75, -2.7}, {-0.3, 2.7}} + }, + -- right side + { + type = "create-smoke", + repeat_count = 125, + entity_name = "smoke-train-stop", + initial_height = 0, + -- smoke goes to the right + speed = {0.03, 0}, + speed_multiplier = 0.75, + speed_multiplier_deviation = 1.1, + offset_deviation = {{0.3, -2.7}, {0.75, 2.7}} + }, + { + type = "play-sound", + sound = + { + { + filename = "__base__/sound/train-breaks.ogg", + volume = 0.6 + }, + } + }, + }, + drive_over_tie_trigger = drive_over_tie(), + tie_distance = 50, + vehicle_impact_sound = { filename = "__base__/sound/car-metal-impact.ogg", volume = 0.65 }, + working_sound = + { + sound = + { + filename = "__base__/sound/train-engine.ogg", + volume = 0.4 + }, + match_speed_to_activity = true, + }, + open_sound = { filename = "__base__/sound/car-door-open.ogg", volume=0.7 }, + close_sound = { filename = "__base__/sound/car-door-close.ogg", volume = 0.7 }, + sound_minimum_speed = 0.5; + }, + }) \ No newline at end of file diff --git a/ShuttleTrain_1.1.3/prototypes/item.lua b/ShuttleTrain_1.1.4/prototypes/item.lua similarity index 96% rename from ShuttleTrain_1.1.3/prototypes/item.lua rename to ShuttleTrain_1.1.4/prototypes/item.lua index 8ebe2dc..d4f747b 100644 --- a/ShuttleTrain_1.1.3/prototypes/item.lua +++ b/ShuttleTrain_1.1.4/prototypes/item.lua @@ -1,12 +1,12 @@ -data:extend({ - { - type = "item", - name = "shuttleTrain", - icon = "__ShuttleTrain__/graphics/icon_shuttleTrain.png", - flags = {"goes-to-quickbar"}, - subgroup = "transport", - order = "a[train-system]-f[shuttle-train]", - place_result = "shuttleTrain", - stack_size = 5, - } -}) +data:extend({ + { + type = "item", + name = "shuttleTrain", + icon = "__ShuttleTrain__/graphics/icon_shuttleTrain.png", + flags = {"goes-to-quickbar"}, + subgroup = "transport", + order = "a[train-system]-f[shuttle-train]", + place_result = "shuttleTrain", + stack_size = 5, + } +}) diff --git a/ShuttleTrain_1.1.3/prototypes/recipe.lua b/ShuttleTrain_1.1.4/prototypes/recipe.lua similarity index 94% rename from ShuttleTrain_1.1.3/prototypes/recipe.lua rename to ShuttleTrain_1.1.4/prototypes/recipe.lua index 287bd0f..fb2a58b 100644 --- a/ShuttleTrain_1.1.3/prototypes/recipe.lua +++ b/ShuttleTrain_1.1.4/prototypes/recipe.lua @@ -1,14 +1,14 @@ -data:extend({ - { - type = "recipe", - name = "shuttleTrain", - enabled = false, - ingredients = - { - {"engine-unit", 20}, - {"electronic-circuit", 10}, - {"steel-plate", 30} - }, - result = "shuttleTrain" - }, +data:extend({ + { + type = "recipe", + name = "shuttleTrain", + enabled = false, + ingredients = + { + {"engine-unit", 20}, + {"electronic-circuit", 10}, + {"steel-plate", 30} + }, + result = "shuttleTrain" + }, }) \ No newline at end of file diff --git a/ShuttleTrain_1.1.3/prototypes/style.lua b/ShuttleTrain_1.1.4/prototypes/style.lua similarity index 95% rename from ShuttleTrain_1.1.3/prototypes/style.lua rename to ShuttleTrain_1.1.4/prototypes/style.lua index c54d045..0aa0247 100644 --- a/ShuttleTrain_1.1.3/prototypes/style.lua +++ b/ShuttleTrain_1.1.4/prototypes/style.lua @@ -1,301 +1,301 @@ -data:extend( - { - { - type = "font", - name = "shuttle-train-font", - from = "default", - size = 12 - }, - { - type = "font", - name = "shuttle-train-font-bold", - from = "default-bold", - size = 16 - } - } -) - -data.raw["gui-style"].default["st_top_button_frame_style"] = -{ -type = "frame_style", - parent = "frame_style", - width = 33, - height = 33, - left_padding = 0, - right_padding = 0, - top_padding = 0, - bottom_padding = 0, -} - -data.raw["gui-style"].default["st_top_image_button_style"] = { - type = "button_style", - parent = "button_style", - width = 33, - height = 33, - default_graphical_set = { - type="monolith", - monolith_image = { - filename = "__ShuttleTrain__/graphics/icon_shuttleTrain.png", - width = 32, - height = 32 - } - }, - hovered_graphical_set = { - type="monolith", - monolith_image = { - filename = "__ShuttleTrain__/graphics/icon_shuttleTrain.png", - width = 32, - height = 32 - } - }, - clicked_graphical_set = { - type="monolith", - monolith_image = { - filename = "__ShuttleTrain__/graphics/icon_shuttleTrain.png", - width = 32, - height = 32 - } - }, - disabled_graphical_set = { - type="monolith", - monolith_image = { - filename = "__ShuttleTrain__/graphics/icon_shuttleTrain.png", - width = 32, - height = 32 - } - } -} - -data.raw["gui-style"].default["st_label_title"] = -{ - type = "label_style", - parent = "label_style", - width = 160, - align = "center", - font = "shuttle-train-font-bold", - font_color = {r = 1, g = 1, b = 1} -} - - -data.raw["gui-style"].default["st_label_simple_text"] = -{ - type = "label_style", - parent = "label_style", - width = 35, - left_padding = 5, - right_padding = 5, - align = "center", - font = "shuttle-train-font", - font_color = {r = 1, g = 1, b = 1} -} - - -data.raw["gui-style"].default["st_textfield"] = -{ - type = "textfield_style", - left_padding = 5, - right_padding = 5, - minimal_width = 115, - maximal_width = 115, - font = "shuttle-train-font", - font_color = {}, - graphical_set = - { - type = "composition", - filename = "__core__/graphics/gui.png", - priority = "extra-high-no-scale", - corner_size = {3, 3}, - position = {16, 0} - }, - selection_background_color= {r=0.66, g=0.7, b=0.83} -} - - -data.raw["gui-style"].default["st-station-button"] = -{ - type = "button_style", - parent = "button_style", - font = "shuttle-train-font", - default_font_color = {r = 1, g = 1, b = 1}, - align = "center", - minimal_width = 160, - top_padding = 5, - right_padding = 5, - bottom_padding = 5, - left_padding = 5, - default_graphical_set = - { - type = "composition", - filename = "__core__/graphics/gui.png", - priority = "extra-high-no-scale", - corner_size = {3, 3}, - position = {0, 0} - }, - hovered_font_color = {r = 1, g = 1, b = 1}, - hovered_graphical_set = - { - type = "composition", - filename = "__core__/graphics/gui.png", - priority = "extra-high-no-scale", - corner_size = {3, 3}, - position = {0, 8} - }, - clicked_font_color = {r = 1, g = 1, b = 1}, - clicked_graphical_set = - { - type = "composition", - filename = "__core__/graphics/gui.png", - priority = "extra-high-no-scale", - corner_size = {3, 3}, - position = {0, 16} - }, - disabled_font_color = {r = 0.5, g = 0.5, b = 0.5}, - disabled_graphical_set = - { - type = "composition", - filename = "__core__/graphics/gui.png", - priority = "extra-high-no-scale", - corner_size = {3, 3}, - position = {0, 0} - }, - pie_progress_color = {r = 1, g = 1, b = 1}, - left_click_sound = - { - filename = "__core__/sound/gui-click.ogg", - volume = 1 - } -} - -data.raw["gui-style"].default["st-nav-button-pagination"] = -{ - type = "button_style", - parent = "button_style", - font = "shuttle-train-font", - default_font_color = {r = 1, g = 1, b = 1}, - align = "center", - top_padding = 5, - right_padding = 5, - bottom_padding = 5, - left_padding = 5, - minimal_width = 95, - maximal_width = 95, - default_graphical_set = - { - type = "composition", - filename = "__core__/graphics/gui.png", - priority = "extra-high-no-scale", - corner_size = {3, 3}, - position = {0, 0} - }, - hovered_font_color = {r = 1, g = 1, b = 1}, - hovered_graphical_set = - { - type = "composition", - filename = "__core__/graphics/gui.png", - corner_size = {3, 3}, - position = {0, 0} - }, - clicked_font_color = {r = 1, g = 1, b = 1}, - clicked_graphical_set = - { - type = "composition", - filename = "__core__/graphics/gui.png", - corner_size = {3, 3}, - position = {0, 0} - }, - disabled_font_color = {r = 0.5, g = 0.5, b = 0.5}, - disabled_graphical_set = - { - type = "composition", - filename = "__core__/graphics/gui.png", - priority = "extra-high-no-scale", - corner_size = {3, 3}, - position = {0, 0} - }, - pie_progress_color = {r = 1, g = 1, b = 1}, - left_click_sound = - { - filename = "__core__/sound/gui-click.ogg", - volume = 1 - } -} - - -data.raw["gui-style"].default["st-nav-button-arrow"] = -{ - type = "button_style", - parent = "button_style", - font = "shuttle-train-font", - default_font_color = {r = 1, g = 1, b = 1}, - align = "center", - top_padding = 5, - right_padding = 5, - bottom_padding = 5, - left_padding = 5, - minimal_width = 25, - maximal_width = 25, - default_graphical_set = - { - type = "composition", - filename = "__core__/graphics/gui.png", - priority = "extra-high-no-scale", - corner_size = {3, 3}, - position = {0, 0} - }, - hovered_font_color = {r = 1, g = 1, b = 1}, - hovered_graphical_set = - { - type = "composition", - filename = "__core__/graphics/gui.png", - priority = "extra-high-no-scale", - corner_size = {3, 3}, - position = {0, 8} - }, - clicked_font_color = {r = 1, g = 1, b = 1}, - clicked_graphical_set = - { - type = "composition", - filename = "__core__/graphics/gui.png", - priority = "extra-high-no-scale", - corner_size = {3, 3}, - position = {0, 16} - }, - disabled_font_color = {r = 0.5, g = 0.5, b = 0.5}, - disabled_graphical_set = - { - type = "composition", - filename = "__core__/graphics/gui.png", - priority = "extra-high-no-scale", - corner_size = {3, 3}, - position = {0, 0} - }, - pie_progress_color = {r = 1, g = 1, b = 1}, - left_click_sound = - { - filename = "__core__/sound/gui-click.ogg", - volume = 1 - } -} - -data.raw["gui-style"].default["st-nav-button-arrow-disabled"] = -{ - type = "button_style", - parent = "st-nav-button-arrow", - default_font_color = {r = 0.34, g = 0.34, b = 0.34}, - hovered_font_color = {r = 0.34, g = 0.34, b = 0.38}, - hovered_graphical_set = - { - type = "composition", - filename = "__core__/graphics/gui.png", - corner_size = {3, 3}, - position = {0, 0} - }, - clicked_font_color = {r = 0.34, g = 0.34, b = 0.38}, - clicked_graphical_set = - { - type = "composition", - filename = "__core__/graphics/gui.png", - corner_size = {3, 3}, - position = {0, 0} - }, -} +data:extend( + { + { + type = "font", + name = "shuttle-train-font", + from = "default", + size = 12 + }, + { + type = "font", + name = "shuttle-train-font-bold", + from = "default-bold", + size = 16 + } + } +) + +data.raw["gui-style"].default["st_top_button_frame_style"] = +{ +type = "frame_style", + parent = "frame_style", + width = 33, + height = 33, + left_padding = 0, + right_padding = 0, + top_padding = 0, + bottom_padding = 0, +} + +data.raw["gui-style"].default["st_top_image_button_style"] = { + type = "button_style", + parent = "button_style", + width = 33, + height = 33, + default_graphical_set = { + type="monolith", + monolith_image = { + filename = "__ShuttleTrain__/graphics/icon_shuttleTrain.png", + width = 32, + height = 32 + } + }, + hovered_graphical_set = { + type="monolith", + monolith_image = { + filename = "__ShuttleTrain__/graphics/icon_shuttleTrain.png", + width = 32, + height = 32 + } + }, + clicked_graphical_set = { + type="monolith", + monolith_image = { + filename = "__ShuttleTrain__/graphics/icon_shuttleTrain.png", + width = 32, + height = 32 + } + }, + disabled_graphical_set = { + type="monolith", + monolith_image = { + filename = "__ShuttleTrain__/graphics/icon_shuttleTrain.png", + width = 32, + height = 32 + } + } +} + +data.raw["gui-style"].default["st_label_title"] = +{ + type = "label_style", + parent = "label_style", + width = 160, + align = "center", + font = "shuttle-train-font-bold", + font_color = {r = 1, g = 1, b = 1} +} + + +data.raw["gui-style"].default["st_label_simple_text"] = +{ + type = "label_style", + parent = "label_style", + width = 35, + left_padding = 5, + right_padding = 5, + align = "center", + font = "shuttle-train-font", + font_color = {r = 1, g = 1, b = 1} +} + + +data.raw["gui-style"].default["st_textfield"] = +{ + type = "textfield_style", + left_padding = 5, + right_padding = 5, + minimal_width = 115, + maximal_width = 115, + font = "shuttle-train-font", + font_color = {}, + graphical_set = + { + type = "composition", + filename = "__core__/graphics/gui.png", + priority = "extra-high-no-scale", + corner_size = {3, 3}, + position = {16, 0} + }, + selection_background_color= {r=0.66, g=0.7, b=0.83} +} + + +data.raw["gui-style"].default["st-station-button"] = +{ + type = "button_style", + parent = "button_style", + font = "shuttle-train-font", + default_font_color = {r = 1, g = 1, b = 1}, + align = "center", + minimal_width = 160, + top_padding = 5, + right_padding = 5, + bottom_padding = 5, + left_padding = 5, + default_graphical_set = + { + type = "composition", + filename = "__core__/graphics/gui.png", + priority = "extra-high-no-scale", + corner_size = {3, 3}, + position = {0, 0} + }, + hovered_font_color = {r = 1, g = 1, b = 1}, + hovered_graphical_set = + { + type = "composition", + filename = "__core__/graphics/gui.png", + priority = "extra-high-no-scale", + corner_size = {3, 3}, + position = {0, 8} + }, + clicked_font_color = {r = 1, g = 1, b = 1}, + clicked_graphical_set = + { + type = "composition", + filename = "__core__/graphics/gui.png", + priority = "extra-high-no-scale", + corner_size = {3, 3}, + position = {0, 16} + }, + disabled_font_color = {r = 0.5, g = 0.5, b = 0.5}, + disabled_graphical_set = + { + type = "composition", + filename = "__core__/graphics/gui.png", + priority = "extra-high-no-scale", + corner_size = {3, 3}, + position = {0, 0} + }, + pie_progress_color = {r = 1, g = 1, b = 1}, + left_click_sound = + { + filename = "__core__/sound/gui-click.ogg", + volume = 1 + } +} + +data.raw["gui-style"].default["st-nav-button-pagination"] = +{ + type = "button_style", + parent = "button_style", + font = "shuttle-train-font", + default_font_color = {r = 1, g = 1, b = 1}, + align = "center", + top_padding = 5, + right_padding = 5, + bottom_padding = 5, + left_padding = 5, + minimal_width = 95, + maximal_width = 95, + default_graphical_set = + { + type = "composition", + filename = "__core__/graphics/gui.png", + priority = "extra-high-no-scale", + corner_size = {3, 3}, + position = {0, 0} + }, + hovered_font_color = {r = 1, g = 1, b = 1}, + hovered_graphical_set = + { + type = "composition", + filename = "__core__/graphics/gui.png", + corner_size = {3, 3}, + position = {0, 0} + }, + clicked_font_color = {r = 1, g = 1, b = 1}, + clicked_graphical_set = + { + type = "composition", + filename = "__core__/graphics/gui.png", + corner_size = {3, 3}, + position = {0, 0} + }, + disabled_font_color = {r = 0.5, g = 0.5, b = 0.5}, + disabled_graphical_set = + { + type = "composition", + filename = "__core__/graphics/gui.png", + priority = "extra-high-no-scale", + corner_size = {3, 3}, + position = {0, 0} + }, + pie_progress_color = {r = 1, g = 1, b = 1}, + left_click_sound = + { + filename = "__core__/sound/gui-click.ogg", + volume = 1 + } +} + + +data.raw["gui-style"].default["st-nav-button-arrow"] = +{ + type = "button_style", + parent = "button_style", + font = "shuttle-train-font", + default_font_color = {r = 1, g = 1, b = 1}, + align = "center", + top_padding = 5, + right_padding = 5, + bottom_padding = 5, + left_padding = 5, + minimal_width = 25, + maximal_width = 25, + default_graphical_set = + { + type = "composition", + filename = "__core__/graphics/gui.png", + priority = "extra-high-no-scale", + corner_size = {3, 3}, + position = {0, 0} + }, + hovered_font_color = {r = 1, g = 1, b = 1}, + hovered_graphical_set = + { + type = "composition", + filename = "__core__/graphics/gui.png", + priority = "extra-high-no-scale", + corner_size = {3, 3}, + position = {0, 8} + }, + clicked_font_color = {r = 1, g = 1, b = 1}, + clicked_graphical_set = + { + type = "composition", + filename = "__core__/graphics/gui.png", + priority = "extra-high-no-scale", + corner_size = {3, 3}, + position = {0, 16} + }, + disabled_font_color = {r = 0.5, g = 0.5, b = 0.5}, + disabled_graphical_set = + { + type = "composition", + filename = "__core__/graphics/gui.png", + priority = "extra-high-no-scale", + corner_size = {3, 3}, + position = {0, 0} + }, + pie_progress_color = {r = 1, g = 1, b = 1}, + left_click_sound = + { + filename = "__core__/sound/gui-click.ogg", + volume = 1 + } +} + +data.raw["gui-style"].default["st-nav-button-arrow-disabled"] = +{ + type = "button_style", + parent = "st-nav-button-arrow", + default_font_color = {r = 0.34, g = 0.34, b = 0.34}, + hovered_font_color = {r = 0.34, g = 0.34, b = 0.38}, + hovered_graphical_set = + { + type = "composition", + filename = "__core__/graphics/gui.png", + corner_size = {3, 3}, + position = {0, 0} + }, + clicked_font_color = {r = 0.34, g = 0.34, b = 0.38}, + clicked_graphical_set = + { + type = "composition", + filename = "__core__/graphics/gui.png", + corner_size = {3, 3}, + position = {0, 0} + }, +} diff --git a/ShuttleTrain_1.1.3/prototypes/technology.lua b/ShuttleTrain_1.1.4/prototypes/technology.lua similarity index 96% rename from ShuttleTrain_1.1.3/prototypes/technology.lua rename to ShuttleTrain_1.1.4/prototypes/technology.lua index ad53e39..59a7270 100644 --- a/ShuttleTrain_1.1.3/prototypes/technology.lua +++ b/ShuttleTrain_1.1.4/prototypes/technology.lua @@ -1,27 +1,27 @@ -data:extend({ - { - type = "technology", - name = "shuttleTrain_tech", - icon = "__ShuttleTrain__/graphics/icon_shuttleTrain_tech.png", - icon_size = 128, - effects = - { - { - type = "unlock-recipe", - recipe = "shuttleTrain" - } - }, - prerequisites = {"automated-rail-transportation"}, - unit = - { - count = 70, - ingredients = - { - {"science-pack-1", 2}, - {"science-pack-2", 1}, - }, - time = 20 - }, - order = "c-g-b-a" - }, +data:extend({ + { + type = "technology", + name = "shuttleTrain_tech", + icon = "__ShuttleTrain__/graphics/icon_shuttleTrain_tech.png", + icon_size = 128, + effects = + { + { + type = "unlock-recipe", + recipe = "shuttleTrain" + } + }, + prerequisites = {"automated-rail-transportation"}, + unit = + { + count = 70, + ingredients = + { + {"science-pack-1", 2}, + {"science-pack-2", 1}, + }, + time = 20 + }, + order = "c-g-b-a" + }, }) \ No newline at end of file diff --git a/ZGroupChange_1.2.4/config.lua b/ZGroupChange_1.2.5/config.lua similarity index 98% rename from ZGroupChange_1.2.4/config.lua rename to ZGroupChange_1.2.5/config.lua index 2bcdacb..acf7bef 100644 --- a/ZGroupChange_1.2.4/config.lua +++ b/ZGroupChange_1.2.5/config.lua @@ -1,62 +1,62 @@ - -use_custom_order = false -- Set "true" to enable custom order settings. Do not forget to rename template file in ZGroupChange\mods\ from _custom_TEMPLATE.lua >to> _custom_.lua !! - -use_graphics_tunnings = true -- Enable graphics tunings like better or fixed sprites - --------------------------------------------------------------------------------------------- ---# Balance changes such hiding items, change ingredients of recipes, technology changes #-- - -z_balance_Ignore_All = true -- If true - ignore any of balance settings below - - ------------------------------------------------------ ---# List of general balance triggers [true/false] #-- - -z_balance.vanila = true --- New coal recipe from raw-wood - -z_balance.dim = true --- Change ingredients for transport belts and gold circuit - -z_balance.bob = true --- Hide Electronic machines --- Hide items if 5dim version available, ignored otherwise --- Change nitroglycerin production line (ammo development) --- Hide 5dim modules if bobmodules available. Replace module-case by solder. - -z_balance.angels = true --- Hide water void - -z_balance.youki = true --- Hide not fitted in row additional middle-tier axes --- Hide Bob's storage tanks in exchange on youki --- Hide Bob's water miners and add new lithia water recipe for youki's water generator --- Hide items w/o recipes --- Hide Bob's radars mk4 and mk5 in exchange on youki - -z_balance.other = true --- Assign unlocking of flare stack recipes to the oil-processing and oil-processing-2 technology --- Hide Bob's greenhouse if Bio Industries enabled --- Hide pointless liquids, generated by Rail Tanker --- Add new tiers of flow control pipes if 5dim or Bob pipes exsists --- Assign unlocking of spawn belts recipes to the logistics-3 technology - - ------------------------------------------------------------------------------------------ ---# List of additional balance triggers (independed from global trigger) [true/false] #-- - -z_balance.add_trees = true -- Add woodpulp and organic dust to trees (depending on enabled mods) -z_balance.add_dirt = true -- Add dirt, ash and crushed stone to ores (depending on enabled mods) -z_balance.add_dust = true -- Add crushed (Youki) and ore's dust (5dim) to raw materials (depending on enabled mods) -z_balance.add_powder = true -- Add powdered ores to raw materials (if angel's processing mod enabled) -z_balance.add_gems = true -- Add some minerals to gem ore (if bob ores mod enabled) -z_balance.bob_inserters = true -- Filter out only original and (extra)fast inserters if "bob_inserters" mod enabled -z_balance.bob_pipes = true -- Hide pipes from non-original resources -z_balance.bob_synthetic = true -- Hide synthetic (synthetic-wood, wooden-board-synthetic, etc.) -z_balance.bob_weaponry = true -- Hide weapons, ammo and armored trains -z_balance.bob_transport = true -- Hide armored trains and tanks -z_balance.angels_bio = true -- Hide bio processing line -z_balance.youki_pipe = true -- Hide Youki's thin pipes and valve -z_balance.youki_tech = true -- Temporary solution while Yuoki have no their own technology -z_balance.other_mini = false -- Replace original factories by their mini-versions (mini-machines mod) - + +use_custom_order = false -- Set "true" to enable custom order settings. Do not forget to rename template file in ZGroupChange\mods\ from _custom_TEMPLATE.lua >to> _custom_.lua !! + +use_graphics_tunnings = true -- Enable graphics tunings like better or fixed sprites + +-------------------------------------------------------------------------------------------- +--# Balance changes such hiding items, change ingredients of recipes, technology changes #-- + +z_balance_Ignore_All = true -- If true - ignore any of balance settings below + + +----------------------------------------------------- +--# List of general balance triggers [true/false] #-- + +z_balance.vanila = true +-- New coal recipe from raw-wood + +z_balance.dim = true +-- Change ingredients for transport belts and gold circuit + +z_balance.bob = true +-- Hide Electronic machines +-- Hide items if 5dim version available, ignored otherwise +-- Change nitroglycerin production line (ammo development) +-- Hide 5dim modules if bobmodules available. Replace module-case by solder. + +z_balance.angels = true +-- Hide water void + +z_balance.youki = true +-- Hide not fitted in row additional middle-tier axes +-- Hide Bob's storage tanks in exchange on youki +-- Hide Bob's water miners and add new lithia water recipe for youki's water generator +-- Hide items w/o recipes +-- Hide Bob's radars mk4 and mk5 in exchange on youki + +z_balance.other = true +-- Assign unlocking of flare stack recipes to the oil-processing and oil-processing-2 technology +-- Hide Bob's greenhouse if Bio Industries enabled +-- Hide pointless liquids, generated by Rail Tanker +-- Add new tiers of flow control pipes if 5dim or Bob pipes exsists +-- Assign unlocking of spawn belts recipes to the logistics-3 technology + + +----------------------------------------------------------------------------------------- +--# List of additional balance triggers (independed from global trigger) [true/false] #-- + +z_balance.add_trees = true -- Add woodpulp and organic dust to trees (depending on enabled mods) +z_balance.add_dirt = true -- Add dirt, ash and crushed stone to ores (depending on enabled mods) +z_balance.add_dust = true -- Add crushed (Youki) and ore's dust (5dim) to raw materials (depending on enabled mods) +z_balance.add_powder = true -- Add powdered ores to raw materials (if angel's processing mod enabled) +z_balance.add_gems = true -- Add some minerals to gem ore (if bob ores mod enabled) +z_balance.bob_inserters = true -- Filter out only original and (extra)fast inserters if "bob_inserters" mod enabled +z_balance.bob_pipes = true -- Hide pipes from non-original resources +z_balance.bob_synthetic = true -- Hide synthetic (synthetic-wood, wooden-board-synthetic, etc.) +z_balance.bob_weaponry = true -- Hide weapons, ammo and armored trains +z_balance.bob_transport = true -- Hide armored trains and tanks +z_balance.angels_bio = true -- Hide bio processing line +z_balance.youki_pipe = true -- Hide Youki's thin pipes and valve +z_balance.youki_tech = true -- Temporary solution while Yuoki have no their own technology +z_balance.other_mini = false -- Replace original factories by their mini-versions (mini-machines mod) + diff --git a/ZGroupChange_1.2.4/data-final-fixes.lua b/ZGroupChange_1.2.5/data-final-fixes.lua similarity index 95% rename from ZGroupChange_1.2.4/data-final-fixes.lua rename to ZGroupChange_1.2.5/data-final-fixes.lua index 63576c9..3698925 100644 --- a/ZGroupChange_1.2.4/data-final-fixes.lua +++ b/ZGroupChange_1.2.5/data-final-fixes.lua @@ -1,63 +1,61 @@ -z_debug = true - - ---# rebalancing -z_balance = z_balance or {} -require("config") -for k,v in pairs(z_balance) do z_balance[k] = not z_balance_Ignore_All and v end -if not data.raw["custom-input"] or not data.raw["custom-input"]["bob-inserter-drop-range"] then z_balance.bob_inserters = false end - -log("Balance: %s",dumpvar(z_balance)) - ---# generate name list -for k,v in pairs(data.raw) do if type(v) == "table" then - for kk,vv in pairs(v) do table.insert(zgc.name_list,vv.name or kk) end -end end - ---# create basic groups -zgc.generate_main_groups() - - -require("mods.vanila") -require("mods.5dim") -require("mods.bobs") -require("mods.angels") -require("mods.yuoki") -require("mods.yuoki_railway") -require("mods.yuoki_engine") - -require("mods.other") -if use_custom_order then require("mods._custom_") end - - -data.raw.player["player"].inventory_size = 120 - ---# resort groups based on enabled mods/groups -local que = {} -if zgc.ig("refining") and zgc.ig("youki") and zgc.ig("engines") and zgc.ig("atom") then que = {"refining","resources","plates","liquids","chemistry","youki","engines","atom","parts","agronomies","armor","weaponry","module","alien","decorative","other"} -elseif zgc.ig("refining") and zgc.ig("youki") and zgc.ig("engines") then que = {"refining","resources","plates","liquids","chemistry","youki","engines","parts","agronomies","alien","armor","weaponry","module","decorative","other"} -elseif zgc.ig("youki") and zgc.ig("engines") and zgc.ig("atom") then que = {"resources","plates","liquids","chemistry","alien","youki","engines","atom","parts","agronomies","armor","weaponry","module","decorative","other"} -elseif zgc.ig("youki") and zgc.ig("engines") then que = {"resources","plates","liquids","chemistry","alien","youki","engines","parts","agronomies","decorative","armor","weaponry","module","other"} -elseif zgc.ig("refining") and zgc.ig("youki") and zgc.ig("atom") then que = {"refining","resources","plates","liquids","chemistry","youki","parts","atom","module","alien","armor","weaponry","decorative","other"} -elseif zgc.ig("refining") and zgc.ig("youki") then que = {"refining","resources","plates","liquids","chemistry","youki","parts","module","alien","decorative","armor","weaponry","other"} -elseif zgc.ig("youki") and zgc.ig("atom") then que = {"resources","plates","liquids","chemistry","alien","youki","parts","atom","module","decorative","armor","weaponry","other"} -elseif zgc.ig("refining") and zgc.ig("atom") then que = {"refining","resources","plates","liquids","chemistry","armor","weaponry","atom","module","alien","decorative","other"} -elseif zgc.ig("youki") then que = {"resources","plates","liquids","chemistry","alien","youki","parts","module","armor","weaponry","decorative","other"} -elseif zgc.ig("refining") then que = {"refining","resources","plates","liquids","chemistry","armor","weaponry","module","alien","decorative","other"} -elseif zgc.ig("atom") then que = {"resources","plates","liquids","chemistry","alien","armor","weaponry","atom","module","decorative","other"} -else que = {"resources","plates","liquids","chemistry","alien","armor","weaponry","module","decorative","other"} -end - ---# final tunning -zgc.resort_main_groups(que) -zgc.add_newRessource_finalize() - - -if true then - z_debug = true - log("-----[[ AFTER ]]-----" ) --- log("[NAMES] => %s", dumpvar(data.raw, 2, 1)) --- log("[ALL] => %s", dumpvar(data.raw, nil, 1)) --- log("[GROUPS] => %s", dumpvar(data.raw["item-group"],2,0)) - log("[S_GROUPS] => %s", dumpvar(data.raw["item-subgroup"],2,0)) +z_debug = true + + +--# rebalancing +z_balance = z_balance or {} +require("config") +for k,v in pairs(z_balance) do z_balance[k] = not z_balance_Ignore_All and v end +if not data.raw["custom-input"] or not data.raw["custom-input"]["bob-inserter-drop-range"] then z_balance.bob_inserters = false end + +log("Balance: %s",dumpvar(z_balance)) + +--# generate name list +for k,v in pairs(data.raw) do if type(v) == "table" then + for kk,vv in pairs(v) do table.insert(zgc.name_list,vv.name or kk) end +end end + +--# create basic groups +zgc.generate_main_groups() + + +require("mods.vanila") +require("mods.5dim") +require("mods.bobs") +require("mods.angels") +require("mods.yuoki") +require("mods.yuoki_railway") +require("mods.yuoki_engine") + +require("mods.other") +if use_custom_order then require("mods._custom_") end + + +data.raw.player["player"].inventory_size = 120 + +--# resort groups based on enabled mods/groups +local que = {} +if zgc.ig("refining") and zgc.ig("youki") and zgc.ig("engines") and zgc.ig("atom") then que = {"refining","resources","plates","liquids","chemistry","youki","engines","atom","parts","agronomies","armor","weaponry","module","alien","decorative","other"} +elseif zgc.ig("refining") and zgc.ig("youki") and zgc.ig("engines") then que = {"refining","resources","plates","liquids","chemistry","youki","engines","parts","agronomies","alien","armor","weaponry","module","decorative","other"} +elseif zgc.ig("youki") and zgc.ig("engines") and zgc.ig("atom") then que = {"resources","plates","liquids","chemistry","alien","youki","engines","atom","parts","agronomies","armor","weaponry","module","decorative","other"} +elseif zgc.ig("youki") and zgc.ig("engines") then que = {"resources","plates","liquids","chemistry","alien","youki","engines","parts","agronomies","decorative","armor","weaponry","module","other"} +elseif zgc.ig("refining") and zgc.ig("youki") and zgc.ig("atom") then que = {"refining","resources","plates","liquids","chemistry","youki","parts","atom","module","alien","armor","weaponry","decorative","other"} +elseif zgc.ig("refining") and zgc.ig("youki") then que = {"refining","resources","plates","liquids","chemistry","youki","parts","module","alien","decorative","armor","weaponry","other"} +elseif zgc.ig("youki") and zgc.ig("atom") then que = {"resources","plates","liquids","chemistry","alien","youki","parts","atom","module","decorative","armor","weaponry","other"} +elseif zgc.ig("refining") and zgc.ig("atom") then que = {"refining","resources","plates","liquids","chemistry","armor","weaponry","atom","module","alien","decorative","other"} +elseif zgc.ig("youki") then que = {"resources","plates","liquids","chemistry","alien","youki","parts","module","armor","weaponry","decorative","other"} +elseif zgc.ig("refining") then que = {"refining","resources","plates","liquids","chemistry","armor","weaponry","module","alien","decorative","other"} +elseif zgc.ig("atom") then que = {"resources","plates","liquids","chemistry","alien","armor","weaponry","atom","module","decorative","other"} +else que = {"resources","plates","liquids","chemistry","alien","armor","weaponry","module","decorative","other"} +end + +--# final tunning +zgc.resort_main_groups(que) +zgc.add_newRessource_finalize() + + +if true then + z_debug = true +-- log("-----[[ AFTER ]]-----" ) +-- log("[NAMES] => %s", dumpvar(data.raw, 2, 1)) +-- log("[ALL] => %s", dumpvar(data.raw, nil, 1)) end \ No newline at end of file diff --git a/ZGroupChange_1.2.4/data.lua b/ZGroupChange_1.2.5/data.lua similarity index 96% rename from ZGroupChange_1.2.4/data.lua rename to ZGroupChange_1.2.5/data.lua index 94bd564..4351fd2 100644 --- a/ZGroupChange_1.2.4/data.lua +++ b/ZGroupChange_1.2.5/data.lua @@ -1,796 +1,797 @@ -zgc = zgc or {} -zgc.cnt = 0 -zgc.itemtypes = { - "mining-tool", "repair-tool", "rail-planner", "blueprint-book", "blueprint", "deconstruction-item", "gun", "ammo", "armor","virtual-signal", "module", "tool", "capsule", "selection-tool", "item-with-entity-data"} -zgc.restrictedtypes = { - "assembling-machine","virtual-signal"} -zgc.brutgroups = { - "yuoki","Yuoki","yuoki-energy","yuoki_liquids","yi_engines","yuoki_railway","yie_harvest"} -zgc.grp_list = { -"gathering","production","resources","plates","liquids","chemistry","automatization","transport","defense","energy","logistic","module","intermediate","armor","weaponry","trains-vehicles","decorative","alien","other"} -zgc.mgq = { -{"gathering","production"}, -{"automatization","transport","logistic","energy","defense"}, -{"intermediate"}, -{"trains-vehicles"}, -} -zgc.new_ressourse_list = {} -zgc.name_list = {} - -_log = log -function log(msg,...) - if not z_debug then return "" end - return _log("[[ZGC]] "..string.format(msg,...)) -end - -function table.merge(tab1, tab2) - if type(tab1) == 'table' and type(tab2) == 'table' then - for k,v in pairs(tab2) do - if type(v)=='table' and type(tab1[k] or false)=='table' then - table.merge(tab1[k],v) - elseif type(k) == "number" then - table.insert(tab1,v) - else - tab1[k]=v - end - end - end - return tab1 -end - -function table.deepcopy(tab) - local tab_type = type(tab) - local copy - if tab_type == 'table' then - copy = {} - for tab_key, tab_value in next, tab, nil do - copy[table.deepcopy(tab_key)] = table.deepcopy(tab_value) - end - setmetatable(copy, table.deepcopy(getmetatable(tab))) - else -- number, string, boolean, etc - copy = tab - end - return copy -end - -function table.removekey(tab, key) - local element = tab[key] - tab[key] = nil - log("Remove key %s from [%s] table",key,tostring(tab)) - return element -end - -function table.has_value(tab, val) - for index, value in ipairs (tab) do - if value == val then - return true - end - end - return false -end - -function dumpvar(data, depth, sortdepth) - local tablecache = {} - local buffer = "" - local padder = " " - local depth = depth or 30 - local sortdepth = sortdepth or 0 - - local function dumpvar(d, _depth) - local t = type(d) - local str = tostring(d) - if (t == "table") then - if (tablecache[str]) then - -- table already dumped before, so we dont - -- dump it again, just mention it - buffer = buffer.."<"..str..">\n" - else - tablecache[str] = (tablecache[str] or 0) + 1 - - if _depth >= depth then buffer = buffer.."\n"; return end - buffer = buffer..string.format(" {%s-- <%s>\n",padder,str) - - if _depth <= sortdepth then - for k, v in pairsByKeys(d) do - buffer = buffer..string.rep(padder, _depth+1).."["..k.."]" - if _depth+1 < depth then buffer = buffer.." => " end - dumpvar(v, _depth+1) - end - else for k, v in pairs(d) do - buffer = buffer..string.rep(padder, _depth+1).."["..k.."]" - if _depth+1 < depth then buffer = buffer.." => " end - dumpvar(v, _depth+1) - end - end - - buffer = buffer..string.rep(padder, _depth).."}\n" - end - elseif (t == "number") then - buffer = buffer.."("..t..") "..str.."\n" - else - buffer = buffer.."("..t..") \""..str.."\"\n" - end - end - dumpvar(data, 0) - return buffer -end - -function pairsByKeys(t, f) - local a = {} - for n in pairs(t) do table.insert(a, n) end - table.sort(a, f) - local i = 0 -- iterator variable - local iter = function () -- iterator function - i = i + 1 - if a[i] == nil then return nil - else return a[i], t[a[i]] - end - end - return iter -end - - - -function zgc.i_get_type(name) - - local item_type = nil - local itemtypes_all = table.deepcopy(zgc.itemtypes) - table.insert(itemtypes_all,"fluid") - table.insert(itemtypes_all,"item") - - for _,type_name in pairs(itemtypes_all) do - if type_name ~= "recipe" and data.raw[type_name][name] then - if type_name ~= "item" then return type_name end - item_type = type_name - end - end - - return item_type -end - -function zgc.i_get_basic_type(name) - - if data.raw["item-with-entity-data"][name] then return "item-with-entity-data" end - if data.raw.item[name] then return "item" end - if data.raw.fluid[name] then return "fluid" end - - return nil -end - -function zgc.i_basic_item(inputs) - - local item = {} - - item.name = inputs.name or inputs[1] - item.amount = inputs.amount or inputs[2] or 1 - item.type = inputs.type or zgc.i_get_basic_type(item.name) or "item" - - return item -end - -function zgc.i_item(inputs) - local item = {} - - item.name = inputs.name or inputs[1] - item.amount = inputs.amount or inputs[2] - item.probability = inputs.probability or nil - item.type = inputs.type or zgc.i_get_basic_type(item.name) or "item" - - if not item.amount then - item.amount_min = inputs.amount_min or nil - item.amount_max = inputs.amount_max or nil - else item.amount = 1 end - - return item -end - -function zgc.i_combine(item1_in, item2_in) - - local item = {} - local item1 = zgc.i_item(item1_in) - local item2 = zgc.i_item(item2_in) - - item.name = item1.name - item.type = item1.type - - if item1.amount then - item.amount = item1.amount + (item2.amount or 0) - else - item.amount_min = (item1.amount_min or item1.amount or 1) + (item2.amount_min or item2.amount or 0) - item.amount_max = (item1.amount_max or item1.amount or 1) + (item2.amount_max or item2.amount or 0) - end - item1.probability = (item1.probability or 1) + (item2.probability or 1) / 2 - - return item -end - -function zgc.i_add_inc(list, item_in) - local item = zgc.i_item(item_in) - local flag = true - for i, obj in pairs(list) do - if obj[1] == item.name or obj.name == item.name then - flag = false - obj = zgc.i_combine(obj, item) - end - end - if flag then table.insert(list, item) end -end - -function zgc.i_add_new(list, item_in) - local item = zgc.i_item(item_in) - - for _,object in pairs(list) do - if item.name == zgc.i_basic_item(object).name then return end - end - table.insert(list, item) -end - -function zgc.i_remove(list, item) - for i, obj in ipairs(list) do - if obj[1] == item or obj.name == item then - table.remove(list, i) - end - end -end - - - -function zgc.r_remove_ingredient(recipe, item) - if data.raw.recipe[recipe] then - zgc.i_remove(data.raw.recipe[recipe].ingredients, item) - else - log("Recipe %s does not exist.",recipe) - end -end - -function zgc.r_remove_ingredient_in_all(item) - for recipe_name,recipe in pairs(data.raw.recipe) do - local _ingr = false - for _,ingredient in pairs(recipe) do - if ingredient[1] == item or (ingredient.name and ingredient.name == item) then _ingr = true end - end - if _ingr then zgc.r_remove_ingredient(recipe_name,item) end - end -end - -function zgc.r_add_new_ingredient(recipe, item) - if data.raw.recipe[recipe] and zgc.i_get_type(i_basic_item(item).name) then - zgc.i_add_new(data.raw.recipe[recipe].ingredients, zgc.i_basic_item(item)) - else - if not data.raw.recipe[recipe] then - log("Recipe %s does not exist.",recipe) - end - if not zgc.i_get_type(item) then - log("Ingredient %s does not exist.",i_basic_item(item).name) - end - end -end - -function zgc.r_add_ingredient(recipe, item) - if data.raw.recipe[recipe] and zgc.i_get_type(zgc.i_basic_item(item).name) then - zgc.i_add_inc(data.raw.recipe[recipe].ingredients, zgc.i_basic_item(item)) - else - if not data.raw.recipe[recipe] then - log("Recipe %s does not exist.",recipe) - end - if not zgc.i_get_basic_type(zgc.i_basic_item(item).name) then - log("Ingredient %s does not exist.",i_basic_item(item).name) - end - end -end - -function zgc.r_replace_ingredient(recipe, old, new) - local new = new or "raw-wood" - if data.raw.recipe[recipe] and zgc.i_get_type(new) then - local amount = 0 - for i, ingredient in pairs(data.raw.recipe[recipe].ingredients) do - if ingredient[1] == old then - amount = ingredient[2] + amount - end - if ingredient.name == old then - amount = ingredient.amount + amount - end - end - if amount > 0 then - zgc.r_remove_ingredient(recipe, old) - zgc.r_add_ingredient(recipe, {new, amount}) - end - else - if not data.raw.recipe[recipe] then - log("Recipe %s does not exist.",recipe) - end - if not zgc.i_get_type(new) then - log("Ingredient %s does not exist.",new) - end - end -end - -function zgc.r_replace_ingredient_in_all(old, new) - local new = new or "raw-wood" - if zgc.i_get_basic_type(new) then - for i, recipe in pairs(data.raw.recipe) do - zgc.r_replace_ingredient(recipe.name, old, new) - end - else - log("Ingredient %s does not exist.",new) - end -end - -function zgc.t_add_recipe_unlock(technology, recipe) - if data.raw.technology[technology] and data.raw.recipe[recipe] then - data.raw.technology[technology].effects = data.raw.technology[technology].effects or {} - for i, effect in pairs(data.raw.technology[technology].effects) do - if effect.type == "unlock-recipe" and effect.recipe == recipe then return end - end - table.insert(data.raw.technology[technology].effects,{type = "unlock-recipe", recipe = recipe}) - else - if not data.raw.technology[technology] then - log("technology %s does not exist.",technology) - end - if not data.raw.recipe[recipe] then - log("Recipe %s does not exist.",recipe) - end - end -end - -function zgc.t_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 - log("technology %s does not exist.",technology) - end -end - -function zgc.t_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 - elseif not data.raw.technology[technology] then - log("technology %s does not exist.",technology) - end -end - - - -function i_exist(item) - for _,v in pairs(zgc.name_list) do - if v == item then return true end - end - return false -end -function i_not_exist(item) - return not i_exist(item) -end - -function iadd(group,name,order,ico,anim) - - local group = zgc.get_group_name(group,name) - if not order then zgc.cnt = zgc.cnt+1 end - local order = order or "z"..zgc.cnt - local typeof = zgc.i_get_type(name) or "item" - local ico = ico or false - local anim = anim or false - - --# Item - if table.has_value(zgc.itemtypes, typeof) then - if not data.raw[typeof][name] then return end - data.raw[typeof][name].subgroup = group - data.raw[typeof][name].order = order - data.raw[typeof][name].flags = data.raw[typeof][name].oldflags or data.raw[typeof][name].flags - if ico then data.raw[typeof][name].icon = ico end - if anim then data.raw[typeof][name].animation.filename = anim end -log("ADD (%s) %s to %s : %s",string.upper(typeof),name,group,order) - return - - elseif data.raw["fluid"][name] then - data.raw["fluid"][name].subgroup = group - data.raw["fluid"][name].order = order - data.raw["fluid"][name].flags = data.raw["fluid"][name].oldflags or data.raw["fluid"][name].flags - if ico then data.raw["fluid"][name].icon = ico end -log("ADD (%s) %s to %s : %s",string.upper(typeof),name,group,order) - return - end - - if not data.raw.item[name] then return end - data.raw.item[name].subgroup = group - data.raw.item[name].order = order - data.raw.item[name].flags = data.raw.item[name].oldflags or data.raw.item[name].flags - if ico then data.raw.item[name].icon = ico end - if anim then data.raw.item[name].animation.filename = anim end -log("ADD ITEM %s to %s : %s",name,group,order) -end -function radd(group,recipe,order,ico) - - local group = zgc.get_group_name(group,name) - if not order then zgc.cnt = zgc.cnt+1 end - local order = order or "z"..zgc.cnt - local recipe = recipe or zgc.find_recipe(name) - local ico = ico or false - - --# Recipe - if data.raw.recipe[recipe] then - data.raw.recipe[recipe].subgroup = group - data.raw.recipe[recipe].order = order - data.raw.recipe[recipe].hidden = false - if ico then data.raw.recipe[recipe].icon = ico end -log("ADD RECIPE %s to %s : %s",recipe,group,order) - end -end -function aadd(group,name,order,ico,anim,addrecipe) - - if not order then zgc.cnt = zgc.cnt+1 end - local order = order or "z"..zgc.cnt - local typeof = zgc.i_get_type(name) or "item" - local ico = ico or false - local anim = anim or false - local recipe = zgc.find_recipe(name) - local addrecipe = addrecipe or true - - iadd(group,name,order,ico,anim) - if addrecipe then radd(group,recipe,order,ico) end - -end - -function ihide(name,replase,typeof) - local replase = replase or false - local typeof = typeof or zgc.i_get_type(name) or "item" - - --# Item - if not data.raw[typeof][name] then return end - data.raw[typeof][name].flags = data.raw[typeof][name].flags or {} - data.raw[typeof][name].oldflags = data.raw[typeof][name].flags - data.raw[typeof][name].flags = {"hidden"} - - --# Replace items - if replase then -log("REPLACE %s => %s",name,replase) - zgc.r_replace_ingredient_in_all(name, replase) - end - -end -function rhide(name,recipe) - local recipe = recipe or zgc.find_recipe(name) - - --# technology - local tech_name = "" - for t_name,t_data in pairs(data.raw.technology) do - if t_data.effects then - for _,effect in ipairs(t_data.effects) do - if effect.recipe and effect.recipe == recipe - then tech_name = t_name end - end - end - end - if #tech_name > 0 then -log("[[REMOVE]] %s from [%s]",name,tech_name) - zgc.t_remove_recipe_unlock(tech_name, name) - end - - --# Recipe - if data.raw.recipe[recipe] then - data.raw.recipe[recipe].hidden = true - end - -end -function ahide(name,replase) - - local typeof = zgc.i_get_type(name) or "item" - local replase = replase or false - local recipe = zgc.find_recipe(name) - - ihide(name,replase,typeof) - rhide(name,recipe) - -end - -function switch_tech(tname,flag) - if data.raw.technology[tname] then - local flag = flag or false - if flag then - if data.raw.technology[tname].hidden_effects then - data.raw.technology[tname].effects = table.deepcopy(data.raw.technology[tname].hidden_effects) - data.raw.technology[tname].hidden_effects = nil - end - else - if data.raw.technology[tname].effects then - data.raw.technology[tname].hidden_effects = table.deepcopy(data.raw.technology[tname].effects) - data.raw.technology[tname].effects = nil - end - end - data.raw.technology[tname].enabled = flag - end -end - - - -function zgc.find_recipe(item, brute) - - if not item or data.raw.recipe[item] then return item end - - local r_list = {} - table.insert(r_list, item) - table.insert(r_list, item.."-recipe") - table.insert(r_list, item.."_recipe") - if string.find(item,"-") then - table.insert(r_list, string.gsub(item,"(-)","_").."") - table.insert(r_list, string.gsub(item,"(-)","_").."-recipe") - table.insert(r_list, string.gsub(item,"(-)","_").."_recipe") - end - if string.find(item,"_") then - table.insert(r_list, string.gsub(item,"(_)","-").."") - table.insert(r_list, string.gsub(item,"(_)","-").."-recipe") - table.insert(r_list, string.gsub(item,"(_)","-").."_recipe") - end - - for _,v in pairs(r_list) do - if data.raw.recipe[v] then - if item ~= v then log("FIND RECIPE (%s) for %s",v,item) end - return v - end - end - - local recipe - local brute = brute or false - - if not brute and data.raw.item[item] and data.raw.item[item].group then - brute = table.has_value(zgc.brutgroups, data.raw.item[item].group) - end - - if brute then - for _name,_data in pairs(data.raw.recipe) do - if _data.result then - if (type(_data.result) == "table" and _data.result.name == item) - or (type(_data.result) == "string" and _data.result == item) then - log("BRUTE RECIPE (%s) for %s",_name,item) - return _name - end - elseif _data.results and type(_data.results) == "table" then - for _,v in pairs(_data.results) do - if v.name and v.name == item then - log("BRUTE RECIPE (%s) for %s",_name,item) - return _name - end - end - end - end - end - - return item -end - -function zgc.add_recipe_to_tech(t,r) - - local _r = zgc.find_recipe(r) - - if data.raw.technology[t] and data.raw.recipe[_r] then -log('RECIPE2TECH "%s"',_r) - data.raw.recipe[_r].enabled = false - data.raw.technology[t].enabled = true - data.raw.technology[t].hidden = false - zgc.t_add_recipe_unlock(t,_r) - else -log('[[RECIPE2TECH FAIL]] "%s"',_r) - end - -end - -function zgc.add_newRessource_min_max(main_source, it, mn, mx, pb, it2, mn2, mx2, pb2) - - if not data.raw.item[it] then return end - - local _res1 = { - type = "item", - name = it, - amount_min = mn, - amount_max = mx, - probability = pb - } - local _res2 = { - type = "item", - name = it2, - amount_min = mn2, - amount_max = mx2, - probability = pb2 - } - - if main_source == "raw-wood" then - local tree_names = {"green-coral","tree-01","tree-02","tree-02-red","tree-03","tree-04","tree-05","tree-06","tree-06-brown","tree-07","tree-08","tree-08-brown","tree-08-red","tree-09","tree-09-brown","tree-09-red"} - for k in pairs(tree_names) do - local tree = data.raw.tree[k] - if tree and type(tree.minable) == "table" then - if zgc.new_ressourse_list[k] == nil then zgc.new_ressourse_list[k] = {} end - if type(tree.minable.results) == "table" then - for _,v in pairs(tree.minable.results) do - table.insert(zgc.new_ressourse_list[k],v) end - table.insert(zgc.new_ressourse_list[k],_res1) - if it2 ~= nil and data.raw.item[it2] then table.insert(zgc.new_ressourse_list[k],_res2) end - - elseif tree.minable.result ~= nil then - local count = tree.minable.count or 2 - table.insert(zgc.new_ressourse_list[k],{ - type = "item", - name = "raw-wood", - amount_min = tree.minable.amount_min or math.ceil(count/2), - amount_max = tree.minable.amount_max or count, - probability = 1 - }) - table.insert(zgc.new_ressourse_list[k],_res1) - if it2 ~= nil and data.raw.item[it2] then table.insert(zgc.new_ressourse_list[k],_res2) end - end - end - end - elseif data.raw.resource[main_source] and type(data.raw.resource[main_source].minable) == "table" then - local source_col = {main_source, main_source.."__tm", "infinite-"..main_source, "infinite-"..main_source.."__tm"} - for _,source in pairs(source_col) do if data.raw.resource[source] then - if type(data.raw.resource[source].minable.results) == "table" then - zgc.new_ressourse_list[source] = table.deepcopy(data.raw.resource[source].minable.results) - else - zgc.new_ressourse_list[source] = zgc.new_ressourse_list[source] or {} - local count = data.raw.resource[source].minable.count or 2 - table.insert(zgc.new_ressourse_list[source],{ - type = "item", - name = main_source, - amount_min = data.raw.resource[source].minable.amount_min or math.ceil(count/2), - amount_max = data.raw.resource[source].minable.amount_max or count, - probability = 1 - }) - end - table.insert(zgc.new_ressourse_list[source],_res1) - if it2 ~= nil and data.raw.item[it2] then table.insert(zgc.new_ressourse_list[source],_res2) end - end end - end -end - -function zgc.add_newRessource_finalize() - for k,v in pairs(data.raw.tree) do - if zgc.new_ressourse_list[k] ~= nil then - v.minable.result = nil - v.minable.count = nil - v.minable.results = {} - v.minable.results = table.deepcopy(zgc.new_ressourse_list[k]) - end - end - - for k,v in pairs(data.raw.resource) do - if zgc.new_ressourse_list[k] ~= nil then - v.minable.result = nil - v.minable.count = nil - v.minable.results = {} - v.minable.results = table.deepcopy(zgc.new_ressourse_list[k]) - end - end - -end - -function zgc.generate_main_groups() - local c = 0 - local z = "" - for _,g in pairs(zgc.grp_list) do c=c+1 - if c<10 then z="0" else z="" end - zgc.add_main_group(g) - end -end - -function zgc.add_main_group(name,order) - local order = order or "" - data:extend({{ - type = "item-group", - name = "zgc-"..name, - order = "0 0 zgc-"..order, - inventory_order = "0 0 zgc-"..order, - icon = "__ZGroupChange__/graphics/icons/cat/"..name..".png", - }}) -end - -function zgc.ig(name) - return data.raw["item-group"][name] or data.raw["item-group"]["zgc-"..name] or nil -end -function zgc.isg(name) - return data.raw["item-subgroup"][name] or data.raw["item-subgroup"]["zgc-"..name] or nil -end - -function zgc.resort_main_groups(que) - local cnt = 1 - for r=1,5 do for c=1,6 do - if zgc.mgq[r] and zgc.mgq[r][c] then - zgc.group_order("zgc-"..zgc.mgq[r][c], "0 0 zgc-"..r..c) - elseif que and que[cnt] then - zgc.group_order("zgc-"..que[cnt], "0 0 zgc-"..r..c) - cnt = cnt+1 - else break end - end end -end - -function zgc.get_base_name(name,plus) - - if name:match('^z[-]%a+[-]%d+$') then name = name:match("^z[-](%a+)[-]%d+$"):gsub("-","") end - return name - -end - -function zgc.get_main_group(name) - - local name = zgc.get_base_name(name) - - if string.find(name,"trains") or string.find(name,"vehicles") then - name = string.gsub(name,"(trains)(vehicles)", "trains-vehicles") - end - - for k,_ in pairs(data.raw["item-group"]) do - if string.find(k,name) and k:match('^zgc[-]') then return k end - end - - return false -end - -function zgc.get_group_name(name,item) - - if data.raw["item-subgroup"][name] then return name end - - local _name = name:match("^z[-](%a+[-]%d%d?)$") or name - _name = "zgc-".._name - if data.raw["item-subgroup"][_name] then return _name end - - - local order = name:match('[-](%d%d?)$') - if tonumber(order) then - if tonumber(order) < 10 then order = '0'..order end - else - log("[get_group_name] tonumber(%s) = %s",name,order or "nil") - order = name - end - - if string.find(name, "trains") then order = "t "..order end - if string.find(name, "vehicles") then order = "v "..order end - - local main_group = zgc.get_main_group(name) - - if main_group then -log("ADD NEW SUB GROUP [%s] for %s",_name,main_group) - data.raw["item-subgroup"][_name] = { - type = "item-subgroup", - name = _name, - group = main_group, - order = order - } - else -log("ADD UNKNOWN SUB GROUP [%s] to OTHER (reason: %s)",_name,item) - data.raw["item-subgroup"][_name] = { - type = "item-subgroup", - name = _name, - group = "zgc-other", - order = order - } - end - - return _name -end - -function zgc.group_order(g_name,order) - if data.raw["item-group"][g_name] then - data.raw["item-group"][g_name].order = order - data.raw["item-group"][g_name].inventory_order = order - end -end - -function zgc.set_icon(item,ico) - - local typeof = zgc.i_get_type(item) or "item" - local recipe = zgc.find_recipe(item) - - if data.raw[typeof][item] then - data.raw[typeof][item].icon = ico - end - if data.raw.recipe[recipe] then - data.raw.recipe[recipe].icon = ico - end -end - - +zgc = zgc or {} +zgc.cnt = 0 +zgc.itemtypes = { + "mining-tool", "repair-tool", "rail-planner", "blueprint-book", "blueprint", "deconstruction-item", "gun", "ammo", "armor","virtual-signal", "module", "tool", "capsule", "selection-tool", "item-with-entity-data"} +zgc.restrictedtypes = { + "assembling-machine","virtual-signal"} +zgc.brutgroups = { + "yuoki","Yuoki","yuoki-energy","yuoki_liquids","yi_engines","yuoki_railway","yie_harvest"} +zgc.grp_list = { +"gathering","production","resources","plates","liquids","chemistry","automatization","transport","defense","energy","logistic","module","intermediate","armor","weaponry","trains-vehicles","decorative","alien","other"} +zgc.mgq = { +{"gathering","production"}, +{"automatization","transport","logistic","energy","defense"}, +{"intermediate"}, +{"trains-vehicles"}, +} +zgc.new_ressourse_list = {} +zgc.name_list = {} + +_log = log +function log(msg,...) + if not z_debug then return "" end + return _log("[[ZGC]] "..string.format(msg,...)) +end + +function table.merge(tab1, tab2) + if type(tab1) == 'table' and type(tab2) == 'table' then + for k,v in pairs(tab2) do + if type(v)=='table' and type(tab1[k] or false)=='table' then + table.merge(tab1[k],v) + elseif type(k) == "number" then + table.insert(tab1,v) + else + tab1[k]=v + end + end + end + return tab1 +end + +function table.deepcopy(tab) + local tab_type = type(tab) + local copy + if tab_type == 'table' then + copy = {} + for tab_key, tab_value in next, tab, nil do + copy[table.deepcopy(tab_key)] = table.deepcopy(tab_value) + end + setmetatable(copy, table.deepcopy(getmetatable(tab))) + else -- number, string, boolean, etc + copy = tab + end + return copy +end + +function table.removekey(tab, key) + local element = tab[key] + tab[key] = nil + log("Remove key %s from [%s] table",key,tostring(tab)) + return element +end + +function table.has_value(tab, val) + for index, value in ipairs (tab) do + if value == val then + return true + end + end + return false +end + +function dumpvar(data, depth, sortdepth) + local tablecache = {} + local buffer = "" + local padder = " " + local depth = depth or 30 + local sortdepth = sortdepth or 0 + + local function dumpvar(d, _depth) + local t = type(d) + local str = tostring(d) + if (t == "table") then + if (tablecache[str]) then + -- table already dumped before, so we dont + -- dump it again, just mention it + buffer = buffer.."<"..str..">\n" + else + tablecache[str] = (tablecache[str] or 0) + 1 + + if _depth >= depth then buffer = buffer.."\n"; return end + buffer = buffer..string.format(" {%s-- <%s>\n",padder,str) + + if _depth <= sortdepth then + for k, v in pairsByKeys(d) do + buffer = buffer..string.rep(padder, _depth+1).."["..k.."]" + if _depth+1 < depth then buffer = buffer.." => " end + dumpvar(v, _depth+1) + end + else for k, v in pairs(d) do + buffer = buffer..string.rep(padder, _depth+1).."["..k.."]" + if _depth+1 < depth then buffer = buffer.." => " end + dumpvar(v, _depth+1) + end + end + + buffer = buffer..string.rep(padder, _depth).."}\n" + end + elseif (t == "number") then + buffer = buffer.."("..t..") "..str.."\n" + else + buffer = buffer.."("..t..") \""..str.."\"\n" + end + end + dumpvar(data, 0) + return buffer +end + +function pairsByKeys(t, f) + local a = {} + for n in pairs(t) do table.insert(a, n) end + table.sort(a, f) + local i = 0 -- iterator variable + local iter = function () -- iterator function + i = i + 1 + if a[i] == nil then return nil + else return a[i], t[a[i]] + end + end + return iter +end + + + +function zgc.i_get_type(name) + + local item_type = nil + local itemtypes_all = table.deepcopy(zgc.itemtypes) + table.insert(itemtypes_all,"fluid") + table.insert(itemtypes_all,"item") + + for _,type_name in pairs(itemtypes_all) do + if type_name ~= "recipe" and data.raw[type_name][name] then + if type_name ~= "item" then return type_name end + item_type = type_name + end + end + + return item_type +end + +function zgc.i_get_basic_type(name) + + if data.raw["item-with-entity-data"][name] then return "item-with-entity-data" end + if data.raw.item[name] then return "item" end + if data.raw.fluid[name] then return "fluid" end + + return nil +end + +function zgc.i_basic_item(inputs) + + local item = {} + + item.name = inputs.name or inputs[1] + item.amount = inputs.amount or inputs[2] or 1 + item.type = inputs.type or zgc.i_get_basic_type(item.name) or "item" + + return item +end + +function zgc.i_item(inputs) + local item = {} + + item.name = inputs.name or inputs[1] + item.amount = inputs.amount or inputs[2] + item.probability = inputs.probability or nil + item.type = inputs.type or zgc.i_get_basic_type(item.name) or "item" + + if not item.amount then + item.amount_min = inputs.amount_min or nil + item.amount_max = inputs.amount_max or nil + else item.amount = 1 end + + return item +end + +function zgc.i_combine(item1_in, item2_in) + + local item = {} + local item1 = zgc.i_item(item1_in) + local item2 = zgc.i_item(item2_in) + + item.name = item1.name + item.type = item1.type + + if item1.amount then + item.amount = item1.amount + (item2.amount or 0) + else + item.amount_min = (item1.amount_min or item1.amount or 1) + (item2.amount_min or item2.amount or 0) + item.amount_max = (item1.amount_max or item1.amount or 1) + (item2.amount_max or item2.amount or 0) + end + item1.probability = (item1.probability or 1) + (item2.probability or 1) / 2 + + return item +end + +function zgc.i_add_inc(list, item_in) + local item = zgc.i_item(item_in) + local flag = true + for i, obj in pairs(list) do + if obj[1] == item.name or obj.name == item.name then + flag = false + obj = zgc.i_combine(obj, item) + end + end + if flag then table.insert(list, item) end +end + +function zgc.i_add_new(list, item_in) + local item = zgc.i_item(item_in) + + for _,object in pairs(list) do + if item.name == zgc.i_basic_item(object).name then return end + end + table.insert(list, item) +end + +function zgc.i_remove(list, item) + for i, obj in ipairs(list) do + if obj[1] == item or obj.name == item then + table.remove(list, i) + end + end +end + + + +function zgc.r_remove_ingredient(recipe, item) + if data.raw.recipe[recipe] then + zgc.i_remove(data.raw.recipe[recipe].ingredients, item) + else + log("Recipe %s does not exist.",recipe) + end +end + +function zgc.r_remove_ingredient_in_all(item) + for recipe_name,recipe in pairs(data.raw.recipe) do + local _ingr = false + for _,ingredient in pairs(recipe) do + if ingredient[1] == item or (ingredient.name and ingredient.name == item) then _ingr = true end + end + if _ingr then zgc.r_remove_ingredient(recipe_name,item) end + end +end + +function zgc.r_add_new_ingredient(recipe, item) + if data.raw.recipe[recipe] and zgc.i_get_type(i_basic_item(item).name) then + zgc.i_add_new(data.raw.recipe[recipe].ingredients, zgc.i_basic_item(item)) + else + if not data.raw.recipe[recipe] then + log("Recipe %s does not exist.",recipe) + end + if not zgc.i_get_type(item) then + log("Ingredient %s does not exist.",i_basic_item(item).name) + end + end +end + +function zgc.r_add_ingredient(recipe, item) + if data.raw.recipe[recipe] and zgc.i_get_type(zgc.i_basic_item(item).name) then + zgc.i_add_inc(data.raw.recipe[recipe].ingredients, zgc.i_basic_item(item)) + else + if not data.raw.recipe[recipe] then + log("Recipe %s does not exist.",recipe) + end + if not zgc.i_get_basic_type(zgc.i_basic_item(item).name) then + log("Ingredient %s does not exist.",i_basic_item(item).name) + end + end +end + +function zgc.r_replace_ingredient(recipe, old, new) + local new = new or "raw-wood" + if data.raw.recipe[recipe] and zgc.i_get_type(new) then + local amount = 0 + for i, ingredient in pairs(data.raw.recipe[recipe].ingredients) do + if ingredient[1] == old then + amount = ingredient[2] + amount + end + if ingredient.name == old then + amount = ingredient.amount + amount + end + end + if amount > 0 then + zgc.r_remove_ingredient(recipe, old) + zgc.r_add_ingredient(recipe, {new, amount}) + end + else + if not data.raw.recipe[recipe] then + log("Recipe %s does not exist.",recipe) + end + if not zgc.i_get_type(new) then + log("Ingredient %s does not exist.",new) + end + end +end + +function zgc.r_replace_ingredient_in_all(old, new) + local new = new or "raw-wood" + if zgc.i_get_basic_type(new) then + for i, recipe in pairs(data.raw.recipe) do + zgc.r_replace_ingredient(recipe.name, old, new) + end + else + log("Ingredient %s does not exist.",new) + end +end + +function zgc.t_add_recipe_unlock(technology, recipe) + if data.raw.technology[technology] and data.raw.recipe[recipe] then + data.raw.technology[technology].effects = data.raw.technology[technology].effects or {} + for i, effect in pairs(data.raw.technology[technology].effects) do + if effect.type == "unlock-recipe" and effect.recipe == recipe then return end + end + table.insert(data.raw.technology[technology].effects,{type = "unlock-recipe", recipe = recipe}) + else + if not data.raw.technology[technology] then + log("technology %s does not exist.",technology) + end + if not data.raw.recipe[recipe] then + log("Recipe %s does not exist.",recipe) + end + end +end + +function zgc.t_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 + log("technology %s does not exist.",technology) + end +end + +function zgc.t_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 + elseif not data.raw.technology[technology] then + log("technology %s does not exist.",technology) + end +end + + + + +function i_exist(item) + for _,v in pairs(zgc.name_list) do + if v == item then return true end + end + return false +end +function i_not_exist(item) + return not i_exist(item) +end + +function iadd(group,name,order,ico,anim) + + local group = zgc.get_group_name(group,name) + if not order then zgc.cnt = zgc.cnt+1 end + local order = order or "z"..zgc.cnt + local typeof = zgc.i_get_type(name) or "item" + local ico = ico or false + local anim = anim or false + + --# Item + if table.has_value(zgc.itemtypes, typeof) then + if not data.raw[typeof][name] then return end + data.raw[typeof][name].subgroup = group + data.raw[typeof][name].order = order + data.raw[typeof][name].flags = data.raw[typeof][name].oldflags or data.raw[typeof][name].flags + if ico then data.raw[typeof][name].icon = ico end + if anim then data.raw[typeof][name].animation.filename = anim end +log("ADD (%s) %s to %s : %s",string.upper(typeof),name,group,order) + return + + elseif data.raw["fluid"][name] then + data.raw["fluid"][name].subgroup = group + data.raw["fluid"][name].order = order + data.raw["fluid"][name].flags = data.raw["fluid"][name].oldflags or data.raw["fluid"][name].flags + if ico then data.raw["fluid"][name].icon = ico end +log("ADD (%s) %s to %s : %s",string.upper(typeof),name,group,order) + return + end + + if not data.raw.item[name] then return end + data.raw.item[name].subgroup = group + data.raw.item[name].order = order + data.raw.item[name].flags = data.raw.item[name].oldflags or data.raw.item[name].flags + if ico then data.raw.item[name].icon = ico end + if anim then data.raw.item[name].animation.filename = anim end +log("ADD ITEM %s to %s : %s",name,group,order) +end +function radd(group,recipe,order,ico) + + local group = zgc.get_group_name(group,name) + if not order then zgc.cnt = zgc.cnt+1 end + local order = order or "z"..zgc.cnt + local recipe = recipe or zgc.find_recipe(name) + local ico = ico or false + + --# Recipe + if data.raw.recipe[recipe] then + data.raw.recipe[recipe].subgroup = group + data.raw.recipe[recipe].order = order + data.raw.recipe[recipe].hidden = false + if ico then data.raw.recipe[recipe].icon = ico end +log("ADD RECIPE %s to %s : %s",recipe,group,order) + end +end +function aadd(group,name,order,ico,anim,addrecipe) + + if not order then zgc.cnt = zgc.cnt+1 end + local order = order or "z"..zgc.cnt + local typeof = zgc.i_get_type(name) or "item" + local ico = ico or false + local anim = anim or false + local recipe = zgc.find_recipe(name) + local addrecipe = addrecipe or true + + iadd(group,name,order,ico,anim) + if addrecipe then radd(group,recipe,order,ico) end + +end + +function ihide(name,replase,typeof) + local replase = replase or false + local typeof = typeof or zgc.i_get_type(name) or "item" + + --# Item + if not data.raw[typeof][name] then return end + data.raw[typeof][name].flags = data.raw[typeof][name].flags or {} + data.raw[typeof][name].oldflags = data.raw[typeof][name].flags + data.raw[typeof][name].flags = {"hidden"} + + --# Replace items + if replase then +log("REPLACE %s => %s",name,replase) + zgc.r_replace_ingredient_in_all(name, replase) + end + +end +function rhide(name,recipe) + local recipe = recipe or zgc.find_recipe(name) + + --# technology + local tech_name = "" + for t_name,t_data in pairs(data.raw.technology) do + if t_data.effects then + for _,effect in ipairs(t_data.effects) do + if effect.recipe and effect.recipe == recipe + then tech_name = t_name end + end + end + end + if #tech_name > 0 then +log("[[REMOVE]] %s from [%s]",name,tech_name) + zgc.t_remove_recipe_unlock(tech_name, name) + end + + --# Recipe + if data.raw.recipe[recipe] then + data.raw.recipe[recipe].hidden = true + end + +end +function ahide(name,replase) + + local typeof = zgc.i_get_type(name) or "item" + local replase = replase or false + local recipe = zgc.find_recipe(name) + + ihide(name,replase,typeof) + rhide(name,recipe) + +end + +function switch_tech(tname,flag) + if data.raw.technology[tname] then + local flag = flag or false + if flag then + if data.raw.technology[tname].hidden_effects then + data.raw.technology[tname].effects = table.deepcopy(data.raw.technology[tname].hidden_effects) + data.raw.technology[tname].hidden_effects = nil + end + else + if data.raw.technology[tname].effects then + data.raw.technology[tname].hidden_effects = table.deepcopy(data.raw.technology[tname].effects) + data.raw.technology[tname].effects = nil + end + end + data.raw.technology[tname].enabled = flag + end +end + + + +function zgc.find_recipe(item, brute) + + if not item or data.raw.recipe[item] then return item end + + local r_list = {} + table.insert(r_list, item) + table.insert(r_list, item.."-recipe") + table.insert(r_list, item.."_recipe") + if string.find(item,"-") then + table.insert(r_list, string.gsub(item,"(-)","_").."") + table.insert(r_list, string.gsub(item,"(-)","_").."-recipe") + table.insert(r_list, string.gsub(item,"(-)","_").."_recipe") + end + if string.find(item,"_") then + table.insert(r_list, string.gsub(item,"(_)","-").."") + table.insert(r_list, string.gsub(item,"(_)","-").."-recipe") + table.insert(r_list, string.gsub(item,"(_)","-").."_recipe") + end + + for _,v in pairs(r_list) do + if data.raw.recipe[v] then + if item ~= v then log("FIND RECIPE (%s) for %s",v,item) end + return v + end + end + + local recipe + local brute = brute or false + + if not brute and data.raw.item[item] and data.raw.item[item].group then + brute = table.has_value(zgc.brutgroups, data.raw.item[item].group) + end + + if brute then + for _name,_data in pairs(data.raw.recipe) do + if _data.result then + if (type(_data.result) == "table" and _data.result.name == item) + or (type(_data.result) == "string" and _data.result == item) then + log("BRUTE RECIPE (%s) for %s",_name,item) + return _name + end + elseif _data.results and type(_data.results) == "table" then + for _,v in pairs(_data.results) do + if v.name and v.name == item then + log("BRUTE RECIPE (%s) for %s",_name,item) + return _name + end + end + end + end + end + + return item +end + +function zgc.add_recipe_to_tech(t,r) + + local _r = zgc.find_recipe(r) + + if data.raw.technology[t] and data.raw.recipe[_r] then +log('RECIPE2TECH "%s"',_r) + data.raw.recipe[_r].enabled = false + data.raw.technology[t].enabled = true + data.raw.technology[t].hidden = false + zgc.t_add_recipe_unlock(t,_r) + else +log('[[RECIPE2TECH FAIL]] "%s"',_r) + end + +end + +function zgc.add_newRessource_min_max(main_source, it, mn, mx, pb, it2, mn2, mx2, pb2) + + if not data.raw.item[it] then return end + + local _res1 = { + type = "item", + name = it, + amount_min = mn, + amount_max = mx, + probability = pb + } + local _res2 = { + type = "item", + name = it2, + amount_min = mn2, + amount_max = mx2, + probability = pb2 + } + + if main_source == "raw-wood" then + local tree_names = {"green-coral","tree-01","tree-02","tree-02-red","tree-03","tree-04","tree-05","tree-06","tree-06-brown","tree-07","tree-08","tree-08-brown","tree-08-red","tree-09","tree-09-brown","tree-09-red"} + for k in pairs(tree_names) do + local tree = data.raw.tree[k] + if tree and type(tree.minable) == "table" then + if zgc.new_ressourse_list[k] == nil then zgc.new_ressourse_list[k] = {} end + if type(tree.minable.results) == "table" then + for _,v in pairs(tree.minable.results) do + table.insert(zgc.new_ressourse_list[k],v) end + table.insert(zgc.new_ressourse_list[k],_res1) + if it2 ~= nil and data.raw.item[it2] then table.insert(zgc.new_ressourse_list[k],_res2) end + + elseif tree.minable.result ~= nil then + local count = tree.minable.count or 2 + table.insert(zgc.new_ressourse_list[k],{ + type = "item", + name = "raw-wood", + amount_min = tree.minable.amount_min or math.ceil(count/2), + amount_max = tree.minable.amount_max or count, + probability = 1 + }) + table.insert(zgc.new_ressourse_list[k],_res1) + if it2 ~= nil and data.raw.item[it2] then table.insert(zgc.new_ressourse_list[k],_res2) end + end + end + end + elseif data.raw.resource[main_source] and type(data.raw.resource[main_source].minable) == "table" then + local source_col = {main_source, main_source.."__tm", "infinite-"..main_source, "infinite-"..main_source.."__tm"} + for _,source in pairs(source_col) do if data.raw.resource[source] then + if type(data.raw.resource[source].minable.results) == "table" then + zgc.new_ressourse_list[source] = table.deepcopy(data.raw.resource[source].minable.results) + else + zgc.new_ressourse_list[source] = zgc.new_ressourse_list[source] or {} + local count = data.raw.resource[source].minable.count or 2 + table.insert(zgc.new_ressourse_list[source],{ + type = "item", + name = main_source, + amount_min = data.raw.resource[source].minable.amount_min or math.ceil(count/2), + amount_max = data.raw.resource[source].minable.amount_max or count, + probability = 1 + }) + end + table.insert(zgc.new_ressourse_list[source],_res1) + if it2 ~= nil and data.raw.item[it2] then table.insert(zgc.new_ressourse_list[source],_res2) end + end end + end +end + +function zgc.add_newRessource_finalize() + for k,v in pairs(data.raw.tree) do + if zgc.new_ressourse_list[k] ~= nil then + v.minable.result = nil + v.minable.count = nil + v.minable.results = {} + v.minable.results = table.deepcopy(zgc.new_ressourse_list[k]) + end + end + + for k,v in pairs(data.raw.resource) do + if zgc.new_ressourse_list[k] ~= nil then + v.minable.result = nil + v.minable.count = nil + v.minable.results = {} + v.minable.results = table.deepcopy(zgc.new_ressourse_list[k]) + end + end + +end + +function zgc.generate_main_groups() + local c = 0 + local z = "" + for _,g in pairs(zgc.grp_list) do c=c+1 + if c<10 then z="0" else z="" end + zgc.add_main_group(g) + end +end + +function zgc.add_main_group(name,order) + local order = order or "" + data:extend({{ + type = "item-group", + name = "zgc-"..name, + order = "0 0 zgc-"..order, + inventory_order = "0 0 zgc-"..order, + icon = "__ZGroupChange__/graphics/icons/cat/"..name..".png", + }}) +end + +function zgc.ig(name) + return data.raw["item-group"][name] or data.raw["item-group"]["zgc-"..name] or nil +end +function zgc.isg(name) + return data.raw["item-subgroup"][name] or data.raw["item-subgroup"]["zgc-"..name] or nil +end + +function zgc.resort_main_groups(que) + local cnt = 1 + for r=1,5 do for c=1,6 do + if zgc.mgq[r] and zgc.mgq[r][c] then + zgc.group_order("zgc-"..zgc.mgq[r][c], "0 0 zgc-"..r..c) + elseif que and que[cnt] then + zgc.group_order("zgc-"..que[cnt], "0 0 zgc-"..r..c) + cnt = cnt+1 + else break end + end end +end + +function zgc.get_base_name(name,plus) + + if name:match('^z[-]%a+[-]%d+$') then name = name:match("^z[-](%a+)[-]%d+$"):gsub("-","") end + return name + +end + +function zgc.get_main_group(name) + + local name = zgc.get_base_name(name) + + if string.find(name,"trains") or string.find(name,"vehicles") then + name = string.gsub(name,"(trains)(vehicles)", "trains-vehicles") + end + + for k,_ in pairs(data.raw["item-group"]) do + if string.find(k,name) and k:match('^zgc[-]') then return k end + end + + return false +end + +function zgc.get_group_name(name,item) + + if data.raw["item-subgroup"][name] then return name end + + local _name = name:match("^z[-](%a+[-]%d%d?)$") or name + _name = "zgc-".._name + if data.raw["item-subgroup"][_name] then return _name end + + + local order = name:match('[-](%d%d?)$') + if tonumber(order) then + if tonumber(order) < 10 then order = '0'..order end + else + log("[get_group_name] tonumber(%s) = %s",name,order or "nil") + order = name + end + + if string.find(name, "trains") then order = "t "..order end + if string.find(name, "vehicles") then order = "v "..order end + + local main_group = zgc.get_main_group(name) + + if main_group then +log("ADD NEW SUB GROUP [%s] for %s",_name,main_group) + data.raw["item-subgroup"][_name] = { + type = "item-subgroup", + name = _name, + group = main_group, + order = order + } + else +log("ADD UNKNOWN SUB GROUP [%s] to OTHER (reason: %s)",_name,item) + data.raw["item-subgroup"][_name] = { + type = "item-subgroup", + name = _name, + group = "zgc-other", + order = order + } + end + + return _name +end + +function zgc.group_order(g_name,order) + if data.raw["item-group"][g_name] then + data.raw["item-group"][g_name].order = order + data.raw["item-group"][g_name].inventory_order = order + end +end + +function zgc.set_icon(item,ico) + + local typeof = zgc.i_get_type(item) or "item" + local recipe = zgc.find_recipe(item) + + if data.raw[typeof][item] then + data.raw[typeof][item].icon = ico + end + if data.raw.recipe[recipe] then + data.raw.recipe[recipe].icon = ico + end +end + + diff --git a/ZGroupChange_1.2.4/graphics/entity/5d_gr_4.png b/ZGroupChange_1.2.5/graphics/entity/5d_gr_4.png similarity index 100% rename from ZGroupChange_1.2.4/graphics/entity/5d_gr_4.png rename to ZGroupChange_1.2.5/graphics/entity/5d_gr_4.png diff --git a/ZGroupChange_1.2.4/graphics/entity/5d_gr_5.png b/ZGroupChange_1.2.5/graphics/entity/5d_gr_5.png similarity index 100% rename from ZGroupChange_1.2.4/graphics/entity/5d_gr_5.png rename to ZGroupChange_1.2.5/graphics/entity/5d_gr_5.png diff --git a/ZGroupChange_1.2.4/graphics/entity/assembling-machine-3-anim.png b/ZGroupChange_1.2.5/graphics/entity/assembling-machine-3-anim.png similarity index 100% rename from ZGroupChange_1.2.4/graphics/entity/assembling-machine-3-anim.png rename to ZGroupChange_1.2.5/graphics/entity/assembling-machine-3-anim.png diff --git a/ZGroupChange_1.2.4/graphics/entity/assembling-machine-4-anim.png b/ZGroupChange_1.2.5/graphics/entity/assembling-machine-4-anim.png similarity index 100% rename from ZGroupChange_1.2.4/graphics/entity/assembling-machine-4-anim.png rename to ZGroupChange_1.2.5/graphics/entity/assembling-machine-4-anim.png diff --git a/ZGroupChange_1.2.4/graphics/entity/assembling-machine-5-anim.png b/ZGroupChange_1.2.5/graphics/entity/assembling-machine-5-anim.png similarity index 100% rename from ZGroupChange_1.2.4/graphics/entity/assembling-machine-5-anim.png rename to ZGroupChange_1.2.5/graphics/entity/assembling-machine-5-anim.png diff --git a/ZGroupChange_1.2.4/graphics/entity/assembling-machine-6-anim.png b/ZGroupChange_1.2.5/graphics/entity/assembling-machine-6-anim.png similarity index 100% rename from ZGroupChange_1.2.4/graphics/entity/assembling-machine-6-anim.png rename to ZGroupChange_1.2.5/graphics/entity/assembling-machine-6-anim.png diff --git a/ZGroupChange_1.2.4/graphics/entity/electric-chemical-furnace.png b/ZGroupChange_1.2.5/graphics/entity/electric-chemical-furnace.png similarity index 100% rename from ZGroupChange_1.2.4/graphics/entity/electric-chemical-furnace.png rename to ZGroupChange_1.2.5/graphics/entity/electric-chemical-furnace.png diff --git a/ZGroupChange_1.2.4/graphics/entity/pipe-copper-elbow.png b/ZGroupChange_1.2.5/graphics/entity/pipe-copper-elbow.png similarity index 100% rename from ZGroupChange_1.2.4/graphics/entity/pipe-copper-elbow.png rename to ZGroupChange_1.2.5/graphics/entity/pipe-copper-elbow.png diff --git a/ZGroupChange_1.2.4/graphics/entity/pipe-copper-junction.png b/ZGroupChange_1.2.5/graphics/entity/pipe-copper-junction.png similarity index 100% rename from ZGroupChange_1.2.4/graphics/entity/pipe-copper-junction.png rename to ZGroupChange_1.2.5/graphics/entity/pipe-copper-junction.png diff --git a/ZGroupChange_1.2.4/graphics/entity/pipe-copper-straight.png b/ZGroupChange_1.2.5/graphics/entity/pipe-copper-straight.png similarity index 100% rename from ZGroupChange_1.2.4/graphics/entity/pipe-copper-straight.png rename to ZGroupChange_1.2.5/graphics/entity/pipe-copper-straight.png diff --git a/ZGroupChange_1.2.4/graphics/entity/pipe-steel-elbow.png b/ZGroupChange_1.2.5/graphics/entity/pipe-steel-elbow.png similarity index 100% rename from ZGroupChange_1.2.4/graphics/entity/pipe-steel-elbow.png rename to ZGroupChange_1.2.5/graphics/entity/pipe-steel-elbow.png diff --git a/ZGroupChange_1.2.4/graphics/entity/pipe-steel-junction.png b/ZGroupChange_1.2.5/graphics/entity/pipe-steel-junction.png similarity index 100% rename from ZGroupChange_1.2.4/graphics/entity/pipe-steel-junction.png rename to ZGroupChange_1.2.5/graphics/entity/pipe-steel-junction.png diff --git a/ZGroupChange_1.2.4/graphics/entity/pipe-steel-straight.png b/ZGroupChange_1.2.5/graphics/entity/pipe-steel-straight.png similarity index 100% rename from ZGroupChange_1.2.4/graphics/entity/pipe-steel-straight.png rename to ZGroupChange_1.2.5/graphics/entity/pipe-steel-straight.png diff --git a/ZGroupChange_1.2.4/graphics/entity/roboport2-base-animation.png b/ZGroupChange_1.2.5/graphics/entity/roboport2-base-animation.png similarity index 100% rename from ZGroupChange_1.2.4/graphics/entity/roboport2-base-animation.png rename to ZGroupChange_1.2.5/graphics/entity/roboport2-base-animation.png diff --git a/ZGroupChange_1.2.4/graphics/entity/roboport2-base-patch.png b/ZGroupChange_1.2.5/graphics/entity/roboport2-base-patch.png similarity index 100% rename from ZGroupChange_1.2.4/graphics/entity/roboport2-base-patch.png rename to ZGroupChange_1.2.5/graphics/entity/roboport2-base-patch.png diff --git a/ZGroupChange_1.2.4/graphics/entity/roboport2-base.png b/ZGroupChange_1.2.5/graphics/entity/roboport2-base.png similarity index 100% rename from ZGroupChange_1.2.4/graphics/entity/roboport2-base.png rename to ZGroupChange_1.2.5/graphics/entity/roboport2-base.png diff --git a/ZGroupChange_1.2.4/graphics/entity/roboport2-door-down.png b/ZGroupChange_1.2.5/graphics/entity/roboport2-door-down.png similarity index 100% rename from ZGroupChange_1.2.4/graphics/entity/roboport2-door-down.png rename to ZGroupChange_1.2.5/graphics/entity/roboport2-door-down.png diff --git a/ZGroupChange_1.2.4/graphics/entity/roboport2-door-up.png b/ZGroupChange_1.2.5/graphics/entity/roboport2-door-up.png similarity index 100% rename from ZGroupChange_1.2.4/graphics/entity/roboport2-door-up.png rename to ZGroupChange_1.2.5/graphics/entity/roboport2-door-up.png diff --git a/ZGroupChange_1.2.4/graphics/entity/roboport2-recharging.png b/ZGroupChange_1.2.5/graphics/entity/roboport2-recharging.png similarity index 100% rename from ZGroupChange_1.2.4/graphics/entity/roboport2-recharging.png rename to ZGroupChange_1.2.5/graphics/entity/roboport2-recharging.png diff --git a/ZGroupChange_1.2.4/graphics/entity/roboport3-base-patch.png b/ZGroupChange_1.2.5/graphics/entity/roboport3-base-patch.png similarity index 100% rename from ZGroupChange_1.2.4/graphics/entity/roboport3-base-patch.png rename to ZGroupChange_1.2.5/graphics/entity/roboport3-base-patch.png diff --git a/ZGroupChange_1.2.4/graphics/entity/roboport3-base.png b/ZGroupChange_1.2.5/graphics/entity/roboport3-base.png similarity index 100% rename from ZGroupChange_1.2.4/graphics/entity/roboport3-base.png rename to ZGroupChange_1.2.5/graphics/entity/roboport3-base.png diff --git a/ZGroupChange_1.2.4/graphics/entity/u_line_b.png b/ZGroupChange_1.2.5/graphics/entity/u_line_b.png similarity index 100% rename from ZGroupChange_1.2.4/graphics/entity/u_line_b.png rename to ZGroupChange_1.2.5/graphics/entity/u_line_b.png diff --git a/ZGroupChange_1.2.4/graphics/entity/u_line_b_3.png b/ZGroupChange_1.2.5/graphics/entity/u_line_b_3.png similarity index 100% rename from ZGroupChange_1.2.4/graphics/entity/u_line_b_3.png rename to ZGroupChange_1.2.5/graphics/entity/u_line_b_3.png diff --git a/ZGroupChange_1.2.4/graphics/entity/u_line_b_5.png b/ZGroupChange_1.2.5/graphics/entity/u_line_b_5.png similarity index 100% rename from ZGroupChange_1.2.4/graphics/entity/u_line_b_5.png rename to ZGroupChange_1.2.5/graphics/entity/u_line_b_5.png diff --git a/ZGroupChange_1.2.4/graphics/entity/u_line_g.png b/ZGroupChange_1.2.5/graphics/entity/u_line_g.png similarity index 100% rename from ZGroupChange_1.2.4/graphics/entity/u_line_g.png rename to ZGroupChange_1.2.5/graphics/entity/u_line_g.png diff --git a/ZGroupChange_1.2.4/graphics/entity/u_line_g_3.png b/ZGroupChange_1.2.5/graphics/entity/u_line_g_3.png similarity index 100% rename from ZGroupChange_1.2.4/graphics/entity/u_line_g_3.png rename to ZGroupChange_1.2.5/graphics/entity/u_line_g_3.png diff --git a/ZGroupChange_1.2.4/graphics/entity/u_line_g_5.png b/ZGroupChange_1.2.5/graphics/entity/u_line_g_5.png similarity index 100% rename from ZGroupChange_1.2.4/graphics/entity/u_line_g_5.png rename to ZGroupChange_1.2.5/graphics/entity/u_line_g_5.png diff --git a/ZGroupChange_1.2.4/graphics/entity/u_line_p.png b/ZGroupChange_1.2.5/graphics/entity/u_line_p.png similarity index 100% rename from ZGroupChange_1.2.4/graphics/entity/u_line_p.png rename to ZGroupChange_1.2.5/graphics/entity/u_line_p.png diff --git a/ZGroupChange_1.2.4/graphics/entity/u_line_r.png b/ZGroupChange_1.2.5/graphics/entity/u_line_r.png similarity index 100% rename from ZGroupChange_1.2.4/graphics/entity/u_line_r.png rename to ZGroupChange_1.2.5/graphics/entity/u_line_r.png diff --git a/ZGroupChange_1.2.4/graphics/entity/u_line_r_3.png b/ZGroupChange_1.2.5/graphics/entity/u_line_r_3.png similarity index 100% rename from ZGroupChange_1.2.4/graphics/entity/u_line_r_3.png rename to ZGroupChange_1.2.5/graphics/entity/u_line_r_3.png diff --git a/ZGroupChange_1.2.4/graphics/entity/u_line_r_5.png b/ZGroupChange_1.2.5/graphics/entity/u_line_r_5.png similarity index 100% rename from ZGroupChange_1.2.4/graphics/entity/u_line_r_5.png rename to ZGroupChange_1.2.5/graphics/entity/u_line_r_5.png diff --git a/ZGroupChange_1.2.4/graphics/entity/u_line_w.png b/ZGroupChange_1.2.5/graphics/entity/u_line_w.png similarity index 100% rename from ZGroupChange_1.2.4/graphics/entity/u_line_w.png rename to ZGroupChange_1.2.5/graphics/entity/u_line_w.png diff --git a/ZGroupChange_1.2.4/graphics/entity/u_line_w_3.png b/ZGroupChange_1.2.5/graphics/entity/u_line_w_3.png similarity index 100% rename from ZGroupChange_1.2.4/graphics/entity/u_line_w_3.png rename to ZGroupChange_1.2.5/graphics/entity/u_line_w_3.png diff --git a/ZGroupChange_1.2.4/graphics/entity/u_line_w_5.png b/ZGroupChange_1.2.5/graphics/entity/u_line_w_5.png similarity index 100% rename from ZGroupChange_1.2.4/graphics/entity/u_line_w_5.png rename to ZGroupChange_1.2.5/graphics/entity/u_line_w_5.png diff --git a/ZGroupChange_1.2.4/graphics/entity/u_line_y.png b/ZGroupChange_1.2.5/graphics/entity/u_line_y.png similarity index 100% rename from ZGroupChange_1.2.4/graphics/entity/u_line_y.png rename to ZGroupChange_1.2.5/graphics/entity/u_line_y.png diff --git a/ZGroupChange_1.2.4/graphics/entity/u_line_y_3.png b/ZGroupChange_1.2.5/graphics/entity/u_line_y_3.png similarity index 100% rename from ZGroupChange_1.2.4/graphics/entity/u_line_y_3.png rename to ZGroupChange_1.2.5/graphics/entity/u_line_y_3.png diff --git a/ZGroupChange_1.2.4/graphics/entity/u_line_y_5.png b/ZGroupChange_1.2.5/graphics/entity/u_line_y_5.png similarity index 100% rename from ZGroupChange_1.2.4/graphics/entity/u_line_y_5.png rename to ZGroupChange_1.2.5/graphics/entity/u_line_y_5.png diff --git a/ZGroupChange_1.2.4/graphics/entity/u_pipe_1.png b/ZGroupChange_1.2.5/graphics/entity/u_pipe_1.png similarity index 100% rename from ZGroupChange_1.2.4/graphics/entity/u_pipe_1.png rename to ZGroupChange_1.2.5/graphics/entity/u_pipe_1.png diff --git a/ZGroupChange_1.2.4/graphics/entity/u_pipe_3.png b/ZGroupChange_1.2.5/graphics/entity/u_pipe_3.png similarity index 100% rename from ZGroupChange_1.2.4/graphics/entity/u_pipe_3.png rename to ZGroupChange_1.2.5/graphics/entity/u_pipe_3.png diff --git a/ZGroupChange_1.2.4/graphics/entity/u_pipe_5.png b/ZGroupChange_1.2.5/graphics/entity/u_pipe_5.png similarity index 100% rename from ZGroupChange_1.2.4/graphics/entity/u_pipe_5.png rename to ZGroupChange_1.2.5/graphics/entity/u_pipe_5.png diff --git a/ZGroupChange_1.2.4/graphics/icons/artifact2unicom.png b/ZGroupChange_1.2.5/graphics/icons/artifact2unicom.png similarity index 100% rename from ZGroupChange_1.2.4/graphics/icons/artifact2unicom.png rename to ZGroupChange_1.2.5/graphics/icons/artifact2unicom.png diff --git a/ZGroupChange_1.2.4/graphics/icons/assembling-machine-1.png b/ZGroupChange_1.2.5/graphics/icons/assembling-machine-1.png similarity index 100% rename from ZGroupChange_1.2.4/graphics/icons/assembling-machine-1.png rename to ZGroupChange_1.2.5/graphics/icons/assembling-machine-1.png diff --git a/ZGroupChange_1.2.4/graphics/icons/assembling-machine-2.png b/ZGroupChange_1.2.5/graphics/icons/assembling-machine-2.png similarity index 100% rename from ZGroupChange_1.2.4/graphics/icons/assembling-machine-2.png rename to ZGroupChange_1.2.5/graphics/icons/assembling-machine-2.png diff --git a/ZGroupChange_1.2.4/graphics/icons/assembling-machine-3.png b/ZGroupChange_1.2.5/graphics/icons/assembling-machine-3.png similarity index 100% rename from ZGroupChange_1.2.4/graphics/icons/assembling-machine-3.png rename to ZGroupChange_1.2.5/graphics/icons/assembling-machine-3.png diff --git a/ZGroupChange_1.2.4/graphics/icons/assembling-machine-4.png b/ZGroupChange_1.2.5/graphics/icons/assembling-machine-4.png similarity index 100% rename from ZGroupChange_1.2.4/graphics/icons/assembling-machine-4.png rename to ZGroupChange_1.2.5/graphics/icons/assembling-machine-4.png diff --git a/ZGroupChange_1.2.4/graphics/icons/assembling-machine-5.png b/ZGroupChange_1.2.5/graphics/icons/assembling-machine-5.png similarity index 100% rename from ZGroupChange_1.2.4/graphics/icons/assembling-machine-5.png rename to ZGroupChange_1.2.5/graphics/icons/assembling-machine-5.png diff --git a/ZGroupChange_1.2.4/graphics/icons/assembling-machine-6.png b/ZGroupChange_1.2.5/graphics/icons/assembling-machine-6.png similarity index 100% rename from ZGroupChange_1.2.4/graphics/icons/assembling-machine-6.png rename to ZGroupChange_1.2.5/graphics/icons/assembling-machine-6.png diff --git a/ZGroupChange_1.2.4/graphics/icons/battery2unicom.png b/ZGroupChange_1.2.5/graphics/icons/battery2unicom.png similarity index 100% rename from ZGroupChange_1.2.4/graphics/icons/battery2unicom.png rename to ZGroupChange_1.2.5/graphics/icons/battery2unicom.png diff --git a/ZGroupChange_1.2.4/graphics/icons/cat/agronomies.png b/ZGroupChange_1.2.5/graphics/icons/cat/agronomies.png similarity index 100% rename from ZGroupChange_1.2.4/graphics/icons/cat/agronomies.png rename to ZGroupChange_1.2.5/graphics/icons/cat/agronomies.png diff --git a/ZGroupChange_1.2.4/graphics/icons/cat/alien.png b/ZGroupChange_1.2.5/graphics/icons/cat/alien.png similarity index 100% rename from ZGroupChange_1.2.4/graphics/icons/cat/alien.png rename to ZGroupChange_1.2.5/graphics/icons/cat/alien.png diff --git a/ZGroupChange_1.2.4/graphics/icons/cat/armor.png b/ZGroupChange_1.2.5/graphics/icons/cat/armor.png similarity index 100% rename from ZGroupChange_1.2.4/graphics/icons/cat/armor.png rename to ZGroupChange_1.2.5/graphics/icons/cat/armor.png diff --git a/ZGroupChange_1.2.4/graphics/icons/cat/atom.png b/ZGroupChange_1.2.5/graphics/icons/cat/atom.png similarity index 100% rename from ZGroupChange_1.2.4/graphics/icons/cat/atom.png rename to ZGroupChange_1.2.5/graphics/icons/cat/atom.png diff --git a/ZGroupChange_1.2.4/graphics/icons/cat/automatization.png b/ZGroupChange_1.2.5/graphics/icons/cat/automatization.png similarity index 100% rename from ZGroupChange_1.2.4/graphics/icons/cat/automatization.png rename to ZGroupChange_1.2.5/graphics/icons/cat/automatization.png diff --git a/ZGroupChange_1.2.4/graphics/icons/cat/chemistry.png b/ZGroupChange_1.2.5/graphics/icons/cat/chemistry.png similarity index 100% rename from ZGroupChange_1.2.4/graphics/icons/cat/chemistry.png rename to ZGroupChange_1.2.5/graphics/icons/cat/chemistry.png diff --git a/ZGroupChange_1.2.4/graphics/icons/cat/decorative.png b/ZGroupChange_1.2.5/graphics/icons/cat/decorative.png similarity index 100% rename from ZGroupChange_1.2.4/graphics/icons/cat/decorative.png rename to ZGroupChange_1.2.5/graphics/icons/cat/decorative.png diff --git a/ZGroupChange_1.2.4/graphics/icons/cat/defense.png b/ZGroupChange_1.2.5/graphics/icons/cat/defense.png similarity index 100% rename from ZGroupChange_1.2.4/graphics/icons/cat/defense.png rename to ZGroupChange_1.2.5/graphics/icons/cat/defense.png diff --git a/ZGroupChange_1.2.4/graphics/icons/cat/energy.png b/ZGroupChange_1.2.5/graphics/icons/cat/energy.png similarity index 100% rename from ZGroupChange_1.2.4/graphics/icons/cat/energy.png rename to ZGroupChange_1.2.5/graphics/icons/cat/energy.png diff --git a/ZGroupChange_1.2.4/graphics/icons/cat/engines.png b/ZGroupChange_1.2.5/graphics/icons/cat/engines.png similarity index 100% rename from ZGroupChange_1.2.4/graphics/icons/cat/engines.png rename to ZGroupChange_1.2.5/graphics/icons/cat/engines.png diff --git a/ZGroupChange_1.2.4/graphics/icons/cat/gathering.png b/ZGroupChange_1.2.5/graphics/icons/cat/gathering.png similarity index 100% rename from ZGroupChange_1.2.4/graphics/icons/cat/gathering.png rename to ZGroupChange_1.2.5/graphics/icons/cat/gathering.png diff --git a/ZGroupChange_1.2.4/graphics/icons/cat/intermediate.png b/ZGroupChange_1.2.5/graphics/icons/cat/intermediate.png similarity index 100% rename from ZGroupChange_1.2.4/graphics/icons/cat/intermediate.png rename to ZGroupChange_1.2.5/graphics/icons/cat/intermediate.png diff --git a/ZGroupChange_1.2.4/graphics/icons/cat/liquids.png b/ZGroupChange_1.2.5/graphics/icons/cat/liquids.png similarity index 100% rename from ZGroupChange_1.2.4/graphics/icons/cat/liquids.png rename to ZGroupChange_1.2.5/graphics/icons/cat/liquids.png diff --git a/ZGroupChange_1.2.4/graphics/icons/cat/logistic.png b/ZGroupChange_1.2.5/graphics/icons/cat/logistic.png similarity index 100% rename from ZGroupChange_1.2.4/graphics/icons/cat/logistic.png rename to ZGroupChange_1.2.5/graphics/icons/cat/logistic.png diff --git a/ZGroupChange_1.2.4/graphics/icons/cat/module.png b/ZGroupChange_1.2.5/graphics/icons/cat/module.png similarity index 100% rename from ZGroupChange_1.2.4/graphics/icons/cat/module.png rename to ZGroupChange_1.2.5/graphics/icons/cat/module.png diff --git a/ZGroupChange_1.2.4/graphics/icons/cat/other.png b/ZGroupChange_1.2.5/graphics/icons/cat/other.png similarity index 100% rename from ZGroupChange_1.2.4/graphics/icons/cat/other.png rename to ZGroupChange_1.2.5/graphics/icons/cat/other.png diff --git a/ZGroupChange_1.2.4/graphics/icons/cat/parts.png b/ZGroupChange_1.2.5/graphics/icons/cat/parts.png similarity index 100% rename from ZGroupChange_1.2.4/graphics/icons/cat/parts.png rename to ZGroupChange_1.2.5/graphics/icons/cat/parts.png diff --git a/ZGroupChange_1.2.4/graphics/icons/cat/plates.png b/ZGroupChange_1.2.5/graphics/icons/cat/plates.png similarity index 100% rename from ZGroupChange_1.2.4/graphics/icons/cat/plates.png rename to ZGroupChange_1.2.5/graphics/icons/cat/plates.png diff --git a/ZGroupChange_1.2.4/graphics/icons/cat/production.png b/ZGroupChange_1.2.5/graphics/icons/cat/production.png similarity index 100% rename from ZGroupChange_1.2.4/graphics/icons/cat/production.png rename to ZGroupChange_1.2.5/graphics/icons/cat/production.png diff --git a/ZGroupChange_1.2.4/graphics/icons/cat/r/r_.png b/ZGroupChange_1.2.5/graphics/icons/cat/r/r_.png similarity index 100% rename from ZGroupChange_1.2.4/graphics/icons/cat/r/r_.png rename to ZGroupChange_1.2.5/graphics/icons/cat/r/r_.png diff --git a/ZGroupChange_1.2.4/graphics/icons/cat/r/r_agronomies.png b/ZGroupChange_1.2.5/graphics/icons/cat/r/r_agronomies.png similarity index 100% rename from ZGroupChange_1.2.4/graphics/icons/cat/r/r_agronomies.png rename to ZGroupChange_1.2.5/graphics/icons/cat/r/r_agronomies.png diff --git a/ZGroupChange_1.2.4/graphics/icons/cat/r/r_alien.png b/ZGroupChange_1.2.5/graphics/icons/cat/r/r_alien.png similarity index 100% rename from ZGroupChange_1.2.4/graphics/icons/cat/r/r_alien.png rename to ZGroupChange_1.2.5/graphics/icons/cat/r/r_alien.png diff --git a/ZGroupChange_1.2.4/graphics/icons/cat/r/r_armor.png b/ZGroupChange_1.2.5/graphics/icons/cat/r/r_armor.png similarity index 100% rename from ZGroupChange_1.2.4/graphics/icons/cat/r/r_armor.png rename to ZGroupChange_1.2.5/graphics/icons/cat/r/r_armor.png diff --git a/ZGroupChange_1.2.4/graphics/icons/cat/r/r_atom.png b/ZGroupChange_1.2.5/graphics/icons/cat/r/r_atom.png similarity index 100% rename from ZGroupChange_1.2.4/graphics/icons/cat/r/r_atom.png rename to ZGroupChange_1.2.5/graphics/icons/cat/r/r_atom.png diff --git a/ZGroupChange_1.2.4/graphics/icons/cat/r/r_automatization.png b/ZGroupChange_1.2.5/graphics/icons/cat/r/r_automatization.png similarity index 100% rename from ZGroupChange_1.2.4/graphics/icons/cat/r/r_automatization.png rename to ZGroupChange_1.2.5/graphics/icons/cat/r/r_automatization.png diff --git a/ZGroupChange_1.2.4/graphics/icons/cat/r/r_chemistry.png b/ZGroupChange_1.2.5/graphics/icons/cat/r/r_chemistry.png similarity index 100% rename from ZGroupChange_1.2.4/graphics/icons/cat/r/r_chemistry.png rename to ZGroupChange_1.2.5/graphics/icons/cat/r/r_chemistry.png diff --git a/ZGroupChange_1.2.4/graphics/icons/cat/r/r_decorative.png b/ZGroupChange_1.2.5/graphics/icons/cat/r/r_decorative.png similarity index 100% rename from ZGroupChange_1.2.4/graphics/icons/cat/r/r_decorative.png rename to ZGroupChange_1.2.5/graphics/icons/cat/r/r_decorative.png diff --git a/ZGroupChange_1.2.4/graphics/icons/cat/r/r_defense.png b/ZGroupChange_1.2.5/graphics/icons/cat/r/r_defense.png similarity index 100% rename from ZGroupChange_1.2.4/graphics/icons/cat/r/r_defense.png rename to ZGroupChange_1.2.5/graphics/icons/cat/r/r_defense.png diff --git a/ZGroupChange_1.2.4/graphics/icons/cat/r/r_energy.png b/ZGroupChange_1.2.5/graphics/icons/cat/r/r_energy.png similarity index 100% rename from ZGroupChange_1.2.4/graphics/icons/cat/r/r_energy.png rename to ZGroupChange_1.2.5/graphics/icons/cat/r/r_energy.png diff --git a/ZGroupChange_1.2.4/graphics/icons/cat/r/r_engines.png b/ZGroupChange_1.2.5/graphics/icons/cat/r/r_engines.png similarity index 100% rename from ZGroupChange_1.2.4/graphics/icons/cat/r/r_engines.png rename to ZGroupChange_1.2.5/graphics/icons/cat/r/r_engines.png diff --git a/ZGroupChange_1.2.4/graphics/icons/cat/r/r_gathering.png b/ZGroupChange_1.2.5/graphics/icons/cat/r/r_gathering.png similarity index 100% rename from ZGroupChange_1.2.4/graphics/icons/cat/r/r_gathering.png rename to ZGroupChange_1.2.5/graphics/icons/cat/r/r_gathering.png diff --git a/ZGroupChange_1.2.4/graphics/icons/cat/r/r_intermediate.png b/ZGroupChange_1.2.5/graphics/icons/cat/r/r_intermediate.png similarity index 100% rename from ZGroupChange_1.2.4/graphics/icons/cat/r/r_intermediate.png rename to ZGroupChange_1.2.5/graphics/icons/cat/r/r_intermediate.png diff --git a/ZGroupChange_1.2.4/graphics/icons/cat/r/r_liquids.png b/ZGroupChange_1.2.5/graphics/icons/cat/r/r_liquids.png similarity index 100% rename from ZGroupChange_1.2.4/graphics/icons/cat/r/r_liquids.png rename to ZGroupChange_1.2.5/graphics/icons/cat/r/r_liquids.png diff --git a/ZGroupChange_1.2.4/graphics/icons/cat/r/r_logistic.png b/ZGroupChange_1.2.5/graphics/icons/cat/r/r_logistic.png similarity index 100% rename from ZGroupChange_1.2.4/graphics/icons/cat/r/r_logistic.png rename to ZGroupChange_1.2.5/graphics/icons/cat/r/r_logistic.png diff --git a/ZGroupChange_1.2.4/graphics/icons/cat/r/r_module.png b/ZGroupChange_1.2.5/graphics/icons/cat/r/r_module.png similarity index 100% rename from ZGroupChange_1.2.4/graphics/icons/cat/r/r_module.png rename to ZGroupChange_1.2.5/graphics/icons/cat/r/r_module.png diff --git a/ZGroupChange_1.2.4/graphics/icons/cat/r/r_other.png b/ZGroupChange_1.2.5/graphics/icons/cat/r/r_other.png similarity index 100% rename from ZGroupChange_1.2.4/graphics/icons/cat/r/r_other.png rename to ZGroupChange_1.2.5/graphics/icons/cat/r/r_other.png diff --git a/ZGroupChange_1.2.4/graphics/icons/cat/r/r_parts.png b/ZGroupChange_1.2.5/graphics/icons/cat/r/r_parts.png similarity index 100% rename from ZGroupChange_1.2.4/graphics/icons/cat/r/r_parts.png rename to ZGroupChange_1.2.5/graphics/icons/cat/r/r_parts.png diff --git a/ZGroupChange_1.2.4/graphics/icons/cat/r/r_plates.png b/ZGroupChange_1.2.5/graphics/icons/cat/r/r_plates.png similarity index 100% rename from ZGroupChange_1.2.4/graphics/icons/cat/r/r_plates.png rename to ZGroupChange_1.2.5/graphics/icons/cat/r/r_plates.png diff --git a/ZGroupChange_1.2.4/graphics/icons/cat/r/r_production.png b/ZGroupChange_1.2.5/graphics/icons/cat/r/r_production.png similarity index 100% rename from ZGroupChange_1.2.4/graphics/icons/cat/r/r_production.png rename to ZGroupChange_1.2.5/graphics/icons/cat/r/r_production.png diff --git a/ZGroupChange_1.2.4/graphics/icons/cat/r/r_refining.png b/ZGroupChange_1.2.5/graphics/icons/cat/r/r_refining.png similarity index 100% rename from ZGroupChange_1.2.4/graphics/icons/cat/r/r_refining.png rename to ZGroupChange_1.2.5/graphics/icons/cat/r/r_refining.png diff --git a/ZGroupChange_1.2.4/graphics/icons/cat/r/r_resources.png b/ZGroupChange_1.2.5/graphics/icons/cat/r/r_resources.png similarity index 100% rename from ZGroupChange_1.2.4/graphics/icons/cat/r/r_resources.png rename to ZGroupChange_1.2.5/graphics/icons/cat/r/r_resources.png diff --git a/ZGroupChange_1.2.4/graphics/icons/cat/r/r_trains-vehicles.png b/ZGroupChange_1.2.5/graphics/icons/cat/r/r_trains-vehicles.png similarity index 100% rename from ZGroupChange_1.2.4/graphics/icons/cat/r/r_trains-vehicles.png rename to ZGroupChange_1.2.5/graphics/icons/cat/r/r_trains-vehicles.png diff --git a/ZGroupChange_1.2.4/graphics/icons/cat/r/r_transport.png b/ZGroupChange_1.2.5/graphics/icons/cat/r/r_transport.png similarity index 100% rename from ZGroupChange_1.2.4/graphics/icons/cat/r/r_transport.png rename to ZGroupChange_1.2.5/graphics/icons/cat/r/r_transport.png diff --git a/ZGroupChange_1.2.4/graphics/icons/cat/r/r_weaponry.png b/ZGroupChange_1.2.5/graphics/icons/cat/r/r_weaponry.png similarity index 100% rename from ZGroupChange_1.2.4/graphics/icons/cat/r/r_weaponry.png rename to ZGroupChange_1.2.5/graphics/icons/cat/r/r_weaponry.png diff --git a/ZGroupChange_1.2.4/graphics/icons/cat/r/r_youki.png b/ZGroupChange_1.2.5/graphics/icons/cat/r/r_youki.png similarity index 100% rename from ZGroupChange_1.2.4/graphics/icons/cat/r/r_youki.png rename to ZGroupChange_1.2.5/graphics/icons/cat/r/r_youki.png diff --git a/ZGroupChange_1.2.4/graphics/icons/cat/refining.png b/ZGroupChange_1.2.5/graphics/icons/cat/refining.png similarity index 100% rename from ZGroupChange_1.2.4/graphics/icons/cat/refining.png rename to ZGroupChange_1.2.5/graphics/icons/cat/refining.png diff --git a/ZGroupChange_1.2.4/graphics/icons/cat/resources.png b/ZGroupChange_1.2.5/graphics/icons/cat/resources.png similarity index 100% rename from ZGroupChange_1.2.4/graphics/icons/cat/resources.png rename to ZGroupChange_1.2.5/graphics/icons/cat/resources.png diff --git a/ZGroupChange_1.2.4/graphics/icons/cat/signals.png b/ZGroupChange_1.2.5/graphics/icons/cat/signals.png similarity index 100% rename from ZGroupChange_1.2.4/graphics/icons/cat/signals.png rename to ZGroupChange_1.2.5/graphics/icons/cat/signals.png diff --git a/ZGroupChange_1.2.4/graphics/icons/cat/trains-vehicles.png b/ZGroupChange_1.2.5/graphics/icons/cat/trains-vehicles.png similarity index 100% rename from ZGroupChange_1.2.4/graphics/icons/cat/trains-vehicles.png rename to ZGroupChange_1.2.5/graphics/icons/cat/trains-vehicles.png diff --git a/ZGroupChange_1.2.4/graphics/icons/cat/transport.png b/ZGroupChange_1.2.5/graphics/icons/cat/transport.png similarity index 100% rename from ZGroupChange_1.2.4/graphics/icons/cat/transport.png rename to ZGroupChange_1.2.5/graphics/icons/cat/transport.png diff --git a/ZGroupChange_1.2.4/graphics/icons/cat/vehicles.png b/ZGroupChange_1.2.5/graphics/icons/cat/vehicles.png similarity index 100% rename from ZGroupChange_1.2.4/graphics/icons/cat/vehicles.png rename to ZGroupChange_1.2.5/graphics/icons/cat/vehicles.png diff --git a/ZGroupChange_1.2.4/graphics/icons/cat/weaponry.png b/ZGroupChange_1.2.5/graphics/icons/cat/weaponry.png similarity index 100% rename from ZGroupChange_1.2.4/graphics/icons/cat/weaponry.png rename to ZGroupChange_1.2.5/graphics/icons/cat/weaponry.png diff --git a/ZGroupChange_1.2.4/graphics/icons/cat/youki.png b/ZGroupChange_1.2.5/graphics/icons/cat/youki.png similarity index 100% rename from ZGroupChange_1.2.4/graphics/icons/cat/youki.png rename to ZGroupChange_1.2.5/graphics/icons/cat/youki.png diff --git a/ZGroupChange_1.2.4/graphics/icons/chemical-furnace.png b/ZGroupChange_1.2.5/graphics/icons/chemical-furnace.png similarity index 100% rename from ZGroupChange_1.2.4/graphics/icons/chemical-furnace.png rename to ZGroupChange_1.2.5/graphics/icons/chemical-furnace.png diff --git a/ZGroupChange_1.2.4/graphics/icons/heat-copper.png b/ZGroupChange_1.2.5/graphics/icons/heat-copper.png similarity index 100% rename from ZGroupChange_1.2.4/graphics/icons/heat-copper.png rename to ZGroupChange_1.2.5/graphics/icons/heat-copper.png diff --git a/ZGroupChange_1.2.4/graphics/icons/heat-iron.png b/ZGroupChange_1.2.5/graphics/icons/heat-iron.png similarity index 100% rename from ZGroupChange_1.2.4/graphics/icons/heat-iron.png rename to ZGroupChange_1.2.5/graphics/icons/heat-iron.png diff --git a/ZGroupChange_1.2.4/graphics/icons/heat-steel.png b/ZGroupChange_1.2.5/graphics/icons/heat-steel.png similarity index 100% rename from ZGroupChange_1.2.4/graphics/icons/heat-steel.png rename to ZGroupChange_1.2.5/graphics/icons/heat-steel.png diff --git a/ZGroupChange_1.2.4/graphics/icons/lithia-water.png b/ZGroupChange_1.2.5/graphics/icons/lithia-water.png similarity index 100% rename from ZGroupChange_1.2.4/graphics/icons/lithia-water.png rename to ZGroupChange_1.2.5/graphics/icons/lithia-water.png diff --git a/ZGroupChange_1.2.4/graphics/icons/mini-assembling-machine-1.png b/ZGroupChange_1.2.5/graphics/icons/mini-assembling-machine-1.png similarity index 100% rename from ZGroupChange_1.2.4/graphics/icons/mini-assembling-machine-1.png rename to ZGroupChange_1.2.5/graphics/icons/mini-assembling-machine-1.png diff --git a/ZGroupChange_1.2.4/graphics/icons/mini-assembling-machine-2.png b/ZGroupChange_1.2.5/graphics/icons/mini-assembling-machine-2.png similarity index 100% rename from ZGroupChange_1.2.4/graphics/icons/mini-assembling-machine-2.png rename to ZGroupChange_1.2.5/graphics/icons/mini-assembling-machine-2.png diff --git a/ZGroupChange_1.2.4/graphics/icons/mini-assembling-machine-3.png b/ZGroupChange_1.2.5/graphics/icons/mini-assembling-machine-3.png similarity index 100% rename from ZGroupChange_1.2.4/graphics/icons/mini-assembling-machine-3.png rename to ZGroupChange_1.2.5/graphics/icons/mini-assembling-machine-3.png diff --git a/ZGroupChange_1.2.4/graphics/icons/pipe-copper-elbow.png b/ZGroupChange_1.2.5/graphics/icons/pipe-copper-elbow.png similarity index 100% rename from ZGroupChange_1.2.4/graphics/icons/pipe-copper-elbow.png rename to ZGroupChange_1.2.5/graphics/icons/pipe-copper-elbow.png diff --git a/ZGroupChange_1.2.4/graphics/icons/pipe-copper-junction.png b/ZGroupChange_1.2.5/graphics/icons/pipe-copper-junction.png similarity index 100% rename from ZGroupChange_1.2.4/graphics/icons/pipe-copper-junction.png rename to ZGroupChange_1.2.5/graphics/icons/pipe-copper-junction.png diff --git a/ZGroupChange_1.2.4/graphics/icons/pipe-copper-straight.png b/ZGroupChange_1.2.5/graphics/icons/pipe-copper-straight.png similarity index 100% rename from ZGroupChange_1.2.4/graphics/icons/pipe-copper-straight.png rename to ZGroupChange_1.2.5/graphics/icons/pipe-copper-straight.png diff --git a/ZGroupChange_1.2.4/graphics/icons/pipe-steel-elbow.png b/ZGroupChange_1.2.5/graphics/icons/pipe-steel-elbow.png similarity index 100% rename from ZGroupChange_1.2.4/graphics/icons/pipe-steel-elbow.png rename to ZGroupChange_1.2.5/graphics/icons/pipe-steel-elbow.png diff --git a/ZGroupChange_1.2.4/graphics/icons/pipe-steel-junction.png b/ZGroupChange_1.2.5/graphics/icons/pipe-steel-junction.png similarity index 100% rename from ZGroupChange_1.2.4/graphics/icons/pipe-steel-junction.png rename to ZGroupChange_1.2.5/graphics/icons/pipe-steel-junction.png diff --git a/ZGroupChange_1.2.4/graphics/icons/pipe-steel-straight.png b/ZGroupChange_1.2.5/graphics/icons/pipe-steel-straight.png similarity index 100% rename from ZGroupChange_1.2.4/graphics/icons/pipe-steel-straight.png rename to ZGroupChange_1.2.5/graphics/icons/pipe-steel-straight.png diff --git a/ZGroupChange_1.2.4/graphics/icons/pump_oil.png b/ZGroupChange_1.2.5/graphics/icons/pump_oil.png similarity index 100% rename from ZGroupChange_1.2.4/graphics/icons/pump_oil.png rename to ZGroupChange_1.2.5/graphics/icons/pump_oil.png diff --git a/ZGroupChange_1.2.4/graphics/icons/pump_water.png b/ZGroupChange_1.2.5/graphics/icons/pump_water.png similarity index 100% rename from ZGroupChange_1.2.4/graphics/icons/pump_water.png rename to ZGroupChange_1.2.5/graphics/icons/pump_water.png diff --git a/ZGroupChange_1.2.4/graphics/icons/pure-copper.png b/ZGroupChange_1.2.5/graphics/icons/pure-copper.png similarity index 100% rename from ZGroupChange_1.2.4/graphics/icons/pure-copper.png rename to ZGroupChange_1.2.5/graphics/icons/pure-copper.png diff --git a/ZGroupChange_1.2.4/graphics/icons/pure-iron.png b/ZGroupChange_1.2.5/graphics/icons/pure-iron.png similarity index 100% rename from ZGroupChange_1.2.4/graphics/icons/pure-iron.png rename to ZGroupChange_1.2.5/graphics/icons/pure-iron.png diff --git a/ZGroupChange_1.2.4/graphics/icons/repairpack-2.png b/ZGroupChange_1.2.5/graphics/icons/repairpack-2.png similarity index 100% rename from ZGroupChange_1.2.4/graphics/icons/repairpack-2.png rename to ZGroupChange_1.2.5/graphics/icons/repairpack-2.png diff --git a/ZGroupChange_1.2.4/graphics/icons/roboport2.png b/ZGroupChange_1.2.5/graphics/icons/roboport2.png similarity index 100% rename from ZGroupChange_1.2.4/graphics/icons/roboport2.png rename to ZGroupChange_1.2.5/graphics/icons/roboport2.png diff --git a/ZGroupChange_1.2.4/graphics/icons/roboport3.png b/ZGroupChange_1.2.5/graphics/icons/roboport3.png similarity index 100% rename from ZGroupChange_1.2.4/graphics/icons/roboport3.png rename to ZGroupChange_1.2.5/graphics/icons/roboport3.png diff --git a/ZGroupChange_1.2.4/graphics/icons/science-pack-gold.png b/ZGroupChange_1.2.5/graphics/icons/science-pack-gold.png similarity index 100% rename from ZGroupChange_1.2.4/graphics/icons/science-pack-gold.png rename to ZGroupChange_1.2.5/graphics/icons/science-pack-gold.png diff --git a/ZGroupChange_1.2.4/graphics/icons/science-pack4.png b/ZGroupChange_1.2.5/graphics/icons/science-pack4.png similarity index 100% rename from ZGroupChange_1.2.4/graphics/icons/science-pack4.png rename to ZGroupChange_1.2.5/graphics/icons/science-pack4.png diff --git a/ZGroupChange_1.2.4/graphics/icons/tech/yuoki_agronomie.png b/ZGroupChange_1.2.5/graphics/icons/tech/yuoki_agronomie.png similarity index 100% rename from ZGroupChange_1.2.4/graphics/icons/tech/yuoki_agronomie.png rename to ZGroupChange_1.2.5/graphics/icons/tech/yuoki_agronomie.png diff --git a/ZGroupChange_1.2.4/graphics/icons/tech/yuoki_atomics.png b/ZGroupChange_1.2.5/graphics/icons/tech/yuoki_atomics.png similarity index 100% rename from ZGroupChange_1.2.4/graphics/icons/tech/yuoki_atomics.png rename to ZGroupChange_1.2.5/graphics/icons/tech/yuoki_atomics.png diff --git a/ZGroupChange_1.2.4/graphics/icons/tech/yuoki_defence.png b/ZGroupChange_1.2.5/graphics/icons/tech/yuoki_defence.png similarity index 100% rename from ZGroupChange_1.2.4/graphics/icons/tech/yuoki_defence.png rename to ZGroupChange_1.2.5/graphics/icons/tech/yuoki_defence.png diff --git a/ZGroupChange_1.2.4/graphics/icons/tech/yuoki_energy.png b/ZGroupChange_1.2.5/graphics/icons/tech/yuoki_energy.png similarity index 100% rename from ZGroupChange_1.2.4/graphics/icons/tech/yuoki_energy.png rename to ZGroupChange_1.2.5/graphics/icons/tech/yuoki_energy.png diff --git a/ZGroupChange_1.2.4/graphics/icons/tech/yuoki_engines.png b/ZGroupChange_1.2.5/graphics/icons/tech/yuoki_engines.png similarity index 100% rename from ZGroupChange_1.2.4/graphics/icons/tech/yuoki_engines.png rename to ZGroupChange_1.2.5/graphics/icons/tech/yuoki_engines.png diff --git a/ZGroupChange_1.2.4/graphics/icons/tech/yuoki_industries.png b/ZGroupChange_1.2.5/graphics/icons/tech/yuoki_industries.png similarity index 100% rename from ZGroupChange_1.2.4/graphics/icons/tech/yuoki_industries.png rename to ZGroupChange_1.2.5/graphics/icons/tech/yuoki_industries.png diff --git a/ZGroupChange_1.2.4/graphics/icons/tech/yuoki_liquids.png b/ZGroupChange_1.2.5/graphics/icons/tech/yuoki_liquids.png similarity index 100% rename from ZGroupChange_1.2.4/graphics/icons/tech/yuoki_liquids.png rename to ZGroupChange_1.2.5/graphics/icons/tech/yuoki_liquids.png diff --git a/ZGroupChange_1.2.4/graphics/icons/tech/yuoki_railway.png b/ZGroupChange_1.2.5/graphics/icons/tech/yuoki_railway.png similarity index 100% rename from ZGroupChange_1.2.4/graphics/icons/tech/yuoki_railway.png rename to ZGroupChange_1.2.5/graphics/icons/tech/yuoki_railway.png diff --git a/ZGroupChange_1.2.4/graphics/icons/tech/yuoki_research.png b/ZGroupChange_1.2.5/graphics/icons/tech/yuoki_research.png similarity index 100% rename from ZGroupChange_1.2.4/graphics/icons/tech/yuoki_research.png rename to ZGroupChange_1.2.5/graphics/icons/tech/yuoki_research.png diff --git a/ZGroupChange_1.2.4/graphics/icons/unicom2artifact.png b/ZGroupChange_1.2.5/graphics/icons/unicom2artifact.png similarity index 100% rename from ZGroupChange_1.2.4/graphics/icons/unicom2artifact.png rename to ZGroupChange_1.2.5/graphics/icons/unicom2artifact.png diff --git a/ZGroupChange_1.2.4/graphics/icons/unicom2battery.png b/ZGroupChange_1.2.5/graphics/icons/unicom2battery.png similarity index 100% rename from ZGroupChange_1.2.4/graphics/icons/unicom2battery.png rename to ZGroupChange_1.2.5/graphics/icons/unicom2battery.png diff --git a/ZGroupChange_1.2.4/graphics/icons/y-con-water.png b/ZGroupChange_1.2.5/graphics/icons/y-con-water.png similarity index 100% rename from ZGroupChange_1.2.4/graphics/icons/y-con-water.png rename to ZGroupChange_1.2.5/graphics/icons/y-con-water.png diff --git a/ZGroupChange_1.2.4/info.json b/ZGroupChange_1.2.5/info.json similarity index 94% rename from ZGroupChange_1.2.4/info.json rename to ZGroupChange_1.2.5/info.json index fc7babd..e3bd0b5 100644 --- a/ZGroupChange_1.2.4/info.json +++ b/ZGroupChange_1.2.5/info.json @@ -1,11 +1,11 @@ -{ - "name": "ZGroupChange", - "version": "1.2.4", - "title": "[Z] Group Change", - "factorio_version": "0.14", - "author": "ZlovreD", - "contact": "Discussion page on mods.factorio.com", - "homepage": "https://mods.factorio.com/mods/Progsy/ZGroupChange", - "description": "Resort items and recipes for most biggest, poppular and usefull mods. List of supported mods: 5Dim, Bob's, Yuoki, Angel's, UraniumPower and more. This mod oriented to work with all supported mods together at the same time.", - "dependencies": [ "base >= 0.14" ] -} +{ + "name": "ZGroupChange", + "version": "1.2.5", + "title": "[Z] Group Change", + "factorio_version": "0.14", + "author": "ZlovreD", + "contact": "Discussion page on mods.factorio.com", + "homepage": "https://mods.factorio.com/mods/Progsy/ZGroupChange", + "description": "Resort items and recipes for most biggest, poppular and usefull mods. List of supported mods: 5Dim, Bob's, Yuoki, Angel's, UraniumPower and more. This mod oriented to work with all supported mods together at the same time.", + "dependencies": [ "base >= 0.14" ] +} diff --git a/ZGroupChange_1.2.4/locale/en/names.cfg b/ZGroupChange_1.2.5/locale/en/names.cfg similarity index 97% rename from ZGroupChange_1.2.4/locale/en/names.cfg rename to ZGroupChange_1.2.5/locale/en/names.cfg index 22c3e8b..c424530 100644 --- a/ZGroupChange_1.2.4/locale/en/names.cfg +++ b/ZGroupChange_1.2.5/locale/en/names.cfg @@ -1,95 +1,95 @@ -[item-group-name] -zgc-gathering=Gather and Store -zgc-production=Production -zgc-resources=Resources -zgc-plates=Plates -zgc-liquids=Liquids -zgc-chemistry=Chemistry -zgc-automatization=Automatization -zgc-transport=Transportation -zgc-logistic=Logistic -zgc-energy=Energy -zgc-module=Modules and Research -zgc-defense=Defense -zgc-intermediate=Intermediate -zgc-armor=Armor -zgc-weaponry=Weaponry -zgc-trains-vehicles=Trains & Vehicles -zgc-alien=Alien Production -zgc-decorative=Decorative -zgc-parts=Yuoki Parts -zgc-youki=Yuoki Atomics & Fame -zgc-engines=Yuoki Engines -zgc-agronomie=Yuoki Agronomie -zgc-refining=Resource Refining -zgc-atom=Uranium Power -zgc-other=Other - -# ---------------------------------------------------------------------------- -# Recycle -# ---------------------------------------------------------------------------- -dry411srev-zgc-gathering=Recycle Gather and Store -dry411srev-zgc-production=Recycle Production -dry411srev-zgc-resources=Recycle Resources -dry411srev-zgc-plates=Recycle Plates -dry411srev-zgc-liquids=Recycle Liquids -dry411srev-zgc-chemistry=Recycle Chemistry -dry411srev-zgc-automatization=Recycle Automatization -dry411srev-zgc-transport=Recycle Transportation -dry411srev-zgc-logistic=Recycle Logistic -dry411srev-zgc-energy=Recycle Energy -dry411srev-zgc-module=Recycle Modules and Research -dry411srev-zgc-defense=Recycle Defense -dry411srev-zgc-intermediate=Recycle Intermediate -dry411srev-zgc-armor=Recycle Armor -dry411srev-zgc-weaponry=Recycle Weaponry -dry411srev-zgc-trains-vehicles=Recycle Trains & Vehicles -dry411srev-zgc-alien=Recycle Alien Production -dry411srev-zgc-decorative=Recycle Decorative -dry411srev-zgc-parts=Recycle Yuoki Parts -dry411srev-zgc-youki=Recycle Yuoki Atomics & Fame -dry411srev-zgc-refining=Recycle Resource Refining -dry411srev-zgc-atom=Recycle Uranium Power -dry411srev-zgc-other=Recycle Other - -# ---------------------------------------------------------------------------- -# flow control -# ---------------------------------------------------------------------------- -[entity-name] -pipe-copper-straight=Copper Straight pipe -pipe-copper-junction=Copper T-Junction pipe -pipe-copper-elbow=Copper Elbow pipe -pipe-steel-straight=Steel Straight pipe -pipe-steel-junction=Steel T-Junction pipe -pipe-steel-elbow=Steel Elbow pipe - -[technology-name] -yuoki_technology=Yuoki Technology -yuoki_industries=Yuoki Industries I -yuoki_industries-2=Yuoki Industries II -yuoki_industries-3=Yuoki Industries III -yuoki_industries-4=Yuoki Industries IV -yuoki_energy=Yuoki Energy I -yuoki_energy-2=Yuoki Energy II -yuoki_energy-3=Yuoki Energy III -yuoki_liquids=Yuoki Liquids I -yuoki_liquids-2=Yuoki Liquids II -yuoki_liquids-3=Yuoki Liquids III -yuoki_def=Yuoki Defense I -yuoki_def-2=Yuoki Defense II -yuoki_def-3=Yuoki Defense III -yuoki_atomics=Yuoki Atomics I -yuoki_atomics-2=Yuoki Atomics II -yuoki_atomics-3=Yuoki Atomics III -yuoki_railway=Yuoki Railway I -yuoki_railway-2=Yuoki Railway II -yuoki_railway-3=Yuoki Railway III -yuoki_engines=Yuoki Engines I -yuoki_engines-2=Yuoki Engines II -yuoki_engines-3=Yuoki Engines III -yuoki_agronomie=Yuoki Agronomie I -yuoki_agronomie-2=Yuoki Agronomie II -yuoki_agronomie-3=Yuoki Agronomie III - - - +[item-group-name] +zgc-gathering=Gather and Store +zgc-production=Production +zgc-resources=Resources +zgc-plates=Plates +zgc-liquids=Liquids +zgc-chemistry=Chemistry +zgc-automatization=Automatization +zgc-transport=Transportation +zgc-logistic=Logistic +zgc-energy=Energy +zgc-module=Modules and Research +zgc-defense=Defense +zgc-intermediate=Intermediate +zgc-armor=Armor +zgc-weaponry=Weaponry +zgc-trains-vehicles=Trains & Vehicles +zgc-alien=Alien Production +zgc-decorative=Decorative +zgc-parts=Yuoki Parts +zgc-youki=Yuoki Atomics & Fame +zgc-engines=Yuoki Engines +zgc-agronomie=Yuoki Agronomie +zgc-refining=Resource Refining +zgc-atom=Uranium Power +zgc-other=Other + +# ---------------------------------------------------------------------------- +# Recycle +# ---------------------------------------------------------------------------- +dry411srev-zgc-gathering=Recycle Gather and Store +dry411srev-zgc-production=Recycle Production +dry411srev-zgc-resources=Recycle Resources +dry411srev-zgc-plates=Recycle Plates +dry411srev-zgc-liquids=Recycle Liquids +dry411srev-zgc-chemistry=Recycle Chemistry +dry411srev-zgc-automatization=Recycle Automatization +dry411srev-zgc-transport=Recycle Transportation +dry411srev-zgc-logistic=Recycle Logistic +dry411srev-zgc-energy=Recycle Energy +dry411srev-zgc-module=Recycle Modules and Research +dry411srev-zgc-defense=Recycle Defense +dry411srev-zgc-intermediate=Recycle Intermediate +dry411srev-zgc-armor=Recycle Armor +dry411srev-zgc-weaponry=Recycle Weaponry +dry411srev-zgc-trains-vehicles=Recycle Trains & Vehicles +dry411srev-zgc-alien=Recycle Alien Production +dry411srev-zgc-decorative=Recycle Decorative +dry411srev-zgc-parts=Recycle Yuoki Parts +dry411srev-zgc-youki=Recycle Yuoki Atomics & Fame +dry411srev-zgc-refining=Recycle Resource Refining +dry411srev-zgc-atom=Recycle Uranium Power +dry411srev-zgc-other=Recycle Other + +# ---------------------------------------------------------------------------- +# flow control +# ---------------------------------------------------------------------------- +[entity-name] +pipe-copper-straight=Copper Straight pipe +pipe-copper-junction=Copper T-Junction pipe +pipe-copper-elbow=Copper Elbow pipe +pipe-steel-straight=Steel Straight pipe +pipe-steel-junction=Steel T-Junction pipe +pipe-steel-elbow=Steel Elbow pipe + +[technology-name] +yuoki_technology=Yuoki Technology +yuoki_industries=Yuoki Industries I +yuoki_industries-2=Yuoki Industries II +yuoki_industries-3=Yuoki Industries III +yuoki_industries-4=Yuoki Industries IV +yuoki_energy=Yuoki Energy I +yuoki_energy-2=Yuoki Energy II +yuoki_energy-3=Yuoki Energy III +yuoki_liquids=Yuoki Liquids I +yuoki_liquids-2=Yuoki Liquids II +yuoki_liquids-3=Yuoki Liquids III +yuoki_def=Yuoki Defense I +yuoki_def-2=Yuoki Defense II +yuoki_def-3=Yuoki Defense III +yuoki_atomics=Yuoki Atomics I +yuoki_atomics-2=Yuoki Atomics II +yuoki_atomics-3=Yuoki Atomics III +yuoki_railway=Yuoki Railway I +yuoki_railway-2=Yuoki Railway II +yuoki_railway-3=Yuoki Railway III +yuoki_engines=Yuoki Engines I +yuoki_engines-2=Yuoki Engines II +yuoki_engines-3=Yuoki Engines III +yuoki_agronomie=Yuoki Agronomie I +yuoki_agronomie-2=Yuoki Agronomie II +yuoki_agronomie-3=Yuoki Agronomie III + + + diff --git a/ZGroupChange_1.2.4/mods/5dim.lua b/ZGroupChange_1.2.5/mods/5dim.lua similarity index 97% rename from ZGroupChange_1.2.4/mods/5dim.lua rename to ZGroupChange_1.2.5/mods/5dim.lua index 2e3ae0d..cde1c54 100644 --- a/ZGroupChange_1.2.4/mods/5dim.lua +++ b/ZGroupChange_1.2.5/mods/5dim.lua @@ -1,640 +1,640 @@ -local allow_changes = z_balance.dim - -do --[[gathering]]-- - aadd("z-gathering-0", "5d-repair-pack-2", "j") - - aadd("z-gathering-1", "5d-iron-chest-mk2", "d") - aadd("z-gathering-1", "5d-iron-chest-mk2-2", "e") - aadd("z-gathering-1", "5d-iron-chest-mk3", "f") - aadd("z-gathering-1", "5d-iron-chest-mk2-3", "g") - - aadd("z-gathering-3", "5d-storage-tank", "b") - - aadd("z-gathering-4", "5d-mining-drill-speed-1", "b") - aadd("z-gathering-4", "5d-mining-drill-speed-2", "c") - aadd("z-gathering-4", "5d-mining-drill-speed-3", "d") - - aadd("z-gathering-6", "5d-mining-drill-range-1", "b") - aadd("z-gathering-6", "5d-mining-drill-range-2", "c") - aadd("z-gathering-6", "5d-mining-drill-range-3", "d") - - aadd("z-gathering-8", "5d-offshore-pump", "b") - aadd("z-gathering-8", "5d-offshore-pump-2", "c") - aadd("z-gathering-8", "5d-pumpjack-2", "f") - aadd("z-gathering-8", "5d-pumpjack-3", "g") - - aadd("z-gathering-10", "5d-small-pump", "b") - aadd("z-gathering-10", "5d-small-pump-2", "c") - - if use_graphics_tunnings then - zgc.set_icon("5d-repair-pack-2","__ZGroupChange__/graphics/icons/repairpack-2.png") - end - -end -do --[[production]]-- - aadd("z-production-0", "5d-masher", "b") - aadd("z-production-0", "5d-masher-2", "c") - - aadd("z-production-2", "5d-furnace", "a") - aadd("z-production-2", "electric-furnace", "b") - aadd("z-production-2", "5d-electric-furnace", "c") - - aadd("z-production-4", "assembling-machine-1", "a") - aadd("z-production-4", "assembling-machine-2", "b") - aadd("z-production-4", "assembling-machine-3", "c") - aadd("z-production-4", "5d-assembling-machine-4", "d") - aadd("z-production-4", "5d-assembling-machine-5", "e") - - aadd("z-production-6", "5d-oil-refinery-2", "e") - aadd("z-production-6", "5d-oil-refinery-3", "f") - - aadd("z-production-7", "5d-chemical-plant-2", "e") - aadd("z-production-7", "5d-chemical-plant-3", "f") - - - if use_graphics_tunnings then - if data.raw["assembling-machine"]["assembling-machine-3"] then - data.raw["assembling-machine"]["assembling-machine-3"].animation = { - filename = "__ZGroupChange__/graphics/entity/assembling-machine-3-anim.png", - priority="high", - width = 142, - height = 113, - frame_count = 32, - line_length = 8, - shift = {0.84, -0.1} - } - end - if data.raw["assembling-machine"]["assembling-machine-4"] then - data.raw["assembling-machine"]["assembling-machine-4"].animation = { - filename = "__ZGroupChange__/graphics/entity/assembling-machine-4-anim.png", - priority="high", - width = 142, - height = 113, - frame_count = 32, - line_length = 8, - shift = {0.84, -0.1} - } - end - if data.raw["assembling-machine"]["assembling-machine-5"] then - data.raw["assembling-machine"]["assembling-machine-5"].animation = { - filename = "__ZGroupChange__/graphics/entity/assembling-machine-5-anim.png", - priority="high", - width = 142, - height = 113, - frame_count = 32, - line_length = 8, - shift = {0.84, -0.1} - } - end - end - - if use_graphics_tunnings then - zgc.set_icon("assembling-machine-1", "__ZGroupChange__/graphics/icons/assembling-machine-1.png") - zgc.set_icon("assembling-machine-2", "__ZGroupChange__/graphics/icons/assembling-machine-2.png") - zgc.set_icon("assembling-machine-3", "__ZGroupChange__/graphics/icons/assembling-machine-3.png") - zgc.set_icon("5d-assembling-machine-4", "__ZGroupChange__/graphics/icons/assembling-machine-4.png") - zgc.set_icon("5d-assembling-machine-5", "__ZGroupChange__/graphics/icons/assembling-machine-5.png") - end - -end -do --[[resources]]-- - aadd("z-resources-0", "raw-wood", "a") - aadd("z-resources-0", "wood", "b") - aadd("z-resources-0", "coal", "c") - aadd("z-resources-0", "stone", "e") - aadd("z-resources-0", "sulfur", "f") - - aadd("z-resources-3", "lead-ore", "e") - aadd("z-resources-3", "tin-ore", "f") - aadd("z-resources-3", "zinc-ore", "g") - aadd("z-resources-3", "bauxite-ore", "h") - aadd("z-resources-3", "gold-ore", "i") - - aadd("z-resources-4", "5d-iron-dust", "a") - aadd("z-resources-4", "5d-copper-dust", "b") - aadd("z-resources-4", "5d-lead-dust", "c") - aadd("z-resources-4", "5d-tin-dust", "d") - aadd("z-resources-4", "5d-zinc-dust", "e") - aadd("z-resources-4", "5d-aluminium-dust", "f") - aadd("z-resources-4", "5d-gold-dust", "g") - - if z_balance.add_dust then - zgc.add_newRessource_min_max("iron-ore", "5d-iron-dust", 1,2,0.2) - zgc.add_newRessource_min_max("copper-ore", "5d-copper-dust", 1,2,0.2) - zgc.add_newRessource_min_max("lead-ore", "5d-lead-dust", 1,1,0.2) - zgc.add_newRessource_min_max("tin-ore", "5d-tin-dust", 1,1,0.2) - zgc.add_newRessource_min_max("zinc-ore", "5d-zinc-dust", 1,2,0.1) - zgc.add_newRessource_min_max("bauxite-ore", "5d-aluminium-dust",1,2,0.1) - zgc.add_newRessource_min_max("gold-ore", "5d-gold-dust", 1,1,0.1) - end -end -do --[[plates]]-- - aadd("z-plates-0", "lead-plate", "c") - aadd("z-plates-0", "5d-tin-plate", "d") - aadd("z-plates-0", "zinc-plate", "e") - aadd("z-plates-0", "aluminium-plate", "f") - aadd("z-plates-0", "gold-plate", "g") - - aadd("z-plates-1", "5d-iron-plate", "a") - aadd("z-plates-1", "5d-copper-plate", "b") - aadd("z-plates-1", "5d-lead-plate-2", "c") - aadd("z-plates-1", "5d-tin-plate-2", "d") - aadd("z-plates-1", "5d-zinc-plate-2", "e") - aadd("z-plates-1", "5d-aluminium-plate-2", "f") - aadd("z-plates-1", "5d-gold-plate-2", "g") - - aadd("z-plates-2", "steel-plate", "c") - -end -do --[[automatization]]-- - if i_exist("5d-basic-inserter-left-90d") then - aadd("z-automatization-0", "burner-inserter", "a")-- - aadd("z-automatization-0", "inserter", "b")-- - aadd("z-automatization-0", "long-handed-inserter", "c")-- - aadd("z-automatization-0", "5d-inserter-speed1-range3", "d") - aadd("z-automatization-0", "5d-inserter-speed1-range1-close", "e") - aadd("z-automatization-0", "5d-inserter-speed1-range2-close", "f") - aadd("z-automatization-0", "5d-inserter-speed1-range3-close", "g") - - aadd("z-automatization-1", "filter-inserter", "a")-- - aadd("z-automatization-1", "5d-inserter-smart-speed2-range2", "b") - aadd("z-automatization-1", "5d-inserter-smart-speed3-range1", "c") - aadd("z-automatization-1", "5d-inserter-smart-speed2-range1-close","d") - aadd("z-automatization-1", "5d-inserter-smart-speed2-range2-close","e") - aadd("z-automatization-1", "5d-inserter-smart-speed3-range1-close","f") - - - aadd("z-automatization-2", "fast-inserter", "a")-- - aadd("z-automatization-2", "5d-inserter-speed2-range2", "b") - aadd("z-automatization-2", "5d-inserter-speed2-range3", "c") - aadd("z-automatization-2", "5d-inserter-speed2-range1-close", "d") - aadd("z-automatization-2", "5d-inserter-speed2-range2-close", "e") - aadd("z-automatization-2", "5d-inserter-speed2-range3-close", "f") - aadd("z-automatization-2", "stack-inserter", "g")-- - aadd("z-automatization-2", "stack-filter-inserter", "h")-- - - aadd("z-automatization-3", "5d-inserter-speed3-range1", "a") - aadd("z-automatization-3", "5d-inserter-speed3-range2", "b") - aadd("z-automatization-3", "5d-inserter-speed3-range3", "c") - aadd("z-automatization-3", "5d-inserter-speed3-range1-close", "d") - aadd("z-automatization-3", "5d-inserter-speed3-range2-close", "e") - aadd("z-automatization-3", "5d-inserter-speed3-range3-close", "f") - - aadd("z-automatization-4", "5d-basic-inserter-left-90d", "a") - aadd("z-automatization-4", "5d-fast-inserter-left-90d", "b") - aadd("z-automatization-4", "5d-extreme-inserter-left-90d", "c") - aadd("z-automatization-4", "5d-basic-inserter-left-90d-close", "d") - aadd("z-automatization-4", "5d-fast-inserter-left-90d-close", "e") - aadd("z-automatization-4", "5d-extreme-inserter-left-90d-close", "f") - - aadd("z-automatization-5", "5d-basic-inserter-right-90d", "a") - aadd("z-automatization-5", "5d-fast-inserter-right-90d", "b") - aadd("z-automatization-5", "5d-extreme-inserter-right-90d", "c") - aadd("z-automatization-5", "5d-basic-inserter-right-90d-close", "d") - aadd("z-automatization-5", "5d-fast-inserter-right-90d-close", "e") - aadd("z-automatization-5", "5d-extreme-inserter-right-90d-close", "f") - end - -end -do --[[transport]]-- - aadd("z-transport-0", "5d-mk4-transport-belt", "d") - aadd("z-transport-0", "5d-mk5-transport-belt", "e") - - aadd("z-transport-1", "5d-mk4-transport-belt-to-ground", "d") - aadd("z-transport-1", "5d-mk5-transport-belt-to-ground", "e") - - aadd("z-transport-2", "5d-mk1-transport-belt-to-ground-30", "a") - aadd("z-transport-2", "5d-mk2-transport-belt-to-ground-30", "b") - aadd("z-transport-2", "5d-mk3-transport-belt-to-ground-30", "c") - aadd("z-transport-2", "5d-mk4-transport-belt-to-ground-30", "d") - aadd("z-transport-2", "5d-mk5-transport-belt-to-ground-30", "e") - - aadd("z-transport-3", "5d-mk1-transport-belt-to-ground-50", "a") - aadd("z-transport-3", "5d-mk2-transport-belt-to-ground-50", "b") - aadd("z-transport-3", "5d-mk3-transport-belt-to-ground-50", "c") - aadd("z-transport-3", "5d-mk4-transport-belt-to-ground-50", "d") - aadd("z-transport-3", "5d-mk5-transport-belt-to-ground-50", "e") - - aadd("z-transport-4", "5d-mk4-splitter", "d") - aadd("z-transport-4", "5d-mk5-splitter", "e") - - aadd("z-transport-9", "5d-pipe-mk2", "b") - aadd("z-transport-9", "5d-pipe-mk3", "c") - - aadd("z-transport-10", "5d-pipe-to-ground-mk2", "b") - aadd("z-transport-10", "5d-pipe-to-ground-mk3", "c") - - aadd("z-transport-11", "5d-pipe-to-ground-mk1-30", "a") - aadd("z-transport-11", "5d-pipe-to-ground-mk2-30", "b") - aadd("z-transport-11", "5d-pipe-to-ground-mk3-30", "c") - - aadd("z-transport-12", "5d-pipe-to-ground-mk1-50", "a") - aadd("z-transport-12", "5d-pipe-to-ground-mk2-50", "b") - aadd("z-transport-12", "5d-pipe-to-ground-mk3-50", "c") - - if use_graphics_tunnings then - local function set_sprite(pic,mk) - local pic = pic or "u_line_y" - local mk = mk or "" - return { - filename = "__ZGroupChange__/graphics/entity/"..pic..mk..".png", - priority = "high", - width = 64, - height = 64, - x = 64, - scale = 0.5 - } - end - - if i_exist("5d-mk4-transport-belt-to-ground") then - data.raw["underground-belt"]["5d-mk4-transport-belt-to-ground"].collision_box = {{-0.4, -0.4}, {0.4, 0.4}} - data.raw["underground-belt"]["5d-mk4-transport-belt-to-ground"].selection_box = {{-0.5, -0.5}, {0.5, 0.5}} - data.raw["underground-belt"]["5d-mk4-transport-belt-to-ground"].underground_sprite = set_sprite("u_line_g") - data.raw["underground-belt"]["5d-mk4-transport-belt-to-ground"].structure.direction_in.sheet.filename = "__ZGroupChange__/graphics/entity/5d_gr_4.png" - data.raw["underground-belt"]["5d-mk4-transport-belt-to-ground"].structure.direction_out.sheet.filename = "__ZGroupChange__/graphics/entity/5d_gr_4.png" - end - if i_exist("5d-mk5-transport-belt-to-ground") then - data.raw["underground-belt"]["5d-mk5-transport-belt-to-ground"].collision_box = {{-0.4, -0.4}, {0.4, 0.4}} - data.raw["underground-belt"]["5d-mk5-transport-belt-to-ground"].selection_box = {{-0.5, -0.5}, {0.5, 0.5}} - data.raw["underground-belt"]["5d-mk5-transport-belt-to-ground"].underground_sprite = set_sprite("u_line_w") - data.raw["underground-belt"]["5d-mk5-transport-belt-to-ground"].structure.direction_in.sheet.filename = "__ZGroupChange__/graphics/entity/5d_gr_5.png" - data.raw["underground-belt"]["5d-mk5-transport-belt-to-ground"].structure.direction_out.sheet.filename = "__ZGroupChange__/graphics/entity/5d_gr_5.png" - end - - if i_exist("5d-mk1-transport-belt-to-ground-30") then - data.raw["underground-belt"]["5d-mk1-transport-belt-to-ground-30"].collision_box = {{-0.4, -0.4}, {0.4, 0.4}} - data.raw["underground-belt"]["5d-mk1-transport-belt-to-ground-30"].selection_box = {{-0.5, -0.5}, {0.5, 0.5}} - data.raw["underground-belt"]["5d-mk1-transport-belt-to-ground-30"].underground_sprite = set_sprite("u_line_y","_3") end - if i_exist("5d-mk2-transport-belt-to-ground-30") then - data.raw["underground-belt"]["5d-mk2-transport-belt-to-ground-30"].collision_box = {{-0.4, -0.4}, {0.4, 0.4}} - data.raw["underground-belt"]["5d-mk2-transport-belt-to-ground-30"].selection_box = {{-0.5, -0.5}, {0.5, 0.5}} - data.raw["underground-belt"]["5d-mk2-transport-belt-to-ground-30"].underground_sprite = set_sprite("u_line_r","_3") end - if i_exist("5d-mk3-transport-belt-to-ground-30") then - data.raw["underground-belt"]["5d-mk3-transport-belt-to-ground-30"].collision_box = {{-0.4, -0.4}, {0.4, 0.4}} - data.raw["underground-belt"]["5d-mk3-transport-belt-to-ground-30"].selection_box = {{-0.5, -0.5}, {0.5, 0.5}} - data.raw["underground-belt"]["5d-mk3-transport-belt-to-ground-30"].underground_sprite = set_sprite("u_line_b","_3") end - if i_exist("5d-mk4-transport-belt-to-ground-30") then - data.raw["underground-belt"]["5d-mk4-transport-belt-to-ground-30"].collision_box = {{-0.4, -0.4}, {0.4, 0.4}} - data.raw["underground-belt"]["5d-mk4-transport-belt-to-ground-30"].selection_box = {{-0.5, -0.5}, {0.5, 0.5}} - data.raw["underground-belt"]["5d-mk4-transport-belt-to-ground-30"].underground_sprite = set_sprite("u_line_g","_3") - data.raw["underground-belt"]["5d-mk4-transport-belt-to-ground-30"].structure.direction_in.sheet.filename = "__ZGroupChange__/graphics/entity/5d_gr_4.png" - data.raw["underground-belt"]["5d-mk4-transport-belt-to-ground-30"].structure.direction_out.sheet.filename = "__ZGroupChange__/graphics/entity/5d_gr_4.png" - end - if i_exist("5d-mk5-transport-belt-to-ground-30") then - data.raw["underground-belt"]["5d-mk5-transport-belt-to-ground-30"].collision_box = {{-0.4, -0.4}, {0.4, 0.4}} - data.raw["underground-belt"]["5d-mk5-transport-belt-to-ground-30"].selection_box = {{-0.5, -0.5}, {0.5, 0.5}} - data.raw["underground-belt"]["5d-mk5-transport-belt-to-ground-30"].underground_sprite = set_sprite("u_line_w","_3") - data.raw["underground-belt"]["5d-mk5-transport-belt-to-ground-30"].structure.direction_in.sheet.filename = "__ZGroupChange__/graphics/entity/5d_gr_5.png" - data.raw["underground-belt"]["5d-mk5-transport-belt-to-ground-30"].structure.direction_out.sheet.filename = "__ZGroupChange__/graphics/entity/5d_gr_5.png" - end - - if i_exist("5d-mk1-transport-belt-to-ground-50") then - data.raw["underground-belt"]["5d-mk1-transport-belt-to-ground-50"].collision_box = {{-0.4, -0.4}, {0.4, 0.4}} - data.raw["underground-belt"]["5d-mk1-transport-belt-to-ground-50"].selection_box = {{-0.5, -0.5}, {0.5, 0.5}} - data.raw["underground-belt"]["5d-mk1-transport-belt-to-ground-50"].underground_sprite = set_sprite("u_line_y","_5") end - if i_exist("5d-mk2-transport-belt-to-ground-50") then - data.raw["underground-belt"]["5d-mk2-transport-belt-to-ground-50"].collision_box = {{-0.4, -0.4}, {0.4, 0.4}} - data.raw["underground-belt"]["5d-mk2-transport-belt-to-ground-50"].selection_box = {{-0.5, -0.5}, {0.5, 0.5}} - data.raw["underground-belt"]["5d-mk2-transport-belt-to-ground-50"].underground_sprite = set_sprite("u_line_r","_5") end - if i_exist("5d-mk3-transport-belt-to-ground-50") then - data.raw["underground-belt"]["5d-mk3-transport-belt-to-ground-50"].collision_box = {{-0.4, -0.4}, {0.4, 0.4}} - data.raw["underground-belt"]["5d-mk3-transport-belt-to-ground-50"].selection_box = {{-0.5, -0.5}, {0.5, 0.5}} - data.raw["underground-belt"]["5d-mk3-transport-belt-to-ground-50"].underground_sprite = set_sprite("u_line_b","_5") end - if i_exist("5d-mk4-transport-belt-to-ground-50") then - data.raw["underground-belt"]["5d-mk4-transport-belt-to-ground-50"].collision_box = {{-0.4, -0.4}, {0.4, 0.4}} - data.raw["underground-belt"]["5d-mk4-transport-belt-to-ground-50"].selection_box = {{-0.5, -0.5}, {0.5, 0.5}} - data.raw["underground-belt"]["5d-mk4-transport-belt-to-ground-50"].underground_sprite = set_sprite("u_line_g","_5") - data.raw["underground-belt"]["5d-mk4-transport-belt-to-ground-50"].structure.direction_in.sheet.filename = "__ZGroupChange__/graphics/entity/5d_gr_4.png" - data.raw["underground-belt"]["5d-mk4-transport-belt-to-ground-50"].structure.direction_out.sheet.filename = "__ZGroupChange__/graphics/entity/5d_gr_4.png" - end - if i_exist("5d-mk5-transport-belt-to-ground-50") then - data.raw["underground-belt"]["5d-mk5-transport-belt-to-ground-50"].collision_box = {{-0.4, -0.4}, {0.4, 0.4}} - data.raw["underground-belt"]["5d-mk5-transport-belt-to-ground-50"].selection_box = {{-0.5, -0.5}, {0.5, 0.5}} - data.raw["underground-belt"]["5d-mk5-transport-belt-to-ground-50"].underground_sprite = set_sprite("u_line_w","_5") - data.raw["underground-belt"]["5d-mk5-transport-belt-to-ground-50"].structure.direction_in.sheet.filename = "__ZGroupChange__/graphics/entity/5d_gr_5.png" - data.raw["underground-belt"]["5d-mk5-transport-belt-to-ground-50"].structure.direction_out.sheet.filename = "__ZGroupChange__/graphics/entity/5d_gr_5.png" - end - - if i_exist("5d-pipe-to-ground-mk2") then - data.raw["pipe-to-ground"]["5d-pipe-to-ground-mk2"].underground_sprite = set_sprite("u_pipe","_3") - end - if i_exist("5d-pipe-to-ground-mk3") then - data.raw["pipe-to-ground"]["5d-pipe-to-ground-mk3"].underground_sprite = set_sprite("u_pipe","_5") - end - - if i_exist("5d-pipe-to-ground-mk1-30") then - data.raw["pipe-to-ground"]["5d-pipe-to-ground-mk1-30"].underground_sprite = set_sprite("u_pipe","_1") - end - if i_exist("5d-pipe-to-ground-mk2-30") then - data.raw["pipe-to-ground"]["5d-pipe-to-ground-mk2-30"].underground_sprite = set_sprite("u_pipe","_3") - end - if i_exist("5d-pipe-to-ground-mk3-30") then - data.raw["pipe-to-ground"]["5d-pipe-to-ground-mk3-30"].underground_sprite = set_sprite("u_pipe","_5") - end - - if i_exist("5d-pipe-to-ground-mk1-50") then - data.raw["pipe-to-ground"]["5d-pipe-to-ground-mk1-50"].underground_sprite = set_sprite("u_pipe","_1") - end - if i_exist("5d-pipe-to-ground-mk2-50") then - data.raw["pipe-to-ground"]["5d-pipe-to-ground-mk2-50"].underground_sprite = set_sprite("u_pipe","_3") - end - if i_exist("5d-pipe-to-ground-mk3-50") then - data.raw["pipe-to-ground"]["5d-pipe-to-ground-mk3-50"].underground_sprite = set_sprite("u_pipe","_5") - end - end - - if i_exist("5d-mk4-splitter") then - data.raw.recipe["fast-transport-belt"].ingredients = {} - data.raw.recipe["fast-transport-belt"].ingredients = { - {"iron-gear-wheel", 5}, - {"transport-belt", 1} - } - data.raw.recipe["underground-belt"].ingredients = {} - data.raw.recipe["underground-belt"].ingredients = { - {"iron-plate", 10}, - {"transport-belt", 5} - } - data.raw.recipe["fast-underground-belt"].ingredients = {} - data.raw.recipe["fast-underground-belt"].ingredients = { - {"iron-gear-wheel", 20}, - {"fast-transport-belt", 5} - }data.raw.recipe["splitter"].ingredients = {} - data.raw.recipe["splitter"].ingredients = { - {"electronic-circuit", 5}, - {"iron-plate", 5}, - {"transport-belt", 4} - } - data.raw.recipe["fast-splitter"].ingredients = {} - data.raw.recipe["fast-splitter"].ingredients = { - {"electronic-circuit", 5}, - {"iron-gear-wheel", 5}, - {"fast-transport-belt", 4} - } - if i_exist("5d-tin-gear-wheel") then - data.raw.recipe["express-underground-belt"].ingredients = {} - data.raw.recipe["express-underground-belt"].ingredients = { - {"5d-tin-gear-wheel", 20}, - {"express-transport-belt", 5} - } - data.raw.recipe["5d-mk4-transport-belt-to-ground"].ingredients = {} - data.raw.recipe["5d-mk4-transport-belt-to-ground"].ingredients = { - {"5d-zinc-gear-wheel", 20}, - {"5d-mk4-transport-belt", 5} - } - data.raw.recipe["5d-mk5-transport-belt-to-ground"].ingredients = {} - data.raw.recipe["5d-mk5-transport-belt-to-ground"].ingredients = { - {"5d-aluminium-gear-wheel", 20}, - {"5d-mk5-transport-belt", 5} - } - data.raw.recipe["express-splitter"].ingredients = {} - data.raw.recipe["express-splitter"].ingredients = { - {"advanced-circuit", 5}, - {"5d-tin-gear-wheel", 5}, - {"express-transport-belt", 4}, - {type="fluid", name="lubricant", amount=4} - } - data.raw.recipe["5d-mk4-splitter"].ingredients = {} - data.raw.recipe["5d-mk4-splitter"].category = "crafting-with-fluid" - data.raw.recipe["5d-mk4-splitter"].ingredients = { - {"advanced-circuit", 5}, - {"5d-zinc-gear-wheel", 5}, - {"5d-mk4-transport-belt", 4}, - {type="fluid", name="lubricant", amount=2} - } - data.raw.recipe["5d-mk5-splitter"].ingredients = {} - data.raw.recipe["5d-mk5-splitter"].category = "crafting-with-fluid" - data.raw.recipe["5d-mk5-splitter"].ingredients = { - {"advanced-circuit", 5}, - {"5d-aluminium-gear-wheel", 5}, - {"5d-mk5-transport-belt", 4}, - {type="fluid", name="lubricant", amount=2} - } - end - - end - -end -do --[[logistic]]-- - aadd("z-logistic-1", "5d-roboport-2", "b") - - aadd("z-logistic-1", "5d-roboport-2", "b") - aadd("z-logistic-1", "5d-logistic-robot-2", "d") - aadd("z-logistic-1", "5d-construction-robot-2", "f") - - aadd("z-logistic-3", "5d-storage", "a") - aadd("z-logistic-3", "5d-requester", "b") - aadd("z-logistic-3", "5d-passive", "c") - aadd("z-logistic-3", "5d-active", "d") - - aadd("z-logistic-8", "5d-aluminium-wire", "d") - aadd("z-logistic-8", "5d-gold-wire", "e") - - if use_graphics_tunnings then - zgc.set_icon("5d-roboport-2", "__ZGroupChange__/graphics/icons/roboport2.png") - - if data.raw["roboport"]["5d-roboport-2"] then - data.raw["roboport"]["5d-roboport-2"].base = { - filename = "__ZGroupChange__/graphics/entity/roboport2-base.png", - width = 143, - height = 135, - shift = {0.5,0.25} - } - data.raw["roboport"]["5d-roboport-2"].base_patch = { - filename = "__ZGroupChange__/graphics/entity/roboport2-base-patch.png", - priority = "medium", - width = 69, - height = 50, - frame_count = 1, - shift = {0.03125,0.203125} - } - data.raw["roboport"]["5d-roboport-2"].door_animation_up = { - filename = "__ZGroupChange__/graphics/entity/roboport2-door-up.png", - priority = "medium", - width = 52, - height = 20, - frame_count = 16, - shift = {0.015625,-0.890625} - } - data.raw["roboport"]["5d-roboport-2"].door_animation_down = { - filename = "__ZGroupChange__/graphics/entity/roboport2-door-down.png", - priority = "medium", - width = 52, - height = 22, - frame_count = 16, - shift = {0.015625,-0.234375} - } - data.raw["roboport"]["5d-roboport-2"].recharging_animation = { - filename = "__ZGroupChange__/graphics/entity/roboport2-recharging.png", - priority = "high", - width = 37, - height = 35, - frame_count = 16, - scale = 1.5, - animation_speed = 0.5 - } - end - end - if data.raw.recipe["5d-active"] and data.raw.recipe["5d-requester"] then - data:extend({ - { - type = "technology", - name = "logistic-system-2", - icon = "__base__/graphics/technology/logistic-system.png", - effects = - { - { - type = "unlock-recipe", - recipe = "5d-active" - }, - { - type = "unlock-recipe", - recipe = "5d-requester" - } - }, - prerequisites = { "logistic-system"}, - unit = { - count = 150, - ingredients = - { - {"science-pack-1", 1}, - {"science-pack-2", 1}, - {"science-pack-3", 1} - }, - time = 30 - }, - order = "c-k-d", - }, - }) - end - -end -do --[[energy]]-- - aadd("z-energy-1", "5d-boiler", "e") - aadd("z-energy-1", "5d-boiler-2", "f") - - aadd("z-energy-2", "5d-steam-engine-2", "d") - aadd("z-energy-2", "5d-steam-engine-3", "e") - - aadd("z-energy-3", "5d-basic-accumulator-2", "b") - aadd("z-energy-3", "5d-basic-accumulator-3", "c") - - aadd("z-energy-4", "5d-solar-panel-2", "c") - aadd("z-energy-4", "5d-solar-panel-3", "e") - - aadd("z-energy-7", "5d-electric-pole-4", "f") - - aadd("z-energy-8", "5d-electric-pole-5", "i") - aadd("z-energy-8", "5d-electric-pole-6", "j") - -end -do --[[defense]]-- - aadd("z-defense-0", "5d-metal-wall", "c") - aadd("z-defense-0", "5d-gate", "f") - - if i_exist("bob-gun-turret-2") then - aadd("z-defense-4", "5d-gun-turret-small", "b") - aadd("z-defense-4", "5d-gun-turret-big", "c") - - aadd("z-defense-5", "5d-laser-turret-small", "b") - aadd("z-defense-5", "5d-laser-turret-big", "c") - end - -end -do --[[intermediate]]-- - aadd("z-intermediate-1", "5d-gold-circuit", "i") - - aadd("z-intermediate-4", "iron-gear-wheel", "a") - aadd("z-intermediate-4", "5d-tin-gear-wheel", "b") - aadd("z-intermediate-4", "5d-zinc-gear-wheel", "c") - aadd("z-intermediate-4", "5d-aluminium-gear-wheel", "d") - - if allow_changes and data.raw.recipe["5d-gold-circuit"] then - data.raw.recipe["5d-gold-circuit"].ingredients = - { - {"advanced-circuit", 2}, - {"5d-tin-plate", 5}, - {"5d-gold-wire", 4}, - } - zgc.add_recipe_to_tech("advanced-electronics", "5d-gold-circuit") - end -end -do --[[module]]-- - aadd("z-module-0", "5d-welder", "i") - - aadd("z-module-3", "5d-speed-module-4", "d") - aadd("z-module-3", "5d-speed-module-5", "e") - - aadd("z-module-4", "5d-productivity-module-4", "d") - aadd("z-module-4", "5d-productivity-module-5", "e") - - aadd("z-module-5", "5d-effectivity-module-4", "d") - aadd("z-module-5", "5d-effectivity-module-5", "e") - - aadd("z-module-6", "5d-pollution-module-1", "a") - aadd("z-module-6", "5d-pollution-module-2", "b") - aadd("z-module-6", "5d-pollution-module-3", "c") - aadd("z-module-6", "5d-pollution-module-4", "d") - aadd("z-module-6", "5d-pollution-module-5", "e") - - aadd("z-module-7", "5d-speed-effectivity-4", "a") - aadd("z-module-7", "5d-speed-pollution-4", "b") - aadd("z-module-7", "5d-speed-productivity-4", "c") - aadd("z-module-7", "5d-pollution-effectivity-4", "d") - aadd("z-module-7", "5d-pollution-productivity-4", "e") - aadd("z-module-7", "5d-effectivity-productivity-4","f") - - aadd("z-module-8", "5d-speed-effectivity-5", "a") - aadd("z-module-8", "5d-speed-pollution-5", "b") - aadd("z-module-8", "5d-speed-productivity-5", "c") - aadd("z-module-8", "5d-pollution-effectivity-5", "d") - aadd("z-module-8", "5d-pollution-productivity-5", "e") - aadd("z-module-8", "5d-effectivity-productivity-5","f") - - if data.raw.module["5d-effectivity-productivity-5"] then - local lim = data.raw.module["5d-effectivity-productivity-5"].limitation - local lmk = data.raw.module["5d-effectivity-productivity-5"].limitation_message_key - data.raw.module["5d-speed-productivity-4"].limitation = lim - data.raw.module["5d-speed-productivity-4"].limitation_message_key = lmk - data.raw.module["5d-effectivity-productivity-4"].limitation = lim - data.raw.module["5d-effectivity-productivity-4"].limitation_message_key = lmk - data.raw.module["5d-pollution-productivity-4"].limitation = lim - data.raw.module["5d-pollution-productivity-4"].limitation_message_key = lmk - end -end -do --[[trains-vehicles]]-- - aadd("z-vehicles-1", "5d-artillery", "a") - aadd("z-vehicles-1", "5d-tank", "b") - - aadd("z-vehicles-2", "5d-truck", "a") - aadd("z-vehicles-2", "5d-boat", "b") - aadd("z-vehicles-2", "5d-air-plane", "c") - - aadd("z-vehicles-3", "artillery-shell", "d") - aadd("z-vehicles-3", "5d-tank-machine-gun", "d") -end -do --[[decorative]]-- - aadd("z-decorative-1", "concrete", "a") - aadd("z-decorative-1", "5d-concrete-a", "b") - aadd("z-decorative-1", "5d-concrete-b", "c") - aadd("z-decorative-1", "5d-concrete-b2", "d") - aadd("z-decorative-1", "5d-concrete-m", "e") - aadd("z-decorative-1", "5d-concrete-r", "f") - aadd("z-decorative-1", "5d-concrete-v", "g") - aadd("z-decorative-1", "hazard-concrete", "h") - - aadd("z-decorative-4", "5d-lamp", "b") - - aadd("z-decorative-8", "5d-banner-1", "a") - aadd("z-decorative-8", "5d-banner-2", "b") - aadd("z-decorative-8", "5d-banner-3", "c") - aadd("z-decorative-8", "5d-obelisk", "d") - aadd("z-decorative-8", "5d-statue", "e") - - for _,v in pairs(data.raw["item-subgroup"]) do - if v.group == "decoration" and (v.name == "decoration-letter" or v.name == "decoration-arrow") then - v.group = "zgc-decorative" - v.order = 7 - end - end - -end +local allow_changes = z_balance.dim + +do --[[gathering]]-- + aadd("z-gathering-0", "5d-repair-pack-2", "j") + + aadd("z-gathering-1", "5d-iron-chest-mk2", "d") + aadd("z-gathering-1", "5d-iron-chest-mk2-2", "e") + aadd("z-gathering-1", "5d-iron-chest-mk3", "f") + aadd("z-gathering-1", "5d-iron-chest-mk2-3", "g") + + aadd("z-gathering-3", "5d-storage-tank", "b") + + aadd("z-gathering-4", "5d-mining-drill-speed-1", "b") + aadd("z-gathering-4", "5d-mining-drill-speed-2", "c") + aadd("z-gathering-4", "5d-mining-drill-speed-3", "d") + + aadd("z-gathering-6", "5d-mining-drill-range-1", "b") + aadd("z-gathering-6", "5d-mining-drill-range-2", "c") + aadd("z-gathering-6", "5d-mining-drill-range-3", "d") + + aadd("z-gathering-8", "5d-offshore-pump", "b") + aadd("z-gathering-8", "5d-offshore-pump-2", "c") + aadd("z-gathering-8", "5d-pumpjack-2", "f") + aadd("z-gathering-8", "5d-pumpjack-3", "g") + + aadd("z-gathering-10", "5d-small-pump", "b") + aadd("z-gathering-10", "5d-small-pump-2", "c") + + if use_graphics_tunnings then + zgc.set_icon("5d-repair-pack-2","__ZGroupChange__/graphics/icons/repairpack-2.png") + end + +end +do --[[production]]-- + aadd("z-production-0", "5d-masher", "b") + aadd("z-production-0", "5d-masher-2", "c") + + aadd("z-production-2", "5d-furnace", "a") + aadd("z-production-2", "electric-furnace", "b") + aadd("z-production-2", "5d-electric-furnace", "c") + + aadd("z-production-4", "assembling-machine-1", "a") + aadd("z-production-4", "assembling-machine-2", "b") + aadd("z-production-4", "assembling-machine-3", "c") + aadd("z-production-4", "5d-assembling-machine-4", "d") + aadd("z-production-4", "5d-assembling-machine-5", "e") + + aadd("z-production-6", "5d-oil-refinery-2", "e") + aadd("z-production-6", "5d-oil-refinery-3", "f") + + aadd("z-production-7", "5d-chemical-plant-2", "e") + aadd("z-production-7", "5d-chemical-plant-3", "f") + + + if use_graphics_tunnings then + if data.raw["assembling-machine"]["assembling-machine-3"] then + data.raw["assembling-machine"]["assembling-machine-3"].animation = { + filename = "__ZGroupChange__/graphics/entity/assembling-machine-3-anim.png", + priority="high", + width = 142, + height = 113, + frame_count = 32, + line_length = 8, + shift = {0.84, -0.1} + } + end + if data.raw["assembling-machine"]["assembling-machine-4"] then + data.raw["assembling-machine"]["assembling-machine-4"].animation = { + filename = "__ZGroupChange__/graphics/entity/assembling-machine-4-anim.png", + priority="high", + width = 142, + height = 113, + frame_count = 32, + line_length = 8, + shift = {0.84, -0.1} + } + end + if data.raw["assembling-machine"]["assembling-machine-5"] then + data.raw["assembling-machine"]["assembling-machine-5"].animation = { + filename = "__ZGroupChange__/graphics/entity/assembling-machine-5-anim.png", + priority="high", + width = 142, + height = 113, + frame_count = 32, + line_length = 8, + shift = {0.84, -0.1} + } + end + end + + if use_graphics_tunnings then + zgc.set_icon("assembling-machine-1", "__ZGroupChange__/graphics/icons/assembling-machine-1.png") + zgc.set_icon("assembling-machine-2", "__ZGroupChange__/graphics/icons/assembling-machine-2.png") + zgc.set_icon("assembling-machine-3", "__ZGroupChange__/graphics/icons/assembling-machine-3.png") + zgc.set_icon("5d-assembling-machine-4", "__ZGroupChange__/graphics/icons/assembling-machine-4.png") + zgc.set_icon("5d-assembling-machine-5", "__ZGroupChange__/graphics/icons/assembling-machine-5.png") + end + +end +do --[[resources]]-- + aadd("z-resources-0", "raw-wood", "a") + aadd("z-resources-0", "wood", "b") + aadd("z-resources-0", "coal", "c") + aadd("z-resources-0", "stone", "e") + aadd("z-resources-0", "sulfur", "f") + + aadd("z-resources-3", "lead-ore", "e") + aadd("z-resources-3", "tin-ore", "f") + aadd("z-resources-3", "zinc-ore", "g") + aadd("z-resources-3", "bauxite-ore", "h") + aadd("z-resources-3", "gold-ore", "i") + + aadd("z-resources-4", "5d-iron-dust", "a") + aadd("z-resources-4", "5d-copper-dust", "b") + aadd("z-resources-4", "5d-lead-dust", "c") + aadd("z-resources-4", "5d-tin-dust", "d") + aadd("z-resources-4", "5d-zinc-dust", "e") + aadd("z-resources-4", "5d-aluminium-dust", "f") + aadd("z-resources-4", "5d-gold-dust", "g") + + if z_balance.add_dust then + zgc.add_newRessource_min_max("iron-ore", "5d-iron-dust", 1,2,0.2) + zgc.add_newRessource_min_max("copper-ore", "5d-copper-dust", 1,2,0.2) + zgc.add_newRessource_min_max("lead-ore", "5d-lead-dust", 1,1,0.2) + zgc.add_newRessource_min_max("tin-ore", "5d-tin-dust", 1,1,0.2) + zgc.add_newRessource_min_max("zinc-ore", "5d-zinc-dust", 1,2,0.1) + zgc.add_newRessource_min_max("bauxite-ore", "5d-aluminium-dust",1,2,0.1) + zgc.add_newRessource_min_max("gold-ore", "5d-gold-dust", 1,1,0.1) + end +end +do --[[plates]]-- + aadd("z-plates-0", "lead-plate", "c") + aadd("z-plates-0", "5d-tin-plate", "d") + aadd("z-plates-0", "zinc-plate", "e") + aadd("z-plates-0", "aluminium-plate", "f") + aadd("z-plates-0", "gold-plate", "g") + + aadd("z-plates-1", "5d-iron-plate", "a") + aadd("z-plates-1", "5d-copper-plate", "b") + aadd("z-plates-1", "5d-lead-plate-2", "c") + aadd("z-plates-1", "5d-tin-plate-2", "d") + aadd("z-plates-1", "5d-zinc-plate-2", "e") + aadd("z-plates-1", "5d-aluminium-plate-2", "f") + aadd("z-plates-1", "5d-gold-plate-2", "g") + + aadd("z-plates-2", "steel-plate", "c") + +end +do --[[automatization]]-- + if i_exist("5d-basic-inserter-left-90d") then + aadd("z-automatization-0", "burner-inserter", "a")-- + aadd("z-automatization-0", "inserter", "b")-- + aadd("z-automatization-0", "long-handed-inserter", "c")-- + aadd("z-automatization-0", "5d-inserter-speed1-range3", "d") + aadd("z-automatization-0", "5d-inserter-speed1-range1-close", "e") + aadd("z-automatization-0", "5d-inserter-speed1-range2-close", "f") + aadd("z-automatization-0", "5d-inserter-speed1-range3-close", "g") + + aadd("z-automatization-1", "filter-inserter", "a")-- + aadd("z-automatization-1", "5d-inserter-smart-speed2-range2", "b") + aadd("z-automatization-1", "5d-inserter-smart-speed3-range1", "c") + aadd("z-automatization-1", "5d-inserter-smart-speed2-range1-close","d") + aadd("z-automatization-1", "5d-inserter-smart-speed2-range2-close","e") + aadd("z-automatization-1", "5d-inserter-smart-speed3-range1-close","f") + + + aadd("z-automatization-2", "fast-inserter", "a")-- + aadd("z-automatization-2", "5d-inserter-speed2-range2", "b") + aadd("z-automatization-2", "5d-inserter-speed2-range3", "c") + aadd("z-automatization-2", "5d-inserter-speed2-range1-close", "d") + aadd("z-automatization-2", "5d-inserter-speed2-range2-close", "e") + aadd("z-automatization-2", "5d-inserter-speed2-range3-close", "f") + aadd("z-automatization-2", "stack-inserter", "g")-- + aadd("z-automatization-2", "stack-filter-inserter", "h")-- + + aadd("z-automatization-3", "5d-inserter-speed3-range1", "a") + aadd("z-automatization-3", "5d-inserter-speed3-range2", "b") + aadd("z-automatization-3", "5d-inserter-speed3-range3", "c") + aadd("z-automatization-3", "5d-inserter-speed3-range1-close", "d") + aadd("z-automatization-3", "5d-inserter-speed3-range2-close", "e") + aadd("z-automatization-3", "5d-inserter-speed3-range3-close", "f") + + aadd("z-automatization-4", "5d-basic-inserter-left-90d", "a") + aadd("z-automatization-4", "5d-fast-inserter-left-90d", "b") + aadd("z-automatization-4", "5d-extreme-inserter-left-90d", "c") + aadd("z-automatization-4", "5d-basic-inserter-left-90d-close", "d") + aadd("z-automatization-4", "5d-fast-inserter-left-90d-close", "e") + aadd("z-automatization-4", "5d-extreme-inserter-left-90d-close", "f") + + aadd("z-automatization-5", "5d-basic-inserter-right-90d", "a") + aadd("z-automatization-5", "5d-fast-inserter-right-90d", "b") + aadd("z-automatization-5", "5d-extreme-inserter-right-90d", "c") + aadd("z-automatization-5", "5d-basic-inserter-right-90d-close", "d") + aadd("z-automatization-5", "5d-fast-inserter-right-90d-close", "e") + aadd("z-automatization-5", "5d-extreme-inserter-right-90d-close", "f") + end + +end +do --[[transport]]-- + aadd("z-transport-0", "5d-mk4-transport-belt", "d") + aadd("z-transport-0", "5d-mk5-transport-belt", "e") + + aadd("z-transport-1", "5d-mk4-transport-belt-to-ground", "d") + aadd("z-transport-1", "5d-mk5-transport-belt-to-ground", "e") + + aadd("z-transport-2", "5d-mk1-transport-belt-to-ground-30", "a") + aadd("z-transport-2", "5d-mk2-transport-belt-to-ground-30", "b") + aadd("z-transport-2", "5d-mk3-transport-belt-to-ground-30", "c") + aadd("z-transport-2", "5d-mk4-transport-belt-to-ground-30", "d") + aadd("z-transport-2", "5d-mk5-transport-belt-to-ground-30", "e") + + aadd("z-transport-3", "5d-mk1-transport-belt-to-ground-50", "a") + aadd("z-transport-3", "5d-mk2-transport-belt-to-ground-50", "b") + aadd("z-transport-3", "5d-mk3-transport-belt-to-ground-50", "c") + aadd("z-transport-3", "5d-mk4-transport-belt-to-ground-50", "d") + aadd("z-transport-3", "5d-mk5-transport-belt-to-ground-50", "e") + + aadd("z-transport-4", "5d-mk4-splitter", "d") + aadd("z-transport-4", "5d-mk5-splitter", "e") + + aadd("z-transport-9", "5d-pipe-mk2", "b") + aadd("z-transport-9", "5d-pipe-mk3", "c") + + aadd("z-transport-10", "5d-pipe-to-ground-mk2", "b") + aadd("z-transport-10", "5d-pipe-to-ground-mk3", "c") + + aadd("z-transport-11", "5d-pipe-to-ground-mk1-30", "a") + aadd("z-transport-11", "5d-pipe-to-ground-mk2-30", "b") + aadd("z-transport-11", "5d-pipe-to-ground-mk3-30", "c") + + aadd("z-transport-12", "5d-pipe-to-ground-mk1-50", "a") + aadd("z-transport-12", "5d-pipe-to-ground-mk2-50", "b") + aadd("z-transport-12", "5d-pipe-to-ground-mk3-50", "c") + + if use_graphics_tunnings then + local function set_sprite(pic,mk) + local pic = pic or "u_line_y" + local mk = mk or "" + return { + filename = "__ZGroupChange__/graphics/entity/"..pic..mk..".png", + priority = "high", + width = 64, + height = 64, + x = 64, + scale = 0.5 + } + end + + if i_exist("5d-mk4-transport-belt-to-ground") then + data.raw["underground-belt"]["5d-mk4-transport-belt-to-ground"].collision_box = {{-0.4, -0.4}, {0.4, 0.4}} + data.raw["underground-belt"]["5d-mk4-transport-belt-to-ground"].selection_box = {{-0.5, -0.5}, {0.5, 0.5}} + data.raw["underground-belt"]["5d-mk4-transport-belt-to-ground"].underground_sprite = set_sprite("u_line_g") + data.raw["underground-belt"]["5d-mk4-transport-belt-to-ground"].structure.direction_in.sheet.filename = "__ZGroupChange__/graphics/entity/5d_gr_4.png" + data.raw["underground-belt"]["5d-mk4-transport-belt-to-ground"].structure.direction_out.sheet.filename = "__ZGroupChange__/graphics/entity/5d_gr_4.png" + end + if i_exist("5d-mk5-transport-belt-to-ground") then + data.raw["underground-belt"]["5d-mk5-transport-belt-to-ground"].collision_box = {{-0.4, -0.4}, {0.4, 0.4}} + data.raw["underground-belt"]["5d-mk5-transport-belt-to-ground"].selection_box = {{-0.5, -0.5}, {0.5, 0.5}} + data.raw["underground-belt"]["5d-mk5-transport-belt-to-ground"].underground_sprite = set_sprite("u_line_w") + data.raw["underground-belt"]["5d-mk5-transport-belt-to-ground"].structure.direction_in.sheet.filename = "__ZGroupChange__/graphics/entity/5d_gr_5.png" + data.raw["underground-belt"]["5d-mk5-transport-belt-to-ground"].structure.direction_out.sheet.filename = "__ZGroupChange__/graphics/entity/5d_gr_5.png" + end + + if i_exist("5d-mk1-transport-belt-to-ground-30") then + data.raw["underground-belt"]["5d-mk1-transport-belt-to-ground-30"].collision_box = {{-0.4, -0.4}, {0.4, 0.4}} + data.raw["underground-belt"]["5d-mk1-transport-belt-to-ground-30"].selection_box = {{-0.5, -0.5}, {0.5, 0.5}} + data.raw["underground-belt"]["5d-mk1-transport-belt-to-ground-30"].underground_sprite = set_sprite("u_line_y","_3") end + if i_exist("5d-mk2-transport-belt-to-ground-30") then + data.raw["underground-belt"]["5d-mk2-transport-belt-to-ground-30"].collision_box = {{-0.4, -0.4}, {0.4, 0.4}} + data.raw["underground-belt"]["5d-mk2-transport-belt-to-ground-30"].selection_box = {{-0.5, -0.5}, {0.5, 0.5}} + data.raw["underground-belt"]["5d-mk2-transport-belt-to-ground-30"].underground_sprite = set_sprite("u_line_r","_3") end + if i_exist("5d-mk3-transport-belt-to-ground-30") then + data.raw["underground-belt"]["5d-mk3-transport-belt-to-ground-30"].collision_box = {{-0.4, -0.4}, {0.4, 0.4}} + data.raw["underground-belt"]["5d-mk3-transport-belt-to-ground-30"].selection_box = {{-0.5, -0.5}, {0.5, 0.5}} + data.raw["underground-belt"]["5d-mk3-transport-belt-to-ground-30"].underground_sprite = set_sprite("u_line_b","_3") end + if i_exist("5d-mk4-transport-belt-to-ground-30") then + data.raw["underground-belt"]["5d-mk4-transport-belt-to-ground-30"].collision_box = {{-0.4, -0.4}, {0.4, 0.4}} + data.raw["underground-belt"]["5d-mk4-transport-belt-to-ground-30"].selection_box = {{-0.5, -0.5}, {0.5, 0.5}} + data.raw["underground-belt"]["5d-mk4-transport-belt-to-ground-30"].underground_sprite = set_sprite("u_line_g","_3") + data.raw["underground-belt"]["5d-mk4-transport-belt-to-ground-30"].structure.direction_in.sheet.filename = "__ZGroupChange__/graphics/entity/5d_gr_4.png" + data.raw["underground-belt"]["5d-mk4-transport-belt-to-ground-30"].structure.direction_out.sheet.filename = "__ZGroupChange__/graphics/entity/5d_gr_4.png" + end + if i_exist("5d-mk5-transport-belt-to-ground-30") then + data.raw["underground-belt"]["5d-mk5-transport-belt-to-ground-30"].collision_box = {{-0.4, -0.4}, {0.4, 0.4}} + data.raw["underground-belt"]["5d-mk5-transport-belt-to-ground-30"].selection_box = {{-0.5, -0.5}, {0.5, 0.5}} + data.raw["underground-belt"]["5d-mk5-transport-belt-to-ground-30"].underground_sprite = set_sprite("u_line_w","_3") + data.raw["underground-belt"]["5d-mk5-transport-belt-to-ground-30"].structure.direction_in.sheet.filename = "__ZGroupChange__/graphics/entity/5d_gr_5.png" + data.raw["underground-belt"]["5d-mk5-transport-belt-to-ground-30"].structure.direction_out.sheet.filename = "__ZGroupChange__/graphics/entity/5d_gr_5.png" + end + + if i_exist("5d-mk1-transport-belt-to-ground-50") then + data.raw["underground-belt"]["5d-mk1-transport-belt-to-ground-50"].collision_box = {{-0.4, -0.4}, {0.4, 0.4}} + data.raw["underground-belt"]["5d-mk1-transport-belt-to-ground-50"].selection_box = {{-0.5, -0.5}, {0.5, 0.5}} + data.raw["underground-belt"]["5d-mk1-transport-belt-to-ground-50"].underground_sprite = set_sprite("u_line_y","_5") end + if i_exist("5d-mk2-transport-belt-to-ground-50") then + data.raw["underground-belt"]["5d-mk2-transport-belt-to-ground-50"].collision_box = {{-0.4, -0.4}, {0.4, 0.4}} + data.raw["underground-belt"]["5d-mk2-transport-belt-to-ground-50"].selection_box = {{-0.5, -0.5}, {0.5, 0.5}} + data.raw["underground-belt"]["5d-mk2-transport-belt-to-ground-50"].underground_sprite = set_sprite("u_line_r","_5") end + if i_exist("5d-mk3-transport-belt-to-ground-50") then + data.raw["underground-belt"]["5d-mk3-transport-belt-to-ground-50"].collision_box = {{-0.4, -0.4}, {0.4, 0.4}} + data.raw["underground-belt"]["5d-mk3-transport-belt-to-ground-50"].selection_box = {{-0.5, -0.5}, {0.5, 0.5}} + data.raw["underground-belt"]["5d-mk3-transport-belt-to-ground-50"].underground_sprite = set_sprite("u_line_b","_5") end + if i_exist("5d-mk4-transport-belt-to-ground-50") then + data.raw["underground-belt"]["5d-mk4-transport-belt-to-ground-50"].collision_box = {{-0.4, -0.4}, {0.4, 0.4}} + data.raw["underground-belt"]["5d-mk4-transport-belt-to-ground-50"].selection_box = {{-0.5, -0.5}, {0.5, 0.5}} + data.raw["underground-belt"]["5d-mk4-transport-belt-to-ground-50"].underground_sprite = set_sprite("u_line_g","_5") + data.raw["underground-belt"]["5d-mk4-transport-belt-to-ground-50"].structure.direction_in.sheet.filename = "__ZGroupChange__/graphics/entity/5d_gr_4.png" + data.raw["underground-belt"]["5d-mk4-transport-belt-to-ground-50"].structure.direction_out.sheet.filename = "__ZGroupChange__/graphics/entity/5d_gr_4.png" + end + if i_exist("5d-mk5-transport-belt-to-ground-50") then + data.raw["underground-belt"]["5d-mk5-transport-belt-to-ground-50"].collision_box = {{-0.4, -0.4}, {0.4, 0.4}} + data.raw["underground-belt"]["5d-mk5-transport-belt-to-ground-50"].selection_box = {{-0.5, -0.5}, {0.5, 0.5}} + data.raw["underground-belt"]["5d-mk5-transport-belt-to-ground-50"].underground_sprite = set_sprite("u_line_w","_5") + data.raw["underground-belt"]["5d-mk5-transport-belt-to-ground-50"].structure.direction_in.sheet.filename = "__ZGroupChange__/graphics/entity/5d_gr_5.png" + data.raw["underground-belt"]["5d-mk5-transport-belt-to-ground-50"].structure.direction_out.sheet.filename = "__ZGroupChange__/graphics/entity/5d_gr_5.png" + end + + if i_exist("5d-pipe-to-ground-mk2") then + data.raw["pipe-to-ground"]["5d-pipe-to-ground-mk2"].underground_sprite = set_sprite("u_pipe","_3") + end + if i_exist("5d-pipe-to-ground-mk3") then + data.raw["pipe-to-ground"]["5d-pipe-to-ground-mk3"].underground_sprite = set_sprite("u_pipe","_5") + end + + if i_exist("5d-pipe-to-ground-mk1-30") then + data.raw["pipe-to-ground"]["5d-pipe-to-ground-mk1-30"].underground_sprite = set_sprite("u_pipe","_1") + end + if i_exist("5d-pipe-to-ground-mk2-30") then + data.raw["pipe-to-ground"]["5d-pipe-to-ground-mk2-30"].underground_sprite = set_sprite("u_pipe","_3") + end + if i_exist("5d-pipe-to-ground-mk3-30") then + data.raw["pipe-to-ground"]["5d-pipe-to-ground-mk3-30"].underground_sprite = set_sprite("u_pipe","_5") + end + + if i_exist("5d-pipe-to-ground-mk1-50") then + data.raw["pipe-to-ground"]["5d-pipe-to-ground-mk1-50"].underground_sprite = set_sprite("u_pipe","_1") + end + if i_exist("5d-pipe-to-ground-mk2-50") then + data.raw["pipe-to-ground"]["5d-pipe-to-ground-mk2-50"].underground_sprite = set_sprite("u_pipe","_3") + end + if i_exist("5d-pipe-to-ground-mk3-50") then + data.raw["pipe-to-ground"]["5d-pipe-to-ground-mk3-50"].underground_sprite = set_sprite("u_pipe","_5") + end + end + + if i_exist("5d-mk4-splitter") then + data.raw.recipe["fast-transport-belt"].ingredients = {} + data.raw.recipe["fast-transport-belt"].ingredients = { + {"iron-gear-wheel", 5}, + {"transport-belt", 1} + } + data.raw.recipe["underground-belt"].ingredients = {} + data.raw.recipe["underground-belt"].ingredients = { + {"iron-plate", 10}, + {"transport-belt", 5} + } + data.raw.recipe["fast-underground-belt"].ingredients = {} + data.raw.recipe["fast-underground-belt"].ingredients = { + {"iron-gear-wheel", 20}, + {"fast-transport-belt", 5} + }data.raw.recipe["splitter"].ingredients = {} + data.raw.recipe["splitter"].ingredients = { + {"electronic-circuit", 5}, + {"iron-plate", 5}, + {"transport-belt", 4} + } + data.raw.recipe["fast-splitter"].ingredients = {} + data.raw.recipe["fast-splitter"].ingredients = { + {"electronic-circuit", 5}, + {"iron-gear-wheel", 5}, + {"fast-transport-belt", 4} + } + if i_exist("5d-tin-gear-wheel") then + data.raw.recipe["express-underground-belt"].ingredients = {} + data.raw.recipe["express-underground-belt"].ingredients = { + {"5d-tin-gear-wheel", 20}, + {"express-transport-belt", 5} + } + data.raw.recipe["5d-mk4-transport-belt-to-ground"].ingredients = {} + data.raw.recipe["5d-mk4-transport-belt-to-ground"].ingredients = { + {"5d-zinc-gear-wheel", 20}, + {"5d-mk4-transport-belt", 5} + } + data.raw.recipe["5d-mk5-transport-belt-to-ground"].ingredients = {} + data.raw.recipe["5d-mk5-transport-belt-to-ground"].ingredients = { + {"5d-aluminium-gear-wheel", 20}, + {"5d-mk5-transport-belt", 5} + } + data.raw.recipe["express-splitter"].ingredients = {} + data.raw.recipe["express-splitter"].ingredients = { + {"advanced-circuit", 5}, + {"5d-tin-gear-wheel", 5}, + {"express-transport-belt", 4}, + {type="fluid", name="lubricant", amount=4} + } + data.raw.recipe["5d-mk4-splitter"].ingredients = {} + data.raw.recipe["5d-mk4-splitter"].category = "crafting-with-fluid" + data.raw.recipe["5d-mk4-splitter"].ingredients = { + {"advanced-circuit", 5}, + {"5d-zinc-gear-wheel", 5}, + {"5d-mk4-transport-belt", 4}, + {type="fluid", name="lubricant", amount=2} + } + data.raw.recipe["5d-mk5-splitter"].ingredients = {} + data.raw.recipe["5d-mk5-splitter"].category = "crafting-with-fluid" + data.raw.recipe["5d-mk5-splitter"].ingredients = { + {"advanced-circuit", 5}, + {"5d-aluminium-gear-wheel", 5}, + {"5d-mk5-transport-belt", 4}, + {type="fluid", name="lubricant", amount=2} + } + end + + end + +end +do --[[logistic]]-- + aadd("z-logistic-1", "5d-roboport-2", "b") + + aadd("z-logistic-1", "5d-roboport-2", "b") + aadd("z-logistic-1", "5d-logistic-robot-2", "d") + aadd("z-logistic-1", "5d-construction-robot-2", "f") + + aadd("z-logistic-3", "5d-storage", "a") + aadd("z-logistic-3", "5d-requester", "b") + aadd("z-logistic-3", "5d-passive", "c") + aadd("z-logistic-3", "5d-active", "d") + + aadd("z-logistic-8", "5d-aluminium-wire", "d") + aadd("z-logistic-8", "5d-gold-wire", "e") + + if use_graphics_tunnings then + zgc.set_icon("5d-roboport-2", "__ZGroupChange__/graphics/icons/roboport2.png") + + if data.raw["roboport"]["5d-roboport-2"] then + data.raw["roboport"]["5d-roboport-2"].base = { + filename = "__ZGroupChange__/graphics/entity/roboport2-base.png", + width = 143, + height = 135, + shift = {0.5,0.25} + } + data.raw["roboport"]["5d-roboport-2"].base_patch = { + filename = "__ZGroupChange__/graphics/entity/roboport2-base-patch.png", + priority = "medium", + width = 69, + height = 50, + frame_count = 1, + shift = {0.03125,0.203125} + } + data.raw["roboport"]["5d-roboport-2"].door_animation_up = { + filename = "__ZGroupChange__/graphics/entity/roboport2-door-up.png", + priority = "medium", + width = 52, + height = 20, + frame_count = 16, + shift = {0.015625,-0.890625} + } + data.raw["roboport"]["5d-roboport-2"].door_animation_down = { + filename = "__ZGroupChange__/graphics/entity/roboport2-door-down.png", + priority = "medium", + width = 52, + height = 22, + frame_count = 16, + shift = {0.015625,-0.234375} + } + data.raw["roboport"]["5d-roboport-2"].recharging_animation = { + filename = "__ZGroupChange__/graphics/entity/roboport2-recharging.png", + priority = "high", + width = 37, + height = 35, + frame_count = 16, + scale = 1.5, + animation_speed = 0.5 + } + end + end + if data.raw.recipe["5d-active"] and data.raw.recipe["5d-requester"] then + data:extend({ + { + type = "technology", + name = "logistic-system-2", + icon = "__base__/graphics/technology/logistic-system.png", + effects = + { + { + type = "unlock-recipe", + recipe = "5d-active" + }, + { + type = "unlock-recipe", + recipe = "5d-requester" + } + }, + prerequisites = { "logistic-system"}, + unit = { + count = 150, + ingredients = + { + {"science-pack-1", 1}, + {"science-pack-2", 1}, + {"science-pack-3", 1} + }, + time = 30 + }, + order = "c-k-d", + }, + }) + end + +end +do --[[energy]]-- + aadd("z-energy-1", "5d-boiler", "e") + aadd("z-energy-1", "5d-boiler-2", "f") + + aadd("z-energy-2", "5d-steam-engine-2", "d") + aadd("z-energy-2", "5d-steam-engine-3", "e") + + aadd("z-energy-3", "5d-basic-accumulator-2", "b") + aadd("z-energy-3", "5d-basic-accumulator-3", "c") + + aadd("z-energy-4", "5d-solar-panel-2", "c") + aadd("z-energy-4", "5d-solar-panel-3", "e") + + aadd("z-energy-7", "5d-electric-pole-4", "f") + + aadd("z-energy-8", "5d-electric-pole-5", "i") + aadd("z-energy-8", "5d-electric-pole-6", "j") + +end +do --[[defense]]-- + aadd("z-defense-0", "5d-metal-wall", "c") + aadd("z-defense-0", "5d-gate", "f") + + if i_exist("bob-gun-turret-2") then + aadd("z-defense-4", "5d-gun-turret-small", "b") + aadd("z-defense-4", "5d-gun-turret-big", "c") + + aadd("z-defense-5", "5d-laser-turret-small", "b") + aadd("z-defense-5", "5d-laser-turret-big", "c") + end + +end +do --[[intermediate]]-- + aadd("z-intermediate-1", "5d-gold-circuit", "i") + + aadd("z-intermediate-4", "iron-gear-wheel", "a") + aadd("z-intermediate-4", "5d-tin-gear-wheel", "b") + aadd("z-intermediate-4", "5d-zinc-gear-wheel", "c") + aadd("z-intermediate-4", "5d-aluminium-gear-wheel", "d") + + if allow_changes and data.raw.recipe["5d-gold-circuit"] then + data.raw.recipe["5d-gold-circuit"].ingredients = + { + {"advanced-circuit", 2}, + {"5d-tin-plate", 5}, + {"5d-gold-wire", 4}, + } + zgc.add_recipe_to_tech("advanced-electronics", "5d-gold-circuit") + end +end +do --[[module]]-- + aadd("z-module-0", "5d-welder", "i") + + aadd("z-module-3", "5d-speed-module-4", "d") + aadd("z-module-3", "5d-speed-module-5", "e") + + aadd("z-module-4", "5d-productivity-module-4", "d") + aadd("z-module-4", "5d-productivity-module-5", "e") + + aadd("z-module-5", "5d-effectivity-module-4", "d") + aadd("z-module-5", "5d-effectivity-module-5", "e") + + aadd("z-module-6", "5d-pollution-module-1", "a") + aadd("z-module-6", "5d-pollution-module-2", "b") + aadd("z-module-6", "5d-pollution-module-3", "c") + aadd("z-module-6", "5d-pollution-module-4", "d") + aadd("z-module-6", "5d-pollution-module-5", "e") + + aadd("z-module-7", "5d-speed-effectivity-4", "a") + aadd("z-module-7", "5d-speed-pollution-4", "b") + aadd("z-module-7", "5d-speed-productivity-4", "c") + aadd("z-module-7", "5d-pollution-effectivity-4", "d") + aadd("z-module-7", "5d-pollution-productivity-4", "e") + aadd("z-module-7", "5d-effectivity-productivity-4","f") + + aadd("z-module-8", "5d-speed-effectivity-5", "a") + aadd("z-module-8", "5d-speed-pollution-5", "b") + aadd("z-module-8", "5d-speed-productivity-5", "c") + aadd("z-module-8", "5d-pollution-effectivity-5", "d") + aadd("z-module-8", "5d-pollution-productivity-5", "e") + aadd("z-module-8", "5d-effectivity-productivity-5","f") + + if data.raw.module["5d-effectivity-productivity-5"] then + local lim = data.raw.module["5d-effectivity-productivity-5"].limitation + local lmk = data.raw.module["5d-effectivity-productivity-5"].limitation_message_key + data.raw.module["5d-speed-productivity-4"].limitation = lim + data.raw.module["5d-speed-productivity-4"].limitation_message_key = lmk + data.raw.module["5d-effectivity-productivity-4"].limitation = lim + data.raw.module["5d-effectivity-productivity-4"].limitation_message_key = lmk + data.raw.module["5d-pollution-productivity-4"].limitation = lim + data.raw.module["5d-pollution-productivity-4"].limitation_message_key = lmk + end +end +do --[[trains-vehicles]]-- + aadd("z-vehicles-1", "5d-artillery", "a") + aadd("z-vehicles-1", "5d-tank", "b") + + aadd("z-vehicles-2", "5d-truck", "a") + aadd("z-vehicles-2", "5d-boat", "b") + aadd("z-vehicles-2", "5d-air-plane", "c") + + aadd("z-vehicles-3", "artillery-shell", "d") + aadd("z-vehicles-3", "5d-tank-machine-gun", "d") +end +do --[[decorative]]-- + aadd("z-decorative-1", "concrete", "a") + aadd("z-decorative-1", "5d-concrete-a", "b") + aadd("z-decorative-1", "5d-concrete-b", "c") + aadd("z-decorative-1", "5d-concrete-b2", "d") + aadd("z-decorative-1", "5d-concrete-m", "e") + aadd("z-decorative-1", "5d-concrete-r", "f") + aadd("z-decorative-1", "5d-concrete-v", "g") + aadd("z-decorative-1", "hazard-concrete", "h") + + aadd("z-decorative-4", "5d-lamp", "b") + + aadd("z-decorative-8", "5d-banner-1", "a") + aadd("z-decorative-8", "5d-banner-2", "b") + aadd("z-decorative-8", "5d-banner-3", "c") + aadd("z-decorative-8", "5d-obelisk", "d") + aadd("z-decorative-8", "5d-statue", "e") + + for _,v in pairs(data.raw["item-subgroup"]) do + if v.group == "decoration" and (v.name == "decoration-letter" or v.name == "decoration-arrow") then + v.group = "zgc-decorative" + v.order = 7 + end + end + +end diff --git a/ZGroupChange_1.2.4/mods/_custom_TEMPLATE.lua b/ZGroupChange_1.2.5/mods/_custom_TEMPLATE.lua similarity index 96% rename from ZGroupChange_1.2.4/mods/_custom_TEMPLATE.lua rename to ZGroupChange_1.2.5/mods/_custom_TEMPLATE.lua index daea529..7825b5f 100644 --- a/ZGroupChange_1.2.4/mods/_custom_TEMPLATE.lua +++ b/ZGroupChange_1.2.5/mods/_custom_TEMPLATE.lua @@ -1,94 +1,94 @@ ---[[ - -!! IMPORTANT !! -Make a copy of the file and rename it to [_custom_.lua] before edit. -To enable custom changes - set "use_custom_order" in config.lua to "true" - - -You can use all of existed in this mod functions (lib/util.lua). -But in almost 90% of cases you can do all you want just using three of them: - -aadd(group, item, order) -- Place (or show recently hided) item and/or recipe to another group. -ahide(item, replace_by) -- Hide item and recipe, also remove recipe from technology. -switch_tech(technology) -- Switch off technology (hiding from research tree). - -There is two modification of aadd and ahide functions: - -iadd(group, item, order) -- Place (or show recently hided) only item (ignore recipe) to another group. -radd(group, item, order) -- Place (or show recently hided) only recipe (ignore item) to another group. - -ihide(item, replace_by) -- Hide only item (recipe will stay available). -rhide(item, replace_by) -- Hide only recipe (item will stay available), also remove recipe from technology. - - -Also you can use boolean functions to check existence of item: - -i_exist(item) -- Return "true" if item exist, "false" otherwise. -i_not_exist(item) -- Return "true" if item NOT exist, "false" otherwise. - -In all cases when your changes affect existing technology tree - you must start new game to take effects. - -Also you must to know: internal item name is not the same what you see in game !! -There is a easiest way to find that name - go to mod directory of items which you want to rearrange and rename "local" folder and restart the game. -After that you should see internal items names, like "item_name.raw-wood" or similar. Name is the part which after last dot ("raw-wood" for example). -Then, when you are done - just rename it back to "local" and restart again. - -]] - ---[[ EXAMPLE #1 - - --GROUP NAME-- -- ITEM -- --ORDER-- - aadd("z-other-4", "raw-wood", "a") -- Regroup item - aadd("z-other-4", "coal", "b") -- Regroup item - -]] - ---[[ EXAMPLE #2 - - if i_exist("bi_bio_farm") then -- If [Bio Farm] from "Bio Industries" mod exist? - - -- GROUP NAME -- -- ITEM -- --ORDER-- - aadd("z-production-9", "bi_bio_farm", "a") - aadd("z-production-9", "bi-Bio_Garden", "b") - aadd("z-production-9", "bi-cokery", "c") - aadd("z-production-9", "bi-bioreactor", "d") - aadd("z-production-9", "bi-stone-crusher", "e") - - rhide("bob-seedling") -- Hide Bob's version recipe of seedling - ahide("bob-fertiliser") -- Hide item and recipe. - - switch_tech("bob-fertiliser") -- Hide technology. - end - -]] - - - ---[[ List of inventory groups (mask: z-[name]-[0..n]) [ - z-gathering-# - z-production-# - z-resources-# - z-plates-# - z-liquids-# - z-chemistry-# - z-automatization-# - z-transport-# - z-logistic-# - z-energy-# - z-module-# - z-defense-# - z-intermediate-# - z-parts-# - z-youki-# - z-armor-# - z-weaponry-# - z-trains-# - z-vehicles-# - z-alien-# - z-refining-# - z-atom-# - z-decorative-# - z-other-# -] ]] - - +--[[ + +!! IMPORTANT !! +Make a copy of the file and rename it to [_custom_.lua] before edit. +To enable custom changes - set "use_custom_order" in config.lua to "true" + + +You can use all of existed in this mod functions (lib/util.lua). +But in almost 90% of cases you can do all you want just using three of them: + +aadd(group, item, order) -- Place (or show recently hided) item and/or recipe to another group. +ahide(item, replace_by) -- Hide item and recipe, also remove recipe from technology. +switch_tech(technology) -- Switch off technology (hiding from research tree). + +There is two modification of aadd and ahide functions: + +iadd(group, item, order) -- Place (or show recently hided) only item (ignore recipe) to another group. +radd(group, item, order) -- Place (or show recently hided) only recipe (ignore item) to another group. + +ihide(item, replace_by) -- Hide only item (recipe will stay available). +rhide(item, replace_by) -- Hide only recipe (item will stay available), also remove recipe from technology. + + +Also you can use boolean functions to check existence of item: + +i_exist(item) -- Return "true" if item exist, "false" otherwise. +i_not_exist(item) -- Return "true" if item NOT exist, "false" otherwise. + +In all cases when your changes affect existing technology tree - you must start new game to take effects. + +Also you must to know: internal item name is not the same what you see in game !! +There is a easiest way to find that name - go to mod directory of items which you want to rearrange and rename "local" folder and restart the game. +After that you should see internal items names, like "item_name.raw-wood" or similar. Name is the part which after last dot ("raw-wood" for example). +Then, when you are done - just rename it back to "local" and restart again. + +]] + +--[[ EXAMPLE #1 + + --GROUP NAME-- -- ITEM -- --ORDER-- + aadd("z-other-4", "raw-wood", "a") -- Regroup item + aadd("z-other-4", "coal", "b") -- Regroup item + +]] + +--[[ EXAMPLE #2 + + if i_exist("bi_bio_farm") then -- If [Bio Farm] from "Bio Industries" mod exist? + + -- GROUP NAME -- -- ITEM -- --ORDER-- + aadd("z-production-9", "bi_bio_farm", "a") + aadd("z-production-9", "bi-Bio_Garden", "b") + aadd("z-production-9", "bi-cokery", "c") + aadd("z-production-9", "bi-bioreactor", "d") + aadd("z-production-9", "bi-stone-crusher", "e") + + rhide("bob-seedling") -- Hide Bob's version recipe of seedling + ahide("bob-fertiliser") -- Hide item and recipe. + + switch_tech("bob-fertiliser") -- Hide technology. + end + +]] + + + +--[[ List of inventory groups (mask: z-[name]-[0..n]) [ + z-gathering-# + z-production-# + z-resources-# + z-plates-# + z-liquids-# + z-chemistry-# + z-automatization-# + z-transport-# + z-logistic-# + z-energy-# + z-module-# + z-defense-# + z-intermediate-# + z-parts-# + z-youki-# + z-armor-# + z-weaponry-# + z-trains-# + z-vehicles-# + z-alien-# + z-refining-# + z-atom-# + z-decorative-# + z-other-# +] ]] + + diff --git a/ZGroupChange_1.2.4/mods/angels.lua b/ZGroupChange_1.2.5/mods/angels.lua similarity index 97% rename from ZGroupChange_1.2.4/mods/angels.lua rename to ZGroupChange_1.2.5/mods/angels.lua index 37468d7..2916701 100644 --- a/ZGroupChange_1.2.4/mods/angels.lua +++ b/ZGroupChange_1.2.5/mods/angels.lua @@ -1,373 +1,373 @@ -local allow_changes = z_balance.angels - -do --[[production]]-- - - aadd("z-production-1", "ore-processing-plant", "a") - aadd("z-production-1", "ore-processing-plant-2", "b") - aadd("z-production-1", "ore-processing-plant-3", "c") - aadd("z-production-1", "ore-processing-plant-4", "d") - aadd("z-production-1", "blast-furnace", "e") - aadd("z-production-1", "blast-furnace-2", "f") - - if not allow_changes then - aadd("z-gathering-10", "water-void", "k") - else - ahide("water-void") - end - - if z_balance.angels_bio then - ahide("bio-processing-plant") - ahide("bio-processing-plant-2") - - zgc.t_remove_prerequisite("alien-bio-processing", "bio-processing-1") - - switch_tech("bio-processing-1") - switch_tech("bio-processing-2") - else - aadd("z-production-1", "bio-processing-plant", "g") - aadd("z-production-1", "bio-processing-plant-2", "h") - end - -end -do --[[resources]]-- - aadd("z-resources-0", "stone-crushed", "f") - - if not z_balance.angels_bio then - iadd("z-resources-1", "algae", "j") - - radd("z-resources-2", "algae-farming", "a") - radd("z-resources-2", "cellulose-fiber-algae", "b") - radd("z-resources-2", "cellulose-fiber-raw-wood", "c") - radd("z-resources-2", "wood-from-cellulose-resin", "d") - radd("z-resources-2", "wood-from-cellulose", "e") - radd("z-resources-2", "paste-from-sodium-hydroxide", "f") - radd("z-resources-2", "paste-from-liquid-chlor-methane","g") - else - ahide("algae") - ahide("algae-farming") - ahide("cellulose-fiber-algae") - ahide("cellulose-fiber-raw-wood") - ahide("wood-from-cellulose-resin") - ahide("wood-from-cellulose") - ahide("paste-from-sodium-hydroxide") - ahide("paste-from-liquid-chlor-methane") - end - - - aadd("z-resources-8", "plastic-bar", "a") - aadd("z-resources-8", "silicon", "b") - aadd("z-resources-8", "bob-silicon-plate", "c") - aadd("z-resources-8", "bob-silicon-plate-processed", "d") - aadd("z-resources-8", "bob-silicon-plate-ingot", "e") - aadd("z-resources-8", "resin", "f") - aadd("z-resources-8", "bob-resin-oil", "h") - aadd("z-resources-8", "bob-resin-wood", "i") - aadd("z-resources-8", "rubber", "j") - aadd("z-resources-8", "bob-rubber", "k") - aadd("z-resources-8", "carbon", "l") - aadd("z-resources-8", "glass", "m") - aadd("z-resources-8", "quartz-glass", "n") - aadd("z-resources-8", "quartz-glass-processed", "o") - aadd("z-resources-8", "quartz-glass-ingot", "p") - - aadd("z-resources-9", "alumina", "b") - aadd("z-resources-9", "alumina-processed", "c") - aadd("z-resources-9", "alumina-ingot", "d") - aadd("z-resources-9", "cobalt-oxide", "e") - aadd("z-resources-9", "cobalt-oxide-processed", "f") - aadd("z-resources-9", "cobalt-oxide-ingot", "g") - aadd("z-resources-9", "lead-oxide", "i") - aadd("z-resources-9", "lead-oxide-processed", "j") - aadd("z-resources-9", "lead-oxide-ingot", "k") - aadd("z-resources-9", "silver-oxide", "l") - aadd("z-resources-9", "tungsten-oxide", "m") - -end -do --[[plates]]-- - aadd("z-plates-0", "iron-ore-processing", "a") - aadd("z-plates-0", "copper-ore-processing", "b") - aadd("z-plates-0", "lead-ore-processing", "c") - aadd("z-plates-0", "tin-ore-processing", "d") - aadd("z-plates-0", "zinc-ore-processing", "e") - aadd("z-plates-0", "bauxite-ore-processing", "f") - aadd("z-plates-0", "gold-ore-processing", "g") - - aadd("z-plates-1", "nickel-ore-processing", "a") - aadd("z-plates-1", "quartz-processing", "b") - aadd("z-plates-1", "cobalt-ore-processing", "c") - aadd("z-plates-1", "silver-ore-processing", "d") - aadd("z-plates-1", "rutile-ore-processing", "e") - aadd("z-plates-1", "tungsten-ore-processing", "f") - - aadd("z-plates-2", "iron-processed-smelting", "a") - aadd("z-plates-2", "copper-processed-smelting", "b") - aadd("z-plates-2", "lead-processed-smelting", "c") - aadd("z-plates-2", "tin-processed-smelting", "d") - aadd("z-plates-2", "zinc-processed-smelting", "e") - aadd("z-plates-2", "bauxite-processed-smelting", "f") - aadd("z-plates-2", "gold-processed-smelting", "g") - aadd("z-plates-2", "iron-processed", "a") - aadd("z-plates-2", "copper-processed", "b") - aadd("z-plates-2", "lead-processed", "c") - aadd("z-plates-2", "tin-processed", "d") - aadd("z-plates-2", "zinc-processed", "e") - aadd("z-plates-2", "bauxite-processed", "f") - aadd("z-plates-2", "gold-processed", "g") - - aadd("z-plates-3", "nickel-processed", "a") - aadd("z-plates-3", "quartz-processed", "b") - aadd("z-plates-3", "cobalt-processed", "c") - aadd("z-plates-3", "silver-processed", "d") - aadd("z-plates-3", "rutile-processed", "e") - aadd("z-plates-3", "tungsten-processed", "f") - aadd("z-plates-3", "nickel-processed-smelting", "a") - aadd("z-plates-3", "quartz-processed-smelting", "b") - aadd("z-plates-3", "cobalt-processed-smelting", "c") - aadd("z-plates-3", "silver-processed-smelting", "d") - aadd("z-plates-3", "rutile-processed-smelting", "e") - aadd("z-plates-3", "tungsten-processed-smelting", "f") - - aadd("z-plates-4", "iron-ingot", "a") - aadd("z-plates-4", "copper-ingot", "b") - aadd("z-plates-4", "lead-ingot", "c") - aadd("z-plates-4", "tin-ingot", "d") - aadd("z-plates-4", "zinc-ingot", "e") - aadd("z-plates-4", "bauxite-ingot", "f") - aadd("z-plates-4", "gold-ingot", "g") - - aadd("z-plates-5", "nickel-ingot", "a") - aadd("z-plates-5", "quartz-ingot", "b") - aadd("z-plates-5", "cobalt-ingot", "c") - aadd("z-plates-5", "silver-ingot", "d") - aadd("z-plates-5", "rutile-ingot", "e") - aadd("z-plates-5", "tungsten-ingot", "f") - - aadd("z-plates-6", "angels-powdered-iron", "a") - aadd("z-plates-6", "angels-powdered-copper", "b") - aadd("z-plates-6", "angels-powdered-zinc", "c") - aadd("z-plates-6", "angels-powdered-cobalt", "d") - aadd("z-plates-6", "angels-powdered-silver", "e") - aadd("z-plates-6", "angels-powdered-gold", "f") - aadd("z-plates-6", "angels-powdered-rutile", "g") - aadd("z-plates-6", "powdered-tungsten", "h") - aadd("z-plates-6", "angels-powdered-tungsten", "i") - - radd("z-plates-9", "angelsore1-crushed-smelting", "j") - - radd("z-plates-10", "angelsore3-crushed-smelting", "j") - - aadd("z-plates-11", "iron-plate-processed", "a") - aadd("z-plates-11", "copper-plate-processed", "b") - aadd("z-plates-11", "lead-plate-processed", "c") - aadd("z-plates-11", "tin-plate-processed", "d") - aadd("z-plates-11", "bob-zinc-plate-processed", "e") - aadd("z-plates-11", "silver-plate-processed", "f") - aadd("z-plates-11", "bob-gold-plate-processed", "g") - aadd("z-plates-11", "bob-nickel-plate-processed", "h") - radd("z-plates-11", "angelsore5-crushed-smelting", "i") - - aadd("z-plates-12", "iron-plate-ingot", "a") - aadd("z-plates-12", "copper-plate-ingot", "b") - aadd("z-plates-12", "lead-plate-ingot", "c") - aadd("z-plates-12", "tin-plate-ingot", "d") - aadd("z-plates-12", "bob-zinc-plate-ingot", "e") - aadd("z-plates-12", "silver-plate-ingot", "f") - aadd("z-plates-12", "bob-gold-plate-ingot", "g") - aadd("z-plates-12", "bob-nickel-plate-ingot", "h") - radd("z-plates-12", "angelsore6-crushed-smelting", "i") - - aadd("z-plates-13", "brass-alloy", "a") - aadd("z-plates-13", "cobalt-oxide-from-copper", "b") - aadd("z-plates-13", "bob-lead-plate", "c") - aadd("z-plates-13", "silver-from-lead", "d") - aadd("z-plates-13", "bob-zinc-plate", "e") - aadd("z-plates-13", "bronze-alloy", "f") - aadd("z-plates-13", "tungsten-carbide", "g") - aadd("z-plates-13", "bob-aluminium-plate", "h") - aadd("z-plates-13", "bob-gold-plate", "i") - - aadd("z-plates-14", "cobalt-plate", "a") - aadd("z-plates-14", "bob-nickel-plate", "b") - aadd("z-plates-14", "nickel-plate", "c") - aadd("z-plates-14", "silver-plate", "d") - aadd("z-plates-14", "electrum-alloy", "e") - aadd("z-plates-14", "alumina", "g") - aadd("z-plates-14", "alumina-processed", "h") - aadd("z-plates-14", "alumina-ingot", "i") - aadd("z-plates-14", "lithium", "j") - aadd("z-plates-14", "invar-alloy", "k") - aadd("z-plates-14", "nitinol-alloy", "l") - - aadd("z-plates-15", "steel-plate", "a") - aadd("z-plates-15", "copper-tungsten-alloy", "b") - aadd("z-plates-15", "bob-tungsten-plate", "c") - aadd("z-plates-15", "tungsten-plate", "d") - aadd("z-plates-15", "titanium-plate", "e") - aadd("z-plates-15", "bob-titanium-plate", "f") - aadd("z-plates-15", "bob-titanium-plate-processed", "g") - aadd("z-plates-15", "bob-titanium-plate-ingot", "h") - aadd("z-plates-15", "cobalt-steel-alloy", "i") - - if z_balance.add_powder then - zgc.add_newRessource_min_max("iron-ore", "angels-powdered-iron", 1,2,0.2) - zgc.add_newRessource_min_max("copper-ore", "angels-powdered-copper", 1,2,0.2) - zgc.add_newRessource_min_max("zinc-ore", "angels-powdered-zinc", 1,1,0.2) - zgc.add_newRessource_min_max("cobalt-ore", "angels-powdered-cobalt", 1,1,0.2) - zgc.add_newRessource_min_max("silver-ore", "angels-powdered-silver", 1,2,0.1) - zgc.add_newRessource_min_max("gold-ore", "angels-powdered-gold", 1,2,0.1) - zgc.add_newRessource_min_max("rutile-ore", "angels-powdered-rutile", 1,1,0.1) - zgc.add_newRessource_min_max("tungsten-ore","angels-powdered-tungsten", 1,1,0.1) - end -end -do --[[liquids]]-- - aadd("z-liquids-2", "thermal-water-barrel", "i") - aadd("z-liquids-5", "fill-thermal-water-barrel", "i") - aadd("z-liquids-6", "empty-thermal-water-barrel", "i") -end -do --[[chemistry]]-- - aadd("z-chemistry-0", "tungstic-acid", "h") - aadd("z-chemistry-0", "tungstic-acid-processed", "i") - aadd("z-chemistry-0", "tungstic-acid-ingot", "j") - - if not z_balance.angels_bio then - aadd("z-chemistry-1", "liquid-chlor-methane", "j") - else - ahide("liquid-chlor-methane") - end -end -do --[[intermediate]]-- - if not z_balance.angels_bio then - iadd("z-intermediate-6","cellulose-fiber", "j") - iadd("z-intermediate-6","paste", "j") - else - ahide("paste") - ahide("cellulose-fiber") - zgc.r_replace_ingredient_in_all("paste", "polishing-compound") - end - - if i_not_exist("basic-circuit-board") then - --zgc.r_replace_ingredient("bio-processing-plant","basic-circuit-board", "electronic-circuit") - --zgc.r_replace_ingredient("bio-processing-plant-2","basic-circuit-board", "electronic-circuit") - zgc.r_replace_ingredient_in_all("basic-circuit-board", "electronic-circuit") - zgc.r_replace_ingredient_in_all("basic-circuit-board", "electronic-circuit") - end -end -do --[[alien]]-- - aadd("z-alien-1", "alien-science-pack-red", "a") - aadd("z-alien-1", "alien-science-pack-orange", "a") - aadd("z-alien-1", "alien-science-pack-yellow", "a") - aadd("z-alien-1", "alien-science-pack-green", "a") - aadd("z-alien-1", "alien-science-pack-blue", "a") - aadd("z-alien-1", "alien-science-pack-purple", "a") - - aadd("z-alien-2", "alien-pre-artifact-base", "a") - aadd("z-alien-2", "alien-pre-artifact-red", "b") - aadd("z-alien-2", "alien-pre-artifact-orange", "c") - aadd("z-alien-2", "alien-pre-artifact-yellow", "d") - aadd("z-alien-2", "alien-pre-artifact-green", "e") - aadd("z-alien-2", "alien-pre-artifact-blue", "f") - aadd("z-alien-2", "alien-pre-artifact-purple", "g") - - aadd("z-alien-3", "alien-artifact-from-small", "a") - aadd("z-alien-3", "alien-artifact-red-from-small", "b") - aadd("z-alien-3", "alien-artifact-orange-from-small", "c") - aadd("z-alien-3", "alien-artifact-yellow-from-small", "d") - aadd("z-alien-3", "alien-artifact-green-from-small", "e") - aadd("z-alien-3", "alien-artifact-blue-from-small", "f") - aadd("z-alien-3", "alien-artifact-purple-from-small", "g") - - aadd("z-alien-4", "small-alien-artifact", "a") - aadd("z-alien-4", "small-alien-artifact-red", "b") - aadd("z-alien-4", "small-alien-artifact-orange", "c") - aadd("z-alien-4", "small-alien-artifact-yellow", "d") - aadd("z-alien-4", "small-alien-artifact-green", "e") - aadd("z-alien-4", "small-alien-artifact-blue", "f") - aadd("z-alien-4", "small-alien-artifact-purple", "g") - - aadd("z-alien-5", "alien-artifact", "a") - aadd("z-alien-5", "alien-artifact-red", "b") - aadd("z-alien-5", "alien-artifact-orange", "c") - aadd("z-alien-5", "alien-artifact-yellow", "d") - aadd("z-alien-5", "alien-artifact-green", "e") - aadd("z-alien-5", "alien-artifact-blue", "f") - aadd("z-alien-5", "alien-artifact-purple", "g") - - aadd("z-alien-6", "petri-dish", "a") - aadd("z-alien-6", "substrate-dish", "b") - aadd("z-alien-6", "alien-pre-artifact", "c") - aadd("z-alien-6", "alien-bacteria", "d") - aadd("z-alien-6", "alien-goo", "e") - aadd("z-alien-6", "alien-orange-alloy", "f") - aadd("z-alien-6", "alien-blue-alloy", "g") - -end -do --[[decorative]]-- - aadd("z-decorative-0", "angels-powdered-stone", "c") - aadd("z-decorative-0", "concrete-pulver", "d") - aadd("z-decorative-0", "concrete-brick", "e") - if i_exist("5d-concrete-a") then - aadd("z-decorative-1", "concrete", "a") - aadd("z-decorative-0", "concrete-from-pulver", "a") - aadd("z-decorative-1", "hazard-concrete", "h") - else - aadd("z-decorative-0", "concrete", "f") - aadd("z-decorative-0", "concrete-from-pulver", "g") - aadd("z-decorative-0", "hazard-concrete", "h") - end - -end - -do --[[refining]]-- - if i_exist("angels-ore1") then - - zgc.add_main_group("refining") - - data:extend({ - { - type = "item-subgroup", - name = "catalysts", - group = "resource-refining", - order = "m-p", - } - }) - - aadd("catalysts", "catalysator-base", "a") - aadd("catalysts", "catalysator-blue", "b") - aadd("catalysts", "catalysator-green", "c") - aadd("catalysts", "catalysator-orange", "d") - aadd("catalysts", "catalysator-purple", "e") - aadd("catalysts", "catalysator-red", "f") - aadd("catalysts", "catalysator-yellow", "g") - aadd("catalysts", "catalysator-brown", "h") - - aadd("ore-processing-a", "iron-ore-crushed", "h[iron-crushed]") - aadd("ore-processing-a", "copper-ore-crushed", "h[copper-crushed]") - aadd("ore-processing-b", "iron-ore-chunk", "h[iron-chunk]") - aadd("ore-processing-b", "copper-ore-chunk", "h[copper-chunk]") - aadd("ore-processing-c", "iron-ore-crystal", "h[iron-crystal]") - aadd("ore-processing-c", "copper-ore-crystal", "h[copper-crystal]") - aadd("ore-processing-d", "iron-ore-pure", "h[iron-pure]") - aadd("ore-processing-d", "copper-ore-pure", "h[copper-pure]") - - aadd("geode-processing", "slag-processing-stone", "z") - aadd("geode-processing", "slag", "z") - aadd("water-treatment", "salt-water-electrolysis-2", "a") - aadd("water-treatment", "water-mineralized", "z") - aadd("ore-crusher", "burner-ore-crusher", "e[burner-ore-crusher]") - aadd("ore-crusher", "burner-ore-crusher", "e[burner-ore-crusher]") - - for k,v in pairs(data.raw["item-subgroup"]) do - if v.group == "resource-refining" then v.group = "zgc-refining" end - end - else - ahide("catalysator-base") - ahide("catalysator-blue") - ahide("catalysator-green") - ahide("catalysator-orange") - ahide("catalysator-purple") - ahide("catalysator-red") - ahide("catalysator-yellow") - - switch_tech("catalysts",false) - end -end +local allow_changes = z_balance.angels + +do --[[production]]-- + + aadd("z-production-1", "ore-processing-plant", "a") + aadd("z-production-1", "ore-processing-plant-2", "b") + aadd("z-production-1", "ore-processing-plant-3", "c") + aadd("z-production-1", "ore-processing-plant-4", "d") + aadd("z-production-1", "blast-furnace", "e") + aadd("z-production-1", "blast-furnace-2", "f") + + if not allow_changes then + aadd("z-gathering-10", "water-void", "k") + else + ahide("water-void") + end + + if z_balance.angels_bio then + ahide("bio-processing-plant") + ahide("bio-processing-plant-2") + + zgc.t_remove_prerequisite("alien-bio-processing", "bio-processing-1") + + switch_tech("bio-processing-1") + switch_tech("bio-processing-2") + else + aadd("z-production-1", "bio-processing-plant", "g") + aadd("z-production-1", "bio-processing-plant-2", "h") + end + +end +do --[[resources]]-- + aadd("z-resources-0", "stone-crushed", "f") + + if not z_balance.angels_bio then + iadd("z-resources-1", "algae", "j") + + radd("z-resources-2", "algae-farming", "a") + radd("z-resources-2", "cellulose-fiber-algae", "b") + radd("z-resources-2", "cellulose-fiber-raw-wood", "c") + radd("z-resources-2", "wood-from-cellulose-resin", "d") + radd("z-resources-2", "wood-from-cellulose", "e") + radd("z-resources-2", "paste-from-sodium-hydroxide", "f") + radd("z-resources-2", "paste-from-liquid-chlor-methane","g") + else + ahide("algae") + ahide("algae-farming") + ahide("cellulose-fiber-algae") + ahide("cellulose-fiber-raw-wood") + ahide("wood-from-cellulose-resin") + ahide("wood-from-cellulose") + ahide("paste-from-sodium-hydroxide") + ahide("paste-from-liquid-chlor-methane") + end + + + aadd("z-resources-8", "plastic-bar", "a") + aadd("z-resources-8", "silicon", "b") + aadd("z-resources-8", "bob-silicon-plate", "c") + aadd("z-resources-8", "bob-silicon-plate-processed", "d") + aadd("z-resources-8", "bob-silicon-plate-ingot", "e") + aadd("z-resources-8", "resin", "f") + aadd("z-resources-8", "bob-resin-oil", "h") + aadd("z-resources-8", "bob-resin-wood", "i") + aadd("z-resources-8", "rubber", "j") + aadd("z-resources-8", "bob-rubber", "k") + aadd("z-resources-8", "carbon", "l") + aadd("z-resources-8", "glass", "m") + aadd("z-resources-8", "quartz-glass", "n") + aadd("z-resources-8", "quartz-glass-processed", "o") + aadd("z-resources-8", "quartz-glass-ingot", "p") + + aadd("z-resources-9", "alumina", "b") + aadd("z-resources-9", "alumina-processed", "c") + aadd("z-resources-9", "alumina-ingot", "d") + aadd("z-resources-9", "cobalt-oxide", "e") + aadd("z-resources-9", "cobalt-oxide-processed", "f") + aadd("z-resources-9", "cobalt-oxide-ingot", "g") + aadd("z-resources-9", "lead-oxide", "i") + aadd("z-resources-9", "lead-oxide-processed", "j") + aadd("z-resources-9", "lead-oxide-ingot", "k") + aadd("z-resources-9", "silver-oxide", "l") + aadd("z-resources-9", "tungsten-oxide", "m") + +end +do --[[plates]]-- + aadd("z-plates-0", "iron-ore-processing", "a") + aadd("z-plates-0", "copper-ore-processing", "b") + aadd("z-plates-0", "lead-ore-processing", "c") + aadd("z-plates-0", "tin-ore-processing", "d") + aadd("z-plates-0", "zinc-ore-processing", "e") + aadd("z-plates-0", "bauxite-ore-processing", "f") + aadd("z-plates-0", "gold-ore-processing", "g") + + aadd("z-plates-1", "nickel-ore-processing", "a") + aadd("z-plates-1", "quartz-processing", "b") + aadd("z-plates-1", "cobalt-ore-processing", "c") + aadd("z-plates-1", "silver-ore-processing", "d") + aadd("z-plates-1", "rutile-ore-processing", "e") + aadd("z-plates-1", "tungsten-ore-processing", "f") + + aadd("z-plates-2", "iron-processed-smelting", "a") + aadd("z-plates-2", "copper-processed-smelting", "b") + aadd("z-plates-2", "lead-processed-smelting", "c") + aadd("z-plates-2", "tin-processed-smelting", "d") + aadd("z-plates-2", "zinc-processed-smelting", "e") + aadd("z-plates-2", "bauxite-processed-smelting", "f") + aadd("z-plates-2", "gold-processed-smelting", "g") + aadd("z-plates-2", "iron-processed", "a") + aadd("z-plates-2", "copper-processed", "b") + aadd("z-plates-2", "lead-processed", "c") + aadd("z-plates-2", "tin-processed", "d") + aadd("z-plates-2", "zinc-processed", "e") + aadd("z-plates-2", "bauxite-processed", "f") + aadd("z-plates-2", "gold-processed", "g") + + aadd("z-plates-3", "nickel-processed", "a") + aadd("z-plates-3", "quartz-processed", "b") + aadd("z-plates-3", "cobalt-processed", "c") + aadd("z-plates-3", "silver-processed", "d") + aadd("z-plates-3", "rutile-processed", "e") + aadd("z-plates-3", "tungsten-processed", "f") + aadd("z-plates-3", "nickel-processed-smelting", "a") + aadd("z-plates-3", "quartz-processed-smelting", "b") + aadd("z-plates-3", "cobalt-processed-smelting", "c") + aadd("z-plates-3", "silver-processed-smelting", "d") + aadd("z-plates-3", "rutile-processed-smelting", "e") + aadd("z-plates-3", "tungsten-processed-smelting", "f") + + aadd("z-plates-4", "iron-ingot", "a") + aadd("z-plates-4", "copper-ingot", "b") + aadd("z-plates-4", "lead-ingot", "c") + aadd("z-plates-4", "tin-ingot", "d") + aadd("z-plates-4", "zinc-ingot", "e") + aadd("z-plates-4", "bauxite-ingot", "f") + aadd("z-plates-4", "gold-ingot", "g") + + aadd("z-plates-5", "nickel-ingot", "a") + aadd("z-plates-5", "quartz-ingot", "b") + aadd("z-plates-5", "cobalt-ingot", "c") + aadd("z-plates-5", "silver-ingot", "d") + aadd("z-plates-5", "rutile-ingot", "e") + aadd("z-plates-5", "tungsten-ingot", "f") + + aadd("z-plates-6", "angels-powdered-iron", "a") + aadd("z-plates-6", "angels-powdered-copper", "b") + aadd("z-plates-6", "angels-powdered-zinc", "c") + aadd("z-plates-6", "angels-powdered-cobalt", "d") + aadd("z-plates-6", "angels-powdered-silver", "e") + aadd("z-plates-6", "angels-powdered-gold", "f") + aadd("z-plates-6", "angels-powdered-rutile", "g") + aadd("z-plates-6", "powdered-tungsten", "h") + aadd("z-plates-6", "angels-powdered-tungsten", "i") + + radd("z-plates-9", "angelsore1-crushed-smelting", "j") + + radd("z-plates-10", "angelsore3-crushed-smelting", "j") + + aadd("z-plates-11", "iron-plate-processed", "a") + aadd("z-plates-11", "copper-plate-processed", "b") + aadd("z-plates-11", "lead-plate-processed", "c") + aadd("z-plates-11", "tin-plate-processed", "d") + aadd("z-plates-11", "bob-zinc-plate-processed", "e") + aadd("z-plates-11", "silver-plate-processed", "f") + aadd("z-plates-11", "bob-gold-plate-processed", "g") + aadd("z-plates-11", "bob-nickel-plate-processed", "h") + radd("z-plates-11", "angelsore5-crushed-smelting", "i") + + aadd("z-plates-12", "iron-plate-ingot", "a") + aadd("z-plates-12", "copper-plate-ingot", "b") + aadd("z-plates-12", "lead-plate-ingot", "c") + aadd("z-plates-12", "tin-plate-ingot", "d") + aadd("z-plates-12", "bob-zinc-plate-ingot", "e") + aadd("z-plates-12", "silver-plate-ingot", "f") + aadd("z-plates-12", "bob-gold-plate-ingot", "g") + aadd("z-plates-12", "bob-nickel-plate-ingot", "h") + radd("z-plates-12", "angelsore6-crushed-smelting", "i") + + aadd("z-plates-13", "brass-alloy", "a") + aadd("z-plates-13", "cobalt-oxide-from-copper", "b") + aadd("z-plates-13", "bob-lead-plate", "c") + aadd("z-plates-13", "silver-from-lead", "d") + aadd("z-plates-13", "bob-zinc-plate", "e") + aadd("z-plates-13", "bronze-alloy", "f") + aadd("z-plates-13", "tungsten-carbide", "g") + aadd("z-plates-13", "bob-aluminium-plate", "h") + aadd("z-plates-13", "bob-gold-plate", "i") + + aadd("z-plates-14", "cobalt-plate", "a") + aadd("z-plates-14", "bob-nickel-plate", "b") + aadd("z-plates-14", "nickel-plate", "c") + aadd("z-plates-14", "silver-plate", "d") + aadd("z-plates-14", "electrum-alloy", "e") + aadd("z-plates-14", "alumina", "g") + aadd("z-plates-14", "alumina-processed", "h") + aadd("z-plates-14", "alumina-ingot", "i") + aadd("z-plates-14", "lithium", "j") + aadd("z-plates-14", "invar-alloy", "k") + aadd("z-plates-14", "nitinol-alloy", "l") + + aadd("z-plates-15", "steel-plate", "a") + aadd("z-plates-15", "copper-tungsten-alloy", "b") + aadd("z-plates-15", "bob-tungsten-plate", "c") + aadd("z-plates-15", "tungsten-plate", "d") + aadd("z-plates-15", "titanium-plate", "e") + aadd("z-plates-15", "bob-titanium-plate", "f") + aadd("z-plates-15", "bob-titanium-plate-processed", "g") + aadd("z-plates-15", "bob-titanium-plate-ingot", "h") + aadd("z-plates-15", "cobalt-steel-alloy", "i") + + if z_balance.add_powder then + zgc.add_newRessource_min_max("iron-ore", "angels-powdered-iron", 1,2,0.2) + zgc.add_newRessource_min_max("copper-ore", "angels-powdered-copper", 1,2,0.2) + zgc.add_newRessource_min_max("zinc-ore", "angels-powdered-zinc", 1,1,0.2) + zgc.add_newRessource_min_max("cobalt-ore", "angels-powdered-cobalt", 1,1,0.2) + zgc.add_newRessource_min_max("silver-ore", "angels-powdered-silver", 1,2,0.1) + zgc.add_newRessource_min_max("gold-ore", "angels-powdered-gold", 1,2,0.1) + zgc.add_newRessource_min_max("rutile-ore", "angels-powdered-rutile", 1,1,0.1) + zgc.add_newRessource_min_max("tungsten-ore","angels-powdered-tungsten", 1,1,0.1) + end +end +do --[[liquids]]-- + aadd("z-liquids-2", "thermal-water-barrel", "i") + aadd("z-liquids-5", "fill-thermal-water-barrel", "i") + aadd("z-liquids-6", "empty-thermal-water-barrel", "i") +end +do --[[chemistry]]-- + aadd("z-chemistry-0", "tungstic-acid", "h") + aadd("z-chemistry-0", "tungstic-acid-processed", "i") + aadd("z-chemistry-0", "tungstic-acid-ingot", "j") + + if not z_balance.angels_bio then + aadd("z-chemistry-1", "liquid-chlor-methane", "j") + else + ahide("liquid-chlor-methane") + end +end +do --[[intermediate]]-- + if not z_balance.angels_bio then + iadd("z-intermediate-6","cellulose-fiber", "j") + iadd("z-intermediate-6","paste", "j") + else + ahide("paste") + ahide("cellulose-fiber") + zgc.r_replace_ingredient_in_all("paste", "polishing-compound") + end + + if i_not_exist("basic-circuit-board") then + --zgc.r_replace_ingredient("bio-processing-plant","basic-circuit-board", "electronic-circuit") + --zgc.r_replace_ingredient("bio-processing-plant-2","basic-circuit-board", "electronic-circuit") + zgc.r_replace_ingredient_in_all("basic-circuit-board", "electronic-circuit") + zgc.r_replace_ingredient_in_all("basic-circuit-board", "electronic-circuit") + end +end +do --[[alien]]-- + aadd("z-alien-1", "alien-science-pack-red", "a") + aadd("z-alien-1", "alien-science-pack-orange", "a") + aadd("z-alien-1", "alien-science-pack-yellow", "a") + aadd("z-alien-1", "alien-science-pack-green", "a") + aadd("z-alien-1", "alien-science-pack-blue", "a") + aadd("z-alien-1", "alien-science-pack-purple", "a") + + aadd("z-alien-2", "alien-pre-artifact-base", "a") + aadd("z-alien-2", "alien-pre-artifact-red", "b") + aadd("z-alien-2", "alien-pre-artifact-orange", "c") + aadd("z-alien-2", "alien-pre-artifact-yellow", "d") + aadd("z-alien-2", "alien-pre-artifact-green", "e") + aadd("z-alien-2", "alien-pre-artifact-blue", "f") + aadd("z-alien-2", "alien-pre-artifact-purple", "g") + + aadd("z-alien-3", "alien-artifact-from-small", "a") + aadd("z-alien-3", "alien-artifact-red-from-small", "b") + aadd("z-alien-3", "alien-artifact-orange-from-small", "c") + aadd("z-alien-3", "alien-artifact-yellow-from-small", "d") + aadd("z-alien-3", "alien-artifact-green-from-small", "e") + aadd("z-alien-3", "alien-artifact-blue-from-small", "f") + aadd("z-alien-3", "alien-artifact-purple-from-small", "g") + + aadd("z-alien-4", "small-alien-artifact", "a") + aadd("z-alien-4", "small-alien-artifact-red", "b") + aadd("z-alien-4", "small-alien-artifact-orange", "c") + aadd("z-alien-4", "small-alien-artifact-yellow", "d") + aadd("z-alien-4", "small-alien-artifact-green", "e") + aadd("z-alien-4", "small-alien-artifact-blue", "f") + aadd("z-alien-4", "small-alien-artifact-purple", "g") + + aadd("z-alien-5", "alien-artifact", "a") + aadd("z-alien-5", "alien-artifact-red", "b") + aadd("z-alien-5", "alien-artifact-orange", "c") + aadd("z-alien-5", "alien-artifact-yellow", "d") + aadd("z-alien-5", "alien-artifact-green", "e") + aadd("z-alien-5", "alien-artifact-blue", "f") + aadd("z-alien-5", "alien-artifact-purple", "g") + + aadd("z-alien-6", "petri-dish", "a") + aadd("z-alien-6", "substrate-dish", "b") + aadd("z-alien-6", "alien-pre-artifact", "c") + aadd("z-alien-6", "alien-bacteria", "d") + aadd("z-alien-6", "alien-goo", "e") + aadd("z-alien-6", "alien-orange-alloy", "f") + aadd("z-alien-6", "alien-blue-alloy", "g") + +end +do --[[decorative]]-- + aadd("z-decorative-0", "angels-powdered-stone", "c") + aadd("z-decorative-0", "concrete-pulver", "d") + aadd("z-decorative-0", "concrete-brick", "e") + if i_exist("5d-concrete-a") then + aadd("z-decorative-1", "concrete", "a") + aadd("z-decorative-0", "concrete-from-pulver", "a") + aadd("z-decorative-1", "hazard-concrete", "h") + else + aadd("z-decorative-0", "concrete", "f") + aadd("z-decorative-0", "concrete-from-pulver", "g") + aadd("z-decorative-0", "hazard-concrete", "h") + end + +end + +do --[[refining]]-- + if i_exist("angels-ore1") then + + zgc.add_main_group("refining") + + data:extend({ + { + type = "item-subgroup", + name = "catalysts", + group = "resource-refining", + order = "m-p", + } + }) + + aadd("catalysts", "catalysator-base", "a") + aadd("catalysts", "catalysator-blue", "b") + aadd("catalysts", "catalysator-green", "c") + aadd("catalysts", "catalysator-orange", "d") + aadd("catalysts", "catalysator-purple", "e") + aadd("catalysts", "catalysator-red", "f") + aadd("catalysts", "catalysator-yellow", "g") + aadd("catalysts", "catalysator-brown", "h") + + aadd("ore-processing-a", "iron-ore-crushed", "h[iron-crushed]") + aadd("ore-processing-a", "copper-ore-crushed", "h[copper-crushed]") + aadd("ore-processing-b", "iron-ore-chunk", "h[iron-chunk]") + aadd("ore-processing-b", "copper-ore-chunk", "h[copper-chunk]") + aadd("ore-processing-c", "iron-ore-crystal", "h[iron-crystal]") + aadd("ore-processing-c", "copper-ore-crystal", "h[copper-crystal]") + aadd("ore-processing-d", "iron-ore-pure", "h[iron-pure]") + aadd("ore-processing-d", "copper-ore-pure", "h[copper-pure]") + + aadd("geode-processing", "slag-processing-stone", "z") + aadd("geode-processing", "slag", "z") + aadd("water-treatment", "salt-water-electrolysis-2", "a") + aadd("water-treatment", "water-mineralized", "z") + aadd("ore-crusher", "burner-ore-crusher", "e[burner-ore-crusher]") + aadd("ore-crusher", "burner-ore-crusher", "e[burner-ore-crusher]") + + for k,v in pairs(data.raw["item-subgroup"]) do + if v.group == "resource-refining" then v.group = "zgc-refining" end + end + else + ahide("catalysator-base") + ahide("catalysator-blue") + ahide("catalysator-green") + ahide("catalysator-orange") + ahide("catalysator-purple") + ahide("catalysator-red") + ahide("catalysator-yellow") + + switch_tech("catalysts",false) + end +end diff --git a/ZGroupChange_1.2.4/mods/bobs.lua b/ZGroupChange_1.2.5/mods/bobs.lua similarity index 96% rename from ZGroupChange_1.2.4/mods/bobs.lua rename to ZGroupChange_1.2.5/mods/bobs.lua index c46b9b0..1eaab29 100644 --- a/ZGroupChange_1.2.4/mods/bobs.lua +++ b/ZGroupChange_1.2.5/mods/bobs.lua @@ -1,1575 +1,1587 @@ -local allow_changes = z_balance.bob - -do --[[gathering]]-- - aadd("z-gathering-0", "brass-axe", "c") - aadd("z-gathering-0", "cobalt-axe", "d") - aadd("z-gathering-0", "titanium-axe", "e") - aadd("z-gathering-0", "tungsten-axe", "f") - aadd("z-gathering-0", "diamond-axe", "g") - - aadd("z-gathering-3", "storage-tank-2", "b") - aadd("z-gathering-3", "storage-tank-3", "c") - aadd("z-gathering-3", "storage-tank-4", "d") - - if i_not_exist("5d-mining-drill-speed-1") then - aadd("z-gathering-4", "bob-mining-drill-1", "b") - aadd("z-gathering-4", "bob-mining-drill-2", "c") - aadd("z-gathering-4", "bob-mining-drill-3", "d") - aadd("z-gathering-4", "bob-mining-drill-4", "e") - else - aadd("z-gathering-5", "bob-mining-drill-1", "a") - aadd("z-gathering-5", "bob-mining-drill-2", "b") - aadd("z-gathering-5", "bob-mining-drill-3", "c") - aadd("z-gathering-5", "bob-mining-drill-4", "d") - end - - aadd("z-gathering-6", "bob-area-drill-1", "b") - aadd("z-gathering-6", "bob-area-drill-2", "c") - aadd("z-gathering-6", "bob-area-drill-3", "d") - aadd("z-gathering-6", "bob-area-drill-4", "e") - - aadd("z-gathering-7", "bob-area-mining-drill-1", "a") - aadd("z-gathering-7", "bob-area-mining-drill-2", "b") - aadd("z-gathering-7", "bob-area-mining-drill-3", "c") - aadd("z-gathering-7", "bob-area-mining-drill-4", "d") - - if allow_changes and i_not_exist("5d-small-pump") then - aadd("z-gathering-8", "small-pump-2", "e") - aadd("z-gathering-8", "small-pump-3", "f") - aadd("z-gathering-8", "small-pump-4", "g") - aadd("z-gathering-8", "void-pump", "h") - elseif allow_changes then - aadd("z-gathering-8", "small-pump", "d") - aadd("z-gathering-8", "5d-small-pump", "e") - aadd("z-gathering-8", "5d-small-pump-2", "f") - aadd("z-gathering-8", "void-pump", "j") - - ahide("small-pump-2") - ahide("small-pump-3") - ahide("small-pump-4") - switch_tech("bob-fluid-handling-3") - switch_tech("bob-fluid-handling-4") - else - aadd("z-gathering-10", "small-pump", "a") - aadd("z-gathering-10", "small-pump-2", "b") - aadd("z-gathering-10", "small-pump-3", "c") - aadd("z-gathering-10", "small-pump-4", "d") - aadd("z-gathering-10", "5d-small-pump", "e") - aadd("z-gathering-10", "5d-small-pump-2", "f") - aadd("z-gathering-10", "void-pump", "g") - end - - aadd("z-gathering-9", "water-miner-1", "a") - aadd("z-gathering-9", "water-miner-2", "b") - aadd("z-gathering-9", "water-miner-3", "c") - aadd("z-gathering-9", "water-miner-4", "d") - aadd("z-gathering-9", "water-miner-5", "e") - aadd("z-gathering-9", "pumpjack", "f") - aadd("z-gathering-9", "bob-pumpjack-1", "g") - aadd("z-gathering-9", "bob-pumpjack-2", "h") - aadd("z-gathering-9", "bob-pumpjack-3", "i") - aadd("z-gathering-9", "bob-pumpjack-4", "j") - - aadd("z-gathering-11", "water-pump", "a") - aadd("z-gathering-11", "water-pump-1", "b") - aadd("z-gathering-11", "water-pump-2", "c") - aadd("z-gathering-11", "water-pump-3", "d") - aadd("z-gathering-11", "water-pump-4", "e") - aadd("z-gathering-11", "water-pump-5", "f") - aadd("z-gathering-11", "air-pump", "g") - aadd("z-gathering-11", "air-pump-1", "h") - aadd("z-gathering-11", "air-pump-2", "i") - aadd("z-gathering-11", "air-pump-3", "j") - aadd("z-gathering-11", "air-pump-4", "k") - aadd("z-gathering-11", "air-pump-5", "l") - - if allow_changes and i_exist("5d-mining-drill-speed-1") then - ahide("bob-area-drill-1") - ahide("bob-area-drill-2") - ahide("bob-area-drill-3") - ahide("bob-area-drill-4") - ahide("bob-mining-drill-1") - ahide("bob-mining-drill-2") - ahide("bob-mining-drill-3") - ahide("bob-mining-drill-4") - ahide("bob-area-mining-drill-1") - ahide("bob-area-mining-drill-2") - ahide("bob-area-mining-drill-3") - ahide("bob-area-mining-drill-4") - - ahide("5d-storage-tank") - ahide("5d-pumpjack-2") - ahide("5d-pumpjack-3") - - switch_tech("bob-drills-1") - switch_tech("bob-drills-2") - switch_tech("bob-drills-3") - switch_tech("bob-drills-4") - switch_tech("bob-area-drills-1") - switch_tech("bob-area-drills-2") - switch_tech("bob-area-drills-3") - switch_tech("bob-area-drills-4") - - switch_tech("fluid-handling-2") - switch_tech("advanced-oil-processing-2") - - zgc.t_add_recipe_unlock("bob-fluid-handling-2", "storage-tank-2") - zgc.t_add_recipe_unlock("bob-fluid-handling-3", "storage-tank-3") - zgc.t_add_recipe_unlock("bob-fluid-handling-4", "storage-tank-4") - end - - if use_graphics_tunnings then - zgc.set_icon("water-miner-1", "__ZGroupChange__/graphics/icons/pump_water.png") - zgc.set_icon("water-miner-2", "__ZGroupChange__/graphics/icons/pump_water.png") - zgc.set_icon("water-miner-3", "__ZGroupChange__/graphics/icons/pump_water.png") - zgc.set_icon("water-miner-4", "__ZGroupChange__/graphics/icons/pump_water.png") - zgc.set_icon("water-miner-5", "__ZGroupChange__/graphics/icons/pump_water.png") - zgc.set_icon("pumpjack", "__ZGroupChange__/graphics/icons/pump_oil.png") - zgc.set_icon("bob-pumpjack-1", "__ZGroupChange__/graphics/icons/pump_oil.png") - zgc.set_icon("bob-pumpjack-2", "__ZGroupChange__/graphics/icons/pump_oil.png") - zgc.set_icon("bob-pumpjack-3", "__ZGroupChange__/graphics/icons/pump_oil.png") - zgc.set_icon("bob-pumpjack-4", "__ZGroupChange__/graphics/icons/pump_oil.png") - end - -end -do --[[production]]-- - aadd("z-production-0", "chemical-boiler", "b") - aadd("z-production-0", "mixing-furnace", "c") - aadd("z-production-0", "5d-furnace", "f") - aadd("z-production-0", "5d-masher", "g") - aadd("z-production-0", "5d-masher-2", "h") - - if i_exist("electric-furnace-2") then - aadd("z-production-2", "electric-furnace", "c") - end - aadd("z-production-2", "electric-furnace-2", "d") - aadd("z-production-2", "electric-furnace-3", "e") - aadd("z-production-2", "chemical-furnace", "g") - aadd("z-production-2", "electric-chemical-mixing-furnace", "h") - aadd("z-production-2", "electric-chemical-mixing-furnace-2","i") - - aadd("z-production-4", "assembling-machine-1", "a") - aadd("z-production-4", "assembling-machine-2", "b") - aadd("z-production-4", "assembling-machine-3", "c") - aadd("z-production-4", "assembling-machine-4", "d") - aadd("z-production-4", "assembling-machine-5", "e") - aadd("z-production-4", "assembling-machine-6", "f") - - aadd("z-production-8", "electrolyser", "a") - aadd("z-production-8", "electrolyser-1", "b") - aadd("z-production-8", "electrolyser-2", "c") - aadd("z-production-8", "electrolyser-3", "d") - aadd("z-production-8", "electrolyser-4", "e") - - aadd("z-production-9", "bob-greenhouse", "a") - - if use_graphics_tunnings then - zgc.set_icon("chemical-furnace", "__ZGroupChange__/graphics/icons/chemical-furnace.png") - zgc.set_icon("assembling-machine-1", "__ZGroupChange__/graphics/icons/assembling-machine-1.png") - zgc.set_icon("assembling-machine-2", "__ZGroupChange__/graphics/icons/assembling-machine-2.png") - zgc.set_icon("assembling-machine-3", "__ZGroupChange__/graphics/icons/assembling-machine-3.png") - zgc.set_icon("assembling-machine-4", "__ZGroupChange__/graphics/icons/assembling-machine-4.png") - zgc.set_icon("assembling-machine-5", "__ZGroupChange__/graphics/icons/assembling-machine-5.png") - zgc.set_icon("assembling-machine-6", "__ZGroupChange__/graphics/icons/assembling-machine-6.png") - - if data.raw["assembling-machine"]["assembling-machine-3"] then - data.raw["assembling-machine"]["assembling-machine-3"].animation = { - filename = "__ZGroupChange__/graphics/entity/assembling-machine-3-anim.png", - priority="high", - width = 142, - height = 113, - frame_count = 32, - line_length = 8, - shift = {0.84, -0.1} - } - end - if data.raw["assembling-machine"]["assembling-machine-4"] then - data.raw["assembling-machine"]["assembling-machine-4"].animation = { - filename = "__ZGroupChange__/graphics/entity/assembling-machine-4-anim.png", - priority="high", - width = 142, - height = 113, - frame_count = 32, - line_length = 8, - shift = {0.84, -0.1} - } - end - if data.raw["assembling-machine"]["assembling-machine-5"] then - data.raw["assembling-machine"]["assembling-machine-5"].animation = { - filename = "__ZGroupChange__/graphics/entity/assembling-machine-5-anim.png", - priority="high", - width = 142, - height = 113, - frame_count = 32, - line_length = 8, - shift = {0.84, -0.1} - } - end - if data.raw["assembling-machine"]["assembling-machine-6"] then - data.raw["assembling-machine"]["assembling-machine-6"].animation = { - filename = "__ZGroupChange__/graphics/entity/assembling-machine-6-anim.png", - priority="high", - width = 142, - height = 113, - frame_count = 32, - line_length = 8, - shift = {0.84, -0.1} - } - end - if data.raw["assembling-machine"]["chemical-furnace"] then - data.raw["assembling-machine"]["chemical-furnace"].animation.filename = "__ZGroupChange__/graphics/entity/electric-chemical-furnace.png" - end - end - - if i_not_exist("5d-chemical-plant-2") then - aadd("z-production-6", "oil-refinery-2", "b") - aadd("z-production-6", "oil-refinery-3", "c") - aadd("z-production-6", "oil-refinery-4", "c") - - aadd("z-production-7", "chemical-plant-2", "b") - aadd("z-production-7", "chemical-plant-3", "c") - aadd("z-production-7", "chemical-plant-4", "c") - elseif not allow_changes then - aadd("z-production-6", "oil-refinery-2", "b") - aadd("z-production-6", "oil-refinery-3", "c") - aadd("z-production-6", "oil-refinery-4", "d") - - aadd("z-production-7", "chemical-plant-2", "b") - aadd("z-production-7", "chemical-plant-3", "c") - aadd("z-production-7", "chemical-plant-4", "d") - else - ahide("oil-refinery-2") - ahide("oil-refinery-3") - ahide("oil-refinery-4") - ahide("chemical-plant-2") - ahide("chemical-plant-3") - ahide("chemical-plant-4") - - switch_tech("oil-processing-4") - switch_tech("chemical-plant-4") - - zgc.t_add_recipe_unlock("chemical-plant-2", "5d-chemical-plant-2") - zgc.t_add_recipe_unlock("chemical-plant-3", "5d-chemical-plant-3") - zgc.t_add_recipe_unlock("oil-processing-2", "5d-oil-refinery-2") - zgc.t_add_recipe_unlock("oil-processing-3", "5d-oil-refinery-3") - - zgc.t_remove_recipe_unlock("chemical-plant-2", "chemical-plant-2") - zgc.t_remove_recipe_unlock("chemical-plant-3", "chemical-plant-3") - zgc.t_remove_recipe_unlock("oil-processing-2", "oil-refinery-2") - zgc.t_remove_recipe_unlock("oil-processing-3", "oil-refinery-3") - end - - - if i_not_exist("electric-furnace-2") then - aadd("z-production-2", "5d-electric-furnace", "d") - aadd("z-production-2", "electric-mixing-furnace", "e") - elseif allow_changes then - ahide("5d-electric-furnace") - ahide("electric-mixing-furnace") - else - aadd("z-production-2", "5d-electric-furnace", "d") - aadd("z-production-2", "electric-mixing-furnace", "e") - end - - if not allow_changes then - aadd("z-production-5", "electronics-machine-1", "a") - aadd("z-production-5", "electronics-machine-2", "b") - aadd("z-production-5", "electronics-machine-3", "c") - else - ahide("electronics-machine-1") - ahide("electronics-machine-2") - ahide("electronics-machine-3") - - switch_tech("electronics-machine-1") - switch_tech("electronics-machine-2") - switch_tech("electronics-machine-3") - end - -end -do --[[resources]]-- - - aadd("z-resources-0", "raw-wood", "a") - aadd("z-resources-0", "wood", "b") - aadd("z-resources-0", "seedling", "c") - aadd("z-resources-0", "coal", "e") - aadd("z-resources-0", "5d-coal", "f") - aadd("z-resources-0", "stone", "g") - aadd("z-resources-0", "sulfur", "h") - aadd("z-resources-0", "sulfur-2", "i") - aadd("z-resources-0", "gem-ore", "j") - aadd("z-resources-0", "sort-gem-ore", "k") - - aadd("z-resources-3", "cobalt-ore", "a") - aadd("z-resources-3", "nickel-ore", "b") - aadd("z-resources-3", "quartz", "c") - aadd("z-resources-3", "quartz-ore", "d") - aadd("z-resources-3", "rutile-ore", "e") - aadd("z-resources-3", "silver-ore", "f") - aadd("z-resources-3", "tungsten-ore", "g") - - aadd("z-resources-4", "iron-ore", "a") - aadd("z-resources-4", "copper-ore", "b") - aadd("z-resources-4", "lead-ore", "c") - aadd("z-resources-4", "tin-ore", "d") - aadd("z-resources-4", "zinc-ore", "e") - aadd("z-resources-4", "bauxite-ore", "f") - aadd("z-resources-4", "gold-ore", "g") - - aadd("z-resources-5", "5d-iron-dust", "a") - aadd("z-resources-5", "5d-copper-dust", "b") - aadd("z-resources-5", "5d-lead-dust", "c") - aadd("z-resources-5", "5d-tin-dust", "d") - aadd("z-resources-5", "5d-zinc-dust", "e") - aadd("z-resources-5", "5d-aluminium-dust", "f") - aadd("z-resources-5", "5d-gold-dust", "g") - - iadd("z-resources-6", "plastic-bar", "a") - aadd("z-resources-6", "silicon", "b") - aadd("z-resources-6", "bob-silicon-plate", "c") - aadd("z-resources-6", "resin", "d") - aadd("z-resources-6", "bob-resin-wood", "e") - aadd("z-resources-6", "bob-resin-oil", "f") - aadd("z-resources-6", "rubber", "g") - aadd("z-resources-6", "bob-rubber", "h") - aadd("z-resources-6", "carbon", "i") - aadd("z-resources-6", "glass", "j") - aadd("z-resources-6", "quartz-glass", "k") - - radd("z-resources-9", "plastic-bar", "a") - aadd("z-resources-9", "salt", "a") - aadd("z-resources-9", "alumina", "b") - aadd("z-resources-9", "cobalt-oxide", "c") - iadd("z-resources-9", "lithium-cobalt-oxide", "d") - iadd("z-resources-9", "silicon-powder", "d") - aadd("z-resources-9", "lead-oxide", "e") - aadd("z-resources-9", "silver-oxide", "f") - aadd("z-resources-9", "tungsten-oxide", "g") - - aadd("z-resources-10", "calcium-chloride", "b") - aadd("z-resources-10", "lithium-chloride", "c") - radd("z-resources-10", "lithium-cobalt-oxide", "d") - radd("z-resources-10", "silicon-powder", "e") - aadd("z-resources-10", "silicon-wafer", "f") - aadd("z-resources-10", "silicon-carbide", "g") - aadd("z-resources-10", "silicon-nitride", "h") - aadd("z-resources-10", "silver-nitrate", "i") - aadd("z-resources-10", "petroleum-jelly", "j") - aadd("z-resources-10", "lithium-perchlorate", "k") - aadd("z-resources-10", "sodium-hydroxide", "l") - - aadd("z-resources-11", "ruby-ore", "a") - aadd("z-resources-11", "sapphire-ore", "b") - aadd("z-resources-11", "emerald-ore", "c") - aadd("z-resources-11", "amethyst-ore", "d") - aadd("z-resources-11", "topaz-ore", "e") - aadd("z-resources-11", "diamond-ore", "f") - - aadd("z-resources-12", "ruby-3", "a") - aadd("z-resources-12", "sapphire-3", "b") - aadd("z-resources-12", "emerald-3", "c") - aadd("z-resources-12", "amethyst-3", "d") - aadd("z-resources-12", "topaz-3", "e") - aadd("z-resources-12", "diamond-3", "f") - - aadd("z-resources-13", "ruby-4", "a") - aadd("z-resources-13", "sapphire-4", "b") - aadd("z-resources-13", "emerald-4", "c") - aadd("z-resources-13", "amethyst-4", "d") - aadd("z-resources-13", "topaz-4", "e") - aadd("z-resources-13", "diamond-4", "f") - - aadd("z-resources-14", "ruby-5", "a") - aadd("z-resources-14", "sapphire-5", "b") - aadd("z-resources-14", "emerald-5", "c") - aadd("z-resources-14", "amethyst-5", "d") - aadd("z-resources-14", "topaz-5", "e") - aadd("z-resources-14", "diamond-5", "f") - - if not z_balance.bob_synthetic then - aadd("z-resources-0", "synthetic-wood", "b") - else - ahide("synthetic-wood") - zgc.r_replace_ingredient_in_all("synthetic-wood", "wood") - end - - if z_balance.add_gems then - zgc.add_newRessource_min_max("gem-ore", "ruby-3", 1,1,0.2) - zgc.add_newRessource_min_max("gem-ore", "sapphire-3", 1,1,0.2) - zgc.add_newRessource_min_max("gem-ore", "emerald-3", 1,1,0.1) - zgc.add_newRessource_min_max("gem-ore", "amethyst-3", 1,1,0.1) - end -end -do --[[plates]]-- - - aadd("z-plates-6", "powdered-tungsten", "h") - - aadd("z-plates-7", "5d-iron-dust", "a") - aadd("z-plates-7", "5d-copper-dust", "b") - aadd("z-plates-7", "5d-lead-dust", "c") - aadd("z-plates-7", "5d-tin-dust", "d") - aadd("z-plates-7", "5d-zinc-dust", "e") - aadd("z-plates-7", "5d-aluminium-dust", "f") - aadd("z-plates-7", "5d-gold-dust", "g") - - aadd("z-plates-9", "iron-plate", "a") - aadd("z-plates-9", "copper-plate", "b") - aadd("z-plates-9", "lead-plate", "c") - aadd("z-plates-9", "tin-plate", "d") - aadd("z-plates-9", "zinc-plate", "e") - aadd("z-plates-9", "aluminium-plate", "f") - aadd("z-plates-9", "gold-plate", "g") - - aadd("z-plates-10", "5d-iron-plate", "a") - aadd("z-plates-10", "5d-copper-plate", "b") - aadd("z-plates-10", "5d-lead-plate-2", "c") - aadd("z-plates-10", "5d-tin-plate-2", "d") - aadd("z-plates-10", "5d-zinc-plate-2", "e") - aadd("z-plates-10", "5d-aluminium-plate-2", "f") - aadd("z-plates-10", "5d-gold-plate-2", "g") - - aadd("z-plates-11", "brass-alloy", "a") - aadd("z-plates-11", "cobalt-oxide-from-copper", "b") - aadd("z-plates-11", "bob-lead-plate", "c") - aadd("z-plates-11", "silver-from-lead", "d") - aadd("z-plates-11", "bob-zinc-plate", "e") - aadd("z-plates-11", "bob-aluminium-plate", "f") - aadd("z-plates-11", "bob-gold-plate", "g") - aadd("z-plates-11", "bronze-alloy", "h") - aadd("z-plates-11", "tungsten-carbide", "i") - - aadd("z-plates-12", "cobalt-plate", "a") - aadd("z-plates-12", "bob-nickel-plate", "b") - aadd("z-plates-12", "nickel-plate", "c") - aadd("z-plates-12", "silver-plate", "d") - aadd("z-plates-12", "electrum-alloy", "e") - aadd("z-plates-12", "alumina", "f") - aadd("z-plates-12", "lithium", "g") - aadd("z-plates-12", "invar-alloy", "h") - aadd("z-plates-12", "nitinol-alloy", "i") - - aadd("z-plates-13", "steel-plate", "a") - aadd("z-plates-13", "copper-tungsten-alloy", "c") - aadd("z-plates-13", "bob-tungsten-plate", "d") - aadd("z-plates-13", "tungsten-plate", "e") - aadd("z-plates-13", "titanium-plate", "f") - aadd("z-plates-13", "bob-titanium-plate", "g") - aadd("z-plates-13", "cobalt-steel-alloy", "h") - aadd("z-plates-13", "alien-orange-alloy", "j") - aadd("z-plates-13", "alien-blue-alloy", "k") - - - if data.raw.recipe["lead-plate"] then ahide("5d-lead-plate") end - if data.raw.recipe["tin-plate"] then ahide("5d-tin-plate") end - - if z_balance.bob_warfare then - ahide("gunmetal-alloy") - zgc.t_remove_recipe_unlock("zinc-processing", "gunmetal-alloy") - else - aadd("z-plates-15", "gunmetal-alloy", "j") - end -end -do --[[liquids]]-- - aadd("z-liquids-0", "empty-canister", "b") - aadd("z-liquids-0", "gas-canister", "c") - - aadd("z-liquids-1", "bob-oil-processing", "a") - aadd("z-liquids-1", "basic-oil-processing", "b") - aadd("z-liquids-1", "advanced-oil-processing", "d") - aadd("z-liquids-1", "ground-water", "e") - - aadd("z-liquids-2", "water", "a") - aadd("z-liquids-2", "lithia-water", "b") - aadd("z-liquids-2", "coal-cracking", "d") - aadd("z-liquids-2", "liquid-fuel", "e") - aadd("z-liquids-2", "lubricant", "f") - aadd("z-liquids-2", "bob-liquid-air", "g") - - aadd("z-liquids-5", "fill-water-barrel", "a") - aadd("z-liquids-5", "fill-lithia-water-barrel", "b") - aadd("z-liquids-5", "fill-crude-oil-barrel", "ca") - aadd("z-liquids-5", "bob-fill-crude-oil-barrel", "cb") - aadd("z-liquids-5", "fill-heavy-oil-barrel", "d") - aadd("z-liquids-5", "fill-light-oil-barrel", "e") - aadd("z-liquids-5", "fill-lubricant-barrel", "f") - aadd("z-liquids-5", "fill-sulfuric-acid-barrel", "g") - aadd("z-liquids-5", "fill-nitric-acid-barrel", "h") - - aadd("z-liquids-6", "empty-water-barrel", "a") - aadd("z-liquids-6", "empty-lithia-water-barrel", "b") - aadd("z-liquids-6", "empty-crude-oil-barrel", "ca") - aadd("z-liquids-6", "bob-empty-crude-oil-barrel", "cb") - aadd("z-liquids-6", "empty-heavy-oil-barrel", "d") - aadd("z-liquids-6", "empty-light-oil-barrel", "e") - aadd("z-liquids-6", "empty-lubricant-barrel", "f") - aadd("z-liquids-6", "empty-sulfuric-acid-barrel", "g") - aadd("z-liquids-6", "empty-nitric-acid-barrel", "h") - - aadd("z-liquids-7", "water-barrel", "a") - aadd("z-liquids-7", "lithia-water-barrel", "b") - aadd("z-liquids-7", "crude-oil-barrel", "c") - aadd("z-liquids-7", "heavy-oil-barrel", "d") - aadd("z-liquids-7", "light-oil-barrel", "e") - aadd("z-liquids-7", "lubricant-barrel", "f") - aadd("z-liquids-7", "sulfuric-acid-barrel", "g") - aadd("z-liquids-7", "nitric-acid-barrel", "h") - - aadd("z-liquids-8", "oxygen-canister", "a") - aadd("z-liquids-8", "hydrogen-canister", "b") - aadd("z-liquids-8", "nitrogen-canister", "c") - aadd("z-liquids-8", "chlorine-canister", "d") - aadd("z-liquids-8", "hydrogen-chloride-canister", "e") - aadd("z-liquids-8", "petroleum-gas-canister", "f") - aadd("z-liquids-8", "liquid-fuel-canister", "g") - aadd("z-liquids-8", "ferric-chloride-canister", "h") - - aadd("z-liquids-9", "empty-oxygen-canister", "a") - aadd("z-liquids-9", "empty-hydrogen-canister", "b") - aadd("z-liquids-9", "empty-nitrogen-canister", "c") - aadd("z-liquids-9", "empty-chlorine-canister", "d") - aadd("z-liquids-9", "empty-hydrogen-chloride-canister", "e") - aadd("z-liquids-9", "empty-petroleum-gas-canister", "f") - aadd("z-liquids-9", "empty-liquid-fuel-canister", "g") - aadd("z-liquids-9", "empty-ferric-chloride-canister", "h") - -end -do --[[chemistry]]-- - aadd("z-chemistry-0", "sulfuric-acid", "a") - aadd("z-chemistry-0", "sulfuric-acid-2", "b") - aadd("z-chemistry-0", "nitrogen", "d") - aadd("z-chemistry-0", "nitrogen-dioxide", "e") - aadd("z-chemistry-0", "nitric-acid", "g") - aadd("z-chemistry-0", "tungstic-acid", "h") - - aadd("z-chemistry-1", "water-electrolysis", "a") - aadd("z-chemistry-1", "salt-water-electrolysis", "b") - aadd("z-chemistry-1", "petroleum-gas-cracking", "c") - aadd("z-chemistry-1", "lithium-water-electrolysis", "d") - aadd("z-chemistry-1", "hydrogen-chloride", "e") - - aadd("z-chemistry-2", "heavy-oil-cracking", "a") - aadd("z-chemistry-2", "light-oil-cracking", "b") - aadd("z-chemistry-2", "ferric-chloride-solution", "d") - - aadd("z-chemistry-3", "solid-fuel-from-heavy-oil", "a") - aadd("z-chemistry-3", "solid-fuel-from-light-oil", "b") - aadd("z-chemistry-3", "solid-fuel-from-petroleum-gas","c") - aadd("z-chemistry-3", "solid-fuel-from-hydrogen", "d") - - if allow_changes and i_exist("nitroglycerin") then - data.raw.recipe["nitroglycerin"].ingredients = {} - data.raw.recipe["nitroglycerin"].ingredients = - { - {name="sulfur", amount=12}, - {type="fluid", name="nitric-acid", amount=3}, - {type="fluid", name="light-oil", amount=1}, - } - aadd("z-chemistry-1", "nitroglycerin", "f") - - ahide("sulfuric-nitric-acid") - ahide("glycerol") - switch_tech("nitroglycerin-processing") - zgc.t_remove_recipe_unlock("nitroglycerin-processing", "glycerol") - else - aadd("z-chemistry-1", "nitroglycerin", "f") - aadd("z-chemistry-1", "sulfuric-nitric-acid", "g") - aadd("z-chemistry-1", "glycerol", "h") - end - - if z_balance.bob_warfare then - ahide("nitroglycerin") - ahide("sulfuric-nitric-acid") - ahide("glycerol") - switch_tech("nitroglycerin-processing") - zgc.t_remove_recipe_unlock("nitroglycerin-processing", "glycerol") - end - -end -do --[[automatization]]-- - if bobmods and bobmods.logistics then - if i_exist("5d-basic-inserter-left-90d") then - aadd("z-automatization-1", "express-filter-inserter", "g") - - aadd("z-automatization-3", "express-inserter", "g") - aadd("z-automatization-3", "express-stack-inserter", "h") - aadd("z-automatization-3", "express-stack-filter-inserter","i") - else - aadd("z-automatization-0", "express-inserter", "d") - - aadd("z-automatization-1", "express-filter-inserter", "b") - aadd("z-automatization-1", "express-stack-filter-inserter","j") - - aadd("z-automatization-2", "stack-filter-inserter", "h") - aadd("z-automatization-2", "express-stack-inserter", "i") - end - end - - if z_balance.bob_inserters then - ahide("long-handed-inserter","inserter") - ahide("5d-inserter-speed1-range3","inserter") - ahide("5d-inserter-speed1-range1-close","inserter") - ahide("5d-inserter-speed1-range2-close","inserter") - ahide("5d-inserter-speed1-range3-close","inserter") - ahide("5d-inserter-speed2-range2","fast-inserter") - ahide("5d-inserter-speed2-range3","fast-inserter") - ahide("5d-inserter-speed2-range1-close","fast-inserter") - ahide("5d-inserter-speed2-range2-close","fast-inserter") - ahide("5d-inserter-speed2-range3-close","fast-inserter") - ahide("5d-inserter-speed3-range1","express-inserter") - ahide("5d-inserter-speed3-range2","express-inserter") - ahide("5d-inserter-speed3-range3","express-inserter") - ahide("5d-inserter-speed3-range1-close","express-inserter") - ahide("5d-inserter-speed3-range2-close","express-inserter") - ahide("5d-inserter-speed3-range3-close","express-inserter") - ahide("5d-basic-inserter-left-90d","inserter") - ahide("5d-basic-inserter-right-90d","inserter") - ahide("5d-basic-inserter-left-90d-close","inserter") - ahide("5d-basic-inserter-right-90d-close","inserter") - ahide("5d-fast-inserter-left-90d","fast-inserter") - ahide("5d-fast-inserter-right-90d","fast-inserter") - ahide("5d-fast-inserter-left-90d-close","fast-inserter") - ahide("5d-fast-inserter-right-90d-close","fast-inserter") - ahide("5d-extreme-inserter-left-90d","express-inserter") - ahide("5d-extreme-inserter-right-90d","express-inserter") - ahide("5d-extreme-inserter-left-90d-close","express-inserter") - ahide("5d-extreme-inserter-right-90d-close","express-inserter") - ahide("5d-inserter-smart-speed2-range1-close","filter-inserter") - ahide("5d-inserter-smart-speed2-range2","filter-inserter") - ahide("5d-inserter-smart-speed2-range2-close","filter-inserter") - ahide("5d-inserter-smart-speed3-range1","express-filter-inserter") - ahide("5d-inserter-smart-speed3-range1-close","express-filter-inserter") - - switch_tech("inserters") - switch_tech("inserters-2") - switch_tech("inserters-3") - switch_tech("close") - switch_tech("close-2") - switch_tech("close-3") - switch_tech("side-inserters") - switch_tech("side-inserters-2") - switch_tech("side-inserters-3") - switch_tech("smart-inserters") - end - -end -do --[[transport]]-- - aadd("z-transport-6", "valve", "a") - - if allow_changes then - if i_exist("5d-mk4-transport-belt") then - ahide("green-transport-belt") - ahide("green-underground-belt") - ahide("green-splitter") - ahide("purple-transport-belt") - ahide("purple-underground-belt") - ahide("purple-splitter") - else - aadd("z-transport-0", "green-transport-belt", "f") - aadd("z-transport-0", "purple-transport-belt", "g") - - aadd("z-transport-1", "green-underground-belt", "f") - aadd("z-transport-1", "purple-underground-belt", "g") - - aadd("z-transport-4", "green-splitter", "f") - aadd("z-transport-4", "purple-splitter", "g") - end - - switch_tech("bob-logistics-4") - switch_tech("bob-logistics-5") - - else - aadd("z-transport-0", "green-transport-belt", "f") - aadd("z-transport-0", "purple-transport-belt", "g") - - aadd("z-transport-1", "green-underground-belt", "f") - aadd("z-transport-1", "purple-underground-belt", "g") - - aadd("z-transport-4", "green-splitter", "f") - aadd("z-transport-4", "purple-splitter", "g") - end - - if z_balance.bob_pipes then - if data.raw.item["5d-pipe-mk2"] then - ahide("copper-pipe") - ahide("steel-pipe") - ahide("copper-pipe-to-ground") - ahide("steel-pipe-to-ground") - zgc.r_replace_ingredient_in_all("copper-pipe", "pipe") - zgc.r_replace_ingredient_in_all("steel-pipe", "pipe") - else - aadd("z-transport-9", "copper-pipe", "b") - aadd("z-transport-9", "steel-pipe", "d") - - aadd("z-transport-10", "copper-pipe-to-ground", "b") - aadd("z-transport-10", "steel-pipe-to-ground", "d") - end - ahide("stone-pipe") - ahide("bronze-pipe") - ahide("plastic-pipe") - ahide("brass-pipe") - ahide("ceramic-pipe") - ahide("titanium-pipe") - ahide("tungsten-pipe") - ahide("stone-pipe-to-ground") - ahide("bronze-pipe-to-ground") - ahide("plastic-pipe-to-ground") - ahide("brass-pipe-to-ground") - ahide("ceramic-pipe-to-ground") - ahide("titanium-pipe-to-ground") - ahide("tungsten-pipe-to-ground") - zgc.r_replace_ingredient_in_all("bronze-pipe", "pipe") - - if data.raw.item["5d-pipe-mk2"] then - zgc.r_replace_ingredient_in_all("steel-pipe", "5d-pipe-mk2") - zgc.r_replace_ingredient_in_all("plastic-pipe", "5d-pipe-mk2") - zgc.r_replace_ingredient_in_all("brass-pipe", "5d-pipe-mk2") - zgc.r_replace_ingredient_in_all("ceramic-pipe", "5d-pipe-mk3") - zgc.r_replace_ingredient_in_all("titanium-pipe", "5d-pipe-mk3") - zgc.r_replace_ingredient_in_all("tungsten-pipe", "5d-pipe-mk3") - else - zgc.r_replace_ingredient_in_all("plastic-pipe", "copper-pipe") - zgc.r_replace_ingredient_in_all("brass-pipe", "copper-pipe") - zgc.r_replace_ingredient_in_all("ceramic-pipe", "steel-pipe") - zgc.r_replace_ingredient_in_all("titanium-pipe", "steel-pipe") - zgc.r_replace_ingredient_in_all("tungsten-pipe", "steel-pipe") - end - else - aadd("z-transport-7", "stone-pipe", "a") - aadd("z-transport-7", "copper-pipe", "b") - aadd("z-transport-7", "steel-pipe", "c") - aadd("z-transport-7", "bronze-pipe", "d") - aadd("z-transport-7", "plastic-pipe", "e") - aadd("z-transport-7", "brass-pipe", "f") - aadd("z-transport-7", "ceramic-pipe", "g") - aadd("z-transport-7", "titanium-pipe", "h") - aadd("z-transport-7", "tungsten-pipe", "i") - - aadd("z-transport-8", "stone-pipe-to-ground", "a") - aadd("z-transport-8", "copper-pipe-to-ground", "b") - aadd("z-transport-8", "steel-pipe-to-ground", "c") - aadd("z-transport-8", "bronze-pipe-to-ground", "d") - aadd("z-transport-8", "plastic-pipe-to-ground", "e") - aadd("z-transport-8", "brass-pipe-to-ground", "f") - aadd("z-transport-8", "ceramic-pipe-to-ground", "g") - aadd("z-transport-8", "titanium-pipe-to-ground", "h") - aadd("z-transport-8", "tungsten-pipe-to-ground", "i") - end - - if use_graphics_tunnings then - local function set_sprite(pic) - local pic = pic or "u_line_y" - return { - filename = "__ZGroupChange__/graphics/entity/"..pic..".png", - priority = "high", - width = 64, - height = 64, - x = 64, - scale = 0.5 - } - end - - if i_exist("green-underground-belt") then - data.raw["underground-belt"]["green-underground-belt"].underground_sprite = set_sprite("u_line_g") end - if i_exist("purple-underground-belt") then - data.raw["underground-belt"]["purple-underground-belt"].underground_sprite = set_sprite("u_line_p") end - end -end -do --[[logistic]]-- - aadd("z-logistic-1", "roboport", "a") - aadd("z-logistic-1", "bob-roboport-2", "b") - aadd("z-logistic-1", "bob-roboport-3", "d") - aadd("z-logistic-1", "bob-roboport-4", "e") - aadd("z-logistic-1", "bob-logistic-zone-expander", "f") - aadd("z-logistic-1", "bob-logistic-zone-expander-2", "g") - aadd("z-logistic-1", "bob-logistic-zone-expander-3", "h") - aadd("z-logistic-1", "bob-logistic-zone-expander-4", "i") - aadd("z-logistic-1", "bob-logistic-zone-interface", "j") - - aadd("z-logistic-2", "bob-robo-charge-port", "a") - aadd("z-logistic-2", "bob-robo-charge-port-2", "b") - aadd("z-logistic-2", "bob-robo-charge-port-3", "c") - aadd("z-logistic-2", "bob-robo-charge-port-4", "d") - aadd("z-logistic-2", "bob-robo-charge-port-large", "e") - aadd("z-logistic-2", "bob-robo-charge-port-large-2", "f") - aadd("z-logistic-2", "bob-robo-charge-port-large-3", "g") - aadd("z-logistic-2", "bob-robo-charge-port-large-4", "h") - - aadd("z-logistic-3", "logistic-robot", "a") - aadd("z-logistic-3", "bob-logistic-robot-2", "b") - aadd("z-logistic-3", "bob-logistic-robot-3", "c") - aadd("z-logistic-3", "bob-logistic-robot-4", "d") - aadd("z-logistic-3", "construction-robot", "f") - aadd("z-logistic-3", "bob-construction-robot-2", "g") - aadd("z-logistic-3", "bob-construction-robot-3", "h") - aadd("z-logistic-3", "bob-construction-robot-4", "i") - - aadd("z-logistic-4", "logistic-chest-storage", "a") - aadd("z-logistic-4", "logistic-chest-requester", "b") - aadd("z-logistic-4", "logistic-chest-passive-provider", "c") - aadd("z-logistic-4", "logistic-chest-active-provider", "d") - aadd("z-logistic-4", "5d-storage", "e") - aadd("z-logistic-4", "5d-requester", "f") - aadd("z-logistic-4", "5d-passive", "g") - aadd("z-logistic-4", "5d-active", "h") - - aadd("z-logistic-5", "bob-robochest", "e") - aadd("z-logistic-5", "bob-robochest-2", "f") - aadd("z-logistic-5", "bob-robochest-3", "g") - aadd("z-logistic-5", "bob-robochest-4", "h") - - aadd("z-logistic-8", "tinned-copper-cable", "f") - aadd("z-logistic-8", "insulated-cable", "g") - aadd("z-logistic-8", "gilded-copper-cable", "h") - - - if use_graphics_tunnings then - zgc.set_icon("bob-roboport-3", "__ZGroupChange__/graphics/icons/roboport2.png") - zgc.set_icon("bob-roboport-4", "__ZGroupChange__/graphics/icons/roboport3.png") - - if data.raw["roboport"]["bob-roboport-3"] then - data.raw["roboport"]["bob-roboport-3"].base.filename = "__ZGroupChange__/graphics/entity/roboport2-base.png" - end - if data.raw["roboport"]["bob-roboport-3"] then - data.raw["roboport"]["bob-roboport-3"].base_patch.filename = "__ZGroupChange__/graphics/entity/roboport2-base-patch.png" - end - if data.raw["roboport"]["bob-roboport-3"] then - data.raw["roboport"]["bob-roboport-3"].base_animation.filename = "__ZGroupChange__/graphics/entity/roboport2-base-animation.png" - end - if data.raw["roboport"]["bob-roboport-3"] then - data.raw["roboport"]["bob-roboport-3"].door_animation_up.filename = "__ZGroupChange__/graphics/entity/roboport2-door-up.png" - end - if data.raw["roboport"]["bob-roboport-3"] then - data.raw["roboport"]["bob-roboport-3"].door_animation_down.filename = "__ZGroupChange__/graphics/entity/roboport2-door-down.png" - end - if data.raw["roboport"]["bob-roboport-3"] then - data.raw["roboport"]["bob-roboport-3"].recharging_animation.filename = "__ZGroupChange__/graphics/entity/roboport2-recharging.png" - end - if data.raw["roboport"]["bob-roboport-4"] then - data.raw["roboport"]["bob-roboport-4"].base.filename = "__ZGroupChange__/graphics/entity/roboport3-base.png" - end - if data.raw["roboport"]["bob-roboport-4"] then - data.raw["roboport"]["bob-roboport-4"].base_patch.filename = "__ZGroupChange__/graphics/entity/roboport3-base-patch.png" - end - end - - if i_not_exist("5d-storage") then - aadd("z-logistic-4", "logistic-chest-storage-2", "e") - aadd("z-logistic-4", "logistic-chest-requester-2", "f") - aadd("z-logistic-4", "logistic-chest-passive-provider-2","g") - aadd("z-logistic-4", "logistic-chest-active-provider-2", "h") - elseif allow_changes then - ahide("logistic-chest-storage-2") - ahide("logistic-chest-requester-2") - ahide("logistic-chest-passive-provider-2") - ahide("logistic-chest-active-provider-2") - else - aadd("z-logistic-7", "logistic-chest-storage-2", "e") - aadd("z-logistic-7", "logistic-chest-requester-2", "f") - aadd("z-logistic-7", "logistic-chest-passive-provider-2","g") - aadd("z-logistic-7", "logistic-chest-active-provider-2", "h") - end - - if i_not_exist("bob-roboport-2") then - aadd("z-logistic-1", "5d-roboport-2", "b") - aadd("z-logistic-3", "5d-logistic-robot-2", "b") - aadd("z-logistic-3", "5d-construction-robot-2", "g") - elseif allow_changes then - ahide("5d-roboport-2") - ahide("5d-logistic-robot-2") - ahide("5d-construction-robot-2") - switch_tech("robots-2") - else - aadd("z-logistic-3", "5d-logistic-robot-2", "b") - aadd("z-logistic-3", "5d-construction-robot-2", "g") - end - -end -do --[[energy]]-- - if not allow_changes or i_not_exist("5d-boiler") then - aadd("z-energy-1", "boiler-2", "b") - aadd("z-energy-1", "boiler-3", "c") - aadd("z-energy-1", "boiler-4", "d") - else - ahide("boiler-2") - ahide("boiler-3") - ahide("boiler-4") - switch_tech("bob-boiler-1") - switch_tech("bob-boiler-2") - switch_tech("bob-boiler-3") - end - - if not allow_changes or i_not_exist("5d-steam-engine-2") then - aadd("z-energy-2", "steam-engine-2", "b") - aadd("z-energy-2", "steam-engine-3", "c") - else - ahide("steam-engine-2") - ahide("steam-engine-3") - switch_tech("steam-engine-generator-1") - switch_tech("steam-engine-generator-2") - end - - if allow_changes - and i_not_exist("5d-basic-accumulator-2") - and i_not_exist("y-accumulator-m") - and i_exist("slow-accumulator") then - ahide("accumulator") - end - - if i_exist("5d-solar-panel-2") or i_exist("y_alien_solar") then - aadd("z-energy-4", "solar-panel-2", "b") - aadd("z-energy-4", "solar-panel-3", "d") - - aadd("z-energy-5", "solar-panel-small", "a") - aadd("z-energy-5", "solar-panel-small-2", "b") - aadd("z-energy-5", "solar-panel-small-3", "c") - aadd("z-energy-5", "solar-panel-large", "d") - aadd("z-energy-5", "solar-panel-large-2", "e") - aadd("z-energy-5", "solar-panel-large-3", "f") - if allow_changes then - ahide("solar-panel-2") - ahide("solar-panel-3") - end - else - aadd("z-energy-4", "solar-panel-2", "b") - aadd("z-energy-4", "solar-panel-3", "d") - - aadd("z-energy-5", "solar-panel-small", "a") - aadd("z-energy-5", "solar-panel-small-2", "b") - aadd("z-energy-5", "solar-panel-small-3", "c") - aadd("z-energy-5", "solar-panel-large", "g") - aadd("z-energy-5", "solar-panel-large-2", "h") - aadd("z-energy-5", "solar-panel-large-3", "i") - end - - aadd("z-energy-6", "slow-accumulator", "a") - aadd("z-energy-6", "large-accumulator", "b") - aadd("z-energy-6", "fast-accumulator", "c") - aadd("z-energy-6", "slow-accumulator-2", "d") - aadd("z-energy-6", "large-accumulator-2", "e") - aadd("z-energy-6", "fast-accumulator-2", "f") - aadd("z-energy-6", "slow-accumulator-3", "g") - aadd("z-energy-6", "large-accumulator-3", "h") - aadd("z-energy-6", "fast-accumulator-3", "i") - - aadd("z-energy-7", "medium-electric-pole-2", "c") - aadd("z-energy-7", "medium-electric-pole-3", "d") - aadd("z-energy-7", "medium-electric-pole-4", "e") - - aadd("z-energy-8", "big-electric-pole-2", "b") - aadd("z-energy-8", "big-electric-pole-3", "c") - aadd("z-energy-8", "big-electric-pole-4", "d") - aadd("z-energy-8", "substation-2", "f") - aadd("z-energy-8", "substation-3", "g") - aadd("z-energy-8", "substation-4", "h") - -end -do --[[defense]]-- - aadd("z-defense-0", "reinforced-wall", "b") - aadd("z-defense-0", "reinforced-gate", "e") - - if i_exist("bob-gun-turret-2") then - aadd("z-defense-3", "flamethrower-turret", "a") - aadd("z-defense-3", "bob-sniper-turret-1", "b") - aadd("z-defense-3", "bob-sniper-turret-2", "c") - aadd("z-defense-3", "bob-sniper-turret-3", "d") - - aadd("z-defense-4", "gun-turret", "a") - aadd("z-defense-4", "bob-gun-turret-2", "d") - aadd("z-defense-4", "bob-gun-turret-3", "e") - aadd("z-defense-4", "bob-gun-turret-4", "f") - aadd("z-defense-4", "bob-gun-turret-5", "g") - - aadd("z-defense-5", "laser-turret", "a") - aadd("z-defense-5", "bob-laser-turret-2", "d") - aadd("z-defense-5", "bob-laser-turret-3", "e") - aadd("z-defense-5", "bob-laser-turret-4", "f") - aadd("z-defense-5", "bob-laser-turret-5", "g") - end - - aadd("z-defense-8", "radar-2", "b") - aadd("z-defense-8", "radar-3", "c") - aadd("z-defense-8", "radar-4", "d") - aadd("z-defense-8", "radar-5", "e") - -end -do --[[armor]]-- - aadd("z-armor-0", "laser-rifle", "g") - - aadd("z-armor-1", "firearm-magazine", "a") - aadd("z-armor-1", "piercing-rounds-magazine", "b") - aadd("z-armor-1", "shotgun-shell", "c") - aadd("z-armor-1", "piercing-shotgun-shell", "d") - aadd("z-armor-1", "flame-thrower-ammo", "e") - aadd("z-armor-1", "rocket", "f") - aadd("z-armor-1", "explosive-rocket", "g") - - aadd("z-armor-2", "laser-rifle-battery", "a") - aadd("z-armor-2", "laser-rifle-battery-ruby", "b") - aadd("z-armor-2", "laser-rifle-battery-sapphire", "c") - aadd("z-armor-2", "laser-rifle-battery-emerald", "d") - aadd("z-armor-2", "laser-rifle-battery-amethyst", "e") - aadd("z-armor-2", "laser-rifle-battery-topaz", "f") - aadd("z-armor-2", "laser-rifle-battery-diamond", "g") - aadd("z-armor-2", "laser-rifle-battery-case", "h") - - aadd("z-armor-3", "grenade", "a") - aadd("z-armor-3", "cluster-grenade", "b") - aadd("z-armor-3", "land-mine", "c") - aadd("z-armor-3", "slowdown-capsule", "d") - aadd("z-armor-3", "poison-capsule", "e") - aadd("z-armor-3", "defender-capsule", "f") - aadd("z-armor-3", "distractor-capsule", "g") - aadd("z-armor-3", "destroyer-capsule", "h") - aadd("z-armor-3", "discharge-defense-remote", "i") - - aadd("z-armor-4", "light-armor", "a") - aadd("z-armor-4", "heavy-armor", "b") - aadd("z-armor-4", "heavy-armor-2", "c") - aadd("z-armor-4", "heavy-armor-3", "d") - aadd("z-armor-4", "modular-armor", "e") - aadd("z-armor-4", "power-armor", "f") - aadd("z-armor-4", "power-armor-mk2", "g") - aadd("z-armor-4", "bob-power-armor-mk3", "h") - aadd("z-armor-4", "bob-power-armor-mk4", "i") - aadd("z-armor-4", "bob-power-armor-mk5", "j") - - aadd("z-armor-5", "exoskeleton-equipment", "a") - aadd("z-armor-5", "exoskeleton-equipment-2", "b") - aadd("z-armor-5", "exoskeleton-equipment-3", "c") - aadd("z-armor-5", "night-vision-equipment", "d") - aadd("z-armor-5", "night-vision-equipment-2", "e") - aadd("z-armor-5", "night-vision-equipment-3", "f") - aadd("z-armor-5", "personal-roboport-equipment", "h") - - aadd("z-armor-6", "solar-panel-equipment", "a") - aadd("z-armor-6", "solar-panel-equipment-2", "b") - aadd("z-armor-6", "solar-panel-equipment-3", "c") - aadd("z-armor-6", "solar-panel-equipment-4", "d") - aadd("z-armor-6", "fusion-reactor-equipment", "e") - aadd("z-armor-6", "fusion-reactor-equipment-2", "f") - aadd("z-armor-6", "fusion-reactor-equipment-3", "g") - aadd("z-armor-6", "fusion-reactor-equipment-4", "h") - - aadd("z-armor-7", "battery-equipment", "a") - aadd("z-armor-7", "battery-mk2-equipment", "b") - aadd("z-armor-7", "battery-mk3-equipment", "c") - aadd("z-armor-7", "battery-mk4-equipment", "d") - aadd("z-armor-7", "battery-mk5-equipment", "e") - aadd("z-armor-7", "battery-mk6-equipment", "f") - - aadd("z-armor-8", "personal-laser-defense-equipment", "a") - aadd("z-armor-8", "personal-laser-defense-equipment-2","b") - aadd("z-armor-8", "personal-laser-defense-equipment-3","c") - aadd("z-armor-8", "personal-laser-defense-equipment-4","d") - aadd("z-armor-8", "personal-laser-defense-equipment-5","e") - aadd("z-armor-8", "personal-laser-defense-equipment-6","f") - aadd("z-armor-8", "discharge-defense-equipment", "g") - - aadd("z-armor-9", "energy-shield-equipment", "a") - aadd("z-armor-9", "energy-shield-mk2-equipment", "b") - aadd("z-armor-9", "energy-shield-mk3-equipment", "c") - aadd("z-armor-9", "energy-shield-mk4-equipment", "d") - aadd("z-armor-9", "energy-shield-mk5-equipment", "e") - aadd("z-armor-9", "energy-shield-mk6-equipment", "f") - - if allow_changes then - ahide("laser-beam-rifle") - ahide("laser-beam-rifle-ammo") - else - aadd("z-armor-0", "laser-beam-rifle", "h") - aadd("z-armor-1", "laser-beam-rifle-ammo", "h") - end - -end -do --[[intermediate]]-- - - aadd("z-intermediate-0", "science-pack-4", "d") - aadd("z-intermediate-0", "alien-science-pack", "e") - aadd("z-intermediate-0", "science-pack-gold", "f") - - if i_exist("basic-circuit-board") then - aadd("z-intermediate-1", "basic-circuit-board", "a") - end - aadd("z-intermediate-1", "circuit-board", "c") - aadd("z-intermediate-1", "superior-circuit-board", "e") - aadd("z-intermediate-1", "multi-layer-circuit-board", "g") - aadd("z-intermediate-1", "advanced-processing-unit", "h") - - aadd("z-intermediate-2", "wooden-board", "a") - aadd("z-intermediate-2", "phenolic-board", "b") - aadd("z-intermediate-2", "fibreglass-board", "c") - aadd("z-intermediate-2", "solder-alloy", "d") - aadd("z-intermediate-2", "solder-alloy-lead", "e") - aadd("z-intermediate-2", "solder", "f") - aadd("z-intermediate-2", "basic-electronic-components", "g") - aadd("z-intermediate-2", "electronic-components", "h") - aadd("z-intermediate-2", "intergrated-electronics", "i") - aadd("z-intermediate-2", "processing-electronics", "j") - - aadd("z-intermediate-4", "steel-gear-wheel", "e") - aadd("z-intermediate-4", "brass-gear-wheel", "f") - aadd("z-intermediate-4", "titanium-gear-wheel", "g") - aadd("z-intermediate-4", "nitinol-gear-wheel", "h") - aadd("z-intermediate-4", "tungsten-gear-wheel", "i") - - aadd("z-intermediate-5", "steel-bearing-ball", "a") - aadd("z-intermediate-5", "ceramic-bearing-ball", "b") - aadd("z-intermediate-5", "nitinol-bearing-ball", "c") - aadd("z-intermediate-5", "titanium-bearing-ball", "d") - aadd("z-intermediate-5", "steel-bearing", "e") - aadd("z-intermediate-5", "ceramic-bearing", "f") - aadd("z-intermediate-5", "nitinol-bearing", "g") - aadd("z-intermediate-5", "titanium-bearing", "h") - - aadd("z-intermediate-6", "fish", "a") - aadd("z-intermediate-6", "raw-fish", "b") - aadd("z-intermediate-6", "iron-stick", "c") - aadd("z-intermediate-6", "explosives", "d") - aadd("z-intermediate-6", "grinding-wheel", "e") - aadd("z-intermediate-6", "polishing-wheel", "f") - aadd("z-intermediate-6", "polishing-compound", "g") - aadd("z-intermediate-6", "bob-seedling", "i") - aadd("z-intermediate-6", "bob-basic-greenhouse-cycle", "j") - aadd("z-intermediate-6", "bob-advanced-greenhouse-cycle","k") - aadd("z-intermediate-6", "fertiliser", "l") - - aadd("z-intermediate-7", "battery", "a") - aadd("z-intermediate-7", "lithium-ion-battery", "b") - aadd("z-intermediate-7", "silver-zinc-battery", "c") - aadd("z-intermediate-7", "engine-unit", "d") - aadd("z-intermediate-7", "electric-engine-unit", "e") - aadd("z-intermediate-7", "alien-artifact", "f") - aadd("z-intermediate-7", "small-alien-artifact", "g") - - aadd("z-intermediate-8", "flying-robot-frame", "a") - aadd("z-intermediate-8", "flying-robot-frame-2", "b") - aadd("z-intermediate-8", "flying-robot-frame-3", "c") - aadd("z-intermediate-8", "flying-robot-frame-4", "d") - aadd("z-intermediate-8", "roboport-chargepad-1", "e") - aadd("z-intermediate-8", "roboport-chargepad-2", "f") - aadd("z-intermediate-8", "roboport-chargepad-3", "g") - aadd("z-intermediate-8", "roboport-chargepad-4", "h") - - aadd("z-intermediate-9", "roboport-antenna-1", "a") - aadd("z-intermediate-9", "roboport-antenna-2", "b") - aadd("z-intermediate-9", "roboport-antenna-3", "c") - aadd("z-intermediate-9", "roboport-antenna-4", "d") - aadd("z-intermediate-9", "roboport-door-1", "e") - aadd("z-intermediate-9", "roboport-door-2", "f") - aadd("z-intermediate-9", "roboport-door-3", "g") - aadd("z-intermediate-9", "roboport-door-4", "h") - - aadd("z-intermediate-10", "robot-brain-logistic", "a") - aadd("z-intermediate-10", "robot-brain-logistic-2", "b") - aadd("z-intermediate-10", "robot-brain-logistic-3", "c") - aadd("z-intermediate-10", "robot-brain-logistic-4", "d") - aadd("z-intermediate-10", "robot-brain-construction", "e") - aadd("z-intermediate-10", "robot-brain-construction-2", "f") - aadd("z-intermediate-10", "robot-brain-construction-3", "g") - aadd("z-intermediate-10", "robot-brain-construction-4", "h") - - aadd("z-intermediate-11", "robot-tool-construction", "a") - aadd("z-intermediate-11", "robot-tool-construction-2", "b") - aadd("z-intermediate-11", "robot-tool-construction-3", "c") - aadd("z-intermediate-11", "robot-tool-construction-4", "d") - aadd("z-intermediate-11", "robot-tool-logistic", "e") - aadd("z-intermediate-11", "robot-tool-logistic-2", "f") - aadd("z-intermediate-11", "robot-tool-logistic-3", "g") - aadd("z-intermediate-11", "robot-tool-logistic-4", "h") - - aadd("z-intermediate-12", "rocket-silo", "a") - aadd("z-intermediate-12", "low-density-structure", "b") - aadd("z-intermediate-12", "rocket-fuel", "c") - aadd("z-intermediate-12", "rocket-part", "d") - aadd("z-intermediate-12", "rocket-control-unit", "e") - aadd("z-intermediate-12", "satellite", "f") - - - if use_graphics_tunnings then - zgc.set_icon("science-pack-4", "__ZGroupChange__/graphics/icons/science-pack4.png") - zgc.set_icon("science-pack-gold", "__ZGroupChange__/graphics/icons/science-pack-gold.png") - end - if z_balance.bob_synthetic then - rhide("wooden-board-synthetic") - rhide("phenolic-board-synthetic") - ahide("polishing-wheel-synthetic") - zgc.t_remove_recipe_unlock("polishing", "polishing-wheel-synthetic") - else - aadd("z-intermediate-2", "wooden-board-synthetic", "a") - aadd("z-intermediate-2", "phenolic-board-synthetic", "b") - aadd("z-intermediate-2", "fibreglass-board-synthetic", "c") - aadd("z-intermediate-6", "polishing-wheel", "f") - aadd("z-intermediate-6", "polishing-wheel-synthetic", "g") - end - -end -do --[[module]]-- - - aadd("z-module-0", "lab-2", "b") - aadd("z-module-0", "lab-alien", "c") - - aadd("z-module-0", "beacon-2", "f") - aadd("z-module-0", "beacon-3", "g") - - if data.raw["item-subgroup"]["speed-module"] then - aadd("speed-module", "speed-module", "a") - aadd("speed-module", "speed-module-2", "b") - aadd("speed-module", "speed-module-3", "c") - end - if data.raw["item-subgroup"]["productivity-module"] then - aadd("productivity-module", "productivity-module", "a") - aadd("productivity-module", "productivity-module-2", "b") - aadd("productivity-module", "productivity-module-3", "c") - end - if data.raw["item-subgroup"]["effectivity-module"] then - aadd("effectivity-module", "effectivity-module", "a") - aadd("effectivity-module", "effectivity-module-2", "b") - aadd("effectivity-module", "effectivity-module-3", "c") - end - - for _,v in pairs(data.raw["item-subgroup"]) do - if v.group == "module-intermediates" then v.group = "zgc-module" end - if v.group == "bobmodules" then v.group = "zgc-module" end - if v.name == "god-module" then v.order = "f-0g" end - end - - if allow_changes and i_exist("module-contact") then - ahide("5d-speed-module-4") - ahide("5d-speed-module-5") - ahide("5d-productivity-module-4") - ahide("5d-productivity-module-5") - ahide("5d-effectivity-module-4") - ahide("5d-effectivity-module-5") - ahide("5d-pollution-module-1") - ahide("5d-pollution-module-2") - ahide("5d-pollution-module-3") - ahide("5d-pollution-module-4") - ahide("5d-pollution-module-5") - ahide("5d-speed-effectivity-4") - ahide("5d-speed-pollution-4") - ahide("5d-speed-productivity-4") - ahide("5d-pollution-effectivity-4") - ahide("5d-pollution-productivity-4") - ahide("5d-effectivity-productivity-4") - ahide("5d-speed-effectivity-5") - ahide("5d-speed-pollution-5") - ahide("5d-speed-productivity-5") - ahide("5d-pollution-effectivity-5") - ahide("5d-pollution-productivity-5") - ahide("5d-effectivity-productivity-5") - - ahide("module-case","solder") - end - -end -do --[[weaponry]]-- - if not z_balance.bob_warfare then - aadd("z-weaponry-0", "rifle", "a") - aadd("z-weaponry-0", "sniper-rifle", "b") - aadd("z-weaponry-0", "poison-mine", "c") - aadd("z-weaponry-0", "slowdown-mine", "d") - aadd("z-weaponry-0", "distractor-mine", "e") - aadd("z-weaponry-0", "poison-mine", "f") - aadd("z-weaponry-0", "defender-robot", "g") - aadd("z-weaponry-0", "distractor-robot", "h") - aadd("z-weaponry-0", "destroyer-robot", "i") - aadd("z-weaponry-0", "bob-laser-robot-capsule", "j") - aadd("z-weaponry-0", "bob-laser-robot", "k") - - aadd("z-weaponry-1", "cordite", "a") - aadd("z-weaponry-1", "bullet-casing", "b") - aadd("z-weaponry-1", "shotgun-shell-casing", "c") - aadd("z-weaponry-3", "bullet", "d") - aadd("z-weaponry-4", "bullet-projectile", "e") - aadd("z-weaponry-1", "shot", "f") - aadd("z-weaponry-1", "magazine", "g") - aadd("z-weaponry-1", "rocket-body", "h") - aadd("z-weaponry-1", "rocket-warhead", "i") - aadd("z-weaponry-1", "rocket-engine", "j") - - aadd("z-weaponry-2", "robot-brain-combat", "a") - aadd("z-weaponry-2", "robot-brain-combat-2", "b") - aadd("z-weaponry-2", "robot-brain-combat-3", "c") - aadd("z-weaponry-2", "robot-brain-combat-4", "d") - aadd("z-weaponry-2", "robot-tool-combat", "e") - aadd("z-weaponry-2", "robot-tool-combat-2", "f") - aadd("z-weaponry-2", "robot-tool-combat-3", "g") - aadd("z-weaponry-2", "robot-tool-combat-4", "h") - - aadd("z-weaponry-3", "ap-bullet", "b") - aadd("z-weaponry-3", "he-bullet", "c") - aadd("z-weaponry-3", "flame-bullet", "d") - aadd("z-weaponry-3", "acid-bullet", "e") - aadd("z-weaponry-3", "poison-bullet", "f") - aadd("z-weaponry-3", "electric-bullet", "g") - - aadd("z-weaponry-4", "ap-bullet-projectile", "b") - aadd("z-weaponry-4", "he-bullet-projectile", "c") - aadd("z-weaponry-4", "flame-bullet-projectile", "d") - aadd("z-weaponry-4", "acid-bullet-projectile", "e") - aadd("z-weaponry-4", "poison-bullet-projectile", "f") - aadd("z-weaponry-4", "electric-bullet-projectile", "g") - - aadd("z-weaponry-5", "better-shotgun-shell", "a") - aadd("z-weaponry-5", "shotgun-ap-shell", "b") - aadd("z-weaponry-5", "shotgun-electric-shell", "c") - aadd("z-weaponry-5", "shotgun-explosive-shell", "d") - aadd("z-weaponry-5", "shotgun-flame-shell", "e") - aadd("z-weaponry-5", "shotgun-acid-shell", "f") - - aadd("z-weaponry-6", "piercing-rocket-warhead", "g") - aadd("z-weaponry-6", "electric-rocket-warhead", "h") - aadd("z-weaponry-6", "explosive-rocket-warhead", "i") - aadd("z-weaponry-6", "poison-rocket-warhead", "j") - aadd("z-weaponry-6", "flame-rocket-warhead", "k") - aadd("z-weaponry-6", "acid-rocket-warhead", "l") - - aadd("z-weaponry-7", "bullet-magazine", "a") - aadd("z-weaponry-7", "ap-bullet-magazine", "b") - aadd("z-weaponry-7", "he-bullet-magazine", "c") - aadd("z-weaponry-7", "flame-bullet-magazine", "d") - aadd("z-weaponry-7", "acid-bullet-magazine", "e") - aadd("z-weaponry-7", "poison-bullet-magazine", "f") - aadd("z-weaponry-7", "electric-bullet-magazine", "g") - - aadd("z-weaponry-8", "better-shotgun-shell", "a") - aadd("z-weaponry-8", "shotgun-ap-shell", "b") - aadd("z-weaponry-8", "shotgun-explosive-shell", "c") - aadd("z-weaponry-8", "shotgun-flame-shell", "d") - aadd("z-weaponry-8", "shotgun-acid-shell", "e") - aadd("z-weaponry-8", "shotgun-poison-shell", "f") - aadd("z-weaponry-8", "shotgun-electric-shell", "g") - - aadd("z-weaponry-1", "bob-rocket", "a") - aadd("z-weaponry-9", "bob-piercing-rocket", "b") - aadd("z-weaponry-9", "bob-explosive-rocket", "c") - aadd("z-weaponry-9", "bob-flame-rocket", "d") - aadd("z-weaponry-9", "bob-acid-rocket", "e") - aadd("z-weaponry-9", "bob-poison-rocket", "f") - aadd("z-weaponry-9", "bob-electric-rocket", "g") - - - if i_exist("cordite") then - data.raw.recipe["cordite"].ingredients = {} - data.raw.recipe["cordite"].ingredients = - { - {name="raw-wood", amount=4}, - {type="fluid", name="nitroglycerin", amount=1}, - {type="fluid", name="heavy-oil", amount=1}, - } - ahide("petroleum-jelly") - ahide("gun-cotton-synthetic") - ahide("gun-cotton") - zgc.t_remove_recipe_unlock("cordite-processing", "petroleum-jelly") - zgc.t_remove_recipe_unlock("cordite-processing", "gun-cotton") - zgc.t_remove_recipe_unlock("cordite-processing", "gun-cotton-synthetic") - else - switch_tech("cordite-processing") - end - else - ahide("petroleum-jelly") - ahide("gun-cotton") - ahide("gun-cotton-synthetic") - ahide("cordite") - ahide("poison-mine") - ahide("slowdown-mine") - ahide("distractor-mine") - ahide("bullet-magazine") - ahide("ap-bullet-magazine") - ahide("he-bullet-magazine") - ahide("flame-bullet-magazine") - ahide("acid-bullet-magazine") - ahide("poison-bullet-magazine") - ahide("electric-bullet-magazine") - ahide("better-shotgun-shell") - ahide("shotgun-ap-shell") - ahide("shotgun-electric-shell") - ahide("shotgun-explosive-shell") - ahide("shotgun-flame-shell") - ahide("shotgun-acid-shell") - ahide("shotgun-poison-shell") - ahide("bob-rocket") - ahide("rocket-body") - ahide("rocket-engine") - ahide("rocket-warhead") - ahide("bob-piercing-rocket") - ahide("piercing-rocket-warhead") - ahide("electric-rocket-warhead") - ahide("bob-electric-rocket") - ahide("bob-explosive-rocket") - ahide("explosive-rocket-warhead") - ahide("bob-acid-rocket") - ahide("acid-rocket-warhead") - ahide("bob-flame-rocket") - ahide("flame-rocket-warhead") - ahide("bob-poison-rocket") - ahide("poison-rocket-warhead") - ahide("rifle") - ahide("sniper-rifle") - ahide("poison-mine") - ahide("defender-robot") - ahide("distractor-robot") - ahide("destroyer-robot") - ahide("bob-laser-robot-capsule") - ahide("bob-laser-robot") - ahide("robot-brain-combat") - ahide("robot-brain-combat-2") - ahide("robot-brain-combat-3") - ahide("robot-brain-combat-4") - ahide("robot-tool-combat") - ahide("robot-tool-combat-2") - ahide("robot-tool-combat-3") - ahide("robot-tool-combat-4") - ahide("bullet-casing") - ahide("shotgun-shell-casing") - ahide("magazine") - ahide("shot") - ahide("bullet-projectile") - ahide("ap-bullet-projectile") - ahide("he-bullet-projectile") - ahide("flame-bullet-projectile") - ahide("acid-bullet-projectile") - ahide("poison-bullet-projectile") - ahide("electric-bullet-projectile") - ahide("bullet") - ahide("ap-bullet") - ahide("he-bullet") - ahide("flame-bullet") - ahide("acid-bullet") - ahide("poison-bullet") - ahide("electric-bullet") - ahide("bullet-magazine") - ahide("ap-bullet-magazine") - ahide("electric-bullet-magazine") - ahide("he-bullet-magazine") - ahide("flame-bullet-magazine") - ahide("acid-bullet-magazine") - ahide("poison-bullet-magazine") - - switch_tech("poison-mine") - switch_tech("slowdown-mine") - switch_tech("distractor-mine") - switch_tech("nitroglycerin-processing") - switch_tech("cordite-processing") - switch_tech("bob-bullets") - switch_tech("bob-ap-bullets") - switch_tech("bob-electric-bullets") - switch_tech("bob-he-bullets") - switch_tech("bob-flame-bullets") - switch_tech("bob-acid-bullets") - switch_tech("bob-poison-bullets") - switch_tech("bob-shotgun-shells") - switch_tech("bob-shotgun-ap-shells") - switch_tech("bob-shotgun-electric-shells") - switch_tech("bob-shotgun-explosive-shells") - switch_tech("bob-shotgun-flame-shells") - switch_tech("bob-shotgun-acid-shells") - switch_tech("bob-shotgun-poison-shells") - switch_tech("bob-rocket") - switch_tech("bob-piercing-rocket") - switch_tech("bob-electric-rocket") - switch_tech("bob-explosive-rocket") - switch_tech("bob-acid-rocket") - switch_tech("bob-flame-rocket") - switch_tech("bob-poison-rocket") - switch_tech("combat-robotics-4") - - zgc.t_remove_recipe_unlock("combat-robotics", "defender-robot") - zgc.t_remove_recipe_unlock("combat-robotics", "robot-brain-combat") - zgc.t_remove_recipe_unlock("combat-robotics", "robot-tool-combat") - zgc.t_remove_recipe_unlock("combat-robotics-2", "distractor-robot") - zgc.t_remove_recipe_unlock("combat-robotics-2", "robot-brain-combat-2") - zgc.t_remove_recipe_unlock("combat-robotics-2", "robot-tool-combat-2") - zgc.t_remove_recipe_unlock("combat-robotics-3", "destroyer-robot") - zgc.t_remove_recipe_unlock("combat-robotics-3", "robot-brain-combat-3") - zgc.t_remove_recipe_unlock("combat-robotics-3", "robot-tool-combat-3") - end - -end -do --[[trains-vehicles]]-- - if not z_balance.bob_transport then - aadd("z-trains-0", "armoured-diesel-locomotive", "b") - aadd("z-trains-0", "diesel-locomotive-2", "d") - aadd("z-trains-0", "diesel-locomotive-3", "e") - - aadd("z-trains-1", "armoured-cargo-wagon", "a") - aadd("z-trains-1", "cargo-wagon-2", "d") - aadd("z-trains-1", "cargo-wagon-3", "e") - - aadd("z-vehicles-0", "tank-2", "c") - aadd("z-vehicles-0", "tank-3", "d") - aadd("z-vehicles-0", "bob-robot-tank", "e") - - aadd("z-vehicles-3", "tank-machine-gun", "a") - aadd("z-vehicles-3", "vehicle-machine-gun", "b") - aadd("z-vehicles-3", "tank-cannon-2", "c") - aadd("z-vehicles-3", "tank-cannon-3", "d") - aadd("z-vehicles-3", "tank-artillery-1", "e") - aadd("z-vehicles-3", "tank-artillery-2", "f") - aadd("z-vehicles-3", "gatling-gun", "g") - aadd("z-vehicles-3", "tank-laser", "h") - - aadd("z-vehicles-4", "scatter-cannon-shell", "c") - aadd("z-vehicles-4", "poison-artillery-shell", "d") - aadd("z-vehicles-4", "explosive-artillery-shell", "e") - aadd("z-vehicles-4", "distractor-artillery-shell", "f") - else - ahide("gatling-gun") - ahide("tank-laser") - ahide("tank-2") - ahide("tank-3") - ahide("bob-robot-tank") - ahide("tank-cannon-2") - ahide("tank-cannon-3") - ahide("tank-artillery-1") - ahide("tank-artillery-2") - ahide("scatter-cannon-shell") - ahide("poison-artillery-shell") - ahide("explosive-artillery-shell") - ahide("distractor-artillery-shell") - - switch_tech("tanks-2") - switch_tech("tanks-3") - switch_tech("bob-robot-tanks") - - switch_tech("bob-tank-artillery-damage-1") - switch_tech("bob-tank-artillery-damage-2") - switch_tech("bob-tank-artillery-damage-3") - switch_tech("bob-tank-artillery-damage-4") - switch_tech("bob-tank-artillery-damage-5") - switch_tech("bob-tank-artillery-damage-6") - switch_tech("bob-tank-artillery-speed-1") - switch_tech("bob-tank-artillery-speed-2") - switch_tech("bob-tank-artillery-speed-3") - switch_tech("bob-tank-artillery-speed-4") - switch_tech("bob-tank-artillery-speed-5") - switch_tech("bob-tank-artillery-speed-6") - end - - ahide("combat-robot-dispenser-equipment") -end -do --[[alien]]-- - aadd("z-alien-7", "alien-acid", "a") - aadd("z-alien-7", "alien-explosive", "b") - aadd("z-alien-7", "alien-fire", "c") - aadd("z-alien-7", "alien-poison", "d") - - aadd("z-alien-8", "alien-acid-barrel", "a") - aadd("z-alien-8", "alien-explosive-barrel", "b") - aadd("z-alien-8", "alien-fire-barrel", "c") - aadd("z-alien-8", "alien-poison-barrel", "d") - - aadd("z-alien-8", "fill-alien-acid-barrel", "a") - aadd("z-alien-8", "fill-alien-explosive-barrel", "b") - aadd("z-alien-8", "fill-alien-fire-barrel", "c") - aadd("z-alien-8", "fill-alien-poison-barrel", "d") - - aadd("z-alien-9", "empty-alien-acid-barrel", "a") - aadd("z-alien-9", "empty-alien-explosive-barrel", "b") - aadd("z-alien-9", "empty-alien-fire-barrel", "c") - aadd("z-alien-9", "empty-alien-poison-barrel", "d") - - aadd("z-alien-9", "alien-acid-in-tanker", "a") - aadd("z-alien-9", "alien-explosive-in-tanker", "b") - aadd("z-alien-9", "alien-fire-in-tanker", "c") - aadd("z-alien-9", "alien-poison-in-tanker", "d") -end +local allow_changes = z_balance.bob + +do --[[gathering]]-- + aadd("z-gathering-0", "brass-axe", "c") + aadd("z-gathering-0", "cobalt-axe", "d") + aadd("z-gathering-0", "titanium-axe", "e") + aadd("z-gathering-0", "tungsten-axe", "f") + aadd("z-gathering-0", "diamond-axe", "g") + + aadd("z-gathering-3", "storage-tank-2", "b") + aadd("z-gathering-3", "storage-tank-3", "c") + aadd("z-gathering-3", "storage-tank-4", "d") + + if i_not_exist("5d-mining-drill-speed-1") then + aadd("z-gathering-4", "bob-mining-drill-1", "b") + aadd("z-gathering-4", "bob-mining-drill-2", "c") + aadd("z-gathering-4", "bob-mining-drill-3", "d") + aadd("z-gathering-4", "bob-mining-drill-4", "e") + else + aadd("z-gathering-5", "bob-mining-drill-1", "a") + aadd("z-gathering-5", "bob-mining-drill-2", "b") + aadd("z-gathering-5", "bob-mining-drill-3", "c") + aadd("z-gathering-5", "bob-mining-drill-4", "d") + end + + aadd("z-gathering-6", "bob-area-drill-1", "b") + aadd("z-gathering-6", "bob-area-drill-2", "c") + aadd("z-gathering-6", "bob-area-drill-3", "d") + aadd("z-gathering-6", "bob-area-drill-4", "e") + + aadd("z-gathering-7", "bob-area-mining-drill-1", "a") + aadd("z-gathering-7", "bob-area-mining-drill-2", "b") + aadd("z-gathering-7", "bob-area-mining-drill-3", "c") + aadd("z-gathering-7", "bob-area-mining-drill-4", "d") + + if allow_changes and i_not_exist("5d-small-pump") then + aadd("z-gathering-8", "small-pump-2", "e") + aadd("z-gathering-8", "small-pump-3", "f") + aadd("z-gathering-8", "small-pump-4", "g") + aadd("z-gathering-8", "void-pump", "h") + elseif allow_changes then + aadd("z-gathering-8", "small-pump", "d") + aadd("z-gathering-8", "5d-small-pump", "e") + aadd("z-gathering-8", "5d-small-pump-2", "f") + aadd("z-gathering-8", "void-pump", "j") + + ahide("small-pump-2") + ahide("small-pump-3") + ahide("small-pump-4") + switch_tech("bob-fluid-handling-3") + switch_tech("bob-fluid-handling-4") + else + aadd("z-gathering-10", "small-pump", "a") + aadd("z-gathering-10", "small-pump-2", "b") + aadd("z-gathering-10", "small-pump-3", "c") + aadd("z-gathering-10", "small-pump-4", "d") + aadd("z-gathering-10", "5d-small-pump", "e") + aadd("z-gathering-10", "5d-small-pump-2", "f") + aadd("z-gathering-10", "void-pump", "g") + end + + aadd("z-gathering-9", "water-miner-1", "a") + aadd("z-gathering-9", "water-miner-2", "b") + aadd("z-gathering-9", "water-miner-3", "c") + aadd("z-gathering-9", "water-miner-4", "d") + aadd("z-gathering-9", "water-miner-5", "e") + aadd("z-gathering-9", "pumpjack", "f") + aadd("z-gathering-9", "bob-pumpjack-1", "g") + aadd("z-gathering-9", "bob-pumpjack-2", "h") + aadd("z-gathering-9", "bob-pumpjack-3", "i") + aadd("z-gathering-9", "bob-pumpjack-4", "j") + + aadd("z-gathering-11", "water-pump", "a") + aadd("z-gathering-11", "water-pump-1", "b") + aadd("z-gathering-11", "water-pump-2", "c") + aadd("z-gathering-11", "water-pump-3", "d") + aadd("z-gathering-11", "water-pump-4", "e") + aadd("z-gathering-11", "water-pump-5", "f") + aadd("z-gathering-11", "air-pump", "g") + aadd("z-gathering-11", "air-pump-1", "h") + aadd("z-gathering-11", "air-pump-2", "i") + aadd("z-gathering-11", "air-pump-3", "j") + aadd("z-gathering-11", "air-pump-4", "k") + aadd("z-gathering-11", "air-pump-5", "l") + + if allow_changes and i_exist("5d-mining-drill-speed-1") then + ahide("bob-area-drill-1") + ahide("bob-area-drill-2") + ahide("bob-area-drill-3") + ahide("bob-area-drill-4") + ahide("bob-mining-drill-1") + ahide("bob-mining-drill-2") + ahide("bob-mining-drill-3") + ahide("bob-mining-drill-4") + ahide("bob-area-mining-drill-1") + ahide("bob-area-mining-drill-2") + ahide("bob-area-mining-drill-3") + ahide("bob-area-mining-drill-4") + + ahide("5d-storage-tank") + ahide("5d-pumpjack-2") + ahide("5d-pumpjack-3") + + switch_tech("bob-drills-1") + switch_tech("bob-drills-2") + switch_tech("bob-drills-3") + switch_tech("bob-drills-4") + switch_tech("bob-area-drills-1") + switch_tech("bob-area-drills-2") + switch_tech("bob-area-drills-3") + switch_tech("bob-area-drills-4") + + switch_tech("fluid-handling-2") + switch_tech("advanced-oil-processing-2") + + zgc.t_add_recipe_unlock("bob-fluid-handling-2", "storage-tank-2") + zgc.t_add_recipe_unlock("bob-fluid-handling-3", "storage-tank-3") + zgc.t_add_recipe_unlock("bob-fluid-handling-4", "storage-tank-4") + end + + if use_graphics_tunnings then + zgc.set_icon("water-miner-1", "__ZGroupChange__/graphics/icons/pump_water.png") + zgc.set_icon("water-miner-2", "__ZGroupChange__/graphics/icons/pump_water.png") + zgc.set_icon("water-miner-3", "__ZGroupChange__/graphics/icons/pump_water.png") + zgc.set_icon("water-miner-4", "__ZGroupChange__/graphics/icons/pump_water.png") + zgc.set_icon("water-miner-5", "__ZGroupChange__/graphics/icons/pump_water.png") + zgc.set_icon("pumpjack", "__ZGroupChange__/graphics/icons/pump_oil.png") + zgc.set_icon("bob-pumpjack-1", "__ZGroupChange__/graphics/icons/pump_oil.png") + zgc.set_icon("bob-pumpjack-2", "__ZGroupChange__/graphics/icons/pump_oil.png") + zgc.set_icon("bob-pumpjack-3", "__ZGroupChange__/graphics/icons/pump_oil.png") + zgc.set_icon("bob-pumpjack-4", "__ZGroupChange__/graphics/icons/pump_oil.png") + end + +end +do --[[production]]-- + aadd("z-production-0", "chemical-boiler", "b") + aadd("z-production-0", "mixing-furnace", "c") + aadd("z-production-0", "5d-furnace", "f") + aadd("z-production-0", "5d-masher", "g") + aadd("z-production-0", "5d-masher-2", "h") + + if i_exist("electric-furnace-2") then + aadd("z-production-2", "electric-furnace", "c") + end + aadd("z-production-2", "electric-furnace-2", "d") + aadd("z-production-2", "electric-furnace-3", "e") + aadd("z-production-2", "chemical-furnace", "g") + aadd("z-production-2", "electric-chemical-mixing-furnace", "h") + aadd("z-production-2", "electric-chemical-mixing-furnace-2","i") + + aadd("z-production-4", "assembling-machine-1", "a") + aadd("z-production-4", "assembling-machine-2", "b") + aadd("z-production-4", "assembling-machine-3", "c") + aadd("z-production-4", "assembling-machine-4", "d") + aadd("z-production-4", "assembling-machine-5", "e") + aadd("z-production-4", "assembling-machine-6", "f") + + aadd("z-production-8", "electrolyser", "a") + aadd("z-production-8", "electrolyser-1", "b") + aadd("z-production-8", "electrolyser-2", "c") + aadd("z-production-8", "electrolyser-3", "d") + aadd("z-production-8", "electrolyser-4", "e") + + aadd("z-production-9", "bob-greenhouse", "a") + + if use_graphics_tunnings then + zgc.set_icon("chemical-furnace", "__ZGroupChange__/graphics/icons/chemical-furnace.png") + zgc.set_icon("assembling-machine-1", "__ZGroupChange__/graphics/icons/assembling-machine-1.png") + zgc.set_icon("assembling-machine-2", "__ZGroupChange__/graphics/icons/assembling-machine-2.png") + zgc.set_icon("assembling-machine-3", "__ZGroupChange__/graphics/icons/assembling-machine-3.png") + zgc.set_icon("assembling-machine-4", "__ZGroupChange__/graphics/icons/assembling-machine-4.png") + zgc.set_icon("assembling-machine-5", "__ZGroupChange__/graphics/icons/assembling-machine-5.png") + zgc.set_icon("assembling-machine-6", "__ZGroupChange__/graphics/icons/assembling-machine-6.png") + + if data.raw["assembling-machine"]["assembling-machine-3"] then + data.raw["assembling-machine"]["assembling-machine-3"].animation = { + filename = "__ZGroupChange__/graphics/entity/assembling-machine-3-anim.png", + priority="high", + width = 142, + height = 113, + frame_count = 32, + line_length = 8, + shift = {0.84, -0.1} + } + end + if data.raw["assembling-machine"]["assembling-machine-4"] then + data.raw["assembling-machine"]["assembling-machine-4"].animation = { + filename = "__ZGroupChange__/graphics/entity/assembling-machine-4-anim.png", + priority="high", + width = 142, + height = 113, + frame_count = 32, + line_length = 8, + shift = {0.84, -0.1} + } + end + if data.raw["assembling-machine"]["assembling-machine-5"] then + data.raw["assembling-machine"]["assembling-machine-5"].animation = { + filename = "__ZGroupChange__/graphics/entity/assembling-machine-5-anim.png", + priority="high", + width = 142, + height = 113, + frame_count = 32, + line_length = 8, + shift = {0.84, -0.1} + } + end + if data.raw["assembling-machine"]["assembling-machine-6"] then + data.raw["assembling-machine"]["assembling-machine-6"].animation = { + filename = "__ZGroupChange__/graphics/entity/assembling-machine-6-anim.png", + priority="high", + width = 142, + height = 113, + frame_count = 32, + line_length = 8, + shift = {0.84, -0.1} + } + end + if data.raw["assembling-machine"]["chemical-furnace"] then + data.raw["assembling-machine"]["chemical-furnace"].animation.filename = "__ZGroupChange__/graphics/entity/electric-chemical-furnace.png" + end + end + + if i_not_exist("5d-chemical-plant-2") then + aadd("z-production-6", "oil-refinery-2", "b") + aadd("z-production-6", "oil-refinery-3", "c") + aadd("z-production-6", "oil-refinery-4", "c") + + aadd("z-production-7", "chemical-plant-2", "b") + aadd("z-production-7", "chemical-plant-3", "c") + aadd("z-production-7", "chemical-plant-4", "c") + elseif not allow_changes then + aadd("z-production-6", "oil-refinery-2", "b") + aadd("z-production-6", "oil-refinery-3", "c") + aadd("z-production-6", "oil-refinery-4", "d") + + aadd("z-production-7", "chemical-plant-2", "b") + aadd("z-production-7", "chemical-plant-3", "c") + aadd("z-production-7", "chemical-plant-4", "d") + else + ahide("oil-refinery-2") + ahide("oil-refinery-3") + ahide("oil-refinery-4") + ahide("chemical-plant-2") + ahide("chemical-plant-3") + ahide("chemical-plant-4") + + switch_tech("oil-processing-4") + switch_tech("chemical-plant-4") + + zgc.t_add_recipe_unlock("chemical-plant-2", "5d-chemical-plant-2") + zgc.t_add_recipe_unlock("chemical-plant-3", "5d-chemical-plant-3") + zgc.t_add_recipe_unlock("oil-processing-2", "5d-oil-refinery-2") + zgc.t_add_recipe_unlock("oil-processing-3", "5d-oil-refinery-3") + + zgc.t_remove_recipe_unlock("chemical-plant-2", "chemical-plant-2") + zgc.t_remove_recipe_unlock("chemical-plant-3", "chemical-plant-3") + zgc.t_remove_recipe_unlock("oil-processing-2", "oil-refinery-2") + zgc.t_remove_recipe_unlock("oil-processing-3", "oil-refinery-3") + end + + + if i_not_exist("electric-furnace-2") then + aadd("z-production-2", "5d-electric-furnace", "d") + aadd("z-production-2", "electric-mixing-furnace", "e") + elseif allow_changes then + ahide("5d-electric-furnace") + ahide("electric-mixing-furnace") + else + aadd("z-production-2", "5d-electric-furnace", "d") + aadd("z-production-2", "electric-mixing-furnace", "e") + end + + if not allow_changes then + aadd("z-production-5", "electronics-machine-1", "a") + aadd("z-production-5", "electronics-machine-2", "b") + aadd("z-production-5", "electronics-machine-3", "c") + else + ahide("electronics-machine-1") + ahide("electronics-machine-2") + ahide("electronics-machine-3") + + switch_tech("electronics-machine-1") + switch_tech("electronics-machine-2") + switch_tech("electronics-machine-3") + end + +end +do --[[resources]]-- + + aadd("z-resources-0", "raw-wood", "a") + aadd("z-resources-0", "wood", "b") + aadd("z-resources-0", "seedling", "c") + aadd("z-resources-0", "coal", "e") + aadd("z-resources-0", "5d-coal", "f") + aadd("z-resources-0", "stone", "g") + aadd("z-resources-0", "sulfur", "h") + aadd("z-resources-0", "sulfur-2", "i") + aadd("z-resources-0", "gem-ore", "j") + aadd("z-resources-0", "sort-gem-ore", "k") + + aadd("z-resources-3", "cobalt-ore", "a") + aadd("z-resources-3", "nickel-ore", "b") + aadd("z-resources-3", "quartz", "c") + aadd("z-resources-3", "quartz-ore", "d") + aadd("z-resources-3", "rutile-ore", "e") + aadd("z-resources-3", "silver-ore", "f") + aadd("z-resources-3", "tungsten-ore", "g") + + aadd("z-resources-4", "iron-ore", "a") + aadd("z-resources-4", "copper-ore", "b") + aadd("z-resources-4", "lead-ore", "c") + aadd("z-resources-4", "tin-ore", "d") + aadd("z-resources-4", "zinc-ore", "e") + aadd("z-resources-4", "bauxite-ore", "f") + aadd("z-resources-4", "gold-ore", "g") + + aadd("z-resources-5", "5d-iron-dust", "a") + aadd("z-resources-5", "5d-copper-dust", "b") + aadd("z-resources-5", "5d-lead-dust", "c") + aadd("z-resources-5", "5d-tin-dust", "d") + aadd("z-resources-5", "5d-zinc-dust", "e") + aadd("z-resources-5", "5d-aluminium-dust", "f") + aadd("z-resources-5", "5d-gold-dust", "g") + + iadd("z-resources-6", "plastic-bar", "a") + aadd("z-resources-6", "silicon", "b") + aadd("z-resources-6", "bob-silicon-plate", "c") + aadd("z-resources-6", "resin", "d") + aadd("z-resources-6", "bob-resin-wood", "e") + aadd("z-resources-6", "bob-resin-oil", "f") + aadd("z-resources-6", "rubber", "g") + aadd("z-resources-6", "bob-rubber", "h") + aadd("z-resources-6", "carbon", "i") + aadd("z-resources-6", "glass", "j") + aadd("z-resources-6", "quartz-glass", "k") + + radd("z-resources-9", "plastic-bar", "a") + aadd("z-resources-9", "salt", "a") + aadd("z-resources-9", "alumina", "b") + aadd("z-resources-9", "cobalt-oxide", "c") + iadd("z-resources-9", "lithium-cobalt-oxide", "d") + iadd("z-resources-9", "silicon-powder", "d") + aadd("z-resources-9", "lead-oxide", "e") + aadd("z-resources-9", "silver-oxide", "f") + aadd("z-resources-9", "tungsten-oxide", "g") + + aadd("z-resources-10", "calcium-chloride", "b") + aadd("z-resources-10", "lithium-chloride", "c") + radd("z-resources-10", "lithium-cobalt-oxide", "d") + radd("z-resources-10", "silicon-powder", "e") + aadd("z-resources-10", "silicon-wafer", "f") + aadd("z-resources-10", "silicon-carbide", "g") + aadd("z-resources-10", "silicon-nitride", "h") + aadd("z-resources-10", "silver-nitrate", "i") + aadd("z-resources-10", "petroleum-jelly", "j") + aadd("z-resources-10", "lithium-perchlorate", "k") + aadd("z-resources-10", "sodium-hydroxide", "l") + + aadd("z-resources-11", "ruby-ore", "a") + aadd("z-resources-11", "sapphire-ore", "b") + aadd("z-resources-11", "emerald-ore", "c") + aadd("z-resources-11", "amethyst-ore", "d") + aadd("z-resources-11", "topaz-ore", "e") + aadd("z-resources-11", "diamond-ore", "f") + + aadd("z-resources-12", "ruby-3", "a") + aadd("z-resources-12", "sapphire-3", "b") + aadd("z-resources-12", "emerald-3", "c") + aadd("z-resources-12", "amethyst-3", "d") + aadd("z-resources-12", "topaz-3", "e") + aadd("z-resources-12", "diamond-3", "f") + + aadd("z-resources-13", "ruby-4", "a") + aadd("z-resources-13", "sapphire-4", "b") + aadd("z-resources-13", "emerald-4", "c") + aadd("z-resources-13", "amethyst-4", "d") + aadd("z-resources-13", "topaz-4", "e") + aadd("z-resources-13", "diamond-4", "f") + + aadd("z-resources-14", "ruby-5", "a") + aadd("z-resources-14", "sapphire-5", "b") + aadd("z-resources-14", "emerald-5", "c") + aadd("z-resources-14", "amethyst-5", "d") + aadd("z-resources-14", "topaz-5", "e") + aadd("z-resources-14", "diamond-5", "f") + + if not z_balance.bob_synthetic then + aadd("z-resources-0", "synthetic-wood", "b") + else + ahide("synthetic-wood") + zgc.r_replace_ingredient_in_all("synthetic-wood", "wood") + end + + if z_balance.add_gems then + zgc.add_newRessource_min_max("gem-ore", "ruby-3", 1,1,0.2) + zgc.add_newRessource_min_max("gem-ore", "sapphire-3", 1,1,0.2) + zgc.add_newRessource_min_max("gem-ore", "emerald-3", 1,1,0.1) + zgc.add_newRessource_min_max("gem-ore", "amethyst-3", 1,1,0.1) + end +end +do --[[plates]]-- + + aadd("z-plates-6", "powdered-tungsten", "h") + + aadd("z-plates-7", "5d-iron-dust", "a") + aadd("z-plates-7", "5d-copper-dust", "b") + aadd("z-plates-7", "5d-lead-dust", "c") + aadd("z-plates-7", "5d-tin-dust", "d") + aadd("z-plates-7", "5d-zinc-dust", "e") + aadd("z-plates-7", "5d-aluminium-dust", "f") + aadd("z-plates-7", "5d-gold-dust", "g") + + aadd("z-plates-9", "iron-plate", "a") + aadd("z-plates-9", "copper-plate", "b") + aadd("z-plates-9", "lead-plate", "c") + aadd("z-plates-9", "tin-plate", "d") + aadd("z-plates-9", "zinc-plate", "e") + aadd("z-plates-9", "aluminium-plate", "f") + aadd("z-plates-9", "gold-plate", "g") + + aadd("z-plates-10", "5d-iron-plate", "a") + aadd("z-plates-10", "5d-copper-plate", "b") + aadd("z-plates-10", "5d-lead-plate-2", "c") + aadd("z-plates-10", "5d-tin-plate-2", "d") + aadd("z-plates-10", "5d-zinc-plate-2", "e") + aadd("z-plates-10", "5d-aluminium-plate-2", "f") + aadd("z-plates-10", "5d-gold-plate-2", "g") + + aadd("z-plates-11", "brass-alloy", "a") + aadd("z-plates-11", "cobalt-oxide-from-copper", "b") + aadd("z-plates-11", "bob-lead-plate", "c") + aadd("z-plates-11", "silver-from-lead", "d") + aadd("z-plates-11", "bob-zinc-plate", "e") + aadd("z-plates-11", "bob-aluminium-plate", "f") + aadd("z-plates-11", "bob-gold-plate", "g") + aadd("z-plates-11", "bronze-alloy", "h") + aadd("z-plates-11", "tungsten-carbide", "i") + + aadd("z-plates-12", "cobalt-plate", "a") + aadd("z-plates-12", "bob-nickel-plate", "b") + aadd("z-plates-12", "nickel-plate", "c") + aadd("z-plates-12", "silver-plate", "d") + aadd("z-plates-12", "electrum-alloy", "e") + aadd("z-plates-12", "alumina", "f") + aadd("z-plates-12", "lithium", "g") + aadd("z-plates-12", "invar-alloy", "h") + aadd("z-plates-12", "nitinol-alloy", "i") + + aadd("z-plates-13", "steel-plate", "a") + aadd("z-plates-13", "copper-tungsten-alloy", "c") + aadd("z-plates-13", "bob-tungsten-plate", "d") + aadd("z-plates-13", "tungsten-plate", "e") + aadd("z-plates-13", "titanium-plate", "f") + aadd("z-plates-13", "bob-titanium-plate", "g") + aadd("z-plates-13", "cobalt-steel-alloy", "h") + aadd("z-plates-13", "alien-orange-alloy", "j") + aadd("z-plates-13", "alien-blue-alloy", "k") + + + if data.raw.recipe["lead-plate"] then ahide("5d-lead-plate") end + if data.raw.recipe["tin-plate"] then ahide("5d-tin-plate") end + + if z_balance.bob_warfare then + ahide("gunmetal-alloy") + zgc.t_remove_recipe_unlock("zinc-processing", "gunmetal-alloy") + else + aadd("z-plates-15", "gunmetal-alloy", "j") + end +end +do --[[liquids]]-- + aadd("z-liquids-0", "empty-canister", "b") + aadd("z-liquids-0", "gas-canister", "c") + + aadd("z-liquids-1", "bob-oil-processing", "a") + aadd("z-liquids-1", "basic-oil-processing", "b") + aadd("z-liquids-1", "advanced-oil-processing", "d") + aadd("z-liquids-1", "ground-water", "e") + + aadd("z-liquids-2", "water", "a") + aadd("z-liquids-2", "lithia-water", "b") + aadd("z-liquids-2", "coal-cracking", "d") + aadd("z-liquids-2", "liquid-fuel", "e") + aadd("z-liquids-2", "lubricant", "f") + aadd("z-liquids-2", "bob-liquid-air", "g") + + aadd("z-liquids-5", "fill-water-barrel", "a") + aadd("z-liquids-5", "fill-lithia-water-barrel", "b") + aadd("z-liquids-5", "fill-crude-oil-barrel", "ca") + aadd("z-liquids-5", "bob-fill-crude-oil-barrel", "cb") + aadd("z-liquids-5", "fill-heavy-oil-barrel", "d") + aadd("z-liquids-5", "fill-light-oil-barrel", "e") + aadd("z-liquids-5", "fill-lubricant-barrel", "f") + aadd("z-liquids-5", "fill-sulfuric-acid-barrel", "g") + aadd("z-liquids-5", "fill-nitric-acid-barrel", "h") + + aadd("z-liquids-6", "empty-water-barrel", "a") + aadd("z-liquids-6", "empty-lithia-water-barrel", "b") + aadd("z-liquids-6", "empty-crude-oil-barrel", "ca") + aadd("z-liquids-6", "bob-empty-crude-oil-barrel", "cb") + aadd("z-liquids-6", "empty-heavy-oil-barrel", "d") + aadd("z-liquids-6", "empty-light-oil-barrel", "e") + aadd("z-liquids-6", "empty-lubricant-barrel", "f") + aadd("z-liquids-6", "empty-sulfuric-acid-barrel", "g") + aadd("z-liquids-6", "empty-nitric-acid-barrel", "h") + + aadd("z-liquids-7", "water-barrel", "a") + aadd("z-liquids-7", "lithia-water-barrel", "b") + aadd("z-liquids-7", "crude-oil-barrel", "c") + aadd("z-liquids-7", "heavy-oil-barrel", "d") + aadd("z-liquids-7", "light-oil-barrel", "e") + aadd("z-liquids-7", "lubricant-barrel", "f") + aadd("z-liquids-7", "sulfuric-acid-barrel", "g") + aadd("z-liquids-7", "nitric-acid-barrel", "h") + + aadd("z-liquids-8", "oxygen-canister", "a") + aadd("z-liquids-8", "hydrogen-canister", "b") + aadd("z-liquids-8", "nitrogen-canister", "c") + aadd("z-liquids-8", "chlorine-canister", "d") + aadd("z-liquids-8", "hydrogen-chloride-canister", "e") + aadd("z-liquids-8", "petroleum-gas-canister", "f") + aadd("z-liquids-8", "liquid-fuel-canister", "g") + aadd("z-liquids-8", "ferric-chloride-canister", "h") + + aadd("z-liquids-9", "empty-oxygen-canister", "a") + aadd("z-liquids-9", "empty-hydrogen-canister", "b") + aadd("z-liquids-9", "empty-nitrogen-canister", "c") + aadd("z-liquids-9", "empty-chlorine-canister", "d") + aadd("z-liquids-9", "empty-hydrogen-chloride-canister", "e") + aadd("z-liquids-9", "empty-petroleum-gas-canister", "f") + aadd("z-liquids-9", "empty-liquid-fuel-canister", "g") + aadd("z-liquids-9", "empty-ferric-chloride-canister", "h") + +end +do --[[chemistry]]-- + aadd("z-chemistry-0", "sulfuric-acid", "a") + aadd("z-chemistry-0", "sulfuric-acid-2", "b") + aadd("z-chemistry-0", "nitrogen", "d") + aadd("z-chemistry-0", "nitrogen-dioxide", "e") + aadd("z-chemistry-0", "nitric-acid", "g") + aadd("z-chemistry-0", "tungstic-acid", "h") + + aadd("z-chemistry-1", "water-electrolysis", "a") + aadd("z-chemistry-1", "salt-water-electrolysis", "b") + aadd("z-chemistry-1", "petroleum-gas-cracking", "c") + aadd("z-chemistry-1", "lithium-water-electrolysis", "d") + aadd("z-chemistry-1", "hydrogen-chloride", "e") + + aadd("z-chemistry-2", "heavy-oil-cracking", "a") + aadd("z-chemistry-2", "light-oil-cracking", "b") + aadd("z-chemistry-2", "ferric-chloride-solution", "d") + + aadd("z-chemistry-3", "solid-fuel-from-heavy-oil", "a") + aadd("z-chemistry-3", "solid-fuel-from-light-oil", "b") + aadd("z-chemistry-3", "solid-fuel-from-petroleum-gas","c") + aadd("z-chemistry-3", "solid-fuel-from-hydrogen", "d") + + if allow_changes and i_exist("nitroglycerin") then + data.raw.recipe["nitroglycerin"].ingredients = {} + data.raw.recipe["nitroglycerin"].ingredients = + { + {name="sulfur", amount=12}, + {type="fluid", name="nitric-acid", amount=3}, + {type="fluid", name="light-oil", amount=1}, + } + aadd("z-chemistry-1", "nitroglycerin", "f") + + ahide("sulfuric-nitric-acid") + ahide("glycerol") + switch_tech("nitroglycerin-processing") + zgc.t_remove_recipe_unlock("nitroglycerin-processing", "glycerol") + else + aadd("z-chemistry-1", "nitroglycerin", "f") + aadd("z-chemistry-1", "sulfuric-nitric-acid", "g") + aadd("z-chemistry-1", "glycerol", "h") + end + + if z_balance.bob_warfare then + ahide("nitroglycerin") + ahide("sulfuric-nitric-acid") + ahide("glycerol") + switch_tech("nitroglycerin-processing") + zgc.t_remove_recipe_unlock("nitroglycerin-processing", "glycerol") + end + +end +do --[[automatization]]-- + if bobmods and bobmods.logistics then + if i_exist("5d-basic-inserter-left-90d") then + aadd("z-automatization-1", "express-filter-inserter", "g") + + aadd("z-automatization-3", "express-inserter", "g") + aadd("z-automatization-3", "express-stack-inserter", "h") + aadd("z-automatization-3", "express-stack-filter-inserter","i") + else + aadd("z-automatization-0", "express-inserter", "d") + + aadd("z-automatization-1", "express-filter-inserter", "b") + aadd("z-automatization-1", "express-stack-filter-inserter","j") + + aadd("z-automatization-2", "stack-filter-inserter", "h") + aadd("z-automatization-2", "express-stack-inserter", "i") + end + end + + if z_balance.bob_inserters then + ahide("long-handed-inserter","inserter") + ahide("5d-inserter-speed1-range3","inserter") + ahide("5d-inserter-speed1-range1-close","inserter") + ahide("5d-inserter-speed1-range2-close","inserter") + ahide("5d-inserter-speed1-range3-close","inserter") + ahide("5d-inserter-speed2-range2","fast-inserter") + ahide("5d-inserter-speed2-range3","fast-inserter") + ahide("5d-inserter-speed2-range1-close","fast-inserter") + ahide("5d-inserter-speed2-range2-close","fast-inserter") + ahide("5d-inserter-speed2-range3-close","fast-inserter") + ahide("5d-inserter-speed3-range1","express-inserter") + ahide("5d-inserter-speed3-range2","express-inserter") + ahide("5d-inserter-speed3-range3","express-inserter") + ahide("5d-inserter-speed3-range1-close","express-inserter") + ahide("5d-inserter-speed3-range2-close","express-inserter") + ahide("5d-inserter-speed3-range3-close","express-inserter") + ahide("5d-basic-inserter-left-90d","inserter") + ahide("5d-basic-inserter-right-90d","inserter") + ahide("5d-basic-inserter-left-90d-close","inserter") + ahide("5d-basic-inserter-right-90d-close","inserter") + ahide("5d-fast-inserter-left-90d","fast-inserter") + ahide("5d-fast-inserter-right-90d","fast-inserter") + ahide("5d-fast-inserter-left-90d-close","fast-inserter") + ahide("5d-fast-inserter-right-90d-close","fast-inserter") + ahide("5d-extreme-inserter-left-90d","express-inserter") + ahide("5d-extreme-inserter-right-90d","express-inserter") + ahide("5d-extreme-inserter-left-90d-close","express-inserter") + ahide("5d-extreme-inserter-right-90d-close","express-inserter") + ahide("5d-inserter-smart-speed2-range1-close","filter-inserter") + ahide("5d-inserter-smart-speed2-range2","filter-inserter") + ahide("5d-inserter-smart-speed2-range2-close","filter-inserter") + ahide("5d-inserter-smart-speed3-range1","express-filter-inserter") + ahide("5d-inserter-smart-speed3-range1-close","express-filter-inserter") + + switch_tech("inserters") + switch_tech("inserters-2") + switch_tech("inserters-3") + switch_tech("close") + switch_tech("close-2") + switch_tech("close-3") + switch_tech("side-inserters") + switch_tech("side-inserters-2") + switch_tech("side-inserters-3") + switch_tech("smart-inserters") + end + +end +do --[[transport]]-- + aadd("z-transport-6", "valve", "a") + + if allow_changes then + if i_exist("5d-mk4-transport-belt") then + ahide("green-transport-belt") + ahide("green-underground-belt") + ahide("green-splitter") + ahide("purple-transport-belt") + ahide("purple-underground-belt") + ahide("purple-splitter") + else + aadd("z-transport-0", "green-transport-belt", "f") + aadd("z-transport-0", "purple-transport-belt", "g") + + aadd("z-transport-1", "green-underground-belt", "f") + aadd("z-transport-1", "purple-underground-belt", "g") + + aadd("z-transport-4", "green-splitter", "f") + aadd("z-transport-4", "purple-splitter", "g") + end + + switch_tech("bob-logistics-4") + switch_tech("bob-logistics-5") + + else + aadd("z-transport-0", "green-transport-belt", "f") + aadd("z-transport-0", "purple-transport-belt", "g") + + aadd("z-transport-1", "green-underground-belt", "f") + aadd("z-transport-1", "purple-underground-belt", "g") + + aadd("z-transport-4", "green-splitter", "f") + aadd("z-transport-4", "purple-splitter", "g") + end + + if z_balance.bob_pipes then + if data.raw.item["5d-pipe-mk2"] then + ahide("copper-pipe") + ahide("steel-pipe") + ahide("copper-pipe-to-ground") + ahide("steel-pipe-to-ground") + zgc.r_replace_ingredient_in_all("copper-pipe", "pipe") + zgc.r_replace_ingredient_in_all("steel-pipe", "pipe") + else + aadd("z-transport-9", "copper-pipe", "b") + aadd("z-transport-9", "steel-pipe", "d") + + aadd("z-transport-10", "copper-pipe-to-ground", "b") + aadd("z-transport-10", "steel-pipe-to-ground", "d") + end + ahide("stone-pipe") + ahide("bronze-pipe") + ahide("plastic-pipe") + ahide("brass-pipe") + ahide("ceramic-pipe") + ahide("titanium-pipe") + ahide("tungsten-pipe") + ahide("stone-pipe-to-ground") + ahide("bronze-pipe-to-ground") + ahide("plastic-pipe-to-ground") + ahide("brass-pipe-to-ground") + ahide("ceramic-pipe-to-ground") + ahide("titanium-pipe-to-ground") + ahide("tungsten-pipe-to-ground") + zgc.r_replace_ingredient_in_all("bronze-pipe", "pipe") + + if data.raw.item["5d-pipe-mk2"] then + zgc.r_replace_ingredient_in_all("steel-pipe", "5d-pipe-mk2") + zgc.r_replace_ingredient_in_all("plastic-pipe", "5d-pipe-mk2") + zgc.r_replace_ingredient_in_all("brass-pipe", "5d-pipe-mk2") + zgc.r_replace_ingredient_in_all("ceramic-pipe", "5d-pipe-mk3") + zgc.r_replace_ingredient_in_all("titanium-pipe", "5d-pipe-mk3") + zgc.r_replace_ingredient_in_all("tungsten-pipe", "5d-pipe-mk3") + else + zgc.r_replace_ingredient_in_all("plastic-pipe", "copper-pipe") + zgc.r_replace_ingredient_in_all("brass-pipe", "copper-pipe") + zgc.r_replace_ingredient_in_all("ceramic-pipe", "steel-pipe") + zgc.r_replace_ingredient_in_all("titanium-pipe", "steel-pipe") + zgc.r_replace_ingredient_in_all("tungsten-pipe", "steel-pipe") + end + else + aadd("z-transport-7", "stone-pipe", "a") + aadd("z-transport-7", "copper-pipe", "b") + aadd("z-transport-7", "steel-pipe", "c") + aadd("z-transport-7", "bronze-pipe", "d") + aadd("z-transport-7", "plastic-pipe", "e") + aadd("z-transport-7", "brass-pipe", "f") + aadd("z-transport-7", "ceramic-pipe", "g") + aadd("z-transport-7", "titanium-pipe", "h") + aadd("z-transport-7", "tungsten-pipe", "i") + + aadd("z-transport-8", "stone-pipe-to-ground", "a") + aadd("z-transport-8", "copper-pipe-to-ground", "b") + aadd("z-transport-8", "steel-pipe-to-ground", "c") + aadd("z-transport-8", "bronze-pipe-to-ground", "d") + aadd("z-transport-8", "plastic-pipe-to-ground", "e") + aadd("z-transport-8", "brass-pipe-to-ground", "f") + aadd("z-transport-8", "ceramic-pipe-to-ground", "g") + aadd("z-transport-8", "titanium-pipe-to-ground", "h") + aadd("z-transport-8", "tungsten-pipe-to-ground", "i") + end + + if use_graphics_tunnings then + local function set_sprite(pic) + local pic = pic or "u_line_y" + return { + filename = "__ZGroupChange__/graphics/entity/"..pic..".png", + priority = "high", + width = 64, + height = 64, + x = 64, + scale = 0.5 + } + end + + if i_exist("green-underground-belt") then + data.raw["underground-belt"]["green-underground-belt"].underground_sprite = set_sprite("u_line_g") end + if i_exist("purple-underground-belt") then + data.raw["underground-belt"]["purple-underground-belt"].underground_sprite = set_sprite("u_line_p") end + end +end +do --[[logistic]]-- + aadd("z-logistic-1", "roboport", "a") + aadd("z-logistic-1", "bob-roboport-2", "b") + aadd("z-logistic-1", "bob-roboport-3", "d") + aadd("z-logistic-1", "bob-roboport-4", "e") + aadd("z-logistic-1", "bob-logistic-zone-expander", "f") + aadd("z-logistic-1", "bob-logistic-zone-expander-2", "g") + aadd("z-logistic-1", "bob-logistic-zone-expander-3", "h") + aadd("z-logistic-1", "bob-logistic-zone-expander-4", "i") + aadd("z-logistic-1", "bob-logistic-zone-interface", "j") + + aadd("z-logistic-2", "bob-robo-charge-port", "a") + aadd("z-logistic-2", "bob-robo-charge-port-2", "b") + aadd("z-logistic-2", "bob-robo-charge-port-3", "c") + aadd("z-logistic-2", "bob-robo-charge-port-4", "d") + aadd("z-logistic-2", "bob-robo-charge-port-large", "e") + aadd("z-logistic-2", "bob-robo-charge-port-large-2", "f") + aadd("z-logistic-2", "bob-robo-charge-port-large-3", "g") + aadd("z-logistic-2", "bob-robo-charge-port-large-4", "h") + + aadd("z-logistic-3", "logistic-robot", "a") + aadd("z-logistic-3", "bob-logistic-robot-2", "b") + aadd("z-logistic-3", "bob-logistic-robot-3", "c") + aadd("z-logistic-3", "bob-logistic-robot-4", "d") + aadd("z-logistic-3", "construction-robot", "f") + aadd("z-logistic-3", "bob-construction-robot-2", "g") + aadd("z-logistic-3", "bob-construction-robot-3", "h") + aadd("z-logistic-3", "bob-construction-robot-4", "i") + + aadd("z-logistic-4", "logistic-chest-storage", "a") + aadd("z-logistic-4", "logistic-chest-requester", "b") + aadd("z-logistic-4", "logistic-chest-passive-provider", "c") + aadd("z-logistic-4", "logistic-chest-active-provider", "d") + aadd("z-logistic-4", "5d-storage", "e") + aadd("z-logistic-4", "5d-requester", "f") + aadd("z-logistic-4", "5d-passive", "g") + aadd("z-logistic-4", "5d-active", "h") + + aadd("z-logistic-5", "bob-robochest", "e") + aadd("z-logistic-5", "bob-robochest-2", "f") + aadd("z-logistic-5", "bob-robochest-3", "g") + aadd("z-logistic-5", "bob-robochest-4", "h") + + aadd("z-logistic-8", "tinned-copper-cable", "f") + aadd("z-logistic-8", "insulated-cable", "g") + aadd("z-logistic-8", "gilded-copper-cable", "h") + + + if use_graphics_tunnings then + zgc.set_icon("bob-roboport-3", "__ZGroupChange__/graphics/icons/roboport2.png") + zgc.set_icon("bob-roboport-4", "__ZGroupChange__/graphics/icons/roboport3.png") + + if data.raw["roboport"]["bob-roboport-3"] then + data.raw["roboport"]["bob-roboport-3"].base.filename = "__ZGroupChange__/graphics/entity/roboport2-base.png" + end + if data.raw["roboport"]["bob-roboport-3"] then + data.raw["roboport"]["bob-roboport-3"].base_patch.filename = "__ZGroupChange__/graphics/entity/roboport2-base-patch.png" + end + if data.raw["roboport"]["bob-roboport-3"] then + data.raw["roboport"]["bob-roboport-3"].base_animation.filename = "__ZGroupChange__/graphics/entity/roboport2-base-animation.png" + end + if data.raw["roboport"]["bob-roboport-3"] then + data.raw["roboport"]["bob-roboport-3"].door_animation_up.filename = "__ZGroupChange__/graphics/entity/roboport2-door-up.png" + end + if data.raw["roboport"]["bob-roboport-3"] then + data.raw["roboport"]["bob-roboport-3"].door_animation_down.filename = "__ZGroupChange__/graphics/entity/roboport2-door-down.png" + end + if data.raw["roboport"]["bob-roboport-3"] then + data.raw["roboport"]["bob-roboport-3"].recharging_animation.filename = "__ZGroupChange__/graphics/entity/roboport2-recharging.png" + end + if data.raw["roboport"]["bob-roboport-4"] then + data.raw["roboport"]["bob-roboport-4"].base.filename = "__ZGroupChange__/graphics/entity/roboport3-base.png" + end + if data.raw["roboport"]["bob-roboport-4"] then + data.raw["roboport"]["bob-roboport-4"].base_patch.filename = "__ZGroupChange__/graphics/entity/roboport3-base-patch.png" + end + end + + if i_not_exist("5d-storage") then + aadd("z-logistic-4", "logistic-chest-storage-2", "e") + aadd("z-logistic-4", "logistic-chest-requester-2", "f") + aadd("z-logistic-4", "logistic-chest-passive-provider-2","g") + aadd("z-logistic-4", "logistic-chest-active-provider-2", "h") + elseif allow_changes then + ahide("logistic-chest-storage-2") + ahide("logistic-chest-requester-2") + ahide("logistic-chest-passive-provider-2") + ahide("logistic-chest-active-provider-2") + else + aadd("z-logistic-7", "logistic-chest-storage-2", "e") + aadd("z-logistic-7", "logistic-chest-requester-2", "f") + aadd("z-logistic-7", "logistic-chest-passive-provider-2","g") + aadd("z-logistic-7", "logistic-chest-active-provider-2", "h") + end + + if i_not_exist("bob-roboport-2") then + aadd("z-logistic-1", "5d-roboport-2", "b") + aadd("z-logistic-3", "5d-logistic-robot-2", "b") + aadd("z-logistic-3", "5d-construction-robot-2", "g") + elseif allow_changes then + ahide("5d-roboport-2") + ahide("5d-logistic-robot-2") + ahide("5d-construction-robot-2") + switch_tech("robots-2") + else + aadd("z-logistic-3", "5d-logistic-robot-2", "b") + aadd("z-logistic-3", "5d-construction-robot-2", "g") + end + +end +do --[[energy]]-- + if not allow_changes or i_not_exist("5d-boiler") then + aadd("z-energy-1", "boiler-2", "b") + aadd("z-energy-1", "boiler-3", "c") + aadd("z-energy-1", "boiler-4", "d") + else + ahide("boiler-2") + ahide("boiler-3") + ahide("boiler-4") + switch_tech("bob-boiler-1") + switch_tech("bob-boiler-2") + switch_tech("bob-boiler-3") + end + + if not allow_changes or i_not_exist("5d-steam-engine-2") then + aadd("z-energy-2", "steam-engine-2", "b") + aadd("z-energy-2", "steam-engine-3", "c") + else + ahide("steam-engine-2") + ahide("steam-engine-3") + switch_tech("steam-engine-generator-1") + switch_tech("steam-engine-generator-2") + end + + if allow_changes + and i_not_exist("5d-basic-accumulator-2") + and i_not_exist("y-accumulator-m") + and i_exist("slow-accumulator") then + ahide("accumulator") + end + + if i_exist("5d-solar-panel-2") or i_exist("y_alien_solar") then + aadd("z-energy-4", "solar-panel-2", "b") + aadd("z-energy-4", "solar-panel-3", "d") + + aadd("z-energy-5", "solar-panel-small", "a") + aadd("z-energy-5", "solar-panel-small-2", "b") + aadd("z-energy-5", "solar-panel-small-3", "c") + aadd("z-energy-5", "solar-panel-large", "d") + aadd("z-energy-5", "solar-panel-large-2", "e") + aadd("z-energy-5", "solar-panel-large-3", "f") + if allow_changes then + ahide("solar-panel-2") + ahide("solar-panel-3") + end + else + aadd("z-energy-4", "solar-panel-2", "b") + aadd("z-energy-4", "solar-panel-3", "d") + + aadd("z-energy-5", "solar-panel-small", "a") + aadd("z-energy-5", "solar-panel-small-2", "b") + aadd("z-energy-5", "solar-panel-small-3", "c") + aadd("z-energy-5", "solar-panel-large", "g") + aadd("z-energy-5", "solar-panel-large-2", "h") + aadd("z-energy-5", "solar-panel-large-3", "i") + end + + aadd("z-energy-6", "slow-accumulator", "a") + aadd("z-energy-6", "large-accumulator", "b") + aadd("z-energy-6", "fast-accumulator", "c") + aadd("z-energy-6", "slow-accumulator-2", "d") + aadd("z-energy-6", "large-accumulator-2", "e") + aadd("z-energy-6", "fast-accumulator-2", "f") + aadd("z-energy-6", "slow-accumulator-3", "g") + aadd("z-energy-6", "large-accumulator-3", "h") + aadd("z-energy-6", "fast-accumulator-3", "i") + + aadd("z-energy-7", "medium-electric-pole-2", "c") + aadd("z-energy-7", "medium-electric-pole-3", "d") + aadd("z-energy-7", "medium-electric-pole-4", "e") + + aadd("z-energy-8", "big-electric-pole-2", "b") + aadd("z-energy-8", "big-electric-pole-3", "c") + aadd("z-energy-8", "big-electric-pole-4", "d") + aadd("z-energy-8", "substation-2", "f") + aadd("z-energy-8", "substation-3", "g") + aadd("z-energy-8", "substation-4", "h") + +end +do --[[defense]]-- + aadd("z-defense-0", "reinforced-wall", "b") + aadd("z-defense-0", "reinforced-gate", "e") + + if i_exist("bob-gun-turret-2") then + aadd("z-defense-3", "flamethrower-turret", "a") + aadd("z-defense-3", "bob-sniper-turret-1", "b") + aadd("z-defense-3", "bob-sniper-turret-2", "c") + aadd("z-defense-3", "bob-sniper-turret-3", "d") + + aadd("z-defense-4", "gun-turret", "a") + aadd("z-defense-4", "bob-gun-turret-2", "d") + aadd("z-defense-4", "bob-gun-turret-3", "e") + aadd("z-defense-4", "bob-gun-turret-4", "f") + aadd("z-defense-4", "bob-gun-turret-5", "g") + + aadd("z-defense-5", "laser-turret", "a") + aadd("z-defense-5", "bob-laser-turret-2", "d") + aadd("z-defense-5", "bob-laser-turret-3", "e") + aadd("z-defense-5", "bob-laser-turret-4", "f") + aadd("z-defense-5", "bob-laser-turret-5", "g") + end + + aadd("z-defense-8", "radar-2", "b") + aadd("z-defense-8", "radar-3", "c") + aadd("z-defense-8", "radar-4", "d") + aadd("z-defense-8", "radar-5", "e") + +end +do --[[armor]]-- + aadd("z-armor-0", "laser-rifle", "g") + + aadd("z-armor-1", "firearm-magazine", "a") + aadd("z-armor-1", "piercing-rounds-magazine", "b") + aadd("z-armor-1", "shotgun-shell", "c") + aadd("z-armor-1", "piercing-shotgun-shell", "d") + aadd("z-armor-1", "flame-thrower-ammo", "e") + aadd("z-armor-1", "rocket", "f") + aadd("z-armor-1", "explosive-rocket", "g") + + aadd("z-armor-2", "laser-rifle-battery", "a") + aadd("z-armor-2", "laser-rifle-battery-ruby", "b") + aadd("z-armor-2", "laser-rifle-battery-sapphire", "c") + aadd("z-armor-2", "laser-rifle-battery-emerald", "d") + aadd("z-armor-2", "laser-rifle-battery-amethyst", "e") + aadd("z-armor-2", "laser-rifle-battery-topaz", "f") + aadd("z-armor-2", "laser-rifle-battery-diamond", "g") + aadd("z-armor-2", "laser-rifle-battery-case", "h") + + aadd("z-armor-3", "grenade", "a") + aadd("z-armor-3", "cluster-grenade", "b") + aadd("z-armor-3", "land-mine", "c") + aadd("z-armor-3", "slowdown-capsule", "d") + aadd("z-armor-3", "poison-capsule", "e") + aadd("z-armor-3", "defender-capsule", "f") + aadd("z-armor-3", "distractor-capsule", "g") + aadd("z-armor-3", "destroyer-capsule", "h") + aadd("z-armor-3", "discharge-defense-remote", "i") + + aadd("z-armor-4", "light-armor", "a") + aadd("z-armor-4", "heavy-armor", "b") + aadd("z-armor-4", "heavy-armor-2", "c") + aadd("z-armor-4", "heavy-armor-3", "d") + aadd("z-armor-4", "modular-armor", "e") + aadd("z-armor-4", "power-armor", "f") + aadd("z-armor-4", "power-armor-mk2", "g") + aadd("z-armor-4", "bob-power-armor-mk3", "h") + aadd("z-armor-4", "bob-power-armor-mk4", "i") + aadd("z-armor-4", "bob-power-armor-mk5", "j") + + aadd("z-armor-5", "exoskeleton-equipment", "a") + aadd("z-armor-5", "exoskeleton-equipment-2", "b") + aadd("z-armor-5", "exoskeleton-equipment-3", "c") + aadd("z-armor-5", "night-vision-equipment", "d") + aadd("z-armor-5", "night-vision-equipment-2", "e") + aadd("z-armor-5", "night-vision-equipment-3", "f") + aadd("z-armor-5", "personal-roboport-equipment", "h") + + aadd("z-armor-6", "solar-panel-equipment", "a") + aadd("z-armor-6", "solar-panel-equipment-2", "b") + aadd("z-armor-6", "solar-panel-equipment-3", "c") + aadd("z-armor-6", "solar-panel-equipment-4", "d") + aadd("z-armor-6", "fusion-reactor-equipment", "e") + aadd("z-armor-6", "fusion-reactor-equipment-2", "f") + aadd("z-armor-6", "fusion-reactor-equipment-3", "g") + aadd("z-armor-6", "fusion-reactor-equipment-4", "h") + + aadd("z-armor-7", "battery-equipment", "a") + aadd("z-armor-7", "battery-mk2-equipment", "b") + aadd("z-armor-7", "battery-mk3-equipment", "c") + aadd("z-armor-7", "battery-mk4-equipment", "d") + aadd("z-armor-7", "battery-mk5-equipment", "e") + aadd("z-armor-7", "battery-mk6-equipment", "f") + + aadd("z-armor-8", "personal-laser-defense-equipment", "a") + aadd("z-armor-8", "personal-laser-defense-equipment-2","b") + aadd("z-armor-8", "personal-laser-defense-equipment-3","c") + aadd("z-armor-8", "personal-laser-defense-equipment-4","d") + aadd("z-armor-8", "personal-laser-defense-equipment-5","e") + aadd("z-armor-8", "personal-laser-defense-equipment-6","f") + aadd("z-armor-8", "discharge-defense-equipment", "g") + + aadd("z-armor-9", "energy-shield-equipment", "a") + aadd("z-armor-9", "energy-shield-mk2-equipment", "b") + aadd("z-armor-9", "energy-shield-mk3-equipment", "c") + aadd("z-armor-9", "energy-shield-mk4-equipment", "d") + aadd("z-armor-9", "energy-shield-mk5-equipment", "e") + aadd("z-armor-9", "energy-shield-mk6-equipment", "f") + + if allow_changes then + ahide("laser-beam-rifle") + ahide("laser-beam-rifle-ammo") + else + aadd("z-armor-0", "laser-beam-rifle", "h") + aadd("z-armor-1", "laser-beam-rifle-ammo", "h") + end + +end +do --[[intermediate]]-- + + aadd("z-intermediate-0", "science-pack-4", "d") + aadd("z-intermediate-0", "alien-science-pack", "e") + aadd("z-intermediate-0", "science-pack-gold", "f") + + if i_exist("basic-circuit-board") then + aadd("z-intermediate-1", "basic-circuit-board", "a") + end + aadd("z-intermediate-1", "circuit-board", "c") + aadd("z-intermediate-1", "superior-circuit-board", "e") + aadd("z-intermediate-1", "multi-layer-circuit-board", "g") + aadd("z-intermediate-1", "advanced-processing-unit", "h") + + aadd("z-intermediate-2", "wooden-board", "a") + aadd("z-intermediate-2", "phenolic-board", "b") + aadd("z-intermediate-2", "fibreglass-board", "c") + aadd("z-intermediate-2", "solder-alloy", "d") + aadd("z-intermediate-2", "solder-alloy-lead", "e") + aadd("z-intermediate-2", "solder", "f") + aadd("z-intermediate-2", "module-case", "f") + aadd("z-intermediate-2", "basic-electronic-components", "g") + aadd("z-intermediate-2", "electronic-components", "h") + aadd("z-intermediate-2", "intergrated-electronics", "i") + aadd("z-intermediate-2", "processing-electronics", "j") + + aadd("z-intermediate-4", "steel-gear-wheel", "e") + aadd("z-intermediate-4", "brass-gear-wheel", "f") + aadd("z-intermediate-4", "titanium-gear-wheel", "g") + aadd("z-intermediate-4", "nitinol-gear-wheel", "h") + aadd("z-intermediate-4", "tungsten-gear-wheel", "i") + + aadd("z-intermediate-5", "steel-bearing-ball", "a") + aadd("z-intermediate-5", "ceramic-bearing-ball", "b") + aadd("z-intermediate-5", "nitinol-bearing-ball", "c") + aadd("z-intermediate-5", "titanium-bearing-ball", "d") + aadd("z-intermediate-5", "steel-bearing", "e") + aadd("z-intermediate-5", "ceramic-bearing", "f") + aadd("z-intermediate-5", "nitinol-bearing", "g") + aadd("z-intermediate-5", "titanium-bearing", "h") + + aadd("z-intermediate-6", "fish", "a") + aadd("z-intermediate-6", "raw-fish", "b") + aadd("z-intermediate-6", "iron-stick", "c") + aadd("z-intermediate-6", "explosives", "d") + aadd("z-intermediate-6", "grinding-wheel", "e") + aadd("z-intermediate-6", "polishing-wheel", "f") + aadd("z-intermediate-6", "polishing-compound", "g") + aadd("z-intermediate-6", "bob-seedling", "i") + aadd("z-intermediate-6", "bob-basic-greenhouse-cycle", "j") + aadd("z-intermediate-6", "bob-advanced-greenhouse-cycle","k") + aadd("z-intermediate-6", "fertiliser", "l") + + aadd("z-intermediate-7", "battery", "a") + aadd("z-intermediate-7", "lithium-ion-battery", "b") + aadd("z-intermediate-7", "silver-zinc-battery", "c") + aadd("z-intermediate-7", "engine-unit", "d") + aadd("z-intermediate-7", "electric-engine-unit", "e") + aadd("z-intermediate-7", "alien-artifact", "f") + aadd("z-intermediate-7", "small-alien-artifact", "g") + + aadd("z-intermediate-8", "flying-robot-frame", "a") + aadd("z-intermediate-8", "flying-robot-frame-2", "b") + aadd("z-intermediate-8", "flying-robot-frame-3", "c") + aadd("z-intermediate-8", "flying-robot-frame-4", "d") + aadd("z-intermediate-8", "roboport-chargepad-1", "e") + aadd("z-intermediate-8", "roboport-chargepad-2", "f") + aadd("z-intermediate-8", "roboport-chargepad-3", "g") + aadd("z-intermediate-8", "roboport-chargepad-4", "h") + + aadd("z-intermediate-9", "roboport-antenna-1", "a") + aadd("z-intermediate-9", "roboport-antenna-2", "b") + aadd("z-intermediate-9", "roboport-antenna-3", "c") + aadd("z-intermediate-9", "roboport-antenna-4", "d") + aadd("z-intermediate-9", "roboport-door-1", "e") + aadd("z-intermediate-9", "roboport-door-2", "f") + aadd("z-intermediate-9", "roboport-door-3", "g") + aadd("z-intermediate-9", "roboport-door-4", "h") + + aadd("z-intermediate-10", "robot-brain-logistic", "a") + aadd("z-intermediate-10", "robot-brain-logistic-2", "b") + aadd("z-intermediate-10", "robot-brain-logistic-3", "c") + aadd("z-intermediate-10", "robot-brain-logistic-4", "d") + aadd("z-intermediate-10", "robot-brain-construction", "e") + aadd("z-intermediate-10", "robot-brain-construction-2", "f") + aadd("z-intermediate-10", "robot-brain-construction-3", "g") + aadd("z-intermediate-10", "robot-brain-construction-4", "h") + + aadd("z-intermediate-11", "robot-tool-construction", "a") + aadd("z-intermediate-11", "robot-tool-construction-2", "b") + aadd("z-intermediate-11", "robot-tool-construction-3", "c") + aadd("z-intermediate-11", "robot-tool-construction-4", "d") + aadd("z-intermediate-11", "robot-tool-logistic", "e") + aadd("z-intermediate-11", "robot-tool-logistic-2", "f") + aadd("z-intermediate-11", "robot-tool-logistic-3", "g") + aadd("z-intermediate-11", "robot-tool-logistic-4", "h") + + aadd("z-intermediate-12", "rocket-silo", "a") + aadd("z-intermediate-12", "low-density-structure", "b") + aadd("z-intermediate-12", "rocket-fuel", "c") + aadd("z-intermediate-12", "rocket-part", "d") + aadd("z-intermediate-12", "rocket-control-unit", "e") + aadd("z-intermediate-12", "satellite", "f") + + + if allow_changes and i_exist("module-case") and i_exist("solder") then + ahide("module-case","solder") + for tech_name,tech in pairs(data.raw.technology) do + if tech.unit.ingredients then + for i,ingredient in pairs(tech.unit.ingredients) do + if ingredient[1] == "module-case" then + data.raw.technology[tech_name].unit.ingredients[i][1] = "solder" + end + end + end + end + end + + if use_graphics_tunnings then + zgc.set_icon("science-pack-4", "__ZGroupChange__/graphics/icons/science-pack4.png") + zgc.set_icon("science-pack-gold", "__ZGroupChange__/graphics/icons/science-pack-gold.png") + end + if z_balance.bob_synthetic then + rhide("wooden-board-synthetic") + rhide("phenolic-board-synthetic") + ahide("polishing-wheel-synthetic") + zgc.t_remove_recipe_unlock("polishing", "polishing-wheel-synthetic") + else + aadd("z-intermediate-2", "wooden-board-synthetic", "a") + aadd("z-intermediate-2", "phenolic-board-synthetic", "b") + aadd("z-intermediate-2", "fibreglass-board-synthetic", "c") + aadd("z-intermediate-6", "polishing-wheel", "f") + aadd("z-intermediate-6", "polishing-wheel-synthetic", "g") + end + +end +do --[[module]]-- + + aadd("z-module-0", "lab-2", "b") + aadd("z-module-0", "lab-alien", "c") + + aadd("z-module-0", "beacon-2", "f") + aadd("z-module-0", "beacon-3", "g") + + if data.raw["item-subgroup"]["speed-module"] then + aadd("speed-module", "speed-module", "a") + aadd("speed-module", "speed-module-2", "b") + aadd("speed-module", "speed-module-3", "c") + end + if data.raw["item-subgroup"]["productivity-module"] then + aadd("productivity-module", "productivity-module", "a") + aadd("productivity-module", "productivity-module-2", "b") + aadd("productivity-module", "productivity-module-3", "c") + end + if data.raw["item-subgroup"]["effectivity-module"] then + aadd("effectivity-module", "effectivity-module", "a") + aadd("effectivity-module", "effectivity-module-2", "b") + aadd("effectivity-module", "effectivity-module-3", "c") + end + + for _,v in pairs(data.raw["item-subgroup"]) do + if v.group == "module-intermediates" then v.group = "zgc-module" end + if v.group == "bobmodules" then v.group = "zgc-module" end + if v.name == "god-module" then v.order = "f-0g" end + end + + if allow_changes and i_exist("module-contact") then + ahide("5d-speed-module-4") + ahide("5d-speed-module-5") + ahide("5d-productivity-module-4") + ahide("5d-productivity-module-5") + ahide("5d-effectivity-module-4") + ahide("5d-effectivity-module-5") + ahide("5d-pollution-module-1") + ahide("5d-pollution-module-2") + ahide("5d-pollution-module-3") + ahide("5d-pollution-module-4") + ahide("5d-pollution-module-5") + ahide("5d-speed-effectivity-4") + ahide("5d-speed-pollution-4") + ahide("5d-speed-productivity-4") + ahide("5d-pollution-effectivity-4") + ahide("5d-pollution-productivity-4") + ahide("5d-effectivity-productivity-4") + ahide("5d-speed-effectivity-5") + ahide("5d-speed-pollution-5") + ahide("5d-speed-productivity-5") + ahide("5d-pollution-effectivity-5") + ahide("5d-pollution-productivity-5") + ahide("5d-effectivity-productivity-5") + end + +end +do --[[weaponry]]-- + if not z_balance.bob_warfare then + aadd("z-weaponry-0", "rifle", "a") + aadd("z-weaponry-0", "sniper-rifle", "b") + aadd("z-weaponry-0", "poison-mine", "c") + aadd("z-weaponry-0", "slowdown-mine", "d") + aadd("z-weaponry-0", "distractor-mine", "e") + aadd("z-weaponry-0", "poison-mine", "f") + aadd("z-weaponry-0", "defender-robot", "g") + aadd("z-weaponry-0", "distractor-robot", "h") + aadd("z-weaponry-0", "destroyer-robot", "i") + aadd("z-weaponry-0", "bob-laser-robot-capsule", "j") + aadd("z-weaponry-0", "bob-laser-robot", "k") + + aadd("z-weaponry-1", "cordite", "a") + aadd("z-weaponry-1", "bullet-casing", "b") + aadd("z-weaponry-1", "shotgun-shell-casing", "c") + aadd("z-weaponry-3", "bullet", "d") + aadd("z-weaponry-4", "bullet-projectile", "e") + aadd("z-weaponry-1", "shot", "f") + aadd("z-weaponry-1", "magazine", "g") + aadd("z-weaponry-1", "rocket-body", "h") + aadd("z-weaponry-1", "rocket-warhead", "i") + aadd("z-weaponry-1", "rocket-engine", "j") + + aadd("z-weaponry-2", "robot-brain-combat", "a") + aadd("z-weaponry-2", "robot-brain-combat-2", "b") + aadd("z-weaponry-2", "robot-brain-combat-3", "c") + aadd("z-weaponry-2", "robot-brain-combat-4", "d") + aadd("z-weaponry-2", "robot-tool-combat", "e") + aadd("z-weaponry-2", "robot-tool-combat-2", "f") + aadd("z-weaponry-2", "robot-tool-combat-3", "g") + aadd("z-weaponry-2", "robot-tool-combat-4", "h") + + aadd("z-weaponry-3", "ap-bullet", "b") + aadd("z-weaponry-3", "he-bullet", "c") + aadd("z-weaponry-3", "flame-bullet", "d") + aadd("z-weaponry-3", "acid-bullet", "e") + aadd("z-weaponry-3", "poison-bullet", "f") + aadd("z-weaponry-3", "electric-bullet", "g") + + aadd("z-weaponry-4", "ap-bullet-projectile", "b") + aadd("z-weaponry-4", "he-bullet-projectile", "c") + aadd("z-weaponry-4", "flame-bullet-projectile", "d") + aadd("z-weaponry-4", "acid-bullet-projectile", "e") + aadd("z-weaponry-4", "poison-bullet-projectile", "f") + aadd("z-weaponry-4", "electric-bullet-projectile", "g") + + aadd("z-weaponry-5", "better-shotgun-shell", "a") + aadd("z-weaponry-5", "shotgun-ap-shell", "b") + aadd("z-weaponry-5", "shotgun-electric-shell", "c") + aadd("z-weaponry-5", "shotgun-explosive-shell", "d") + aadd("z-weaponry-5", "shotgun-flame-shell", "e") + aadd("z-weaponry-5", "shotgun-acid-shell", "f") + + aadd("z-weaponry-6", "piercing-rocket-warhead", "g") + aadd("z-weaponry-6", "electric-rocket-warhead", "h") + aadd("z-weaponry-6", "explosive-rocket-warhead", "i") + aadd("z-weaponry-6", "poison-rocket-warhead", "j") + aadd("z-weaponry-6", "flame-rocket-warhead", "k") + aadd("z-weaponry-6", "acid-rocket-warhead", "l") + + aadd("z-weaponry-7", "bullet-magazine", "a") + aadd("z-weaponry-7", "ap-bullet-magazine", "b") + aadd("z-weaponry-7", "he-bullet-magazine", "c") + aadd("z-weaponry-7", "flame-bullet-magazine", "d") + aadd("z-weaponry-7", "acid-bullet-magazine", "e") + aadd("z-weaponry-7", "poison-bullet-magazine", "f") + aadd("z-weaponry-7", "electric-bullet-magazine", "g") + + aadd("z-weaponry-8", "better-shotgun-shell", "a") + aadd("z-weaponry-8", "shotgun-ap-shell", "b") + aadd("z-weaponry-8", "shotgun-explosive-shell", "c") + aadd("z-weaponry-8", "shotgun-flame-shell", "d") + aadd("z-weaponry-8", "shotgun-acid-shell", "e") + aadd("z-weaponry-8", "shotgun-poison-shell", "f") + aadd("z-weaponry-8", "shotgun-electric-shell", "g") + + aadd("z-weaponry-1", "bob-rocket", "a") + aadd("z-weaponry-9", "bob-piercing-rocket", "b") + aadd("z-weaponry-9", "bob-explosive-rocket", "c") + aadd("z-weaponry-9", "bob-flame-rocket", "d") + aadd("z-weaponry-9", "bob-acid-rocket", "e") + aadd("z-weaponry-9", "bob-poison-rocket", "f") + aadd("z-weaponry-9", "bob-electric-rocket", "g") + + + if i_exist("cordite") then + data.raw.recipe["cordite"].ingredients = {} + data.raw.recipe["cordite"].ingredients = + { + {name="raw-wood", amount=4}, + {type="fluid", name="nitroglycerin", amount=1}, + {type="fluid", name="heavy-oil", amount=1}, + } + ahide("petroleum-jelly") + ahide("gun-cotton-synthetic") + ahide("gun-cotton") + zgc.t_remove_recipe_unlock("cordite-processing", "petroleum-jelly") + zgc.t_remove_recipe_unlock("cordite-processing", "gun-cotton") + zgc.t_remove_recipe_unlock("cordite-processing", "gun-cotton-synthetic") + else + switch_tech("cordite-processing") + end + else + ahide("petroleum-jelly") + ahide("gun-cotton") + ahide("gun-cotton-synthetic") + ahide("cordite") + ahide("poison-mine") + ahide("slowdown-mine") + ahide("distractor-mine") + ahide("bullet-magazine") + ahide("ap-bullet-magazine") + ahide("he-bullet-magazine") + ahide("flame-bullet-magazine") + ahide("acid-bullet-magazine") + ahide("poison-bullet-magazine") + ahide("electric-bullet-magazine") + ahide("better-shotgun-shell") + ahide("shotgun-ap-shell") + ahide("shotgun-electric-shell") + ahide("shotgun-explosive-shell") + ahide("shotgun-flame-shell") + ahide("shotgun-acid-shell") + ahide("shotgun-poison-shell") + ahide("bob-rocket") + ahide("rocket-body") + ahide("rocket-engine") + ahide("rocket-warhead") + ahide("bob-piercing-rocket") + ahide("piercing-rocket-warhead") + ahide("electric-rocket-warhead") + ahide("bob-electric-rocket") + ahide("bob-explosive-rocket") + ahide("explosive-rocket-warhead") + ahide("bob-acid-rocket") + ahide("acid-rocket-warhead") + ahide("bob-flame-rocket") + ahide("flame-rocket-warhead") + ahide("bob-poison-rocket") + ahide("poison-rocket-warhead") + ahide("rifle") + ahide("sniper-rifle") + ahide("poison-mine") + ahide("defender-robot") + ahide("distractor-robot") + ahide("destroyer-robot") + ahide("bob-laser-robot-capsule") + ahide("bob-laser-robot") + ahide("robot-brain-combat") + ahide("robot-brain-combat-2") + ahide("robot-brain-combat-3") + ahide("robot-brain-combat-4") + ahide("robot-tool-combat") + ahide("robot-tool-combat-2") + ahide("robot-tool-combat-3") + ahide("robot-tool-combat-4") + ahide("bullet-casing") + ahide("shotgun-shell-casing") + ahide("magazine") + ahide("shot") + ahide("bullet-projectile") + ahide("ap-bullet-projectile") + ahide("he-bullet-projectile") + ahide("flame-bullet-projectile") + ahide("acid-bullet-projectile") + ahide("poison-bullet-projectile") + ahide("electric-bullet-projectile") + ahide("bullet") + ahide("ap-bullet") + ahide("he-bullet") + ahide("flame-bullet") + ahide("acid-bullet") + ahide("poison-bullet") + ahide("electric-bullet") + ahide("bullet-magazine") + ahide("ap-bullet-magazine") + ahide("electric-bullet-magazine") + ahide("he-bullet-magazine") + ahide("flame-bullet-magazine") + ahide("acid-bullet-magazine") + ahide("poison-bullet-magazine") + + switch_tech("poison-mine") + switch_tech("slowdown-mine") + switch_tech("distractor-mine") + switch_tech("nitroglycerin-processing") + switch_tech("cordite-processing") + switch_tech("bob-bullets") + switch_tech("bob-ap-bullets") + switch_tech("bob-electric-bullets") + switch_tech("bob-he-bullets") + switch_tech("bob-flame-bullets") + switch_tech("bob-acid-bullets") + switch_tech("bob-poison-bullets") + switch_tech("bob-shotgun-shells") + switch_tech("bob-shotgun-ap-shells") + switch_tech("bob-shotgun-electric-shells") + switch_tech("bob-shotgun-explosive-shells") + switch_tech("bob-shotgun-flame-shells") + switch_tech("bob-shotgun-acid-shells") + switch_tech("bob-shotgun-poison-shells") + switch_tech("bob-rocket") + switch_tech("bob-piercing-rocket") + switch_tech("bob-electric-rocket") + switch_tech("bob-explosive-rocket") + switch_tech("bob-acid-rocket") + switch_tech("bob-flame-rocket") + switch_tech("bob-poison-rocket") + switch_tech("combat-robotics-4") + + zgc.t_remove_recipe_unlock("combat-robotics", "defender-robot") + zgc.t_remove_recipe_unlock("combat-robotics", "robot-brain-combat") + zgc.t_remove_recipe_unlock("combat-robotics", "robot-tool-combat") + zgc.t_remove_recipe_unlock("combat-robotics-2", "distractor-robot") + zgc.t_remove_recipe_unlock("combat-robotics-2", "robot-brain-combat-2") + zgc.t_remove_recipe_unlock("combat-robotics-2", "robot-tool-combat-2") + zgc.t_remove_recipe_unlock("combat-robotics-3", "destroyer-robot") + zgc.t_remove_recipe_unlock("combat-robotics-3", "robot-brain-combat-3") + zgc.t_remove_recipe_unlock("combat-robotics-3", "robot-tool-combat-3") + end + +end +do --[[trains-vehicles]]-- + if not z_balance.bob_transport then + aadd("z-trains-0", "armoured-diesel-locomotive", "b") + aadd("z-trains-0", "diesel-locomotive-2", "d") + aadd("z-trains-0", "diesel-locomotive-3", "e") + + aadd("z-trains-1", "armoured-cargo-wagon", "a") + aadd("z-trains-1", "cargo-wagon-2", "d") + aadd("z-trains-1", "cargo-wagon-3", "e") + + aadd("z-vehicles-0", "tank-2", "c") + aadd("z-vehicles-0", "tank-3", "d") + aadd("z-vehicles-0", "bob-robot-tank", "e") + + aadd("z-vehicles-3", "tank-machine-gun", "a") + aadd("z-vehicles-3", "vehicle-machine-gun", "b") + aadd("z-vehicles-3", "tank-cannon-2", "c") + aadd("z-vehicles-3", "tank-cannon-3", "d") + aadd("z-vehicles-3", "tank-artillery-1", "e") + aadd("z-vehicles-3", "tank-artillery-2", "f") + aadd("z-vehicles-3", "gatling-gun", "g") + aadd("z-vehicles-3", "tank-laser", "h") + + aadd("z-vehicles-4", "scatter-cannon-shell", "c") + aadd("z-vehicles-4", "poison-artillery-shell", "d") + aadd("z-vehicles-4", "explosive-artillery-shell", "e") + aadd("z-vehicles-4", "distractor-artillery-shell", "f") + else + ahide("gatling-gun") + ahide("tank-laser") + ahide("tank-2") + ahide("tank-3") + ahide("bob-robot-tank") + ahide("tank-cannon-2") + ahide("tank-cannon-3") + ahide("tank-artillery-1") + ahide("tank-artillery-2") + ahide("scatter-cannon-shell") + ahide("poison-artillery-shell") + ahide("explosive-artillery-shell") + ahide("distractor-artillery-shell") + + switch_tech("tanks-2") + switch_tech("tanks-3") + switch_tech("bob-robot-tanks") + + switch_tech("bob-tank-artillery-damage-1") + switch_tech("bob-tank-artillery-damage-2") + switch_tech("bob-tank-artillery-damage-3") + switch_tech("bob-tank-artillery-damage-4") + switch_tech("bob-tank-artillery-damage-5") + switch_tech("bob-tank-artillery-damage-6") + switch_tech("bob-tank-artillery-speed-1") + switch_tech("bob-tank-artillery-speed-2") + switch_tech("bob-tank-artillery-speed-3") + switch_tech("bob-tank-artillery-speed-4") + switch_tech("bob-tank-artillery-speed-5") + switch_tech("bob-tank-artillery-speed-6") + end + + ahide("combat-robot-dispenser-equipment") +end +do --[[alien]]-- + aadd("z-alien-7", "alien-acid", "a") + aadd("z-alien-7", "alien-explosive", "b") + aadd("z-alien-7", "alien-fire", "c") + aadd("z-alien-7", "alien-poison", "d") + + aadd("z-alien-8", "alien-acid-barrel", "a") + aadd("z-alien-8", "alien-explosive-barrel", "b") + aadd("z-alien-8", "alien-fire-barrel", "c") + aadd("z-alien-8", "alien-poison-barrel", "d") + + aadd("z-alien-8", "fill-alien-acid-barrel", "a") + aadd("z-alien-8", "fill-alien-explosive-barrel", "b") + aadd("z-alien-8", "fill-alien-fire-barrel", "c") + aadd("z-alien-8", "fill-alien-poison-barrel", "d") + + aadd("z-alien-9", "empty-alien-acid-barrel", "a") + aadd("z-alien-9", "empty-alien-explosive-barrel", "b") + aadd("z-alien-9", "empty-alien-fire-barrel", "c") + aadd("z-alien-9", "empty-alien-poison-barrel", "d") + + aadd("z-alien-9", "alien-acid-in-tanker", "a") + aadd("z-alien-9", "alien-explosive-in-tanker", "b") + aadd("z-alien-9", "alien-fire-in-tanker", "c") + aadd("z-alien-9", "alien-poison-in-tanker", "d") +end diff --git a/ZGroupChange_1.2.4/mods/other.lua b/ZGroupChange_1.2.5/mods/other.lua similarity index 90% rename from ZGroupChange_1.2.4/mods/other.lua rename to ZGroupChange_1.2.5/mods/other.lua index a61c38b..dcb0279 100644 --- a/ZGroupChange_1.2.4/mods/other.lua +++ b/ZGroupChange_1.2.5/mods/other.lua @@ -1,852 +1,900 @@ -local allow_changes = z_balance.other - -do --[[gathering]]-- - -- warehousing - aadd("z-gathering-2", "storehouse-basic", "e") - aadd("z-gathering-2", "warehouse-basic", "f") - -end -do --[[production]]-- - -- flare stack - aadd("z-production-0", "electric-stone-furnace", "d") - aadd("z-production-0", "electric-steel-furnace", "j") - - -- mini machines - if use_graphics_tunnings then - if data.raw["assembling-machine"]["mini-assembler-3"] then - data.raw["assembling-machine"]["mini-assembler-3"].animation = { - filename = "__ZGroupChange__/graphics/entity/assembling-machine-3-anim.png", - priority="high", - width = 142, - height = 113, - frame_count = 32, - line_length = 8, - shift = {0.84*0.66, -0.1*0.66}, - scale = 0.66 - } - end - zgc.set_icon("mini-assembler-1", "__ZGroupChange__/graphics/icons/mini-assembling-machine-1.png") - zgc.set_icon("mini-assembler-2", "__ZGroupChange__/graphics/icons/mini-assembling-machine-2.png") - zgc.set_icon("mini-assembler-3", "__ZGroupChange__/graphics/icons/mini-assembling-machine-3.png") - end - if z_balance.other_mini then - aadd("z-production-2", "mini-furnace", "b") - aadd("z-production-4", "mini-assembler-1", "a") - aadd("z-production-4", "mini-assembler-2", "b") - aadd("z-production-4", "mini-assembler-3", "c") - aadd("z-production-6", "mini-refinery", "a") - - ahide("electric-furnace","mini-furnace") - ahide("assembling-machine-1","mini-assembler-1") - ahide("assembling-machine-2","mini-assembler-2") - ahide("assembling-machine-3","mini-assembler-3") - ahide("oil-refinery","mini-refinery") - - else - aadd("z-production-2", "mini-furnace", "0a") - aadd("z-production-5", "mini-assembler-1", "0a") - aadd("z-production-5", "mini-assembler-2", "0b") - aadd("z-production-5", "mini-assembler-3", "0c") - aadd("z-production-6", "mini-refinery", "0a") - end - - -- flare stack - aadd("z-production-6", "vent-stack", "g") - aadd("z-production-6", "flare-stack", "h") - - aadd("z-production-7", "incinerator", "g") - aadd("z-production-7", "electric-incinerator", "h") - - if allow_changes and data.raw.recipe["vent-stack"] then - data.raw.recipe["vent-stack"].enabled = "false" - data.raw.recipe["vent-stack"].hidden = "false" - data.raw.recipe["flare-stack"].enabled = "false" - data.raw.recipe["flare-stack"].hidden = "false" - data.raw.recipe["incinerator"].enabled = "false" - data.raw.recipe["incinerator"].hidden = "false" - data.raw.recipe["electric-incinerator"].enabled = "false" - data.raw.recipe["electric-incinerator"].hidden = "false" - zgc.t_add_recipe_unlock("oil-processing", "vent-stack") - zgc.t_add_recipe_unlock("oil-processing", "flare-stack") - zgc.t_add_recipe_unlock("oil-processing-2", "incinerator") - zgc.t_add_recipe_unlock("oil-processing-2", "electric-incinerator") - end - - -- bio industries - aadd("z-production-9", "bi_bio_farm", "a") - aadd("z-production-9", "bi-Bio_Garden", "b") - aadd("z-production-9", "bi-cokery", "c") - aadd("z-production-9", "bi-bioreactor", "d") - aadd("z-production-9", "bi-stone-crusher", "e") - aadd("z-production-9", "bi-burner-mining-drill-disassemble","f") - aadd("z-production-9", "bi-steel-furnace-disassemble", "g") - - if allow_changes and data.raw.recipe["bob-greenhouse"] and data.raw.recipe["bi_bio_farm"] then - ahide("bob-greenhouse") - ahide("bob-basic-greenhouse-cycle") - ahide("bob-advanced-greenhouse-cycle") - - switch_tech("bob-greenhouse") - end - - -- factorissimo - aadd("z-production-9", "small-factory", "h") - aadd("z-production-9", "small-power-plant", "i") - - -- tree farm - aadd("z-production-9", "tf-field", "j") - aadd("z-production-9", "tf-fieldmk2", "k") - - -- reverse factory - aadd("z-production-10", "reverse-factory", "g") - - -- recycle - aadd("z-production-10", "recycling-machine-1", "g") - aadd("z-production-10", "recycling-machine-2", "g") - aadd("z-production-10", "recycling-machine-3", "g") - - for _,v in pairs(data.raw["item-subgroup"]) do - if v.name == "recycling-machine" then v.group = "zgc-production" end - end - -end -do --[[resources]]-- - -- bio industries - radd("z-resources-0", "bi-cellulose", "h") - - aadd("z-resources-1", "bi-woodpulp", "a") - aadd("z-resources-1", "bi-ash", "b") - aadd("z-resources-1", "bi-ash-2", "c") - aadd("z-resources-1", "bi-charcoal", "d") - aadd("z-resources-1", "bi-charcoal-2", "e") - aadd("z-resources-1", "bi-coal", "f") - aadd("z-resources-1", "bi-coal-2", "g") - aadd("z-resources-1", "z-coal", "h") - aadd("z-resources-1", "bi-coke-coal", "i") - iadd("z-resources-1", "crushed-stone", "j") - aadd("z-resources-1", "bi-crushed-stone", "j") - aadd("z-resources-1", "carbon", "k") - - aadd("z-resources-8", "bi-plastic", "a") - - - if i_exist("bi-woodpulp") then - if z_balance.add_trees then - zgc.add_newRessource_min_max("raw-wood", "bi-woodpulp",1,3,0.7) - end - if z_balance.add_dirt then - zgc.add_newRessource_min_max("coal", "bi-ash",1,2,0.2) - zgc.add_newRessource_min_max("stone", "stone-crushed",1,2,0.1) - end - end -end -do --[[liquids]]-- - -- bergius process - aadd("z-liquids-1", "bergius-process", "c") - aadd("z-liquids-2", "coal-liquefaction", "c") - - -- bio industries - if i_exist("bi-liquid-air") then - aadd("z-liquids-0", "liquid-air", "f") - aadd("z-liquids-0", "bob-liquid-air", "e") - aadd("z-liquids-0", "bi-liquid-air", "g") - end - aadd("z-liquids-1", "bi-Fuel_Conversion", "g") - radd("z-liquids-1", "bi-biomass-0", "h") - aadd("z-liquids-1", "bi-Bio_Fuel", "i") - radd("z-liquids-2", "bi-Clean_Air", "h") - radd("z-liquids-2", "bi-Clean_Air2", "i") - - -- natural evolution - aadd("z-liquids-1", "NE_nutrient-solution", "j") - aadd("z-liquids-1", "NE_basic-alien-nutrientant", "j") - aadd("z-liquids-2", "NE_enhanced-nutrient-solution","j") - aadd("z-liquids-2", "NE_enhanced-alien-nutrientant","j") - aadd("z-liquids-2", "NE_alien-revitalization", "l") - - -- n-tech chemistry - aadd("z-liquids-1", "basic-desulphurized-oil-processing", "e") - aadd("z-liquids-1", "advanced-desulphurized-oil-processing","f") - - aadd("z-liquids-2", "crude-oil-desulphurization", "e") - aadd("z-liquids-2", "water-purification", "a") - - aadd("z-liquids-5", "petroleum-gas-barrel", "i") - aadd("z-liquids-5", "fill-petroleum-gas-barrel", "i") - aadd("z-liquids-5", "methanol-barrel", "j") - aadd("z-liquids-5", "fill-methanol-barrel", "j") - aadd("z-liquids-5", "disulfuric-acid-barrel", "k") - aadd("z-liquids-5", "fill-disulfuric-acid-barrel", "k") - aadd("z-liquids-5", "methylhydrazine-barrel", "l") - aadd("z-liquids-5", "fill-methylhydrazine-barrel", "l") - aadd("z-liquids-5", "dimethylhydrazine-barrel", "m") - aadd("z-liquids-5", "fill-dimethylhydrazine-barrel", "m") - - aadd("z-liquids-6", "empty-petroleum-gas-barrel", "i") - aadd("z-liquids-6", "empty-methanol-barrel", "j") - aadd("z-liquids-6", "empty-disulfuric-acid-barrel", "k") - aadd("z-liquids-6", "empty-methylhydrazine-barrel", "l") - aadd("z-liquids-6", "empty-dimethylhydrazine-barrel", "m") - - -- rail tanker - iadd("z-liquids-9", "crude-oil", "d") - iadd("z-liquids-9", "heavy-oil", "e") - iadd("z-liquids-9", "light-oil", "f") - iadd("z-liquids-9", "bi-biomass", "n") - iadd("z-liquids-9", "water-purified", "p") - iadd("z-liquids-9", "water-floatation-waste", "r") - iadd("z-liquids-9", "water-saline", "s") - iadd("z-liquids-9", "crystal-seedling", "t") - iadd("z-liquids-9", "crystal-matrix", "u") - iadd("z-liquids-9", "crystal-slurry", "v") - iadd("z-liquids-9", "thermal-water", "w") - iadd("z-liquids-9", "mineral-sludge", "x") - iadd("z-liquids-9", "slag-slurry", "y") - iadd("z-liquids-9", "liquefied-coal", "z") - iadd("z-liquids-9", "liquid-air-in-tanker", "a") - iadd("z-liquids-9", "water-in-tanker", "b") - iadd("z-liquids-9", "lithia-water-in-tanker", "c") - iadd("z-liquids-9", "crude-oil-in-tanker", "d") - iadd("z-liquids-9", "heavy-oil-in-tanker", "e") - iadd("z-liquids-9", "light-oil-in-tanker", "f") - iadd("z-liquids-9", "lubricant-in-tanker", "g") - iadd("z-liquids-9", "liquid-fuel-in-tanker", "h") - iadd("z-liquids-9", "ferric-chloride-solution-in-tanker","i") - iadd("z-liquids-9", "alien-goo-in-tanker", "j") - iadd("z-liquids-9", "y-con_water-in-tanker", "k", "__ZGroupChange__/graphics/icons/y-con-water.png") - iadd("z-liquids-9", "y-liquid-uc2-in-tanker", "l") - iadd("z-liquids-9", "bi-Bio_Fuel-in-tanker", "m") - iadd("z-liquids-9", "bi-biomass-in-tanker", "n") - iadd("z-liquids-9", "bi-liquid-co2-in-tanker", "o") - iadd("z-liquids-9", "water-purified-in-tanker", "p") - iadd("z-liquids-9", "water-mineralized-in-tanker", "q") - iadd("z-liquids-9", "water-floatation-waste-in-tanker", "r") - iadd("z-liquids-9", "water-saline-in-tanker", "s") - iadd("z-liquids-9", "crystal-seedling-in-tanker", "t") - iadd("z-liquids-9", "crystal-matrix-in-tanker", "u") - iadd("z-liquids-9", "crystal-slurry-in-tanker", "v") - iadd("z-liquids-9", "thermal-water-in-tanker", "w") - iadd("z-liquids-9", "mineral-sludge-in-tanker", "x") - iadd("z-liquids-9", "slag-slurry-in-tanker", "y") - iadd("z-liquids-9", "liquefied-coal-in-tanker", "z") - - ihide("liquid-chlor-methane-in-tanker") - - -- natural evolution - iadd("z-liquids-10", "NE_alien_toxin") - iadd("z-liquids-10", "NE_alien_toxin-in-tanker") - iadd("z-liquids-10", "NE_nutrient-solution-in-tanker") - iadd("z-liquids-10", "NE_basic-alien-nutrientant-in-tanker") - iadd("z-liquids-10", "NE_enhanced-nutrient-solution-in-tanker") - iadd("z-liquids-10", "NE_enhanced-alien-nutrientant-in-tanker") - iadd("z-liquids-10", "NE_alien-revitalization-in-tanker") - iadd("z-liquids-10", "NE_revitalization-solition-in-tanker") - -end -do --[[chemistry]]-- - -- bio industries - aadd("z-chemistry-2", "air-cracking", "d") - aadd("z-chemistry-2", "carbon-dioxide", "e") - aadd("z-chemistry-2", "ammonia", "f") - - aadd("z-chemistry-3", "solid-fuel-from-methylhydrazine", "e") - - aadd("z-chemistry-7", "hydrogen-sulfide", "a") - aadd("z-chemistry-7", "sulfur-dioxide-from-hydrogen-sulfide","b") - aadd("z-chemistry-7", "sulfur-from-sulfur-dioxide", "c") - aadd("z-chemistry-7", "sulfur-dioxide", "d") - aadd("z-chemistry-7", "sulfur-trioxide", "e") - aadd("z-chemistry-7", "disulfuric-acid", "f") - aadd("z-chemistry-7", "sulfuric-acid-from-disulfuric-acid","g") - - aadd("z-chemistry-8", "methanol", "a") - aadd("z-chemistry-8", "methylamine", "b") - aadd("z-chemistry-8", "dimethylamine", "c") - aadd("z-chemistry-8", "methylhydrazine", "d") - aadd("z-chemistry-8", "dimethylhydrazine", "e") - aadd("z-chemistry-8", "dinitrogen-tetroxide", "f") - aadd("z-chemistry-8", "dinitrogen-tetroxide-container", "g") - - -- bio industries - aadd("z-chemistry-0", "bi-nitrogen", "e") - aadd("z-chemistry-4", "bi-liquid-co2", "f") - iadd("z-chemistry-9", "bi-cellulose", "p") - - -- rail tanker - iadd("z-chemistry-9", "oxygen", "a") - iadd("z-chemistry-9", "chlorine", "b") - iadd("z-chemistry-9", "hydrogen", "c") - iadd("z-chemistry-9", "petroleum-gas", "e") - iadd("z-chemistry-9", "sulfur-dioxide", "i") - iadd("z-chemistry-9", "sulfuric-acid", "k") - iadd("z-chemistry-9", "oxygen-in-tanker", "a") - iadd("z-chemistry-9", "chlorine-in-tanker", "b") - iadd("z-chemistry-9", "hydrogen-in-tanker", "c") - iadd("z-chemistry-9", "nitrogen-in-tanker", "d") - iadd("z-chemistry-9", "petroleum-gas-in-tanker", "e") - iadd("z-chemistry-9", "hydrogen-chloride-in-tanker", "f") - iadd("z-chemistry-9", "nitrogen-dioxide-in-tanker", "h") - iadd("z-chemistry-9", "sulfur-dioxide-in-tanker", "i") - iadd("z-chemistry-9", "nitric-acid-in-tanker", "j") - iadd("z-chemistry-9", "sulfuric-acid-in-tanker", "k") - iadd("z-chemistry-9", "tungstic-acid-in-tanker", "l") - iadd("z-chemistry-9", "sulfuric-nitric-acid-in-tanker", "m") - iadd("z-chemistry-9", "nitroglycerin-in-tanker", "n") - iadd("z-chemistry-9", "glycerol-in-tanker", "o") - iadd("z-chemistry-9", "y_hydrogen-in-tanker", "q") - iadd("z-chemistry-9", "y_syngas_clean-in-tanker", "r") - iadd("z-chemistry-9", "y_syngas_raw-in-tanker", "s") - -end -do --[[automatization]]-- - -- burner filter inserter - aadd("z-automatization-1", "burner-filter-inserter", "a") - - -- natural evolution - aadd("z-automatization-2", "combat-inserter", "a") - -end -do --[[transport]]-- - -- belt sorter - aadd("z-transport-0", "belt-sorter", "h") - - -- smart splitter - aadd("z-transport-1", "smartsplitter", "h") - - -- compound splitter - aadd("z-transport-2", "compound-splitter-priority-totem", "f") - aadd("z-transport-2", "cs-express-transport-belt", "g") - aadd("z-transport-2", "compound-splitter-round-robin-totem","h") - - aadd("z-transport-3", "compound-splitter-endcap", "f") - aadd("z-transport-3", "compound-splitter-lane", "g") - aadd("z-transport-3", "compound-splitter-buffer", "h") - - -- hacked splitter - if i_exist("hacked-splitter") then - aadd("z-transport-5", "hacked-splitter", "a") - aadd("z-transport-5", "hacked-fast-splitter", "b") - aadd("z-transport-5", "hacked-express-splitter", "c") - aadd("z-transport-5", "hacked-green-splitter", "f") - aadd("z-transport-5", "hacked-purple-splitter", "g") - end - - -- flow control - if allow_changes and i_exist("pipe-elbow") and (i_exist("5d-pipe-mk2") or i_exist("copper-pipe")) then - - local new_pipes = {} - local pipe_type = "storage-tank" - - if data.raw["pipe-to-ground"]["pipe-straight"] then pipe_type = "pipe-to-ground" end - - new_pipes["pipe-copper-straight"] = { - item = table.deepcopy(data.raw.item["pipe-straight"]), - recipe = table.deepcopy(data.raw.recipe["pipe-straight"]), - entity = table.deepcopy(data.raw[pipe_type]["pipe-straight"]) - } - new_pipes["pipe-copper-junction"] = { - item = table.deepcopy(data.raw.item["pipe-junction"]), - recipe = table.deepcopy(data.raw.recipe["pipe-junction"]), - entity = table.deepcopy(data.raw[pipe_type]["pipe-junction"]) - } - new_pipes["pipe-copper-elbow"] = { - item = table.deepcopy(data.raw.item["pipe-elbow"]), - recipe = table.deepcopy(data.raw.recipe["pipe-elbow"]), - entity = table.deepcopy(data.raw[pipe_type]["pipe-elbow"]) - } - new_pipes["pipe-steel-straight"] = table.deepcopy(new_pipes["pipe-copper-straight"]) - new_pipes["pipe-steel-junction"] = table.deepcopy(new_pipes["pipe-copper-junction"]) - new_pipes["pipe-steel-elbow"] = table.deepcopy(new_pipes["pipe-copper-elbow"]) - - local pic1 = "__ZGroupChange__/graphics/icons/pipe-" - local pic2 = "__ZGroupChange__/graphics/entity/pipe-" - local n = {cs="pipe-copper-straight",cj="pipe-copper-junction",ce="pipe-copper-elbow",ss="pipe-steel-straight",sj="pipe-steel-junction",se="pipe-steel-elbow",pcs="copper-straight.png",pcj="copper-junction.png",pce="copper-elbow.png",pss="steel-straight.png",psj="steel-junction.png",pse="steel-elbow.png"} - - do -- entity.name / recipe.name / item.name - new_pipes[n.cs].entity.name = n.cs - new_pipes[n.cj].entity.name = n.cj - new_pipes[n.ce].entity.name = n.ce - new_pipes[n.ss].entity.name = n.ss - new_pipes[n.sj].entity.name = n.sj - new_pipes[n.se].entity.name = n.se - new_pipes[n.cs].recipe.name = n.cs - new_pipes[n.cj].recipe.name = n.cj - new_pipes[n.ce].recipe.name = n.ce - new_pipes[n.ss].recipe.name = n.ss - new_pipes[n.sj].recipe.name = n.sj - new_pipes[n.se].recipe.name = n.se - new_pipes[n.cs].item.name = n.cs - new_pipes[n.cj].item.name = n.cj - new_pipes[n.ce].item.name = n.ce - new_pipes[n.ss].item.name = n.ss - new_pipes[n.sj].item.name = n.sj - new_pipes[n.se].item.name = n.se - end - do -- entity.icon / item.icon - new_pipes[n.cs].entity.icon = pic1..n.pcs - new_pipes[n.cj].entity.icon = pic1..n.pcj - new_pipes[n.ce].entity.icon = pic1..n.pce - new_pipes[n.ss].entity.icon = pic1..n.pss - new_pipes[n.sj].entity.icon = pic1..n.psj - new_pipes[n.se].entity.icon = pic1..n.pse - new_pipes[n.cs].item.icon = pic1..n.pcs - new_pipes[n.cj].item.icon = pic1..n.pcj - new_pipes[n.ce].item.icon = pic1..n.pce - new_pipes[n.ss].item.icon = pic1..n.pss - new_pipes[n.sj].item.icon = pic1..n.psj - new_pipes[n.se].item.icon = pic1..n.pse - end - if pipe_type == "storage-tank" then - do -- entity.pictures.picture.sheet.filename - new_pipes[n.cs].entity.pictures.picture.sheet.filename = pic2..n.pcs - new_pipes[n.cj].entity.pictures.picture.sheet.filename = pic2..n.pcj - new_pipes[n.ce].entity.pictures.picture.sheet.filename = pic2..n.pce - new_pipes[n.ss].entity.pictures.picture.sheet.filename = pic2..n.pss - new_pipes[n.sj].entity.pictures.picture.sheet.filename = pic2..n.psj - new_pipes[n.se].entity.pictures.picture.sheet.filename = pic2..n.pse - end - else - do -- entity.pictures.up.filename - new_pipes[n.cs].entity.pictures.up.filename = pic2..n.pcs - new_pipes[n.cj].entity.pictures.up.filename = pic2..n.pcj - new_pipes[n.ce].entity.pictures.up.filename = pic2..n.pce - new_pipes[n.ss].entity.pictures.up.filename = pic2..n.pss - new_pipes[n.sj].entity.pictures.up.filename = pic2..n.psj - new_pipes[n.se].entity.pictures.up.filename = pic2..n.pse - end - do -- entity.pictures.left.filename - new_pipes[n.cs].entity.pictures.left.filename = pic2..n.pcs - new_pipes[n.cj].entity.pictures.left.filename = pic2..n.pcj - new_pipes[n.ce].entity.pictures.left.filename = pic2..n.pce - new_pipes[n.ss].entity.pictures.left.filename = pic2..n.pss - new_pipes[n.sj].entity.pictures.left.filename = pic2..n.psj - new_pipes[n.se].entity.pictures.left.filename = pic2..n.pse - end - do -- entity.pictures.down.filename - new_pipes[n.cs].entity.pictures.down.filename = pic2..n.pcs - new_pipes[n.cj].entity.pictures.down.filename = pic2..n.pcj - new_pipes[n.ce].entity.pictures.down.filename = pic2..n.pce - new_pipes[n.ss].entity.pictures.down.filename = pic2..n.pss - new_pipes[n.sj].entity.pictures.down.filename = pic2..n.psj - new_pipes[n.se].entity.pictures.down.filename = pic2..n.pse - end - do -- entity.pictures.right.filename - new_pipes[n.cs].entity.pictures.right.filename = pic2..n.pcs - new_pipes[n.cj].entity.pictures.right.filename = pic2..n.pcj - new_pipes[n.ce].entity.pictures.right.filename = pic2..n.pce - new_pipes[n.ss].entity.pictures.right.filename = pic2..n.pss - new_pipes[n.sj].entity.pictures.right.filename = pic2..n.psj - new_pipes[n.se].entity.pictures.right.filename = pic2..n.pse - end - end - do -- entity.minable.result - new_pipes[n.cs].entity.minable.result = n.cs - new_pipes[n.cj].entity.minable.result = n.cj - new_pipes[n.ce].entity.minable.result = n.ce - new_pipes[n.ss].entity.minable.result = n.ss - new_pipes[n.sj].entity.minable.result = n.sj - new_pipes[n.se].entity.minable.result = n.se - end - do -- entity.fluid_box.base_area - new_pipes[n.cs].entity.fluid_box.base_area = 3 - new_pipes[n.cj].entity.fluid_box.base_area = 3 - new_pipes[n.ce].entity.fluid_box.base_area = 3 - new_pipes[n.ss].entity.fluid_box.base_area = 5 - new_pipes[n.sj].entity.fluid_box.base_area = 5 - new_pipes[n.se].entity.fluid_box.base_area = 5 - end - do -- recipe.ingredients - new_pipes[n.cs].recipe.ingredients = {{"copper-plate",1}} - new_pipes[n.cj].recipe.ingredients = {{"copper-plate",1}} - new_pipes[n.ce].recipe.ingredients = {{"copper-plate",1}} - new_pipes[n.ss].recipe.ingredients = {{"steel-plate",1}} - new_pipes[n.sj].recipe.ingredients = {{"steel-plate",1}} - new_pipes[n.se].recipe.ingredients = {{"steel-plate",1}} - end - do -- recipe.result - new_pipes[n.cs].recipe.result = n.cs - new_pipes[n.cj].recipe.result = n.cj - new_pipes[n.ce].recipe.result = n.ce - new_pipes[n.ss].recipe.result = n.ss - new_pipes[n.sj].recipe.result = n.sj - new_pipes[n.se].recipe.result = n.se - end - do -- recipe.enabled - new_pipes[n.cs].recipe.enabled = "false" - new_pipes[n.cj].recipe.enabled = "false" - new_pipes[n.ce].recipe.enabled = "false" - new_pipes[n.ss].recipe.enabled = "false" - new_pipes[n.sj].recipe.enabled = "false" - new_pipes[n.se].recipe.enabled = "false" - end - do -- recipe.hidden - new_pipes[n.cs].recipe.hidden = "false" - new_pipes[n.cj].recipe.hidden = "false" - new_pipes[n.ce].recipe.hidden = "false" - new_pipes[n.ss].recipe.hidden = "false" - new_pipes[n.sj].recipe.hidden = "false" - new_pipes[n.se].recipe.hidden = "false" - end - do -- item.place_result - new_pipes[n.cs].item.place_result = n.cs - new_pipes[n.cj].item.place_result = n.cj - new_pipes[n.ce].item.place_result = n.ce - new_pipes[n.ss].item.place_result = n.ss - new_pipes[n.sj].item.place_result = n.sj - new_pipes[n.se].item.place_result = n.se - end - - for k,v in pairs(new_pipes) do data:extend({v.entity,v.recipe,v.item}) end - data.raw[pipe_type]["pipe-straight"].minable.result = "pipe-straight" - data.raw[pipe_type]["pipe-junction"].minable.result = "pipe-junction" - data.raw[pipe_type]["pipe-elbow"].minable.result = "pipe-elbow" - - zgc.t_add_recipe_unlock("logistics-2", "pipe-copper-straight") - zgc.t_add_recipe_unlock("logistics-2", "pipe-copper-junction") - zgc.t_add_recipe_unlock("logistics-2", "pipe-copper-elbow") - zgc.t_add_recipe_unlock("logistics-3", "pipe-steel-straight") - zgc.t_add_recipe_unlock("logistics-3", "pipe-steel-junction") - zgc.t_add_recipe_unlock("logistics-3", "pipe-steel-elbow") - end - if i_exist("pipe-elbow") then ahide("valve") end - - aadd("z-transport-6", "check-valve", "b") - aadd("z-transport-6", "overflow-valve", "c") - aadd("z-transport-6", "express-pump", "d") - - if i_not_exist("5d-pipe-mk2") and i_not_exist("copper-pipe") then - aadd("z-transport-9", "pipe-straight", "d") - aadd("z-transport-9", "pipe-junction", "e") - aadd("z-transport-9", "pipe-elbow", "f") - elseif allow_changes and i_exist("copper-pipe") and i_not_exist("5d-pipe-mk2") then - aadd("z-transport-11", "pipe-straight", "a") - aadd("z-transport-11", "pipe-copper-straight", "b") - aadd("z-transport-11", "pipe-steel-straight", "c") - aadd("z-transport-12", "pipe-junction", "a") - aadd("z-transport-12", "pipe-copper-junction", "b") - aadd("z-transport-12", "pipe-steel-junction", "c") - aadd("z-transport-13", "pipe-elbow", "a") - aadd("z-transport-13", "pipe-copper-elbow", "b") - aadd("z-transport-13", "pipe-steel-elbow", "c") - elseif allow_changes then - aadd("z-transport-10", "pipe-straight", "d") - aadd("z-transport-10", "pipe-copper-straight", "e") - aadd("z-transport-10", "pipe-steel-straight", "f") - aadd("z-transport-11", "pipe-junction", "d") - aadd("z-transport-11", "pipe-copper-junction", "e") - aadd("z-transport-11", "pipe-steel-junction", "f") - aadd("z-transport-12", "pipe-elbow", "d") - aadd("z-transport-12", "pipe-copper-elbow", "e") - aadd("z-transport-12", "pipe-steel-elbow", "f") - else - aadd("z-transport-9", "pipe-straight", "d") - aadd("z-transport-9", "pipe-junction", "e") - aadd("z-transport-9", "pipe-elbow", "f") - end - - if use_graphics_tunnings and i_exist("small-pump-4") or i_exist("5d-small-pump") then - zgc.set_icon("small-pump","__base__/graphics/icons/small-pump.png") - end - - zgc.t_add_recipe_unlock("logistics", "pipe-straight") - zgc.t_add_recipe_unlock("logistics", "pipe-junction") - zgc.t_add_recipe_unlock("logistics", "pipe-elbow") - -end -do --[[logistic]]-- - -- upgrade planer - aadd("z-logistic-0", "upgrade-builder", "d") - - -- yarm - aadd("z-logistic-0", "resource-monitor", "e") - - -- warehousing - aadd("z-logistic-6", "storehouse-requester", "a") - aadd("z-logistic-6", "storehouse-passive-provider", "b") - aadd("z-logistic-6", "storehouse-active-provider", "c") - aadd("z-logistic-6", "storehouse-storage", "d") - aadd("z-logistic-6", "warehouse-storage", "e") - aadd("z-logistic-6", "warehouse-requester", "f") - aadd("z-logistic-6", "warehouse-passive-provider", "g") - aadd("z-logistic-6", "warehouse-active-provider", "h") - - -- nixie tubes - aadd("z-logistic-9", "nixie-tube", "e") - aadd("z-logistic-9", "nixie-tube-alpha", "f") - aadd("z-logistic-9", "nixie-tube-small", "g") - - -- time tools - aadd("z-logistic-9", "clock-combinator", "h") - - -- smart display - aadd("z-logistic-9", "smart-display-visible", "i") -end -do --[[energy]]-- - -- bio industries - aadd("z-energy-4", "bi_bio_Solar_Farm", "j") - aadd("z-energy-7", "bi-big-wooden-pole", "a") - - -- tesseract - aadd("z-energy-7", "tesseract", "j") - - -- factorissimo - aadd("z-energy-9", "factory-power-provider", "a") - aadd("z-energy-9", "factory-power-receiver", "b") - aadd("z-energy-9", "factory-power-distributor", "c") - -end -do --[[module]]-- - -- bio industries - aadd("z-module-0", "lab-module", "d") -end -do --[[defense]]-- - -- natural evolution - aadd("z-defense-0", "ne-living-wall", "h") - aadd("z-defense-0", "ne-living-wall-refresh", "i") - aadd("z-defense-0", "ne-living-wall-exhausted", "j") - - -- bio industries - aadd("z-defense-2", "bi-wooden-fence", "a") - aadd("z-defense-2", "Bio_Cannon", "b") - aadd("z-defense-2", "Bio_Cannon_Area", "c") - aadd("z-defense-2", "Bio_Cannon_Basic_Ammo", "d") - aadd("z-defense-2", "Bio_Cannon_Poison_Ammo", "e") - aadd("z-defense-2", "Bio_Cannon_Bio_Ammo", "f") - - -- force field - aadd("z-defense-2", "forcefield-emitter", "f") - aadd("z-defense-2", "forcefield-tool", "g") - - -- ion cannon - aadd("z-defense-2", "orbital-ion-cannon", "h") - aadd("z-defense-2", "ion-cannon-targeter", "i") - aadd("z-defense-8", "auto-targeter", "g") - -end -do --[[intermediate]]-- - - -- bio industries - aadd("z-intermediate-6", "bi-seedling", "h") - aadd("z-intermediate-6", "fertiliser", "i") - aadd("z-intermediate-6", "bi-fertiliser", "i") - aadd("z-intermediate-6", "bi-fertiliser-2", "j") - aadd("z-intermediate-6", "bi-adv-fertiliser", "k") - - if allow_changes and i_exist("bi_bio_farm") then - if i_exist("bob-seedling") then - rhide("bi-seedling") - else rhide("bob-seedling") end - ahide("bob-fertiliser") - switch_tech("bob-fertiliser") - end - - -- tree farm - aadd("z-intermediate-6", "tf-germling", "l") - aadd("z-intermediate-6", "tf-coral-seed", "m") - -end -do --[[trains-vehicles]]-- - -- bio industries - aadd("z-trains-3", "bi-rail-wood", "b") - aadd("z-trains-3", "bi-straight-rail-wood", "b") - - -- tankwerkz - aadd("z-vehicles-1", "hydra-tank", "f") - aadd("z-vehicles-1", "light-tank", "g") - aadd("z-vehicles-1", "flame-tank", "h") - aadd("z-vehicles-1", "heavy-tank", "i") - - aadd("z-vehicles-5", "hiex-cannon-shell", "a") - aadd("z-vehicles-5", "ap-cannon-shell", "c") - aadd("z-vehicles-5", "heavy-mg-ammo", "d") - aadd("z-vehicles-5", "hydra-rocket", "e") - aadd("z-vehicles-5", "tank-flame-thrower-ammo", "f") - aadd("z-vehicles-5", "heavy-mg", "g") - aadd("z-vehicles-5", "hydra-rocket-launcher", "h") - aadd("z-vehicles-5", "flame-tank-flame-thrower", "i") - - -- aircraft - aadd("z-vehicles-2", "cargo-plane", "d") - aadd("z-vehicles-2", "flying-fortress", "e") - aadd("z-vehicles-2", "gunship", "f") - aadd("z-vehicles-2", "jet", "g") - - aadd("z-vehicles-5", "high-explosive-cannon-shell", "b") -end -do --[[armor]]-- - -- bio industries - aadd("z-armor-1", "Biological-bullet-magazine", "bb") - - -- afraid of dark - aadd("z-armor-5", "perfect-night-glasses", "g") - - -- teleportation - aadd("z-armor-5", "teleportation-portal", "h") - aadd("z-armor-5", "teleportation-equipment", "i") - aadd("z-armor-5", "teleportation-beacon", "j") - -end -do --[[weaponry]]-- - -- explosive termites - aadd("z-weaponry-0", "explosive-termites", "l") - aadd("z-weaponry-0", "alien-explosive-termites", "m") - -end -do --[[decorative]]-- - -- landfill - aadd("z-decorative-0", "water-bomb", "a") - aadd("z-decorative-0", "water-be-gone", "a") - - -- color coding - aadd("z-decorative-1", "fire-hazard-concrete", "j") - - -- afraid of dark - aadd("z-decorative-4", "balloon-light", "j") - - aadd("z-decorative-2", "concrete-red", "a") - aadd("z-decorative-2", "concrete-orange", "b") - aadd("z-decorative-2", "concrete-yellow", "c") - aadd("z-decorative-2", "concrete-green", "d") - aadd("z-decorative-2", "concrete-cyan", "e") - aadd("z-decorative-2", "concrete-blue", "f") - aadd("z-decorative-2", "concrete-purple", "g") - aadd("z-decorative-2", "concrete-magenta", "h") - aadd("z-decorative-2", "concrete-white", "i") - aadd("z-decorative-2", "concrete-black", "j") - - aadd("z-decorative-3", "small-lamp-red", "a") - aadd("z-decorative-3", "small-lamp-orange", "b") - aadd("z-decorative-3", "small-lamp-yellow", "c") - aadd("z-decorative-3", "small-lamp-green", "d") - aadd("z-decorative-3", "small-lamp-cyan", "e") - aadd("z-decorative-3", "small-lamp-blue", "f") - aadd("z-decorative-3", "small-lamp-purple", "g") - aadd("z-decorative-3", "small-lamp-magenta", "h") - aadd("z-decorative-3", "small-lamp-white", "i") - aadd("z-decorative-3", "small-lamp-black", "j") - - -- concrete lamppost - aadd("z-decorative-8", "concrete-lamp", "i") - aadd("z-decorative-8", "concrete-lamppost", "j") - -end -do --[[alien]]-- - -- natural evolution - for _,v in pairs(data.raw["item-subgroup"]) do - if v.group == "Natural-Evolution" then v.group = "zgc-alien" end - end - - if i_exist("attractor-on") then - aadd("biters", "attractor-on", "z") - aadd("spitters", "attractor-off", "z") - aadd("Natural-Evolution", "Building_Materials", "0 a") - end - -end -do --[[atom]]-- - - -- uranium power - if i_exist("uranium-hexafluoride") then - - aadd("uranium-energy-conversion", "nuclear-fission-reactor-3-by-3", "g") - aadd("uranium-energy-conversion", "nuclear-fission-reactor-5-by-5", "h") - - aadd("uranium-ammo", "nuclear-fission-reactor-chest-9", "g") - aadd("uranium-ammo", "nuclear-fission-reactor-chest-25", "h") - - zgc.add_main_group("atom") - for _,v in pairs(data.raw["item-subgroup"]) do - if v.group == "uranium" then v.group = "zgc-atom" end - end - end - - ihide("yellowcake-in-tanker") - ihide("pressurised-water-in-tanker") - ihide("fluorine-gas-in-tanker") - ihide("uraninite-slurry-in-tanker") - ihide("superheated-steam-in-tanker") - ihide("low-pressure-steam-in-tanker") - ihide("uranium-hexafluoride-in-tanker") - ihide("uranium-hexafluoride-01-in-tanker") - ihide("uranium-hexafluoride-02-in-tanker") - ihide("uranium-hexafluoride-03-in-tanker") - ihide("uranium-hexafluoride-04-in-tanker") - ihide("uranium-hexafluoride-05-in-tanker") - ihide("uranium-hexafluoride-06-in-tanker") - ihide("uranium-hexafluoride-07-in-tanker") - ihide("uranium-hexafluoride-08-in-tanker") - ihide("uranium-hexafluoride-09-in-tanker") - ihide("uranium-hexafluoride-10-in-tanker") -end -do --[[other]]-- - -- test mode - aadd("z-other-0", "mjollnir", "a") - aadd("z-other-0", "tm-solar-panel", "b") - aadd("z-other-0", "tm-electric-pole", "c") - - -- magnet - aadd("z-other-0", "magnet", "d") - - -- spawn belt - aadd("z-other-1", "spawn-belt", "a") - aadd("z-other-1", "void-belt", "b") - - -- belt sorter - aadd("z-other-1", "belt-sorter-everythingelse", "c") - - if allow_changes and z_balance.other and data.raw.recipe["spawn-belt"] then - data.raw.recipe["spawn-belt"].enabled = "false" - data.raw.recipe["spawn-belt"].hidden = "false" - data.raw.recipe["void-belt"].enabled = "false" - data.raw.recipe["void-belt"].hidden = "false" - zgc.t_add_recipe_unlock("logistics-3", "spawn-belt") - zgc.t_add_recipe_unlock("logistics-3", "void-belt") - end - - -- black market - for _,v in pairs(data.raw["item-subgroup"]) do - if v.group == "black-market-group" then v.group = "zgc-other" end - end - aadd("z-other-2", "ucoin", "a") - - -- signals - if data.raw["item-group"]["signals"] then data.raw["item-group"]["signals"].icon = "__ZGroupChange__/graphics/icons/cat/signals.png" end - - -- recycle - local m = { - __index = function (data) - if groups_supported and not groups_supported["zgc-alien"] then - groups_supported["zgc-alien"] = "__ZGroupChange__/graphics/icons/cat/r/r_alien.png" - groups_supported["zgc-armor"] = "__ZGroupChange__/graphics/icons/cat/r/r_armor.png" - groups_supported["zgc-atom"] = "__ZGroupChange__/graphics/icons/cat/r/r_atom.png" - groups_supported["zgc-automatization"] = "__ZGroupChange__/graphics/icons/cat/r/r_automatization.png" - groups_supported["zgc-chemistry"] = "__ZGroupChange__/graphics/icons/cat/r/r_chemistry.png" - groups_supported["zgc-decorative"] = "__ZGroupChange__/graphics/icons/cat/r/r_decorative.png" - groups_supported["zgc-defense"] = "__ZGroupChange__/graphics/icons/cat/r/r_defense.png" - groups_supported["zgc-energy"] = "__ZGroupChange__/graphics/icons/cat/r/r_energy.png" - groups_supported["zgc-engines"] = "__ZGroupChange__/graphics/icons/cat/r/r_engines.png" - groups_supported["zgc-gathering"] = "__ZGroupChange__/graphics/icons/cat/r/r_gathering.png" - groups_supported["zgc-intermediate"] = "__ZGroupChange__/graphics/icons/cat/r/r_intermediate.png" - groups_supported["zgc-liquids"] = "__ZGroupChange__/graphics/icons/cat/r/r_liquids.png" - groups_supported["zgc-logistic"] = "__ZGroupChange__/graphics/icons/cat/r/r_logistic.png" - groups_supported["zgc-module"] = "__ZGroupChange__/graphics/icons/cat/r/r_module.png" - groups_supported["zgc-other"] = "__ZGroupChange__/graphics/icons/cat/r/r_other.png" - groups_supported["zgc-parts"] = "__ZGroupChange__/graphics/icons/cat/r/r_parts.png" - groups_supported["zgc-plates"] = "__ZGroupChange__/graphics/icons/cat/r/r_plates.png" - groups_supported["zgc-production"] = "__ZGroupChange__/graphics/icons/cat/r/r_production.png" - groups_supported["zgc-refining"] = "__ZGroupChange__/graphics/icons/cat/r/r_refining.png" - groups_supported["zgc-resources"] = "__ZGroupChange__/graphics/icons/cat/r/r_resources.png" - groups_supported["zgc-trains-vehicles"] = "__ZGroupChange__/graphics/icons/cat/r/r_trains-vehicles.png" - groups_supported["zgc-transport"] = "__ZGroupChange__/graphics/icons/cat/r/r_transport.png" - groups_supported["zgc-weaponry"] = "__ZGroupChange__/graphics/icons/cat/r/r_weaponry.png" - groups_supported["zgc-youki"] = "__ZGroupChange__/graphics/icons/cat/r/r_youki.png" - end - return data - end - } - if not dry411smods then dry411smods = {} end - setmetatable(dry411smods, m) - -end - - +local allow_changes = z_balance.other + +do --[[gathering]]-- + -- warehousing + aadd("z-gathering-2", "storehouse-basic", "e") + aadd("z-gathering-2", "warehouse-basic", "f") + +end +do --[[production]]-- + -- flare stack + aadd("z-production-0", "electric-stone-furnace", "d") + aadd("z-production-0", "electric-steel-furnace", "j") + + -- mini machines + if use_graphics_tunnings then + if data.raw["assembling-machine"]["mini-assembler-3"] then + data.raw["assembling-machine"]["mini-assembler-3"].animation = { + filename = "__ZGroupChange__/graphics/entity/assembling-machine-3-anim.png", + priority="high", + width = 142, + height = 113, + frame_count = 32, + line_length = 8, + shift = {0.84*0.66, -0.1*0.66}, + scale = 0.66 + } + end + zgc.set_icon("mini-assembler-1", "__ZGroupChange__/graphics/icons/mini-assembling-machine-1.png") + zgc.set_icon("mini-assembler-2", "__ZGroupChange__/graphics/icons/mini-assembling-machine-2.png") + zgc.set_icon("mini-assembler-3", "__ZGroupChange__/graphics/icons/mini-assembling-machine-3.png") + end + if z_balance.other_mini then + aadd("z-production-2", "mini-furnace", "b") + aadd("z-production-4", "mini-assembler-1", "a") + aadd("z-production-4", "mini-assembler-2", "b") + aadd("z-production-4", "mini-assembler-3", "c") + aadd("z-production-6", "mini-refinery", "a") + + ahide("electric-furnace","mini-furnace") + ahide("assembling-machine-1","mini-assembler-1") + ahide("assembling-machine-2","mini-assembler-2") + ahide("assembling-machine-3","mini-assembler-3") + ahide("oil-refinery","mini-refinery") + + else + aadd("z-production-2", "mini-furnace", "0a") + aadd("z-production-5", "mini-assembler-1", "0a") + aadd("z-production-5", "mini-assembler-2", "0b") + aadd("z-production-5", "mini-assembler-3", "0c") + aadd("z-production-6", "mini-refinery", "0a") + end + + -- flare stack + aadd("z-production-6", "vent-stack", "g") + aadd("z-production-6", "flare-stack", "h") + + aadd("z-production-7", "incinerator", "g") + aadd("z-production-7", "electric-incinerator", "h") + + if allow_changes and data.raw.recipe["vent-stack"] then + data.raw.recipe["vent-stack"].enabled = "false" + data.raw.recipe["vent-stack"].hidden = "false" + data.raw.recipe["flare-stack"].enabled = "false" + data.raw.recipe["flare-stack"].hidden = "false" + data.raw.recipe["incinerator"].enabled = "false" + data.raw.recipe["incinerator"].hidden = "false" + data.raw.recipe["electric-incinerator"].enabled = "false" + data.raw.recipe["electric-incinerator"].hidden = "false" + zgc.t_add_recipe_unlock("oil-processing", "vent-stack") + zgc.t_add_recipe_unlock("oil-processing", "flare-stack") + zgc.t_add_recipe_unlock("oil-processing-2", "incinerator") + zgc.t_add_recipe_unlock("oil-processing-2", "electric-incinerator") + end + + -- bio industries + aadd("z-production-9", "bi_bio_farm", "a") + aadd("z-production-9", "bi-Bio_Garden", "b") + aadd("z-production-9", "bi-cokery", "c") + aadd("z-production-9", "bi-bioreactor", "d") + aadd("z-production-9", "bi-stone-crusher", "e") + aadd("z-production-9", "bi-burner-mining-drill-disassemble","f") + aadd("z-production-9", "bi-steel-furnace-disassemble", "g") + + if allow_changes and data.raw.recipe["bob-greenhouse"] and data.raw.recipe["bi_bio_farm"] then + ahide("bob-greenhouse") + ahide("bob-basic-greenhouse-cycle") + ahide("bob-advanced-greenhouse-cycle") + + switch_tech("bob-greenhouse") + end + + -- factorissimo + aadd("z-production-9", "small-factory", "h") + aadd("z-production-9", "small-power-plant", "i") + + -- tree farm + aadd("z-production-9", "tf-field", "j") + aadd("z-production-9", "tf-fieldmk2", "k") + + -- reverse factory + aadd("z-production-10", "reverse-factory", "g") + + -- recycle + aadd("z-production-10", "recycling-machine-1", "g") + aadd("z-production-10", "recycling-machine-2", "g") + aadd("z-production-10", "recycling-machine-3", "g") + + for _,v in pairs(data.raw["item-subgroup"]) do + if v.name == "recycling-machine" then v.group = "zgc-production" end + end + +end +do --[[resources]]-- + -- bio industries + radd("z-resources-0", "bi-cellulose", "h") + + aadd("z-resources-1", "bi-woodpulp", "a") + aadd("z-resources-1", "bi-ash", "b") + aadd("z-resources-1", "bi-ash-2", "c") + aadd("z-resources-1", "bi-charcoal", "d") + aadd("z-resources-1", "bi-charcoal-2", "e") + aadd("z-resources-1", "bi-coal", "f") + aadd("z-resources-1", "bi-coal-2", "g") + aadd("z-resources-1", "z-coal", "h") + aadd("z-resources-1", "bi-coke-coal", "i") + iadd("z-resources-1", "crushed-stone", "j") + aadd("z-resources-1", "bi-crushed-stone", "j") + aadd("z-resources-1", "carbon", "k") + + aadd("z-resources-8", "bi-plastic", "a") + + + if i_exist("bi-woodpulp") then + if z_balance.add_trees then + zgc.add_newRessource_min_max("raw-wood", "bi-woodpulp",1,3,0.7) + end + if z_balance.add_dirt then + zgc.add_newRessource_min_max("coal", "bi-ash",1,2,0.2) + zgc.add_newRessource_min_max("stone", "stone-crushed",1,2,0.1) + end + end +end +do --[[liquids]]-- + -- bergius process + aadd("z-liquids-1", "bergius-process", "c") + aadd("z-liquids-2", "coal-liquefaction", "c") + + -- bio industries + if i_exist("bi-liquid-air") then + aadd("z-liquids-0", "liquid-air", "f") + aadd("z-liquids-0", "bob-liquid-air", "e") + aadd("z-liquids-0", "bi-liquid-air", "g") + end + aadd("z-liquids-1", "bi-Fuel_Conversion", "g") + radd("z-liquids-1", "bi-biomass-0", "h") + aadd("z-liquids-1", "bi-Bio_Fuel", "i") + radd("z-liquids-2", "bi-Clean_Air", "h") + radd("z-liquids-2", "bi-Clean_Air2", "i") + + -- natural evolution + aadd("z-liquids-1", "NE_nutrient-solution", "j") + aadd("z-liquids-1", "NE_basic-alien-nutrientant", "j") + aadd("z-liquids-2", "NE_enhanced-nutrient-solution","j") + aadd("z-liquids-2", "NE_enhanced-alien-nutrientant","j") + aadd("z-liquids-2", "NE_alien-revitalization", "l") + + -- n-tech chemistry + aadd("z-liquids-1", "basic-desulphurized-oil-processing", "e") + aadd("z-liquids-1", "advanced-desulphurized-oil-processing","f") + + aadd("z-liquids-2", "crude-oil-desulphurization", "e") + aadd("z-liquids-2", "water-purification", "a") + + aadd("z-liquids-5", "petroleum-gas-barrel", "i") + aadd("z-liquids-5", "fill-petroleum-gas-barrel", "i") + aadd("z-liquids-5", "methanol-barrel", "j") + aadd("z-liquids-5", "fill-methanol-barrel", "j") + aadd("z-liquids-5", "disulfuric-acid-barrel", "k") + aadd("z-liquids-5", "fill-disulfuric-acid-barrel", "k") + aadd("z-liquids-5", "methylhydrazine-barrel", "l") + aadd("z-liquids-5", "fill-methylhydrazine-barrel", "l") + aadd("z-liquids-5", "dimethylhydrazine-barrel", "m") + aadd("z-liquids-5", "fill-dimethylhydrazine-barrel", "m") + + aadd("z-liquids-6", "empty-petroleum-gas-barrel", "i") + aadd("z-liquids-6", "empty-methanol-barrel", "j") + aadd("z-liquids-6", "empty-disulfuric-acid-barrel", "k") + aadd("z-liquids-6", "empty-methylhydrazine-barrel", "l") + aadd("z-liquids-6", "empty-dimethylhydrazine-barrel", "m") + + -- rail tanker + iadd("z-liquids-9", "crude-oil", "d") + iadd("z-liquids-9", "heavy-oil", "e") + iadd("z-liquids-9", "light-oil", "f") + iadd("z-liquids-9", "bi-biomass", "n") + iadd("z-liquids-9", "water-purified", "p") + iadd("z-liquids-9", "water-floatation-waste", "r") + iadd("z-liquids-9", "water-saline", "s") + iadd("z-liquids-9", "crystal-seedling", "t") + iadd("z-liquids-9", "crystal-matrix", "u") + iadd("z-liquids-9", "crystal-slurry", "v") + iadd("z-liquids-9", "thermal-water", "w") + iadd("z-liquids-9", "mineral-sludge", "x") + iadd("z-liquids-9", "slag-slurry", "y") + iadd("z-liquids-9", "liquefied-coal", "z") + iadd("z-liquids-9", "liquid-air-in-tanker", "a") + iadd("z-liquids-9", "water-in-tanker", "b") + iadd("z-liquids-9", "lithia-water-in-tanker", "c") + iadd("z-liquids-9", "crude-oil-in-tanker", "d") + iadd("z-liquids-9", "heavy-oil-in-tanker", "e") + iadd("z-liquids-9", "light-oil-in-tanker", "f") + iadd("z-liquids-9", "lubricant-in-tanker", "g") + iadd("z-liquids-9", "liquid-fuel-in-tanker", "h") + iadd("z-liquids-9", "ferric-chloride-solution-in-tanker","i") + iadd("z-liquids-9", "alien-goo-in-tanker", "j") + iadd("z-liquids-9", "y-con_water-in-tanker", "k", "__ZGroupChange__/graphics/icons/y-con-water.png") + iadd("z-liquids-9", "y-liquid-uc2-in-tanker", "l") + iadd("z-liquids-9", "bi-Bio_Fuel-in-tanker", "m") + iadd("z-liquids-9", "bi-biomass-in-tanker", "n") + iadd("z-liquids-9", "bi-liquid-co2-in-tanker", "o") + iadd("z-liquids-9", "water-purified-in-tanker", "p") + iadd("z-liquids-9", "water-mineralized-in-tanker", "q") + iadd("z-liquids-9", "water-floatation-waste-in-tanker", "r") + iadd("z-liquids-9", "water-saline-in-tanker", "s") + iadd("z-liquids-9", "crystal-seedling-in-tanker", "t") + iadd("z-liquids-9", "crystal-matrix-in-tanker", "u") + iadd("z-liquids-9", "crystal-slurry-in-tanker", "v") + iadd("z-liquids-9", "thermal-water-in-tanker", "w") + iadd("z-liquids-9", "mineral-sludge-in-tanker", "x") + iadd("z-liquids-9", "slag-slurry-in-tanker", "y") + iadd("z-liquids-9", "liquefied-coal-in-tanker", "z") + + ihide("liquid-chlor-methane-in-tanker") + + -- natural evolution + iadd("z-liquids-10", "NE_alien_toxin") + iadd("z-liquids-10", "NE_alien_toxin-in-tanker") + iadd("z-liquids-10", "NE_nutrient-solution-in-tanker") + iadd("z-liquids-10", "NE_basic-alien-nutrientant-in-tanker") + iadd("z-liquids-10", "NE_enhanced-nutrient-solution-in-tanker") + iadd("z-liquids-10", "NE_enhanced-alien-nutrientant-in-tanker") + iadd("z-liquids-10", "NE_alien-revitalization-in-tanker") + iadd("z-liquids-10", "NE_revitalization-solition-in-tanker") + +end +do --[[chemistry]]-- + -- bio industries + aadd("z-chemistry-2", "air-cracking", "d") + aadd("z-chemistry-2", "carbon-dioxide", "e") + aadd("z-chemistry-2", "ammonia", "f") + + aadd("z-chemistry-3", "solid-fuel-from-methylhydrazine", "e") + + aadd("z-chemistry-7", "hydrogen-sulfide", "a") + aadd("z-chemistry-7", "sulfur-dioxide-from-hydrogen-sulfide","b") + aadd("z-chemistry-7", "sulfur-from-sulfur-dioxide", "c") + aadd("z-chemistry-7", "sulfur-dioxide", "d") + aadd("z-chemistry-7", "sulfur-trioxide", "e") + aadd("z-chemistry-7", "disulfuric-acid", "f") + aadd("z-chemistry-7", "sulfuric-acid-from-disulfuric-acid","g") + + aadd("z-chemistry-8", "methanol", "a") + aadd("z-chemistry-8", "methylamine", "b") + aadd("z-chemistry-8", "dimethylamine", "c") + aadd("z-chemistry-8", "methylhydrazine", "d") + aadd("z-chemistry-8", "dimethylhydrazine", "e") + aadd("z-chemistry-8", "dinitrogen-tetroxide", "f") + aadd("z-chemistry-8", "dinitrogen-tetroxide-container", "g") + + -- bio industries + aadd("z-chemistry-0", "bi-nitrogen", "e") + aadd("z-chemistry-4", "bi-liquid-co2", "f") + iadd("z-chemistry-9", "bi-cellulose", "p") + + -- rail tanker + iadd("z-chemistry-9", "oxygen", "a") + iadd("z-chemistry-9", "chlorine", "b") + iadd("z-chemistry-9", "hydrogen", "c") + iadd("z-chemistry-9", "petroleum-gas", "e") + iadd("z-chemistry-9", "sulfur-dioxide", "i") + iadd("z-chemistry-9", "sulfuric-acid", "k") + iadd("z-chemistry-9", "oxygen-in-tanker", "a") + iadd("z-chemistry-9", "chlorine-in-tanker", "b") + iadd("z-chemistry-9", "hydrogen-in-tanker", "c") + iadd("z-chemistry-9", "nitrogen-in-tanker", "d") + iadd("z-chemistry-9", "petroleum-gas-in-tanker", "e") + iadd("z-chemistry-9", "hydrogen-chloride-in-tanker", "f") + iadd("z-chemistry-9", "nitrogen-dioxide-in-tanker", "h") + iadd("z-chemistry-9", "sulfur-dioxide-in-tanker", "i") + iadd("z-chemistry-9", "nitric-acid-in-tanker", "j") + iadd("z-chemistry-9", "sulfuric-acid-in-tanker", "k") + iadd("z-chemistry-9", "tungstic-acid-in-tanker", "l") + iadd("z-chemistry-9", "sulfuric-nitric-acid-in-tanker", "m") + iadd("z-chemistry-9", "nitroglycerin-in-tanker", "n") + iadd("z-chemistry-9", "glycerol-in-tanker", "o") + iadd("z-chemistry-9", "y_hydrogen-in-tanker", "q") + iadd("z-chemistry-9", "y_syngas_clean-in-tanker", "r") + iadd("z-chemistry-9", "y_syngas_raw-in-tanker", "s") + +end +do --[[automatization]]-- + -- burner filter inserter + aadd("z-automatization-1", "burner-filter-inserter", "a") + + -- natural evolution + aadd("z-automatization-2", "combat-inserter", "a") + +end +do --[[transport]]-- + -- belt sorter + aadd("z-transport-0", "belt-sorter", "h") + + -- smart splitter + aadd("z-transport-1", "smartsplitter", "h") + + -- compound splitter + aadd("z-transport-2", "compound-splitter-priority-totem", "f") + aadd("z-transport-2", "cs-express-transport-belt", "g") + aadd("z-transport-2", "compound-splitter-round-robin-totem","h") + + aadd("z-transport-3", "compound-splitter-endcap", "f") + aadd("z-transport-3", "compound-splitter-lane", "g") + aadd("z-transport-3", "compound-splitter-buffer", "h") + + -- hacked splitter + if i_exist("hacked-splitter") then + aadd("z-transport-5", "hacked-splitter", "a") + aadd("z-transport-5", "hacked-fast-splitter", "b") + aadd("z-transport-5", "hacked-express-splitter", "c") + aadd("z-transport-5", "hacked-green-splitter", "f") + aadd("z-transport-5", "hacked-purple-splitter", "g") + end + + -- flow control + if allow_changes and i_exist("pipe-elbow") and (i_exist("5d-pipe-mk2") or i_exist("copper-pipe")) then + + local new_pipes = {} + local pipe_type = "storage-tank" + + if data.raw["pipe-to-ground"]["pipe-straight"] then pipe_type = "pipe-to-ground" end + + new_pipes["pipe-copper-straight"] = { + item = table.deepcopy(data.raw.item["pipe-straight"]), + recipe = table.deepcopy(data.raw.recipe["pipe-straight"]), + entity = table.deepcopy(data.raw[pipe_type]["pipe-straight"]) + } + new_pipes["pipe-copper-junction"] = { + item = table.deepcopy(data.raw.item["pipe-junction"]), + recipe = table.deepcopy(data.raw.recipe["pipe-junction"]), + entity = table.deepcopy(data.raw[pipe_type]["pipe-junction"]) + } + new_pipes["pipe-copper-elbow"] = { + item = table.deepcopy(data.raw.item["pipe-elbow"]), + recipe = table.deepcopy(data.raw.recipe["pipe-elbow"]), + entity = table.deepcopy(data.raw[pipe_type]["pipe-elbow"]) + } + new_pipes["pipe-steel-straight"] = table.deepcopy(new_pipes["pipe-copper-straight"]) + new_pipes["pipe-steel-junction"] = table.deepcopy(new_pipes["pipe-copper-junction"]) + new_pipes["pipe-steel-elbow"] = table.deepcopy(new_pipes["pipe-copper-elbow"]) + + local pic1 = "__ZGroupChange__/graphics/icons/pipe-" + local pic2 = "__ZGroupChange__/graphics/entity/pipe-" + local n = {cs="pipe-copper-straight",cj="pipe-copper-junction",ce="pipe-copper-elbow",ss="pipe-steel-straight",sj="pipe-steel-junction",se="pipe-steel-elbow",pcs="copper-straight.png",pcj="copper-junction.png",pce="copper-elbow.png",pss="steel-straight.png",psj="steel-junction.png",pse="steel-elbow.png"} + + do -- entity.name / recipe.name / item.name + new_pipes[n.cs].entity.name = n.cs + new_pipes[n.cj].entity.name = n.cj + new_pipes[n.ce].entity.name = n.ce + new_pipes[n.ss].entity.name = n.ss + new_pipes[n.sj].entity.name = n.sj + new_pipes[n.se].entity.name = n.se + new_pipes[n.cs].recipe.name = n.cs + new_pipes[n.cj].recipe.name = n.cj + new_pipes[n.ce].recipe.name = n.ce + new_pipes[n.ss].recipe.name = n.ss + new_pipes[n.sj].recipe.name = n.sj + new_pipes[n.se].recipe.name = n.se + new_pipes[n.cs].item.name = n.cs + new_pipes[n.cj].item.name = n.cj + new_pipes[n.ce].item.name = n.ce + new_pipes[n.ss].item.name = n.ss + new_pipes[n.sj].item.name = n.sj + new_pipes[n.se].item.name = n.se + end + do -- entity.icon / item.icon + new_pipes[n.cs].entity.icon = pic1..n.pcs + new_pipes[n.cj].entity.icon = pic1..n.pcj + new_pipes[n.ce].entity.icon = pic1..n.pce + new_pipes[n.ss].entity.icon = pic1..n.pss + new_pipes[n.sj].entity.icon = pic1..n.psj + new_pipes[n.se].entity.icon = pic1..n.pse + new_pipes[n.cs].item.icon = pic1..n.pcs + new_pipes[n.cj].item.icon = pic1..n.pcj + new_pipes[n.ce].item.icon = pic1..n.pce + new_pipes[n.ss].item.icon = pic1..n.pss + new_pipes[n.sj].item.icon = pic1..n.psj + new_pipes[n.se].item.icon = pic1..n.pse + end + if pipe_type == "storage-tank" then + do -- entity.pictures.picture.sheet.filename + new_pipes[n.cs].entity.pictures.picture.sheet.filename = pic2..n.pcs + new_pipes[n.cj].entity.pictures.picture.sheet.filename = pic2..n.pcj + new_pipes[n.ce].entity.pictures.picture.sheet.filename = pic2..n.pce + new_pipes[n.ss].entity.pictures.picture.sheet.filename = pic2..n.pss + new_pipes[n.sj].entity.pictures.picture.sheet.filename = pic2..n.psj + new_pipes[n.se].entity.pictures.picture.sheet.filename = pic2..n.pse + end + else + do -- entity.pictures.up.filename + new_pipes[n.cs].entity.pictures.up.filename = pic2..n.pcs + new_pipes[n.cj].entity.pictures.up.filename = pic2..n.pcj + new_pipes[n.ce].entity.pictures.up.filename = pic2..n.pce + new_pipes[n.ss].entity.pictures.up.filename = pic2..n.pss + new_pipes[n.sj].entity.pictures.up.filename = pic2..n.psj + new_pipes[n.se].entity.pictures.up.filename = pic2..n.pse + end + do -- entity.pictures.left.filename + new_pipes[n.cs].entity.pictures.left.filename = pic2..n.pcs + new_pipes[n.cj].entity.pictures.left.filename = pic2..n.pcj + new_pipes[n.ce].entity.pictures.left.filename = pic2..n.pce + new_pipes[n.ss].entity.pictures.left.filename = pic2..n.pss + new_pipes[n.sj].entity.pictures.left.filename = pic2..n.psj + new_pipes[n.se].entity.pictures.left.filename = pic2..n.pse + end + do -- entity.pictures.down.filename + new_pipes[n.cs].entity.pictures.down.filename = pic2..n.pcs + new_pipes[n.cj].entity.pictures.down.filename = pic2..n.pcj + new_pipes[n.ce].entity.pictures.down.filename = pic2..n.pce + new_pipes[n.ss].entity.pictures.down.filename = pic2..n.pss + new_pipes[n.sj].entity.pictures.down.filename = pic2..n.psj + new_pipes[n.se].entity.pictures.down.filename = pic2..n.pse + end + do -- entity.pictures.right.filename + new_pipes[n.cs].entity.pictures.right.filename = pic2..n.pcs + new_pipes[n.cj].entity.pictures.right.filename = pic2..n.pcj + new_pipes[n.ce].entity.pictures.right.filename = pic2..n.pce + new_pipes[n.ss].entity.pictures.right.filename = pic2..n.pss + new_pipes[n.sj].entity.pictures.right.filename = pic2..n.psj + new_pipes[n.se].entity.pictures.right.filename = pic2..n.pse + end + end + do -- entity.minable.result + new_pipes[n.cs].entity.minable.result = n.cs + new_pipes[n.cj].entity.minable.result = n.cj + new_pipes[n.ce].entity.minable.result = n.ce + new_pipes[n.ss].entity.minable.result = n.ss + new_pipes[n.sj].entity.minable.result = n.sj + new_pipes[n.se].entity.minable.result = n.se + end + do -- entity.fluid_box.base_area + new_pipes[n.cs].entity.fluid_box.base_area = 3 + new_pipes[n.cj].entity.fluid_box.base_area = 3 + new_pipes[n.ce].entity.fluid_box.base_area = 3 + new_pipes[n.ss].entity.fluid_box.base_area = 5 + new_pipes[n.sj].entity.fluid_box.base_area = 5 + new_pipes[n.se].entity.fluid_box.base_area = 5 + end + do -- recipe.ingredients + new_pipes[n.cs].recipe.ingredients = {{"copper-plate",1}} + new_pipes[n.cj].recipe.ingredients = {{"copper-plate",1}} + new_pipes[n.ce].recipe.ingredients = {{"copper-plate",1}} + new_pipes[n.ss].recipe.ingredients = {{"steel-plate",1}} + new_pipes[n.sj].recipe.ingredients = {{"steel-plate",1}} + new_pipes[n.se].recipe.ingredients = {{"steel-plate",1}} + end + do -- recipe.result + new_pipes[n.cs].recipe.result = n.cs + new_pipes[n.cj].recipe.result = n.cj + new_pipes[n.ce].recipe.result = n.ce + new_pipes[n.ss].recipe.result = n.ss + new_pipes[n.sj].recipe.result = n.sj + new_pipes[n.se].recipe.result = n.se + end + do -- recipe.enabled + new_pipes[n.cs].recipe.enabled = "false" + new_pipes[n.cj].recipe.enabled = "false" + new_pipes[n.ce].recipe.enabled = "false" + new_pipes[n.ss].recipe.enabled = "false" + new_pipes[n.sj].recipe.enabled = "false" + new_pipes[n.se].recipe.enabled = "false" + end + do -- recipe.hidden + new_pipes[n.cs].recipe.hidden = "false" + new_pipes[n.cj].recipe.hidden = "false" + new_pipes[n.ce].recipe.hidden = "false" + new_pipes[n.ss].recipe.hidden = "false" + new_pipes[n.sj].recipe.hidden = "false" + new_pipes[n.se].recipe.hidden = "false" + end + do -- item.place_result + new_pipes[n.cs].item.place_result = n.cs + new_pipes[n.cj].item.place_result = n.cj + new_pipes[n.ce].item.place_result = n.ce + new_pipes[n.ss].item.place_result = n.ss + new_pipes[n.sj].item.place_result = n.sj + new_pipes[n.se].item.place_result = n.se + end + + for k,v in pairs(new_pipes) do data:extend({v.entity,v.recipe,v.item}) end + data.raw[pipe_type]["pipe-straight"].minable.result = "pipe-straight" + data.raw[pipe_type]["pipe-junction"].minable.result = "pipe-junction" + data.raw[pipe_type]["pipe-elbow"].minable.result = "pipe-elbow" + + zgc.t_add_recipe_unlock("logistics-2", "pipe-copper-straight") + zgc.t_add_recipe_unlock("logistics-2", "pipe-copper-junction") + zgc.t_add_recipe_unlock("logistics-2", "pipe-copper-elbow") + zgc.t_add_recipe_unlock("logistics-3", "pipe-steel-straight") + zgc.t_add_recipe_unlock("logistics-3", "pipe-steel-junction") + zgc.t_add_recipe_unlock("logistics-3", "pipe-steel-elbow") + end + if i_exist("pipe-elbow") then ahide("valve") end + + aadd("z-transport-6", "check-valve", "b") + aadd("z-transport-6", "overflow-valve", "c") + aadd("z-transport-6", "express-pump", "d") + + if i_not_exist("5d-pipe-mk2") and i_not_exist("copper-pipe") then + aadd("z-transport-9", "pipe-straight", "d") + aadd("z-transport-9", "pipe-junction", "e") + aadd("z-transport-9", "pipe-elbow", "f") + elseif allow_changes and i_exist("copper-pipe") and i_not_exist("5d-pipe-mk2") then + aadd("z-transport-11", "pipe-straight", "a") + aadd("z-transport-11", "pipe-copper-straight", "b") + aadd("z-transport-11", "pipe-steel-straight", "c") + aadd("z-transport-12", "pipe-junction", "a") + aadd("z-transport-12", "pipe-copper-junction", "b") + aadd("z-transport-12", "pipe-steel-junction", "c") + aadd("z-transport-13", "pipe-elbow", "a") + aadd("z-transport-13", "pipe-copper-elbow", "b") + aadd("z-transport-13", "pipe-steel-elbow", "c") + elseif allow_changes then + aadd("z-transport-10", "pipe-straight", "d") + aadd("z-transport-10", "pipe-copper-straight", "e") + aadd("z-transport-10", "pipe-steel-straight", "f") + aadd("z-transport-11", "pipe-junction", "d") + aadd("z-transport-11", "pipe-copper-junction", "e") + aadd("z-transport-11", "pipe-steel-junction", "f") + aadd("z-transport-12", "pipe-elbow", "d") + aadd("z-transport-12", "pipe-copper-elbow", "e") + aadd("z-transport-12", "pipe-steel-elbow", "f") + else + aadd("z-transport-9", "pipe-straight", "d") + aadd("z-transport-9", "pipe-junction", "e") + aadd("z-transport-9", "pipe-elbow", "f") + end + + if use_graphics_tunnings and i_exist("small-pump-4") or i_exist("5d-small-pump") then + zgc.set_icon("small-pump","__base__/graphics/icons/small-pump.png") + end + + zgc.t_add_recipe_unlock("logistics", "pipe-straight") + zgc.t_add_recipe_unlock("logistics", "pipe-junction") + zgc.t_add_recipe_unlock("logistics", "pipe-elbow") + +end +do --[[logistic]]-- + -- upgrade planer + aadd("z-logistic-0", "upgrade-builder", "d") + + -- yarm + aadd("z-logistic-0", "resource-monitor", "e") + + -- warehousing + aadd("z-logistic-6", "storehouse-requester", "a") + aadd("z-logistic-6", "storehouse-passive-provider", "b") + aadd("z-logistic-6", "storehouse-active-provider", "c") + aadd("z-logistic-6", "storehouse-storage", "d") + aadd("z-logistic-6", "warehouse-storage", "e") + aadd("z-logistic-6", "warehouse-requester", "f") + aadd("z-logistic-6", "warehouse-passive-provider", "g") + aadd("z-logistic-6", "warehouse-active-provider", "h") + + -- nixie tubes + aadd("z-logistic-9", "nixie-tube", "e") + aadd("z-logistic-9", "nixie-tube-alpha", "f") + aadd("z-logistic-9", "nixie-tube-small", "g") + + -- time tools + aadd("z-logistic-9", "clock-combinator", "h") + + -- smart display + aadd("z-logistic-9", "smart-display-visible", "i") +end +do --[[energy]]-- + -- bio industries + aadd("z-energy-4", "bi_bio_Solar_Farm", "j") + aadd("z-energy-7", "bi-big-wooden-pole", "a") + + -- tesseract + aadd("z-energy-7", "tesseract", "j") + + -- factorissimo + aadd("z-energy-9", "factory-power-provider", "a") + aadd("z-energy-9", "factory-power-receiver", "b") + aadd("z-energy-9", "factory-power-distributor", "c") + +end +do --[[module]]-- + -- science cost tweaker + aadd("z-module-0", "sct-lab-1", "ab") + aadd("z-module-0", "sct-lab-2", "ac") + aadd("z-module-0", "sct-lab-3", "ad") + aadd("z-module-0", "sct-lab-4", "ae") + + -- bio industries + aadd("z-module-0", "lab-module", "d") +end +do --[[defense]]-- + -- natural evolution + aadd("z-defense-0", "ne-living-wall", "h") + aadd("z-defense-0", "ne-living-wall-refresh", "i") + aadd("z-defense-0", "ne-living-wall-exhausted", "j") + + -- bio industries + aadd("z-defense-2", "bi-wooden-fence", "a") + aadd("z-defense-2", "Bio_Cannon", "b") + aadd("z-defense-2", "Bio_Cannon_Area", "c") + aadd("z-defense-2", "Bio_Cannon_Basic_Ammo", "d") + aadd("z-defense-2", "Bio_Cannon_Poison_Ammo", "e") + aadd("z-defense-2", "Bio_Cannon_Bio_Ammo", "f") + + -- force field + aadd("z-defense-2", "forcefield-emitter", "f") + aadd("z-defense-2", "forcefield-tool", "g") + + -- ion cannon + aadd("z-defense-2", "orbital-ion-cannon", "h") + aadd("z-defense-2", "ion-cannon-targeter", "i") + aadd("z-defense-8", "auto-targeter", "g") + +end +do --[[intermediate]]-- + -- science cost tweaker + aadd("z-intermediate-3", "sct-bm4-plating", "01") + aadd("z-intermediate-3", "sct-bm4-injector", "02") + aadd("z-intermediate-3", "sct-bm4-supercoils", "03") + aadd("z-intermediate-3", "sct-bm4-capbank", "04") + aadd("z-intermediate-3", "sct-t1-ironcore", "05") + aadd("z-intermediate-3", "sct-t1-magnet-coils", "06") + aadd("z-intermediate-3", "sct-t2-reaction-nodes", "07") + aadd("z-intermediate-3", "sct-t2-instruments", "08") + aadd("z-intermediate-3", "sct-t2-microcircuits", "09") + aadd("z-intermediate-3", "sct-t2-micro-wafer", "10") + aadd("z-intermediate-3", "sct-t2-wafer-stamp", "11") + aadd("z-intermediate-3", "sct-t3-flash-fuel", "12") + aadd("z-intermediate-3", "sct-t3-laser-foci", "13") + aadd("z-intermediate-3", "sct-t3-laser-emitter", "14") + aadd("z-intermediate-3", "sct-t3-femto-lasers", "15") + aadd("z-intermediate-3", "sct-t3-atomic-sensors", "16") + aadd("z-intermediate-3", "sct-t4-bioprocessor", "17") + aadd("z-intermediate-3", "sct-t4-overclocker", "18") + aadd("z-intermediate-3", "sct-bm4-part1", "19") + aadd("z-intermediate-3", "sct-bm4-part1a", "20") + aadd("z-intermediate-3", "sct-bm4-part1b", "21") + aadd("z-intermediate-3", "sct-bm4-part1c", "22") + aadd("z-intermediate-3", "sct-bm4-part2", "23") + aadd("z-intermediate-3", "sct-bm4-part2a", "24") + aadd("z-intermediate-3", "sct-bm4-part2b", "25") + aadd("z-intermediate-3", "sct-bm4-part2c", "26") + aadd("z-intermediate-3", "sct-bm4-part3", "27") + aadd("z-intermediate-3", "sct-bm4-part3a", "28") + aadd("z-intermediate-3", "sct-bm4-part3b", "29") + aadd("z-intermediate-3", "sct-bm4-part3c", "30") + aadd("z-intermediate-3", "sct-bm4-part3d", "31") + aadd("z-intermediate-3", "sct-bm4-part4", "32") + aadd("z-intermediate-3", "sct-bm4-part4a", "33") + aadd("z-intermediate-3", "sct-bm4-part4b", "34") + aadd("z-intermediate-3", "sct-bm4-part4c", "35") + aadd("z-intermediate-3", "sct-bm4-part4d", "36") + aadd("z-intermediate-3", "sct-bm4-part5", "37") + aadd("z-intermediate-3", "sct-bm4-part5a", "38") + aadd("z-intermediate-3", "sct-bm4-part5b", "39") + aadd("z-intermediate-3", "sct-bm4-part5c", "40") + aadd("z-intermediate-3", "sct-bm4-part5d", "41") + + -- bio industries + aadd("z-intermediate-6", "bi-seedling", "h") + aadd("z-intermediate-6", "fertiliser", "i") + aadd("z-intermediate-6", "bi-fertiliser", "i") + aadd("z-intermediate-6", "bi-fertiliser-2", "j") + aadd("z-intermediate-6", "bi-adv-fertiliser", "k") + + if allow_changes and i_exist("bi_bio_farm") then + if i_exist("bob-seedling") then + rhide("bi-seedling") + else rhide("bob-seedling") end + ahide("bob-fertiliser") + switch_tech("bob-fertiliser") + end + + -- tree farm + aadd("z-intermediate-6", "tf-germling", "l") + aadd("z-intermediate-6", "tf-coral-seed", "m") + +end +do --[[trains-vehicles]]-- + -- bio industries + aadd("z-trains-3", "bi-rail-wood", "b") + aadd("z-trains-3", "bi-straight-rail-wood", "b") + + -- tankwerkz + aadd("z-vehicles-1", "hydra-tank", "f") + aadd("z-vehicles-1", "light-tank", "g") + aadd("z-vehicles-1", "flame-tank", "h") + aadd("z-vehicles-1", "heavy-tank", "i") + + aadd("z-vehicles-5", "hiex-cannon-shell", "a") + aadd("z-vehicles-5", "ap-cannon-shell", "c") + aadd("z-vehicles-5", "heavy-mg-ammo", "d") + aadd("z-vehicles-5", "hydra-rocket", "e") + aadd("z-vehicles-5", "tank-flame-thrower-ammo", "f") + aadd("z-vehicles-5", "heavy-mg", "g") + aadd("z-vehicles-5", "hydra-rocket-launcher", "h") + aadd("z-vehicles-5", "flame-tank-flame-thrower", "i") + + -- aircraft + aadd("z-vehicles-2", "cargo-plane", "d") + aadd("z-vehicles-2", "flying-fortress", "e") + aadd("z-vehicles-2", "gunship", "f") + aadd("z-vehicles-2", "jet", "g") + + aadd("z-vehicles-5", "high-explosive-cannon-shell", "b") +end +do --[[armor]]-- + -- bio industries + aadd("z-armor-1", "Biological-bullet-magazine", "bb") + + -- afraid of dark + aadd("z-armor-5", "perfect-night-glasses", "g") + + -- teleportation + aadd("z-armor-5", "teleportation-portal", "h") + aadd("z-armor-5", "teleportation-equipment", "i") + aadd("z-armor-5", "teleportation-beacon", "j") + +end +do --[[weaponry]]-- + -- explosive termites + aadd("z-weaponry-0", "explosive-termites", "l") + aadd("z-weaponry-0", "alien-explosive-termites", "m") + +end +do --[[decorative]]-- + -- landfill + aadd("z-decorative-0", "water-bomb", "a") + aadd("z-decorative-0", "water-be-gone", "a") + + -- color coding + aadd("z-decorative-1", "fire-hazard-concrete", "j") + + -- afraid of dark + aadd("z-decorative-4", "balloon-light", "j") + + aadd("z-decorative-2", "concrete-red", "a") + aadd("z-decorative-2", "concrete-orange", "b") + aadd("z-decorative-2", "concrete-yellow", "c") + aadd("z-decorative-2", "concrete-green", "d") + aadd("z-decorative-2", "concrete-cyan", "e") + aadd("z-decorative-2", "concrete-blue", "f") + aadd("z-decorative-2", "concrete-purple", "g") + aadd("z-decorative-2", "concrete-magenta", "h") + aadd("z-decorative-2", "concrete-white", "i") + aadd("z-decorative-2", "concrete-black", "j") + + aadd("z-decorative-3", "small-lamp-red", "a") + aadd("z-decorative-3", "small-lamp-orange", "b") + aadd("z-decorative-3", "small-lamp-yellow", "c") + aadd("z-decorative-3", "small-lamp-green", "d") + aadd("z-decorative-3", "small-lamp-cyan", "e") + aadd("z-decorative-3", "small-lamp-blue", "f") + aadd("z-decorative-3", "small-lamp-purple", "g") + aadd("z-decorative-3", "small-lamp-magenta", "h") + aadd("z-decorative-3", "small-lamp-white", "i") + aadd("z-decorative-3", "small-lamp-black", "j") + + -- concrete lamppost + aadd("z-decorative-8", "concrete-lamp", "i") + aadd("z-decorative-8", "concrete-lamppost", "j") + +end +do --[[alien]]-- + -- natural evolution + for _,v in pairs(data.raw["item-subgroup"]) do + if v.group == "Natural-Evolution" then v.group = "zgc-alien" end + end + + if i_exist("attractor-on") then + aadd("biters", "attractor-on", "z") + aadd("spitters", "attractor-off", "z") + aadd("Natural-Evolution", "Building_Materials", "0 a") + end + +end +do --[[atom]]-- + + -- uranium power + if i_exist("uranium-hexafluoride") then + + aadd("uranium-energy-conversion", "nuclear-fission-reactor-3-by-3", "g") + aadd("uranium-energy-conversion", "nuclear-fission-reactor-5-by-5", "h") + + aadd("uranium-ammo", "nuclear-fission-reactor-chest-9", "g") + aadd("uranium-ammo", "nuclear-fission-reactor-chest-25", "h") + + zgc.add_main_group("atom") + for _,v in pairs(data.raw["item-subgroup"]) do + if v.group == "uranium" then v.group = "zgc-atom" end + end + end + + ihide("yellowcake-in-tanker") + ihide("pressurised-water-in-tanker") + ihide("fluorine-gas-in-tanker") + ihide("uraninite-slurry-in-tanker") + ihide("superheated-steam-in-tanker") + ihide("low-pressure-steam-in-tanker") + ihide("uranium-hexafluoride-in-tanker") + ihide("uranium-hexafluoride-01-in-tanker") + ihide("uranium-hexafluoride-02-in-tanker") + ihide("uranium-hexafluoride-03-in-tanker") + ihide("uranium-hexafluoride-04-in-tanker") + ihide("uranium-hexafluoride-05-in-tanker") + ihide("uranium-hexafluoride-06-in-tanker") + ihide("uranium-hexafluoride-07-in-tanker") + ihide("uranium-hexafluoride-08-in-tanker") + ihide("uranium-hexafluoride-09-in-tanker") + ihide("uranium-hexafluoride-10-in-tanker") +end +do --[[other]]-- + -- test mode + aadd("z-other-0", "mjollnir", "a") + aadd("z-other-0", "tm-solar-panel", "b") + aadd("z-other-0", "tm-electric-pole", "c") + + -- magnet + aadd("z-other-0", "magnet", "d") + + -- spawn belt + aadd("z-other-1", "spawn-belt", "a") + aadd("z-other-1", "void-belt", "b") + + -- belt sorter + aadd("z-other-1", "belt-sorter-everythingelse", "c") + + if allow_changes and z_balance.other and data.raw.recipe["spawn-belt"] then + data.raw.recipe["spawn-belt"].enabled = "false" + data.raw.recipe["spawn-belt"].hidden = "false" + data.raw.recipe["void-belt"].enabled = "false" + data.raw.recipe["void-belt"].hidden = "false" + zgc.t_add_recipe_unlock("logistics-3", "spawn-belt") + zgc.t_add_recipe_unlock("logistics-3", "void-belt") + end + + -- black market + for _,v in pairs(data.raw["item-subgroup"]) do + if v.group == "black-market-group" then v.group = "zgc-other" end + end + aadd("z-other-2", "ucoin", "a") + + -- signals + if data.raw["item-group"]["signals"] then data.raw["item-group"]["signals"].icon = "__ZGroupChange__/graphics/icons/cat/signals.png" end + + -- recycle + local m = { + __index = function (data) + if groups_supported and not groups_supported["zgc-alien"] then + groups_supported["zgc-alien"] = "__ZGroupChange__/graphics/icons/cat/r/r_alien.png" + groups_supported["zgc-armor"] = "__ZGroupChange__/graphics/icons/cat/r/r_armor.png" + groups_supported["zgc-atom"] = "__ZGroupChange__/graphics/icons/cat/r/r_atom.png" + groups_supported["zgc-automatization"] = "__ZGroupChange__/graphics/icons/cat/r/r_automatization.png" + groups_supported["zgc-chemistry"] = "__ZGroupChange__/graphics/icons/cat/r/r_chemistry.png" + groups_supported["zgc-decorative"] = "__ZGroupChange__/graphics/icons/cat/r/r_decorative.png" + groups_supported["zgc-defense"] = "__ZGroupChange__/graphics/icons/cat/r/r_defense.png" + groups_supported["zgc-energy"] = "__ZGroupChange__/graphics/icons/cat/r/r_energy.png" + groups_supported["zgc-engines"] = "__ZGroupChange__/graphics/icons/cat/r/r_engines.png" + groups_supported["zgc-gathering"] = "__ZGroupChange__/graphics/icons/cat/r/r_gathering.png" + groups_supported["zgc-intermediate"] = "__ZGroupChange__/graphics/icons/cat/r/r_intermediate.png" + groups_supported["zgc-liquids"] = "__ZGroupChange__/graphics/icons/cat/r/r_liquids.png" + groups_supported["zgc-logistic"] = "__ZGroupChange__/graphics/icons/cat/r/r_logistic.png" + groups_supported["zgc-module"] = "__ZGroupChange__/graphics/icons/cat/r/r_module.png" + groups_supported["zgc-other"] = "__ZGroupChange__/graphics/icons/cat/r/r_other.png" + groups_supported["zgc-parts"] = "__ZGroupChange__/graphics/icons/cat/r/r_parts.png" + groups_supported["zgc-plates"] = "__ZGroupChange__/graphics/icons/cat/r/r_plates.png" + groups_supported["zgc-production"] = "__ZGroupChange__/graphics/icons/cat/r/r_production.png" + groups_supported["zgc-refining"] = "__ZGroupChange__/graphics/icons/cat/r/r_refining.png" + groups_supported["zgc-resources"] = "__ZGroupChange__/graphics/icons/cat/r/r_resources.png" + groups_supported["zgc-trains-vehicles"] = "__ZGroupChange__/graphics/icons/cat/r/r_trains-vehicles.png" + groups_supported["zgc-transport"] = "__ZGroupChange__/graphics/icons/cat/r/r_transport.png" + groups_supported["zgc-weaponry"] = "__ZGroupChange__/graphics/icons/cat/r/r_weaponry.png" + groups_supported["zgc-youki"] = "__ZGroupChange__/graphics/icons/cat/r/r_youki.png" + end + return data + end + } + if not dry411smods then dry411smods = {} end + setmetatable(dry411smods, m) + +end + + diff --git a/ZGroupChange_1.2.4/mods/vanila.lua b/ZGroupChange_1.2.5/mods/vanila.lua similarity index 97% rename from ZGroupChange_1.2.4/mods/vanila.lua rename to ZGroupChange_1.2.5/mods/vanila.lua index 1a434a3..d168a2f 100644 --- a/ZGroupChange_1.2.4/mods/vanila.lua +++ b/ZGroupChange_1.2.5/mods/vanila.lua @@ -1,327 +1,327 @@ -local allow_changes = z_balance.vanila - -do --[[gathering]]-- - aadd("z-gathering-0", "iron-axe", "a") - aadd("z-gathering-0", "steel-axe", "b") - aadd("z-gathering-0", "repair-pack", "i") - - aadd("z-gathering-1", "wooden-chest", "a") - aadd("z-gathering-1", "iron-chest", "b") - aadd("z-gathering-1", "steel-chest", "c") - - aadd("z-gathering-3", "storage-tank", "a") - - aadd("z-gathering-4", "burner-mining-drill", "a") - - aadd("z-gathering-6", "electric-mining-drill", "a") - - - aadd("z-gathering-8", "offshore-pump", "a") - aadd("z-gathering-8", "pumpjack", "d") - - aadd("z-gathering-10", "small-pump", "a") - -end -do --[[production]]-- - aadd("z-production-0", "stone-furnace", "a") - aadd("z-production-0", "steel-furnace", "e") - aadd("z-production-0", "electric-furnace", "c") - - aadd("z-production-4", "assembling-machine-1", "a") - aadd("z-production-4", "assembling-machine-2", "b") - aadd("z-production-4", "assembling-machine-3", "c") - - aadd("z-production-6", "oil-refinery", "a") - - aadd("z-production-7", "chemical-plant", "a") -end -do --[[resources]]-- - aadd("z-resources-0", "raw-wood", "a") - aadd("z-resources-0", "wood", "b") - aadd("z-resources-0", "sulfur", "d") - - aadd("z-resources-3", "coal", "a") - aadd("z-resources-3", "stone", "c") - aadd("z-resources-3", "iron-ore", "d") - aadd("z-resources-3", "copper-ore", "e") - - if allow_changes then - data:extend({ - { - type = "recipe", - name = "z-coal", - icon = "__base__/graphics/icons/coal-dark-background.png", - category = "smelting", - subgroup = "z-resources-1", - order = "b", - energy_required = 35, - enabled = true, - ingredients = {{"raw-wood",25}}, - hidden = false, - result = "coal", - result_count = 10 - }, - }) - aadd("z-resources-0", "z-coal", "b") - end -end -do --[[plates]]-- - aadd("z-plates-0", "iron-plate", "a") - aadd("z-plates-0", "copper-plate", "b") - - aadd("z-plates-1", "steel-plate", "a") - -end -do --[[liquids]]-- - aadd("z-liquids-0", "empty-barrel", "a") - - aadd("z-liquids-1", "fill-crude-oil-barrel", "a") - - aadd("z-liquids-2", "empty-crude-oil-barrel", "a") - aadd("z-liquids-2", "lubricant", "b") - - aadd("z-liquids-3", "crude-oil-barrel", "a") - - aadd("z-liquids-4", "basic-oil-processing", "b") - aadd("z-liquids-4", "advanced-oil-processing", "c") - -end -do --[[chemistry]]-- - aadd("z-chemistry-0", "sulfuric-acid", "a") - - aadd("z-chemistry-2", "heavy-oil-cracking", "a") - aadd("z-chemistry-2", "light-oil-cracking", "b") - - aadd("z-chemistry-3", "solid-fuel-from-light-oil", "a") - aadd("z-chemistry-3", "solid-fuel-from-heavy-oil", "b") - aadd("z-chemistry-3", "solid-fuel-from-petroleum-gas","c") - - aadd("z-chemistry-5", "plastic-bar", "a") - -end -do --[[automatization]]-- - aadd("z-automatization-0", "burner-inserter", "a")-- - aadd("z-automatization-0", "inserter", "b")-- - aadd("z-automatization-0", "long-handed-inserter", "c")-- - - aadd("z-automatization-1", "filter-inserter", "a")-- - aadd("z-automatization-1", "stack-filter-inserter", "i")-- - - aadd("z-automatization-2", "fast-inserter", "a")-- - aadd("z-automatization-2", "stack-inserter", "h")-- - -end -do --[[transport]]-- - aadd("z-transport-0", "transport-belt", "a") - aadd("z-transport-0", "fast-transport-belt", "b") - aadd("z-transport-0", "express-transport-belt", "c") - - aadd("z-transport-1", "underground-belt", "a") - aadd("z-transport-1", "fast-underground-belt", "b") - aadd("z-transport-1", "express-underground-belt", "c") - - aadd("z-transport-4", "splitter", "a") - aadd("z-transport-4", "fast-splitter", "b") - aadd("z-transport-4", "express-splitter", "c") - - aadd("z-transport-9", "pipe", "a") - - aadd("z-transport-10", "pipe-to-ground", "a") - - if use_graphics_tunnings then - if i_exist("fast-underground-belt") then - data.raw["underground-belt"]["fast-underground-belt"].underground_sprite.filename = "__ZGroupChange__/graphics/entity/u_line_r.png" end - if i_exist("express-underground-belt") then - data.raw["underground-belt"]["express-underground-belt"].underground_sprite.filename = "__ZGroupChange__/graphics/entity/u_line_b.png" end - if i_exist("pipe-to-ground") then - data.raw["pipe-to-ground"]["pipe-to-ground"].underground_sprite = { - filename = "__ZGroupChange__/graphics/entity/u_pipe_1.png", - priority = "high", - width = 64, - height = 64, - x = 64, - scale = 0.5 - } - end - end - -end -do --[[logistic]]-- - aadd("z-logistic-0", "blueprint-book", "a") - aadd("z-logistic-0", "blueprint", "b") - aadd("z-logistic-0", "deconstruction-planner", "c") - - aadd("z-logistic-1", "roboport", "a") - aadd("z-logistic-1", "logistic-robot", "c") - aadd("z-logistic-1", "construction-robot", "e") - - aadd("z-logistic-2", "logistic-chest-storage", "a") - aadd("z-logistic-2", "logistic-chest-requester", "b") - aadd("z-logistic-2", "logistic-chest-passive-provider", "c") - aadd("z-logistic-2", "logistic-chest-active-provider", "d") - - aadd("z-logistic-8", "copper-cable", "a") - aadd("z-logistic-8", "red-wire", "b") - aadd("z-logistic-8", "green-wire", "c") - - aadd("z-logistic-9", "arithmetic-combinator", "a") - aadd("z-logistic-9", "decider-combinator", "b") - aadd("z-logistic-9", "constant-combinator", "c") - aadd("z-logistic-9", "power-switch", "d") -end -do --[[energy]]-- - aadd("z-energy-0", "solid-fuel", "a") - - aadd("z-energy-1", "boiler", "a") - - aadd("z-energy-2", "steam-engine", "a") - - aadd("z-energy-3", "accumulator", "a") - - aadd("z-energy-4", "solar-panel", "a") - - aadd("z-energy-7", "small-electric-pole", "b") - aadd("z-energy-7", "medium-electric-pole", "c") - - aadd("z-energy-8", "big-electric-pole", "a") - aadd("z-energy-8", "substation", "e") - -end -do --[[defense]]-- - aadd("z-defense-0", "stone-wall", "a") - aadd("z-defense-0", "gate", "d") - - aadd("z-defense-3", "gun-turret", "a") - aadd("z-defense-3", "flamethrower-turret", "b") - aadd("z-defense-3", "laser-turret", "c") - - aadd("z-defense-8", "radar", "a") - -end -do --[[armor]]-- - aadd("z-armor-0", "pistol", "a") - aadd("z-armor-0", "submachine-gun", "b") - aadd("z-armor-0", "shotgun", "c") - aadd("z-armor-0", "combat-shotgun", "d") - aadd("z-armor-0", "flame-thrower", "e") - aadd("z-armor-0", "rocket-launcher", "f") - - aadd("z-armor-1", "firearm-magazine", "a") - aadd("z-armor-1", "piercing-rounds-magazine", "b") - aadd("z-armor-1", "shotgun-shell", "c") - aadd("z-armor-1", "piercing-shotgun-shell", "d") - aadd("z-armor-1", "flame-thrower-ammo", "e") - aadd("z-armor-1", "rocket", "f") - aadd("z-armor-1", "explosive-rocket", "g") - - aadd("z-armor-2", "grenade", "a") - aadd("z-armor-2", "cluster-grenade", "b") - aadd("z-armor-2", "land-mine", "c") - aadd("z-armor-2", "slowdown-capsule", "d") - aadd("z-armor-2", "poison-capsule", "e") - aadd("z-armor-2", "defender-capsule", "f") - aadd("z-armor-2", "distractor-capsule", "g") - aadd("z-armor-2", "destroyer-capsule", "h") - aadd("z-armor-2", "discharge-defense-remote", "i") - - aadd("z-armor-3", "light-armor", "a") - aadd("z-armor-3", "heavy-armor", "b") - aadd("z-armor-3", "modular-armor", "c") - aadd("z-armor-3", "power-armor", "d") - aadd("z-armor-3", "power-armor-mk2", "e") - - aadd("z-armor-4", "exoskeleton-equipment", "a") - aadd("z-armor-4", "night-vision-equipment", "b") - aadd("z-armor-4", "personal-roboport-equipment", "c") - - aadd("z-armor-5", "solar-panel-equipment", "a") - aadd("z-armor-5", "fusion-reactor-equipment", "b") - aadd("z-armor-5", "battery-equipment", "c") - aadd("z-armor-5", "battery-mk2-equipment", "d") - - aadd("z-armor-6", "personal-laser-defense-equipment", "a") - aadd("z-armor-6", "discharge-defense-equipment", "b") - - aadd("z-armor-7", "energy-shield-equipment", "a") - aadd("z-armor-7", "energy-shield-mk2-equipment", "b") - -end -do --[[intermediate]]-- - aadd("z-intermediate-0", "science-pack-1", "a") - aadd("z-intermediate-0", "science-pack-2", "b") - aadd("z-intermediate-0", "science-pack-3", "c") - aadd("z-intermediate-0", "alien-science-pack", "d") - - aadd("z-intermediate-1", "electronic-circuit", "b") - aadd("z-intermediate-1", "advanced-circuit", "d") - aadd("z-intermediate-1", "processing-unit", "f") - - aadd("z-intermediate-4", "iron-gear-wheel", "a") - - aadd("z-intermediate-3", "alien-artifact", "a") - - aadd("z-intermediate-4", "fish", "a") - aadd("z-intermediate-4", "raw-fish", "b") - aadd("z-intermediate-4", "iron-stick", "c") - aadd("z-intermediate-4", "explosives", "d") - aadd("z-intermediate-4", "battery", "e") - aadd("z-intermediate-4", "engine-unit", "f") - aadd("z-intermediate-4", "electric-engine-unit", "g") - aadd("z-intermediate-4", "flying-robot-frame", "h") - - aadd("z-intermediate-7", "rocket-silo", "a") - aadd("z-intermediate-7", "low-density-structure", "b") - aadd("z-intermediate-7", "rocket-fuel", "c") - aadd("z-intermediate-7", "rocket-part", "d") - aadd("z-intermediate-7", "rocket-control-unit", "e") - aadd("z-intermediate-7", "satellite", "f") - -end -do --[[module]]-- - aadd("z-module-0", "lab", "a") - aadd("z-module-0", "beacon", "e") - - aadd("z-module-3", "speed-module", "a") - aadd("z-module-3", "speed-module-2", "b") - aadd("z-module-3", "speed-module-3", "c") - - aadd("z-module-4", "productivity-module", "a") - aadd("z-module-4", "productivity-module-2", "b") - aadd("z-module-4", "productivity-module-3", "c") - - aadd("z-module-5", "effectivity-module", "a") - aadd("z-module-5", "effectivity-module-2", "b") - aadd("z-module-5", "effectivity-module-3", "c") -end -do --[[trains-vehicles]]-- - aadd("z-trains-0", "diesel-locomotive", "c") - - aadd("z-trains-1", "cargo-wagon", "b") - - aadd("z-trains-12", "rail", "a") - aadd("z-trains-12", "straight-rail", "c") - aadd("z-trains-12", "curved-rail", "d") - aadd("z-trains-12", "train-stop", "e") - aadd("z-trains-12", "rail-signal", "f") - aadd("z-trains-12", "rail-chain-signal", "g") - - - aadd("z-vehicles-0", "car", "a") - aadd("z-vehicles-0", "tank", "b") - - aadd("z-vehicles-3", "tank-machine-gun", "a") - aadd("z-vehicles-3", "vehicle-machine-gun", "b") - - aadd("z-vehicles-4", "cannon-shell", "a") - aadd("z-vehicles-4", "explosive-cannon-shell", "b") - -end -do --[[decorative]]-- - aadd("z-decorative-0", "landfill", "a") - aadd("z-decorative-0", "stone-brick", "b") - aadd("z-decorative-0", "concrete", "c") - aadd("z-decorative-0", "hazard-concrete", "d") - - aadd("z-decorative-4", "small-lamp", "a") - -end +local allow_changes = z_balance.vanila + +do --[[gathering]]-- + aadd("z-gathering-0", "iron-axe", "a") + aadd("z-gathering-0", "steel-axe", "b") + aadd("z-gathering-0", "repair-pack", "i") + + aadd("z-gathering-1", "wooden-chest", "a") + aadd("z-gathering-1", "iron-chest", "b") + aadd("z-gathering-1", "steel-chest", "c") + + aadd("z-gathering-3", "storage-tank", "a") + + aadd("z-gathering-4", "burner-mining-drill", "a") + + aadd("z-gathering-6", "electric-mining-drill", "a") + + + aadd("z-gathering-8", "offshore-pump", "a") + aadd("z-gathering-8", "pumpjack", "d") + + aadd("z-gathering-10", "small-pump", "a") + +end +do --[[production]]-- + aadd("z-production-0", "stone-furnace", "a") + aadd("z-production-0", "steel-furnace", "e") + aadd("z-production-0", "electric-furnace", "c") + + aadd("z-production-4", "assembling-machine-1", "a") + aadd("z-production-4", "assembling-machine-2", "b") + aadd("z-production-4", "assembling-machine-3", "c") + + aadd("z-production-6", "oil-refinery", "a") + + aadd("z-production-7", "chemical-plant", "a") +end +do --[[resources]]-- + aadd("z-resources-0", "raw-wood", "a") + aadd("z-resources-0", "wood", "b") + aadd("z-resources-0", "sulfur", "d") + + aadd("z-resources-3", "coal", "a") + aadd("z-resources-3", "stone", "c") + aadd("z-resources-3", "iron-ore", "d") + aadd("z-resources-3", "copper-ore", "e") + + if allow_changes then + data:extend({ + { + type = "recipe", + name = "z-coal", + icon = "__base__/graphics/icons/coal-dark-background.png", + category = "smelting", + subgroup = "z-resources-1", + order = "b", + energy_required = 35, + enabled = true, + ingredients = {{"raw-wood",25}}, + hidden = false, + result = "coal", + result_count = 10 + }, + }) + aadd("z-resources-0", "z-coal", "b") + end +end +do --[[plates]]-- + aadd("z-plates-0", "iron-plate", "a") + aadd("z-plates-0", "copper-plate", "b") + + aadd("z-plates-1", "steel-plate", "a") + +end +do --[[liquids]]-- + aadd("z-liquids-0", "empty-barrel", "a") + + aadd("z-liquids-1", "fill-crude-oil-barrel", "a") + + aadd("z-liquids-2", "empty-crude-oil-barrel", "a") + aadd("z-liquids-2", "lubricant", "b") + + aadd("z-liquids-3", "crude-oil-barrel", "a") + + aadd("z-liquids-4", "basic-oil-processing", "b") + aadd("z-liquids-4", "advanced-oil-processing", "c") + +end +do --[[chemistry]]-- + aadd("z-chemistry-0", "sulfuric-acid", "a") + + aadd("z-chemistry-2", "heavy-oil-cracking", "a") + aadd("z-chemistry-2", "light-oil-cracking", "b") + + aadd("z-chemistry-3", "solid-fuel-from-light-oil", "a") + aadd("z-chemistry-3", "solid-fuel-from-heavy-oil", "b") + aadd("z-chemistry-3", "solid-fuel-from-petroleum-gas","c") + + aadd("z-chemistry-5", "plastic-bar", "a") + +end +do --[[automatization]]-- + aadd("z-automatization-0", "burner-inserter", "a")-- + aadd("z-automatization-0", "inserter", "b")-- + aadd("z-automatization-0", "long-handed-inserter", "c")-- + + aadd("z-automatization-1", "filter-inserter", "a")-- + aadd("z-automatization-1", "stack-filter-inserter", "i")-- + + aadd("z-automatization-2", "fast-inserter", "a")-- + aadd("z-automatization-2", "stack-inserter", "h")-- + +end +do --[[transport]]-- + aadd("z-transport-0", "transport-belt", "a") + aadd("z-transport-0", "fast-transport-belt", "b") + aadd("z-transport-0", "express-transport-belt", "c") + + aadd("z-transport-1", "underground-belt", "a") + aadd("z-transport-1", "fast-underground-belt", "b") + aadd("z-transport-1", "express-underground-belt", "c") + + aadd("z-transport-4", "splitter", "a") + aadd("z-transport-4", "fast-splitter", "b") + aadd("z-transport-4", "express-splitter", "c") + + aadd("z-transport-9", "pipe", "a") + + aadd("z-transport-10", "pipe-to-ground", "a") + + if use_graphics_tunnings then + if i_exist("fast-underground-belt") then + data.raw["underground-belt"]["fast-underground-belt"].underground_sprite.filename = "__ZGroupChange__/graphics/entity/u_line_r.png" end + if i_exist("express-underground-belt") then + data.raw["underground-belt"]["express-underground-belt"].underground_sprite.filename = "__ZGroupChange__/graphics/entity/u_line_b.png" end + if i_exist("pipe-to-ground") then + data.raw["pipe-to-ground"]["pipe-to-ground"].underground_sprite = { + filename = "__ZGroupChange__/graphics/entity/u_pipe_1.png", + priority = "high", + width = 64, + height = 64, + x = 64, + scale = 0.5 + } + end + end + +end +do --[[logistic]]-- + aadd("z-logistic-0", "blueprint-book", "a") + aadd("z-logistic-0", "blueprint", "b") + aadd("z-logistic-0", "deconstruction-planner", "c") + + aadd("z-logistic-1", "roboport", "a") + aadd("z-logistic-1", "logistic-robot", "c") + aadd("z-logistic-1", "construction-robot", "e") + + aadd("z-logistic-2", "logistic-chest-storage", "a") + aadd("z-logistic-2", "logistic-chest-requester", "b") + aadd("z-logistic-2", "logistic-chest-passive-provider", "c") + aadd("z-logistic-2", "logistic-chest-active-provider", "d") + + aadd("z-logistic-8", "copper-cable", "a") + aadd("z-logistic-8", "red-wire", "b") + aadd("z-logistic-8", "green-wire", "c") + + aadd("z-logistic-9", "arithmetic-combinator", "a") + aadd("z-logistic-9", "decider-combinator", "b") + aadd("z-logistic-9", "constant-combinator", "c") + aadd("z-logistic-9", "power-switch", "d") +end +do --[[energy]]-- + aadd("z-energy-0", "solid-fuel", "a") + + aadd("z-energy-1", "boiler", "a") + + aadd("z-energy-2", "steam-engine", "a") + + aadd("z-energy-3", "accumulator", "a") + + aadd("z-energy-4", "solar-panel", "a") + + aadd("z-energy-7", "small-electric-pole", "b") + aadd("z-energy-7", "medium-electric-pole", "c") + + aadd("z-energy-8", "big-electric-pole", "a") + aadd("z-energy-8", "substation", "e") + +end +do --[[defense]]-- + aadd("z-defense-0", "stone-wall", "a") + aadd("z-defense-0", "gate", "d") + + aadd("z-defense-3", "gun-turret", "a") + aadd("z-defense-3", "flamethrower-turret", "b") + aadd("z-defense-3", "laser-turret", "c") + + aadd("z-defense-8", "radar", "a") + +end +do --[[armor]]-- + aadd("z-armor-0", "pistol", "a") + aadd("z-armor-0", "submachine-gun", "b") + aadd("z-armor-0", "shotgun", "c") + aadd("z-armor-0", "combat-shotgun", "d") + aadd("z-armor-0", "flame-thrower", "e") + aadd("z-armor-0", "rocket-launcher", "f") + + aadd("z-armor-1", "firearm-magazine", "a") + aadd("z-armor-1", "piercing-rounds-magazine", "b") + aadd("z-armor-1", "shotgun-shell", "c") + aadd("z-armor-1", "piercing-shotgun-shell", "d") + aadd("z-armor-1", "flame-thrower-ammo", "e") + aadd("z-armor-1", "rocket", "f") + aadd("z-armor-1", "explosive-rocket", "g") + + aadd("z-armor-2", "grenade", "a") + aadd("z-armor-2", "cluster-grenade", "b") + aadd("z-armor-2", "land-mine", "c") + aadd("z-armor-2", "slowdown-capsule", "d") + aadd("z-armor-2", "poison-capsule", "e") + aadd("z-armor-2", "defender-capsule", "f") + aadd("z-armor-2", "distractor-capsule", "g") + aadd("z-armor-2", "destroyer-capsule", "h") + aadd("z-armor-2", "discharge-defense-remote", "i") + + aadd("z-armor-3", "light-armor", "a") + aadd("z-armor-3", "heavy-armor", "b") + aadd("z-armor-3", "modular-armor", "c") + aadd("z-armor-3", "power-armor", "d") + aadd("z-armor-3", "power-armor-mk2", "e") + + aadd("z-armor-4", "exoskeleton-equipment", "a") + aadd("z-armor-4", "night-vision-equipment", "b") + aadd("z-armor-4", "personal-roboport-equipment", "c") + + aadd("z-armor-5", "solar-panel-equipment", "a") + aadd("z-armor-5", "fusion-reactor-equipment", "b") + aadd("z-armor-5", "battery-equipment", "c") + aadd("z-armor-5", "battery-mk2-equipment", "d") + + aadd("z-armor-6", "personal-laser-defense-equipment", "a") + aadd("z-armor-6", "discharge-defense-equipment", "b") + + aadd("z-armor-7", "energy-shield-equipment", "a") + aadd("z-armor-7", "energy-shield-mk2-equipment", "b") + +end +do --[[intermediate]]-- + aadd("z-intermediate-0", "science-pack-1", "a") + aadd("z-intermediate-0", "science-pack-2", "b") + aadd("z-intermediate-0", "science-pack-3", "c") + aadd("z-intermediate-0", "alien-science-pack", "d") + + aadd("z-intermediate-1", "electronic-circuit", "b") + aadd("z-intermediate-1", "advanced-circuit", "d") + aadd("z-intermediate-1", "processing-unit", "f") + + aadd("z-intermediate-4", "iron-gear-wheel", "a") + + aadd("z-intermediate-3", "alien-artifact", "a") + + aadd("z-intermediate-4", "fish", "a") + aadd("z-intermediate-4", "raw-fish", "b") + aadd("z-intermediate-4", "iron-stick", "c") + aadd("z-intermediate-4", "explosives", "d") + aadd("z-intermediate-4", "battery", "e") + aadd("z-intermediate-4", "engine-unit", "f") + aadd("z-intermediate-4", "electric-engine-unit", "g") + aadd("z-intermediate-4", "flying-robot-frame", "h") + + aadd("z-intermediate-7", "rocket-silo", "a") + aadd("z-intermediate-7", "low-density-structure", "b") + aadd("z-intermediate-7", "rocket-fuel", "c") + aadd("z-intermediate-7", "rocket-part", "d") + aadd("z-intermediate-7", "rocket-control-unit", "e") + aadd("z-intermediate-7", "satellite", "f") + +end +do --[[module]]-- + aadd("z-module-0", "lab", "a") + aadd("z-module-0", "beacon", "e") + + aadd("z-module-3", "speed-module", "a") + aadd("z-module-3", "speed-module-2", "b") + aadd("z-module-3", "speed-module-3", "c") + + aadd("z-module-4", "productivity-module", "a") + aadd("z-module-4", "productivity-module-2", "b") + aadd("z-module-4", "productivity-module-3", "c") + + aadd("z-module-5", "effectivity-module", "a") + aadd("z-module-5", "effectivity-module-2", "b") + aadd("z-module-5", "effectivity-module-3", "c") +end +do --[[trains-vehicles]]-- + aadd("z-trains-0", "diesel-locomotive", "c") + + aadd("z-trains-1", "cargo-wagon", "b") + + aadd("z-trains-12", "rail", "a") + aadd("z-trains-12", "straight-rail", "c") + aadd("z-trains-12", "curved-rail", "d") + aadd("z-trains-12", "train-stop", "e") + aadd("z-trains-12", "rail-signal", "f") + aadd("z-trains-12", "rail-chain-signal", "g") + + + aadd("z-vehicles-0", "car", "a") + aadd("z-vehicles-0", "tank", "b") + + aadd("z-vehicles-3", "tank-machine-gun", "a") + aadd("z-vehicles-3", "vehicle-machine-gun", "b") + + aadd("z-vehicles-4", "cannon-shell", "a") + aadd("z-vehicles-4", "explosive-cannon-shell", "b") + +end +do --[[decorative]]-- + aadd("z-decorative-0", "landfill", "a") + aadd("z-decorative-0", "stone-brick", "b") + aadd("z-decorative-0", "concrete", "c") + aadd("z-decorative-0", "hazard-concrete", "d") + + aadd("z-decorative-4", "small-lamp", "a") + +end diff --git a/ZGroupChange_1.2.4/mods/yuoki.lua b/ZGroupChange_1.2.5/mods/yuoki.lua similarity index 97% rename from ZGroupChange_1.2.4/mods/yuoki.lua rename to ZGroupChange_1.2.5/mods/yuoki.lua index e1d3ea6..396c62f 100644 --- a/ZGroupChange_1.2.4/mods/yuoki.lua +++ b/ZGroupChange_1.2.5/mods/yuoki.lua @@ -1,1261 +1,1261 @@ -local allow_changes = z_balance.youki - -do --[[gathering]]-- - aadd("z-gathering-0", "y_quantrinum_hammer", "h") - aadd("z-gathering-0", "y-repair-durotal", "k") - aadd("z-gathering-0", "y-repair-krakon", "l") - aadd("z-gathering-0", "y_repair_quantrinum", "n") - - if not allow_changes then - aadd("z-gathering-0", "y-axe-duro", "h") - aadd("z-gathering-0", "y-axe-durotal-recipe", "h") - if z_balance.youki_tech then - zgc.add_recipe_to_tech("yuoki_industries-3", "y-axe-durotal-recipe") - end - else - ahide("brass-axe", "mining-tool") - ahide("cobalt-axe", "mining-tool") - ahide("tungsten-axe", "mining-tool") - ahide("y-axe-duro", "mining-tool") - ahide("y-axe-durotal-recipe") - end - - aadd("z-gathering-2", "y_sc11", "a") - aadd("z-gathering-2", "y_c11", "a") - aadd("z-gathering-2", "y_c22", "b") - aadd("z-gathering-2", "y_cg33", "c") - aadd("z-gathering-2", "y_sc44", "d") - - aadd("z-gathering-3", "5d-storage-tank", "e") - aadd("z-gathering-3", "y_buffer_station", "f") - aadd("z-gathering-3", "y-tank-4500", "h") - aadd("z-gathering-3", "y-tank-24k", "j") - - if not allow_changes then - aadd("z-gathering-3", "y-tank-1000", "g") - aadd("z-gathering-3", "y-tank-8000", "i") - if z_balance.youki_tech then - zgc.add_recipe_to_tech("yuoki_liquids-2", "y-tank-1000") - zgc.add_recipe_to_tech("yuoki_liquids-3", "y-tank-8000") - end - else - ahide("y-tank-1000", "5d-storage-tank") - ahide("y-tank-8000", "y-tank-1000") - ahide("storage-tank-2", "storage-tank") - ahide("storage-tank-3", "storage-tank") - ahide("storage-tank-4", "storage-tank") - zgc.t_add_recipe_unlock("bob-fluid-handling-2", "5d-storage-tank") - end - - aadd("z-gathering-4", "y-mining-drill", "z") - aadd("z-gathering-5", "y-mining-drill-e2", "z") - aadd("z-gathering-6", "y-underground-drill", "z") - - aadd("z-gathering-8", "y-water-gen", "h") - iadd("z-gathering-8", "y-water-gen-e", "i") - radd("z-gathering-8", "y-water-gen-recipe-e", "i") - - if i_exist("water-miner-1") and allow_changes and z_balance.bob then - aadd("z-gathering-9", "y-water-gen", "a") - aadd("z-gathering-9", "y-water-gen-e", "b") - aadd("z-gathering-9", "y-water-gen-recipe-e", "b") - aadd("z-gathering-9", "water-miner-1", "c") - - ahide("water-miner-2") - ahide("water-miner-3") - ahide("water-miner-4") - ahide("water-miner-5") - switch_tech("water-miner-2") - switch_tech("water-miner-3") - switch_tech("water-miner-4") - switch_tech("water-miner-5") - end - -end -do --[[production]]-- - aadd("z-production-3", "y-crusher", "a") - aadd("z-production-3", "y_crusher2", "b") - aadd("z-production-3", "y-dirtwasher", "c") - aadd("z-production-3", "y-heat-form-press", "d") - aadd("z-production-3", "y_formpress2", "e") - aadd("z-production-3", "y_maintance_workshop", "f") - - aadd("z-production-5", "y_smelter", "d") - aadd("z-production-5", "y_charger", "e") - aadd("z-production-5", "y-atomic-quantum-composer","f") - aadd("z-production-5", "y-alien-infuser", "g") - -end -do --[[resources]]-- - aadd("z-resources-3", "y-res1", "h") - aadd("z-resources-3", "y-res2", "i") - - if z_balance.add_trees then - zgc.add_newRessource_min_max("raw-wood", "y_organic_dust",1,4,0.5) - end - if z_balance.add_dirt then - zgc.add_newRessource_min_max("coal", "y-dirt",1,2,0.3 ,"y-coal-dust",1,2,0.2) - zgc.add_newRessource_min_max("stone", "y-dirt",1,2,0.3) - zgc.add_newRessource_min_max("iron-ore", "y-dirt",1,2,0.2) - zgc.add_newRessource_min_max("copper-ore", "y-dirt",1,2,0.2) - zgc.add_newRessource_min_max("lead-ore", "y-dirt",1,1,0.2, "y-toxic-dust",1,2,0.2) - zgc.add_newRessource_min_max("tin-ore", "y-dirt",1,2,0.2) - zgc.add_newRessource_min_max("zinc-ore", "y-dirt",1,2,0.2, "y-toxic-dust",1,1,0.2) - zgc.add_newRessource_min_max("bauxite-ore", "y-dirt",1,1,0.3) - zgc.add_newRessource_min_max("cobalt-ore", "y-dirt",1,2,0.2) - zgc.add_newRessource_min_max("nickel-ore", "y-dirt",1,1,0.2, "y-toxic-dust",1,1,0.2) - zgc.add_newRessource_min_max("rutile-ore", "y-dirt",1,2,0.2, "y-toxic-dust",1,2,0.2) - zgc.add_newRessource_min_max("silver-ore", "y-dirt",1,1,0.2) - zgc.add_newRessource_min_max("tungsten-ore","y-dirt",1,2,0.2, "y-toxic-dust",1,2,0.2) - zgc.add_newRessource_min_max("sulfur", "y-toxic-dust",1,2,0.3) - zgc.add_newRessource_min_max("y-res1", "y-toxic-dust",1,2,0.2) - zgc.add_newRessource_min_max("y-res2", "y-toxic-dust",1,2,0.2) - end - if z_balance.add_dust then - zgc.add_newRessource_min_max("y-res1", "y-crush-yres1",1,1,0.2) - zgc.add_newRessource_min_max("y-res2", "y-crush-yres2",1,1,0.2) - end -end -do --[[plates]]-- - aadd("z-plates-9", "y-refined-iron", "h") - aadd("z-plates-9", "y-refined-copper", "i") - - aadd("z-plates-10", "y_hps_pureiron_recipe", "h") - aadd("z-plates-10", "y_hps_purecopper_recipe", "i") - - aadd("z-plates-15", "y_hps_steel_recipe", "ab") - - if use_graphics_tunnings then - zgc.set_icon("y-refined-iron", "__ZGroupChange__/graphics/icons/pure-iron.png") - zgc.set_icon("y-refined-copper", "__ZGroupChange__/graphics/icons/pure-copper.png") - - zgc.set_icon("y_hps_pureiron_recipe", "__ZGroupChange__/graphics/icons/heat-iron.png") - zgc.set_icon("y_hps_purecopper_recipe", "__ZGroupChange__/graphics/icons/heat-copper.png") - - zgc.set_icon("y_hps_steel_recipe", "__ZGroupChange__/graphics/icons/heat-steel.png") - end - -end -do --[[liquids]]-- - if allow_changes and data.raw.fluid["lithia-water"] and i_exist("y-water-gen") then - data:extend({ - { - type="recipe-category", - name="z-watergen-recipe" - }, - { - type = "recipe", - name = "z-lithia-water", - icon = "__ZGroupChange__/graphics/icons/lithia-water.png", - category = "z-watergen-recipe", - energy_required = 5, - enabled = true, - ingredients = { - {"y_organic_dust",7} - }, - results = {{type="fluid",name="lithia-water",amount=140}}, - main_product = "lithia-water", - hidden = false, - subgroup = "z-liquids-2", - order = "b" - }, - }) - table.insert(data.raw["assembling-machine"]["y-water-gen"].crafting_categories,"z-watergen-recipe") - if z_balance.youki_tech then - zgc.add_recipe_to_tech("yuoki_liquids", "z-lithia-water") - end - end - - aadd("z-liquids-2", "y-water-gen-fluid-recipe", "a") - aadd("z-liquids-2", "z-lithia-water", "b") - aadd("z-liquids-0", "liquid-air", "f") - aadd("z-liquids-2", "bob-liquid-air", "g") - - aadd("z-liquids-4", "y-con_water", "k") - aadd("z-liquids-4", "y-liquid-uc2", "l") - - if use_graphics_tunnings then - zgc.set_icon("y-con_water", "__ZGroupChange__/graphics/icons/y-con-water.png") - end - -end -do --[[chemistry]]-- - radd("z-chemistry-0", "y-sulfuric-acid-recipe", "a") - aadd("z-chemistry-4", "y_coal2liquid", "a") - aadd("z-chemistry-4", "y_ft_recipe", "b") - aadd("z-chemistry-4", "y_rawsyngas1_recipe", "c") - aadd("z-chemistry-4", "y_rawsyngas2_recipe", "d") - aadd("z-chemistry-4", "y_refinehydrogen_recipe", "e") - aadd("z-chemistry-9", "y_hydrogen", "p") - aadd("z-chemistry-9", "y_syngas_clean", "q") - aadd("z-chemistry-9", "y_syngas_raw", "r") - -end -do --[[automatization]]-- - if z_balance.bob_inserters then - ahide("y-inserter-s4","inserter") - ahide("y-inserter-fast", "fast-inserter") - ahide("y-inserter-smart","filter-inserter") - ahide("y-inserter-smart-long","filter-inserter") - ahide("y_inserter_smart_LL","filter-inserter") - ahide("y_inserter_smart_RR","filter-inserter") - ahide("y_inserter_diagonal","inserter") - ahide("y_inserter_smart_leftR2","filter-inserter") - ahide("y_inserter_smart_rightR2","filter-inserter") - ahide("y_inserter_evade_shortL","inserter") - ahide("y_inserter_evade_shortR","inserter") - else - aadd("z-automatization-0", "y-inserter-fast", "i") - aadd("z-automatization-0", "y-inserter-s4", "j") - - aadd("z-automatization-1", "y-inserter-smart", "i") - aadd("z-automatization-1", "y-inserter-smart-long", "j") - - aadd("z-automatization-2", "y_inserter_diagonal", "j") - - aadd("z-automatization-4", "y_inserter_smart_LL", "h") - aadd("z-automatization-4", "y_inserter_smart_leftR2", "i") - aadd("z-automatization-4", "y_inserter_evade_shortL", "j") - - aadd("z-automatization-5", "y_inserter_smart_RR", "h") - aadd("z-automatization-5", "y_inserter_smart_rightR2", "i") - aadd("z-automatization-5", "y_inserter_evade_shortR", "j") - - if z_balance.youki_tech then - zgc.add_recipe_to_tech("yuoki_industries", "y-inserter-fast") - zgc.add_recipe_to_tech("yuoki_industries", "y-inserter-smart") - - zgc.add_recipe_to_tech("yuoki_industries-2", "y-inserter-s4") - zgc.add_recipe_to_tech("yuoki_industries-2", "y-inserter-smart-long") - zgc.add_recipe_to_tech("yuoki_industries-2", "y_inserter_smart_LL") - zgc.add_recipe_to_tech("yuoki_industries-2", "y_inserter_smart_leftR2") - zgc.add_recipe_to_tech("yuoki_industries-2", "y_inserter_evade_shortL") - - zgc.add_recipe_to_tech("yuoki_industries-3", "y_inserter_diagonal") - zgc.add_recipe_to_tech("yuoki_industries-3", "y_inserter_smart_RR") - zgc.add_recipe_to_tech("yuoki_industries-3", "y_inserter_smart_rightR2") - zgc.add_recipe_to_tech("yuoki_industries-3", "y_inserter_evade_shortR") - end - end - -end -do --[[transport]]-- - aadd("z-transport-6", "y_flowcheck_10", "g") - - if not z_balance.youki_pipe then - aadd("z-transport-6", "y-valve-direction-buffer", "h") - - aadd("z-transport-14", "y-pipe-v", "a") - aadd("z-transport-14", "y-pipe-h", "b") - aadd("z-transport-14", "y-pipe-hc", "c") - aadd("z-transport-14", "y-pipe-ec", "d") - aadd("z-transport-14", "y-pipe-to-ground-hc", "e") - aadd("z-transport-14", "y-pipe-to-ground-ec", "f") - - if z_balance.youki_tech then - zgc.add_recipe_to_tech("yuoki_liquids", "y-pipe-v") - zgc.add_recipe_to_tech("yuoki_liquids", "y-pipe-h") - zgc.add_recipe_to_tech("yuoki_liquids", "y_flowcheck_10_recipe") - - zgc.add_recipe_to_tech("yuoki_liquids-2", "y-pipe-hc") - zgc.add_recipe_to_tech("yuoki_liquids-2", "y-pipe-ec") - zgc.add_recipe_to_tech("yuoki_liquids-2", "y-pipe-to-ground-hc") - zgc.add_recipe_to_tech("yuoki_liquids-2", "y-pipe-to-ground-ec") - end - else - ahide("y-pipe-h", "pipe") - ahide("y-pipe-v", "pipe") - if data.raw.item["5d-pipe-mk2"] then - ahide("y-pipe-hc", "5d-pipe-mk2") - ahide("y-pipe-to-ground-hc", "5d-pipe-mk2") - ahide("y-pipe-ec", "5d-pipe-mk3") - ahide("y-pipe-to-ground-ec", "5d-pipe-mk3") - else - ahide("y-pipe-hc", "pipe") - ahide("y-pipe-to-ground-hc", "pipe") - ahide("y-pipe-ec", "pipe") - ahide("y-pipe-to-ground-ec", "pipe") - end - ahide("y-valve-direction-buffer", "valve") - end -end -do --[[logistic]]-- - aadd("z-logistic-1", "yi_roboport", "c") - - aadd("z-logistic-3", "yi_logistic-robot", "e") - aadd("z-logistic-3", "yi_construction-robot", "j") - - aadd("z-logistic-5", "y-rare-chest-log", "a") - aadd("z-logistic-5", "y-rare-m1bunker-log", "b") - aadd("z-logistic-5", "y_pc22", "c") - aadd("z-logistic-5", "y_rc22", "d") -end -do --[[energy]]-- - aadd("z-energy-0", "y-wooden-brikett", "a") - aadd("z-energy-0", "y-coal-brikett", "b") - aadd("z-energy-0", "solid-fuel", "c") - aadd("z-energy-0", "y-mixed-fuel", "d") - aadd("z-energy-0", "y-coaldust-mixing-recipe", "d") - aadd("z-energy-0", "y-mixed-fuel-loaded", "e") - aadd("z-energy-0", "y-mixfuel-load-recipe", "e") - aadd("z-energy-0", "y-wooden-brikett-packed", "g") - aadd("z-energy-0", "y-coal-stack", "h") - aadd("z-energy-0", "y-infused-mud", "i") - aadd("z-energy-0", "y-fuel-cell-c", "j") - aadd("z-energy-0", "y-sgtrade-ic1-recipe", "j") - - aadd("z-energy-1", "y-boiler-t2", "g") - aadd("z-energy-1", "y-boiler-t3", "h") - aadd("z-energy-1", "y-boiler-iv", "i") - aadd("z-energy-1", "y-obninsk-reactor", "j") - - aadd("z-energy-2", "y-notfall-generator-s2", "f") - aadd("z-energy-2", "y-steam-turbine", "g") - aadd("z-energy-2", "y-steam-turbine-mk3", "h") - aadd("z-energy-2", "y-obninsk-turbine", "i") - aadd("z-energy-2", "y-meg-s", "j") - aadd("z-energy-2", "y-beg", "k") - aadd("z-energy-2", "y-heg", "l") - - aadd("z-energy-3", "y-accumulator-m", "c") - aadd("z-energy-3", "y-accumulator-m-t2", "d") - aadd("z-energy-3", "y-accumulator-mt2-recipe", "d") - aadd("z-energy-3", "y-accumulator-b", "e") - aadd("z-energy-3", "y-accumulator-b-t2", "f") - aadd("z-energy-3", "y-accumulator-bt2-recipe", "f") - aadd("z-energy-3", "y-accumulator-b-tx", "g") - aadd("z-energy-3", "y-accumulator-btx-recipe", "g") - aadd("z-energy-3", "y-accumulator-crystal-m", "h") - aadd("z-energy-3", "y-ups-flywheel-b", "i") - aadd("z-energy-3", "y_compensator_25", "j") - - aadd("z-energy-4", "y-stirling-solar-dish", "g") - aadd("z-energy-4", "y-solar-dish-recipe", "h") - aadd("z-energy-4", "y_alien_solar", "i") - aadd("z-energy-4", "y_alien_solar2", "j") - - aadd("z-energy-7", "y-substation-m", "g") - aadd("z-energy-7", "y-substation-h", "h") - - if not allow_changes then - aadd("z-energy-3", "y-seg", "b") - aadd("z-energy-3", "y-seg-p", "b") - - if z_balance.youki_tech then - zgc.add_recipe_to_tech("yuoki_energy", "y-seg-recipe") - zgc.add_recipe_to_tech("yuoki_energy", "y-seg-p-recipe") - end - - aadd("z-energy-3", "y-notfall-generator-s1", "z") - - aadd("z-energy-4", "y-accumulator-s", "z") - aadd("z-energy-4", "y-accumulator-s-t2", "z") - aadd("z-energy-4", "yi_obelisk_A3_5X", "z") - else - ahide("5d-basic-accumulator-3") - ahide("y-notfall-generator-s1") - ahide("y-seg") - ahide("y-seg-p") - ahide("y-accumulator-s") - ahide("y-accumulator-s-t2") - ahide("yi_obelisk_A3_5X") - - switch_tech("electric-energy-accumulators-3") - switch_tech("engine-3") - end - -end -do --[[defense]]-- - aadd("z-defense-1", "y-mud-wall", "a") - aadd("z-defense-1", "y-rare-wall-basic", "b") - aadd("z-defense-1", "y-rare-wall-adv", "c") - aadd("z-defense-1", "y_wall22_hardic", "d") - aadd("z-defense-1", "y-wall-forcefield", "e") - - aadd("z-defense-6", "y_turret_flame", "a") - aadd("z-defense-6", "y_turret_plasma", "b") - aadd("z-defense-6", "y-laser-def-s4", "c") - aadd("z-defense-6", "y_laser_onhwall_recipe", "c") - aadd("z-defense-6", "y_turret_gun2f12", "d") - aadd("z-defense-6", "y-gun-turret-mk2-recipe", "d") - aadd("z-defense-6", "y_turret_gun1f12", "e") - aadd("z-defense-6", "y-gun-turret-mk3-recipe", "e") - aadd("z-defense-6", "y_turret_laser22f12", "f") - aadd("z-defense-6", "y_laser_mk1_recipe", "f") - aadd("z-defense-6", "y-weapon-ztt", "g") - - aadd("z-defense-7", "y-bullet-case", "a") - aadd("z-defense-7", "y_ammo_case", "b") - aadd("z-defense-7", "y-ammo-hohlspitz", "c") - aadd("z-defense-7", "y-ammo-krakon", "d") - aadd("z-defense-7", "y-ammo-explosiv", "e") - aadd("z-defense-7", "y-ammo-biggun", "f") - aadd("z-defense-7", "y-ammo-poison", "g") - aadd("z-defense-7", "y-ammo-acid-2", "h") - aadd("z-defense-7", "y-ammo-acid-medium-recipe", "h") - aadd("z-defense-7", "y_ammo_flame", "i") - aadd("z-defense-7", "y_ammo_plasma", "j") - - aadd("z-defense-8", "yi_radar", "d") - - if allow_changes and i_exist("yi_radar") then - ahide("radar-4") - ahide("radar-5") - switch_tech("radars-3") - switch_tech("radars-4") - else - aadd("z-defense-8", "yi_radar", "g") - end -end -do --[[intermediate]]-- - aadd("z-intermediate-7", "y-battery-single-use1", "d") - aadd("z-intermediate-7", "y-battery-single-use2", "e") - aadd("z-intermediate-7", "y-battery-single-use3", "f") - aadd("z-intermediate-7", "y-battery-singleuse1-recipe", "d") - aadd("z-intermediate-7", "y-battery-singleuse2-recipe", "e") - aadd("z-intermediate-7", "engine-unit", "g") - aadd("z-intermediate-7", "electric-engine-unit", "h") - -end -do --[[parts]]-- - if i_exist("y-dirt") then zgc.add_main_group("parts") end - - aadd("z-parts-1", "y-dirt", "a") - aadd("z-parts-1", "y-digfdirt-recipe", "a") - aadd("z-parts-1", "y-digfdirt2-recipe", "b") - aadd("z-parts-1", "y-coal-dust", "c") - aadd("z-parts-1", "y-crush-yres1", "d") - aadd("z-parts-1", "y-crush-unicomp-raw-recipe", "d") - aadd("z-parts-1", "y-crush-yres2", "e") - aadd("z-parts-1", "y-crush-fuel-raw-recipe", "e") - aadd("z-parts-1", "y-filtering-dust-recipe", "f") - aadd("z-parts-1", "y-crush-blue_whead-recipe", "g") - aadd("z-parts-1", "y-crush-green_whead-recipe", "h") - aadd("z-parts-1", "y-richdust", "i") - aadd("z-parts-1", "y-mixing-rich-recipe", "i") - - aadd("z-parts-2", "y-c_mud", "a") - aadd("z-parts-2", "y-release-cwater", "a") - aadd("z-parts-2", "y-wash-special-recipe", "b") - aadd("z-parts-2", "y-toxic-dust", "c") - aadd("z-parts-2", "y-dry_mud", "d") - aadd("z-parts-2", "y-pressed_dry_mud-recipe", "d") - aadd("z-parts-2", "y_slag_granulate", "e") - aadd("z-parts-2", "y-slag", "f") - aadd("z-parts-2", "y-unicomp-raw", "g") - aadd("z-parts-2", "y-unicomp-a2", "h") - aadd("z-parts-2", "y-press-richdust-recipe", "h") - aadd("z-parts-2", "y-orange-stuff", "i") - aadd("z-parts-2", "y-smelt-richdust-recipe", "i") - aadd("z-parts-2", "y-crystal2", "j") - aadd("z-parts-2", "y-raw-fuelnium", "k") - - aadd("z-parts-3", "y-pure-iron", "a") - aadd("z-parts-3", "y_pure_iron_wtool_recipe", "b") - aadd("z-parts-3", "y-pure-copper", "c") - aadd("z-parts-3", "y_pure_copper_wtool_recipe", "d") - aadd("z-parts-3", "y-refined-yres1", "e") - aadd("z-parts-3", "y-smelt-crush-res1-recipe", "e") - aadd("z-parts-3", "y-refined-yres2", "f") - aadd("z-parts-3", "y-smelt-crush-res2-recipe", "f") - aadd("z-parts-3", "y_slag_brick", "g") - aadd("z-parts-3", "y_slag_brick_recipe", "g") - aadd("z-parts-3", "y_slag_brick_burn_recipe", "h") - aadd("z-parts-3", "y-wash-dirt-recipe", "i") - - aadd("z-parts-4", "y_drillhead", "a") - aadd("z-parts-4", "y_drillhead_broken", "b") - aadd("z-parts-4", "y_drillhead_repair_recipe", "c") - aadd("z-parts-4", "y_toolhead", "d") - aadd("z-parts-4", "y_toolhead_broken", "e") - aadd("z-parts-4", "y_toolhead_repair_recipe", "f") - aadd("z-parts-4", "y_block_cold", "g") - aadd("z-parts-4", "y_block_heat", "h") - - aadd("z-parts-5", "y-heat-pipe", "a") - aadd("z-parts-5", "y-bluegear", "b") - aadd("z-parts-5", "y_structure_element", "c") - aadd("z-parts-5", "y_structure_vessel", "d") - aadd("z-parts-5", "y_blocked_capa", "f") - aadd("z-parts-5", "y-basic-t1-mf", "g") - aadd("z-parts-5", "y-basic-st1-mf-recipe", "g") - aadd("z-parts-5", "y-basic-t2-mf", "h") - aadd("z-parts-5", "y-basic-st2-mf-recipe", "h") - - aadd("z-parts-6", "y-conductive-wire-1", "a") - aadd("z-parts-6", "y-conductive-coil-1", "b") - aadd("z-parts-6", "yi_magnetron", "c") - aadd("z-parts-6", "y_dotzetron", "d") - aadd("z-parts-6", "y_chip_plate", "e") - aadd("z-parts-6", "y-chip-1", "f") - aadd("z-parts-6", "y-chip1-recipe", "f") - aadd("z-parts-6", "y-chip-2", "g") - aadd("z-parts-6", "y-chip2-recipe", "g") - - aadd("z-parts-7", "y_organic_dust", "a") - aadd("z-parts-7", "y_granulate_wood_recipe", "a") - aadd("z-parts-5", "y_gauge", "b") - aadd("z-parts-5", "y_gauge_analog_recipe", "b") - aadd("z-parts-7", "y_catalyst_base", "c") - aadd("z-parts-7", "y_usedcatalyst", "d") - aadd("z-parts-7", "y_catalyst_bp", "e") - aadd("z-parts-7", "y_catalyst_ft", "f") - aadd("z-parts-7", "y_regcatbp_recipe", "g") - aadd("z-parts-7", "y_regcatft_recipe", "h") - - aadd("z-parts-8", "y-fuel-reactor", "b") - aadd("z-parts-8", "y-infused-uca2", "c") - aadd("z-parts-8", "y_crystal2_combined", "d") - aadd("z-parts-8", "y_data_crystal_recipe", "d") - aadd("z-parts-8", "y-crystal-cnd", "e") - aadd("z-parts-8", "y-quantrinum", "f") - aadd("z-parts-8", "y_quantrinum_infused", "g") - aadd("z-parts-8", "y_quantrinum_infusion_recipe", "g") - -end -do --[[youki]]-- - if i_exist("y-atomic-constructor") then zgc.add_main_group("youki") end - - aadd("z-youki-0", "y-atomic-constructor", "a") - aadd("z-youki-0", "y-fame-gen", "b") - aadd("z-youki-0", "y-stargate", "c") - - aadd("z-youki-1", "y-ac-wood2uc-recipe", "a") - aadd("z-youki-1", "y-ac-coal2uc-recipe", "b") - aadd("z-youki-1", "y-ac-stone2uc-recipe", "c") - aadd("z-youki-1", "y-ac-copper2uc-recipe", "d") - aadd("z-youki-1", "y-ac-iron2uc-recipe", "e") - aadd("z-youki-1", "y-ac-uc42uc-recipe", "f") - aadd("z-youki-1", "y-ac-fuel2uc-recipe", "g") - aadd("z-youki-1", "y-uc2liquid-recipe", "h") - - aadd("z-youki-2", "y-ac-mud2uc-recipe", "a") - aadd("z-youki-2", "y-ac-toxic2uc-recipe", "b") - aadd("z-youki-2", "y-ac-slag2uc-recipe", "c") - aadd("z-youki-2", "y-ac-crystal2uc-recipe", "d") - aadd("z-youki-2", "y-heavyoil2uc-recipe", "e") - aadd("z-youki-2", "y-lightoil2uc-recipe", "f") - aadd("z-youki-2", "y-lubricant2uc-recipe", "g") - aadd("z-youki-2", "y-petroleum-recipe", "h") - aadd("z-youki-2", "y-battery-rip1-recipe", "i") - aadd("z-youki-2", "y_alien_artis1_recipe", "j") - - aadd("z-youki-3", "y-ac-uc2wood-recipe", "a") - aadd("z-youki-3", "y-ac-uc2coal-recipe", "b") - aadd("z-youki-3", "y-ac-uc2stone-recipe", "c") - aadd("z-youki-3", "y-ac-uc2copper-recipe", "d") - aadd("z-youki-3", "y-ac-uc2iron-recipe", "e") - aadd("z-youki-3", "y-ac-uc2uc4-recipe", "f") - aadd("z-youki-3", "y-ac-uc2fuel-recipe", "g") - aadd("z-youki-3", "y-liquid2uc-recipe", "h") - - aadd("z-youki-4", "y-ac-uc2plastic-recipe", "a") - aadd("z-youki-4", "y_uc2catalyst", "b") - aadd("z-youki-4", "y-uc2crudeoil-recipe", "c") - aadd("z-youki-4", "y-battery-rip2-recipe", "d") - aadd("z-youki-4", "y_alien_artis2_recipe", "e") - - aadd("z-youki-5", "y_exchange_a1_recipe", "a") - aadd("z-youki-5", "y_exchange_a4_recipe", "b") - aadd("z-youki-5", "y_exchange_a2_recipe", "c") - aadd("z-youki-5", "y_exchange_a3_recipe", "d") - - aadd("z-youki-6", "y_exchange_b1_recipe", "a") - aadd("z-youki-6", "y_exchange_b4_recipe", "b") - aadd("z-youki-6", "y_exchange_b2_recipe", "c") - aadd("z-youki-6", "y_exchange_b3_recipe", "d") - - aadd("z-youki-7", "yi_slayerfame_recipe", "a") - aadd("z-youki-7", "y-fame", "b") - aadd("z-youki-7", "y_fame_tech_recipe", "b") - aadd("z-youki-7", "y_greensign", "c") - aadd("z-youki-7", "y_greensign_ulti-recipe", "c") - aadd("z-youki-7", "ye_science_blue", "d") - aadd("z-youki-7", "ye_science_blue_recipe", "d") - aadd("z-youki-7", "ypfw_trader_sign", "e") - aadd("z-youki-7", "y_rwtechsign", "f") - - aadd("z-youki-8", "ye_green_ultimate", "a") - aadd("z-youki-8", "ye_science_ultimate", "b") - aadd("z-youki-8", "y_trade_ultimate", "c") - aadd("z-youki-8", "y_mc_e2_mining_drill", "d") - aadd("z-youki-8", "y_mc_underground_drill", "e") - aadd("z-youki-8", "y_mc_dirtwasher", "f") - aadd("z-youki-8", "y_steam_turbine_mc", "g") - aadd("z-youki-8", "y_obninsk_mc", "h") - - aadd("z-youki-9", "y-tinylamp", "a") - aadd("z-youki-9", "y-powerlamp", "b") - aadd("z-youki-9", "y-lamp-alien", "c") - aadd("z-youki-9", "y_old_bodenlampe", "d") - aadd("z-youki-9", "y_lampe_neotix", "e") - aadd("z-youki-9", "y_lampe_yuoki", "f") - - if use_graphics_tunnings then - zgc.set_icon("y-battery-rip1-recipe", "__ZGroupChange__/graphics/icons/battery2unicom.png") - zgc.set_icon("y_alien_artis1_recipe", "__ZGroupChange__/graphics/icons/artifact2unicom.png") - zgc.set_icon("y-battery-rip2-recipe", "__ZGroupChange__/graphics/icons/unicom2battery.png") - zgc.set_icon("y_alien_artis2_recipe", "__ZGroupChange__/graphics/icons/unicom2artifact.png") - end - -end -do --[[module]]-- - aadd("z-module-0", "yi_beacon", "h") - - aadd("z-module-1", "y-speed-module-1", "a") - aadd("z-module-1", "y_modul_blue1-recipe", "a") - aadd("z-module-1", "y-speed-module-2", "b") - aadd("z-module-1", "y_modul_blue2-recipe", "b") - aadd("z-module-1", "y-green-module-1", "c") - aadd("z-module-1", "y_modul_green1_recipe", "c") - aadd("z-module-1", "y-green-module-2", "d") - aadd("z-module-1", "y_modul_green2_recipe", "d") - aadd("z-module-1", "y_modul_green_op", "e") - - aadd("z-module-2", "y_modul_red1", "a") - aadd("z-module-2", "y_modul_red2", "b") - aadd("z-module-2", "y-pink-module-1", "c") - aadd("z-module-2", "y-pink-module-2", "d") - aadd("z-module-2", "y-pink-module-3", "e") - -end -do --[[decorative]]-- - aadd("z-decorative-4", "y_lamp_red", "c") - aadd("z-decorative-4", "y_lamp_green", "d") - aadd("z-decorative-4", "y_lamp_blue", "e") - aadd("z-decorative-4", "y_lamp_yellow", "f") - - aadd("z-decorative-6", "y_tile_slagfilled", "a") - aadd("z-decorative-6", "y_tile_slagpattern", "e") - aadd("z-decorative-6", "y_tile_slagbricks", "g") - - aadd("z-decorative-8", "yi_bug1", "i") - aadd("z-decorative-8", "yi-monument1", "j") - -end -do --[[other]]-- - aadd("z-other-2", "y-small-stirling-engine", "c") - -end -do --[[TECH]]-- - if z_balance.youki_tech and i_exist("y-dirt") then - - local s_pack = "alien-science-pack" - if data.raw.tool["science-pack-4"] then s_pack = "science-pack-4" end - data:extend({ - { - type = "technology", - name = "yuoki_technology", - icon = "__ZGroupChange__/graphics/icons/tech/yuoki_research.png", - unit = { - count = 15, - time = 30, - ingredients = { - {"science-pack-1",1} - } - }, - order = "y-0" - }, - { - type = "technology", - name = "yuoki_industries", - icon = "__ZGroupChange__/graphics/icons/tech/yuoki_industries.png", - prerequisites = {"yuoki_technology"}, - effects = {}, - unit = { - count = 25, - time = 30, - ingredients = { - {"science-pack-1",2}, - {"science-pack-2",1} - } - }, - order = "y-1[a]" - }, - { - type = "technology", - name = "yuoki_energy", - icon = "__ZGroupChange__/graphics/icons/tech/yuoki_energy.png", - prerequisites = {"yuoki_technology"}, - effects = {}, - unit = { - count = 25, - time = 30, - ingredients = { - {"science-pack-1",2}, - {"science-pack-2",1} - } - }, - order = "y-1[b]" - }, - { - type = "technology", - name = "yuoki_liquids", - icon = "__ZGroupChange__/graphics/icons/tech/yuoki_liquids.png", - prerequisites = {"yuoki_technology"}, - effects = {}, - unit = { - count = 25, - time = 30, - ingredients = { - {"science-pack-1",2}, - {"science-pack-2",1} - } - }, - order = "y-1[c]" - }, - { - type = "technology", - name = "yuoki_def", - icon = "__ZGroupChange__/graphics/icons/tech/yuoki_defence.png", - prerequisites = {"yuoki_industries"}, - effects = {}, - unit = { - count = 25, - time = 30, - ingredients = { - {"science-pack-1",2}, - {"science-pack-2",1} - } - }, - order = "y-1[d]" - }, - { - type = "technology", - name = "yuoki_atomics", - icon = "__ZGroupChange__/graphics/icons/tech/yuoki_atomics.png", - prerequisites = {"yuoki_industries", "yuoki_energy", "yuoki_liquids"}, - effects = {}, - unit = { - count = 50, - time = 120, - ingredients = { - {"science-pack-1",4}, - {"science-pack-2",3}, - {"science-pack-3",2}, - {s_pack,1} - } - }, - order = "y-1[e]" - } - }) - data:extend({ - { - type = "technology", - name = "yuoki_industries-2", - icon = "__ZGroupChange__/graphics/icons/tech/yuoki_industries.png", - prerequisites = {"yuoki_industries"}, - effects = {}, - unit = { - count = 25, - time = 45, - ingredients = { - {"science-pack-1",3}, - {"science-pack-2",2}, - {"science-pack-3",1} - } - }, - enabled = false, - order = "y-2[a]" - }, - { - type = "technology", - name = "yuoki_industries-3", - icon = "__ZGroupChange__/graphics/icons/tech/yuoki_industries.png", - prerequisites = {"yuoki_industries-2"}, - effects = {}, - unit = { - count = 50, - time = 60, - ingredients = { - {"science-pack-1",3}, - {"science-pack-2",2}, - {"science-pack-3",1} - } - }, - enabled = false, - order = "y-3[a]" - }, - { - type = "technology", - name = "yuoki_industries-4", - icon = "__ZGroupChange__/graphics/icons/tech/yuoki_industries.png", - prerequisites = {"yuoki_industries-3"}, - effects = {}, - unit = { - count = 75, - time = 90, - ingredients = { - {"science-pack-1",4}, - {"science-pack-2",3}, - {"science-pack-3",2}, - {s_pack,1} - } - }, - enabled = false, - order = "y-4[a]" - }, - { - type = "technology", - name = "yuoki_energy-2", - icon = "__ZGroupChange__/graphics/icons/tech/yuoki_energy.png", - prerequisites = {"yuoki_energy"}, - effects = {}, - unit = { - count = 50, - time = 45, - ingredients = { - {"science-pack-1",2}, - {"science-pack-2",1} - } - }, - enabled = false, - order = "y-2[b]" - }, - { - type = "technology", - name = "yuoki_energy-3", - icon = "__ZGroupChange__/graphics/icons/tech/yuoki_energy.png", - prerequisites = {"yuoki_energy-2"}, - effects = {}, - unit = { - count = 75, - time = 60, - ingredients = { - {"science-pack-1",3}, - {"science-pack-2",2}, - {"science-pack-3",1} - } - }, - enabled = false, - order = "y-3[b]" - }, - { - type = "technology", - name = "yuoki_liquids-2", - icon = "__ZGroupChange__/graphics/icons/tech/yuoki_liquids.png", - prerequisites = {"yuoki_liquids"}, - effects = {}, - unit = { - count = 50, - time = 45, - ingredients = { - {"science-pack-1",2}, - {"science-pack-2",1} - } - }, - enabled = false, - order = "y-2[c]" - }, - { - type = "technology", - name = "yuoki_liquids-3", - icon = "__ZGroupChange__/graphics/icons/tech/yuoki_liquids.png", - prerequisites = {"yuoki_liquids-2"}, - effects = {}, - unit = { - count = 75, - time = 60, - ingredients = { - {"science-pack-1",3}, - {"science-pack-2",2}, - {"science-pack-3",1} - } - }, - enabled = false, - order = "y-3[c]" - }, - { - type = "technology", - name = "yuoki_def-2", - icon = "__ZGroupChange__/graphics/icons/tech/yuoki_defence.png", - prerequisites = {"yuoki_def","yuoki_industries-2"}, - effects = {}, - unit = { - count = 50, - time = 45, - ingredients = { - {"science-pack-1",2}, - {"science-pack-2",1} - } - }, - enabled = false, - order = "y-2[d]" - }, - { - type = "technology", - name = "yuoki_def-3", - icon = "__ZGroupChange__/graphics/icons/tech/yuoki_defence.png", - prerequisites = {"yuoki_def-2","yuoki_industries-3"}, - effects = {}, - unit = { - count = 75, - time = 60, - ingredients = { - {"science-pack-1",3}, - {"science-pack-2",2}, - {"science-pack-3",1} - } - }, - enabled = false, - order = "y-3[d]" - }, - { - type = "technology", - name = "yuoki_atomics-2", - icon = "__ZGroupChange__/graphics/icons/tech/yuoki_atomics.png", - prerequisites = {"yuoki_industries-2","yuoki_energy-2","yuoki_liquids-2","yuoki_atomics"}, - effects = {}, - unit = { - count = 75, - time = 150, - ingredients = { - {"science-pack-1",4}, - {"science-pack-2",3}, - {"science-pack-3",2}, - {s_pack,1} - } - }, - enabled = false, - order = "y-2[e]" - }, - { - type = "technology", - name = "yuoki_atomics-3", - icon = "__ZGroupChange__/graphics/icons/tech/yuoki_atomics.png", - prerequisites = {"yuoki_industries-3","yuoki_energy-3","yuoki_atomics-2"}, - effects = {}, - unit = { - count = 100, - time = 180, - ingredients = { - {"science-pack-1",4}, - {"science-pack-2",3}, - {"science-pack-3",2}, - {s_pack,1} - } - }, - enabled = false, - order = "y-3[e]" - } - }) - - -- yuoki_technology - -- yuoki_industries-4 - -- yuoki_energy-3 - -- yuoki_liquids-3 - -- yuoki_def-3 - -- yuoki_atomics-3 - - do --# gathering - zgc.add_recipe_to_tech("yuoki_industries", "y-mining-drill-recipe") - zgc.add_recipe_to_tech("yuoki_industries", "y-underground-drill-recipe") - zgc.add_recipe_to_tech("yuoki_industries", "y-dirtwasher-recipe") - zgc.add_recipe_to_tech("yuoki_industries", "y_c11_recipe") - - zgc.add_recipe_to_tech("yuoki_industries-2", "y-mining-drill-e2-recipe") - zgc.add_recipe_to_tech("yuoki_industries-2", "y_c22_recipe") - - zgc.add_recipe_to_tech("yuoki_industries-3", "y_cg33_recipe") - zgc.add_recipe_to_tech("yuoki_industries-3", "y-repair-durotal-recipe") - - zgc.add_recipe_to_tech("yuoki_industries-4", "y_mc_dirtwasher_recipe") - zgc.add_recipe_to_tech("yuoki_industries-4", "y_mc_e2_mining_drill_recipe") - zgc.add_recipe_to_tech("yuoki_industries-4", "y_mc_underground_drill_recipe") - zgc.add_recipe_to_tech("yuoki_industries-4", "y_sc44_recipe") - zgc.add_recipe_to_tech("yuoki_industries-4", "y-repair-krakon-recipe") - zgc.add_recipe_to_tech("yuoki_industries-4", "y_quantrinum_hammer_recipe") - - zgc.add_recipe_to_tech("yuoki_liquids", "y-water-gen-recipe") - zgc.add_recipe_to_tech("yuoki_liquids", "y-water-gen-fluid-recipe") - zgc.add_recipe_to_tech("yuoki_liquids", "z-lithia-water") - zgc.add_recipe_to_tech("yuoki_liquids", "y-tank-4500-recipe") - zgc.add_recipe_to_tech("yuoki_liquids", "y_buffer_station") - - zgc.add_recipe_to_tech("yuoki_liquids-2", "y-water-gen-recipe-e") - zgc.add_recipe_to_tech("yuoki_liquids-3", "y-tank-24k") - - zgc.add_recipe_to_tech("yuoki_atomics-3", "y_repair_quantrinum-recipe") - end - do --# production - zgc.add_recipe_to_tech("yuoki_industries", "y-crusher-recipe") - zgc.add_recipe_to_tech("yuoki_industries", "y_smelter_recipe") - - zgc.add_recipe_to_tech("yuoki_industries-2", "y_crusher2_recipe") - zgc.add_recipe_to_tech("yuoki_industries-2", "y-heat-form-press-recipe") - zgc.add_recipe_to_tech("yuoki_industries-2", "y_charger_recipe") - - zgc.add_recipe_to_tech("yuoki_industries-3", "y_formpress2_recipe") - zgc.add_recipe_to_tech("yuoki_industries-3", "y-atomic-quantum-composer-recipe") - - zgc.add_recipe_to_tech("yuoki_industries-4", "y_maintance_workshop_recipe") - zgc.add_recipe_to_tech("yuoki_industries-4", "y-alien-infuser-recipe") - end - do --# plates - zgc.add_recipe_to_tech("yuoki_industries", "y-refined-iron") - zgc.add_recipe_to_tech("yuoki_industries", "y-refined-copper") - - zgc.add_recipe_to_tech("yuoki_industries-3", "y_hps_pureiron_recipe") - zgc.add_recipe_to_tech("yuoki_industries-3", "y_hps_purecopper_recipe") - zgc.add_recipe_to_tech("yuoki_industries-3", "y_hps_steel_recipe") - end - do --# chemistry - zgc.add_recipe_to_tech("yuoki_liquids", "y_coal2liquid") - zgc.add_recipe_to_tech("yuoki_liquids", "y_ft_recipe") - zgc.add_recipe_to_tech("yuoki_liquids", "y_rawsyngas1_recipe") - zgc.add_recipe_to_tech("yuoki_liquids", "y_rawsyngas2_recipe") - zgc.add_recipe_to_tech("yuoki_liquids", "y_refinehydrogen_recipe") - end - do --# automatization - zgc.add_recipe_to_tech("yuoki_industries-2", "y-inserter-s4-recipe") - end - do --# transport - zgc.add_recipe_to_tech("yuoki_liquids", "y_flowcheck_10_recipe") - end - do --# logistic - zgc.add_recipe_to_tech("yuoki_industries-2", "yi_roboport_recipe") - zgc.add_recipe_to_tech("yuoki_industries-2", "yi_logistic-robot_recipe") - zgc.add_recipe_to_tech("yuoki_industries-2", "yi_construction-robot_recipe") - zgc.add_recipe_to_tech("yuoki_industries-2", "y-rare-chest-log-recipe") - zgc.add_recipe_to_tech("yuoki_industries-2", "y-rare-m1bunker-log-recipe") - - zgc.add_recipe_to_tech("yuoki_industries-3", "y_pc22_recipe") - zgc.add_recipe_to_tech("yuoki_industries-3", "y_rc22_recipe") - end - do --# energy - zgc.add_recipe_to_tech("yuoki_industries-4", "y_obninsk_mc_recipe") - zgc.add_recipe_to_tech("yuoki_industries-4", "y_steam_turbine_mc_recipe") - - zgc.add_recipe_to_tech("yuoki_energy", "y-substation-m-recipe") - zgc.add_recipe_to_tech("yuoki_energy", "y-accumulator-m-recipe") - zgc.add_recipe_to_tech("yuoki_energy", "y-accumulator-mt2-recipe") - zgc.add_recipe_to_tech("yuoki_energy", "y-notfall-generator-s2-recipe") - zgc.add_recipe_to_tech("yuoki_energy", "y-steam-turbine-recipe") - zgc.add_recipe_to_tech("yuoki_energy", "y-boiler-t2-recipe") - zgc.add_recipe_to_tech("yuoki_energy", "y-boiler-t3-recipe") - zgc.add_recipe_to_tech("yuoki_energy", "y-boiler-iv-recipe") - zgc.add_recipe_to_tech("yuoki_energy", "y-meg-s-recipe") - zgc.add_recipe_to_tech("yuoki_energy", "y-solar-dish-recipe") - zgc.add_recipe_to_tech("yuoki_energy", "y-wooden-brikett-recipe") - zgc.add_recipe_to_tech("yuoki_energy", "y-coal-brikett-recipe") - zgc.add_recipe_to_tech("yuoki_energy", "y-coaldust-mixing-recipe") - - zgc.add_recipe_to_tech("yuoki_energy-2", "y-substation-h-recipe") - zgc.add_recipe_to_tech("yuoki_energy-2", "y-accumulator-b-recipe") - zgc.add_recipe_to_tech("yuoki_energy-2", "y-accumulator-bt2-recipe") - zgc.add_recipe_to_tech("yuoki_energy-2", "y-ups-flywheel-b-recipe") - zgc.add_recipe_to_tech("yuoki_energy-2", "y-obninsk-turbine-recipe") - zgc.add_recipe_to_tech("yuoki_energy-2", "y-obninsk-reactor-recipe") - zgc.add_recipe_to_tech("yuoki_energy-2", "y-beg-recipe") - zgc.add_recipe_to_tech("yuoki_energy-2", "y_alien_solar_recipe") - zgc.add_recipe_to_tech("yuoki_energy-2", "y-mixfuel-load-recipe") - zgc.add_recipe_to_tech("yuoki_energy-2", "y-wooden-brikett-packed-recipe") - zgc.add_recipe_to_tech("yuoki_energy-2", "y-coal-stack-recipe") - zgc.add_recipe_to_tech("yuoki_energy-2", "y-infused-mud-recipe") - zgc.add_recipe_to_tech("yuoki_energy-2", "y-tinylamp-recipe") - zgc.add_recipe_to_tech("yuoki_energy-2", "y-powerlamp-recipe") - zgc.add_recipe_to_tech("yuoki_energy-2", "y-lamp-alien-recipe") - zgc.add_recipe_to_tech("yuoki_energy-2", "y_old_bodenlampe_recipe") - zgc.add_recipe_to_tech("yuoki_energy-2", "y_lampe_neotix_recipe") - zgc.add_recipe_to_tech("yuoki_energy-2", "y_lampe_yuoki_recipe") - - zgc.add_recipe_to_tech("yuoki_energy-3", "y-accumulator-btx-recipe") - zgc.add_recipe_to_tech("yuoki_energy-3", "y-accumulator-crystal-m-recipe") - zgc.add_recipe_to_tech("yuoki_energy-3", "y_compensator_25_recipe") - zgc.add_recipe_to_tech("yuoki_energy-3", "y-heg-recipe") - zgc.add_recipe_to_tech("yuoki_energy-3", "y_alien_solar2_recipe") - - end - do --# defense - zgc.add_recipe_to_tech("yuoki_def", "y-mud-wall-recipe") - zgc.add_recipe_to_tech("yuoki_def", "y-rare-wall-basic-recipe") - zgc.add_recipe_to_tech("yuoki_def", "y_turret_flame_recipe") - zgc.add_recipe_to_tech("yuoki_def", "y-gun-turret-mk2-recipe") - zgc.add_recipe_to_tech("yuoki_def", "y-bullet-case-recipe") - zgc.add_recipe_to_tech("yuoki_def", "y_ammo_case_recipe") - zgc.add_recipe_to_tech("yuoki_def", "y_ammo_flame_recipe") - zgc.add_recipe_to_tech("yuoki_def", "y-ammo-hohlspitz-recipe") - - zgc.add_recipe_to_tech("yuoki_def-2", "y-rare-wall-adv-recipe") - zgc.add_recipe_to_tech("yuoki_def-2", "y_turret_plasma_recipe") - zgc.add_recipe_to_tech("yuoki_def-2", "y-gun-turret-mk3-recipe") - zgc.add_recipe_to_tech("yuoki_def-2", "y_laser_mk1_recipe") - zgc.add_recipe_to_tech("yuoki_def-2", "yi_radar_recipe") - zgc.add_recipe_to_tech("yuoki_def-2", "y-ammo-krakon-recipe") - zgc.add_recipe_to_tech("yuoki_def-2", "y-ammo-biggun-recipe") - zgc.add_recipe_to_tech("yuoki_def-2", "y_ammo_plasma_recipe") - - zgc.add_recipe_to_tech("yuoki_def-3", "y_wall22_hardic_recipe") - zgc.add_recipe_to_tech("yuoki_def-3", "y-wall-forcefield-recipe") - zgc.add_recipe_to_tech("yuoki_def-3", "y_laser_onhwall_recipe") - zgc.add_recipe_to_tech("yuoki_def-3", "y-weapon-ztt-recipe") - zgc.add_recipe_to_tech("yuoki_def-3", "y-ammo-explosiv-recipe") - zgc.add_recipe_to_tech("yuoki_def-3", "y-ammo-poison-recipe") - zgc.add_recipe_to_tech("yuoki_def-3", "y-ammo-acid-medium-recipe") - end - do --# parts - zgc.add_recipe_to_tech("yuoki_industries", "y-heat-pipe-recipe") - zgc.add_recipe_to_tech("yuoki_industries", "y-bluegear-recipe") - zgc.add_recipe_to_tech("yuoki_industries", "y_structure_element_recipe") - zgc.add_recipe_to_tech("yuoki_industries", "y_structure_vessel_recipe") - zgc.add_recipe_to_tech("yuoki_industries", "y_dotzetron_recipe") - zgc.add_recipe_to_tech("yuoki_industries", "y_chip_plate_recipe") - zgc.add_recipe_to_tech("yuoki_industries", "y_gauge_analog_recipe") - - zgc.add_recipe_to_tech("yuoki_industries-2", "y_drillhead_recipe") - zgc.add_recipe_to_tech("yuoki_industries-2", "y_toolhead_recipe") - zgc.add_recipe_to_tech("yuoki_industries-2", "y-basic-st1-mf-recipe") - zgc.add_recipe_to_tech("yuoki_industries-2", "y-conductive-wire-1-recipe") - zgc.add_recipe_to_tech("yuoki_industries-2", "yi_magnetron_recipe") - zgc.add_recipe_to_tech("yuoki_industries-2", "y-chip1-recipe") - zgc.add_recipe_to_tech("yuoki_industries-2", "y-basic-st2-mf-recipe") - zgc.add_recipe_to_tech("yuoki_industries-2", "y-conductive-coil-1-recipe") - zgc.add_recipe_to_tech("yuoki_industries-2", "y-chip2-recipe") - zgc.add_recipe_to_tech("yuoki_industries-2", "y_blocked_capa_recipe") - - zgc.add_recipe_to_tech("yuoki_industries-3", "y_drillhead_repair_recipe") - zgc.add_recipe_to_tech("yuoki_industries-3", "y_toolhead_repair_recipe") - - zgc.add_recipe_to_tech("yuoki_industries", "y-crush-unicomp-raw-recipe") - zgc.add_recipe_to_tech("yuoki_industries", "y-crush-fuel-raw-recipe") - zgc.add_recipe_to_tech("yuoki_industries", "y-smelt-crush-res1-recipe") - zgc.add_recipe_to_tech("yuoki_industries", "y-unicomp-raw-recipe") - zgc.add_recipe_to_tech("yuoki_industries", "y-pure-iron-recipe") - zgc.add_recipe_to_tech("yuoki_industries", "y-pure-copper-recipe") - zgc.add_recipe_to_tech("yuoki_industries", "y-digfdirt-recipe") - zgc.add_recipe_to_tech("yuoki_industries", "y-release-cwater") - zgc.add_recipe_to_tech("yuoki_industries", "y-wash-dirt-recipe") - - zgc.add_recipe_to_tech("yuoki_industries-2", "y-filtering-dust-recipe") - zgc.add_recipe_to_tech("yuoki_industries-2", "y-smelt-crush-res2-recipe") - zgc.add_recipe_to_tech("yuoki_industries-2", "y-mixing-rich-recipe") - zgc.add_recipe_to_tech("yuoki_industries-2", "y-smelt-richdust-recipe") - zgc.add_recipe_to_tech("yuoki_industries-2", "y_block_cold_recipe") - zgc.add_recipe_to_tech("yuoki_industries-2", "y_block_heat_recipe") - zgc.add_recipe_to_tech("yuoki_industries-2", "y-quantrinum-recipe") - zgc.add_recipe_to_tech("yuoki_industries-2", "y_data_crystal_recipe") - zgc.add_recipe_to_tech("yuoki_industries-2", "y-crystal-cnd-recipe") - zgc.add_recipe_to_tech("yuoki_industries-2", "y-digfdirt2-recipe") - zgc.add_recipe_to_tech("yuoki_industries-3", "y-press-richdust-recipe") - zgc.add_recipe_to_tech("yuoki_industries-2", "y-pressed_dry_mud-recipe") - zgc.add_recipe_to_tech("yuoki_industries-2", "y_slag_granulate_recipe") - zgc.add_recipe_to_tech("yuoki_industries-2", "y_slag_brick_recipe") - - zgc.add_recipe_to_tech("yuoki_industries-3", "y_pure_iron_wtool_recipe") - zgc.add_recipe_to_tech("yuoki_industries-3", "y_pure_copper_wtool_recipe") - zgc.add_recipe_to_tech("yuoki_industries-3", "y-crush-blue_whead-recipe") - zgc.add_recipe_to_tech("yuoki_industries-3", "y-crush-green_whead-recipe") - zgc.add_recipe_to_tech("yuoki_industries-3", "y_quantrinum_infusion_recipe") - zgc.add_recipe_to_tech("yuoki_industries-3", "y-wash-special-recipe") - zgc.add_recipe_to_tech("yuoki_industries-3", "y_slag_brick_burn_recipe") - zgc.add_recipe_to_tech("yuoki_industries-3", "y-raw-fuelnium-recipe") - - zgc.add_recipe_to_tech("yuoki_energy", "y-coaldust-recipe") - - zgc.add_recipe_to_tech("yuoki_energy-3", "y-fuel-reactor-recipe") - zgc.add_recipe_to_tech("yuoki_energy-3", "y-infused-uca2-recipe") - - zgc.add_recipe_to_tech("yuoki_liquids", "y_granulate_wood_recipe") - zgc.add_recipe_to_tech("yuoki_liquids", "y_catalyst_bp_recipe") - zgc.add_recipe_to_tech("yuoki_liquids", "y_catalyst_ft_recipe") - zgc.add_recipe_to_tech("yuoki_liquids", "y_regcatbp_recipe") - zgc.add_recipe_to_tech("yuoki_liquids", "y_regcatft_recipe") - - zgc.add_recipe_to_tech("yuoki_liquids-2", "y-sulfuric-acid-recipe") - end - do --# intermediate - zgc.add_recipe_to_tech("yuoki_industries", "y_blocked_capa_recipe") - zgc.add_recipe_to_tech("yuoki_industries", "y-battery-singleuse1-recipe") - - zgc.add_recipe_to_tech("yuoki_industries-2", "y-battery-singleuse2-recipe") - - zgc.add_recipe_to_tech("yuoki_industries-3", "y-battery-single-use3-recipe") - end - do --# youki - zgc.add_recipe_to_tech("yuoki_atomics", "y-atomic-constructor-recipe") - zgc.add_recipe_to_tech("yuoki_atomics", "y-ac-wood2uc-recipe") - zgc.add_recipe_to_tech("yuoki_atomics", "y-ac-coal2uc-recipe") - zgc.add_recipe_to_tech("yuoki_atomics", "y-ac-stone2uc-recipe") - zgc.add_recipe_to_tech("yuoki_atomics", "y-ac-copper2uc-recipe") - zgc.add_recipe_to_tech("yuoki_atomics", "y-ac-iron2uc-recipe") - zgc.add_recipe_to_tech("yuoki_atomics", "y-ac-uc42uc-recipe") - zgc.add_recipe_to_tech("yuoki_atomics", "y-ac-fuel2uc-recipe") - zgc.add_recipe_to_tech("yuoki_atomics", "y-uc2liquid-recipe") - zgc.add_recipe_to_tech("yuoki_atomics", "y-ac-uc2wood-recipe") - zgc.add_recipe_to_tech("yuoki_atomics", "y-ac-uc2coal-recipe") - zgc.add_recipe_to_tech("yuoki_atomics", "y-ac-uc2stone-recipe") - zgc.add_recipe_to_tech("yuoki_atomics", "y-ac-uc2copper-recipe") - zgc.add_recipe_to_tech("yuoki_atomics", "y-ac-uc2iron-recipe") - zgc.add_recipe_to_tech("yuoki_atomics", "y-ac-uc2uc4-recipe") - zgc.add_recipe_to_tech("yuoki_atomics", "y-ac-uc2fuel-recipe") - zgc.add_recipe_to_tech("yuoki_atomics", "y-liquid2uc-recipe") - zgc.add_recipe_to_tech("yuoki_atomics", "y_exchange_a1_recipe") - zgc.add_recipe_to_tech("yuoki_atomics", "y_exchange_a4_recipe") - zgc.add_recipe_to_tech("yuoki_atomics", "y_exchange_a2_recipe") - zgc.add_recipe_to_tech("yuoki_atomics", "y_exchange_a3_recipe") - zgc.add_recipe_to_tech("yuoki_atomics", "y_exchange_b1_recipe") - zgc.add_recipe_to_tech("yuoki_atomics", "y_exchange_b4_recipe") - zgc.add_recipe_to_tech("yuoki_atomics", "y_exchange_b2_recipe") - zgc.add_recipe_to_tech("yuoki_atomics", "y_exchange_b3_recipe") - zgc.add_recipe_to_tech("yuoki_atomics", "yi_slayerfame_recipe") - - zgc.add_recipe_to_tech("yuoki_atomics-2", "y_fame_tech_recipe") - zgc.add_recipe_to_tech("yuoki_atomics-2", "y-ac-mud2uc-recipe") - zgc.add_recipe_to_tech("yuoki_atomics-2", "y-ac-toxic2uc-recipe") - zgc.add_recipe_to_tech("yuoki_atomics-2", "y-ac-slag2uc-recipe") - zgc.add_recipe_to_tech("yuoki_atomics-2", "y-ac-crystal2uc-recipe") - zgc.add_recipe_to_tech("yuoki_atomics-2", "y-heavyoil2uc-recipe") - zgc.add_recipe_to_tech("yuoki_atomics-2", "y-lightoil2uc-recipe") - zgc.add_recipe_to_tech("yuoki_atomics-2", "y-lubricant2uc-recipe") - zgc.add_recipe_to_tech("yuoki_atomics-2", "y-petroleum-recipe") - zgc.add_recipe_to_tech("yuoki_atomics-2", "y-battery-rip1-recipe") - zgc.add_recipe_to_tech("yuoki_atomics-2", "y_alien_artis1_recipe") - zgc.add_recipe_to_tech("yuoki_atomics-2", "y-ac-uc2plastic-recipe") - zgc.add_recipe_to_tech("yuoki_atomics-2", "y_uc2catalyst") - zgc.add_recipe_to_tech("yuoki_atomics-2", "y-uc2crudeoil-recipe") - zgc.add_recipe_to_tech("yuoki_atomics-2", "y-battery-rip2-recipe") - zgc.add_recipe_to_tech("yuoki_atomics-2", "y_alien_artis2_recipe") - - zgc.add_recipe_to_tech("yuoki_atomics-3", "y-stargate-recipe") - zgc.add_recipe_to_tech("yuoki_atomics-3", "y-fame-recipe") - zgc.add_recipe_to_tech("yuoki_atomics-3", "y_greensign_ulti-recipe") - zgc.add_recipe_to_tech("yuoki_atomics-3", "ye_science_blue_recipe") - zgc.add_recipe_to_tech("yuoki_atomics-3", "ypfw_trader_sign") - zgc.add_recipe_to_tech("yuoki_atomics-3", "y_rwtechsign") - zgc.add_recipe_to_tech("yuoki_atomics-3", "y-fame-gen-recipe") - zgc.add_recipe_to_tech("yuoki_atomics-3", "y-sgtrade-ic1-recipe") - zgc.add_recipe_to_tech("yuoki_atomics-3", "ye_green_ultimate_recipe") - zgc.add_recipe_to_tech("yuoki_atomics-3", "ye_science_ultimate_recipe") - zgc.add_recipe_to_tech("yuoki_atomics-3", "y_trade_ultimate_recipe") - end - do --# module - zgc.add_recipe_to_tech("yuoki_industries-2", "yi_beacon_recipe") - zgc.add_recipe_to_tech("yuoki_industries-2", "y_modul_blue1-recipe") - zgc.add_recipe_to_tech("yuoki_industries-2", "y_modul_blue2-recipe") - zgc.add_recipe_to_tech("yuoki_industries-2", "y_modul_green1_recipe") - zgc.add_recipe_to_tech("yuoki_industries-2", "y_modul_green2_recipe") - zgc.add_recipe_to_tech("yuoki_industries-2", "y-pink-module-1-recipe") - - zgc.add_recipe_to_tech("yuoki_industries-3", "y_modul_red1_recipe") - zgc.add_recipe_to_tech("yuoki_industries-3", "y_modul_red2_recipe") - zgc.add_recipe_to_tech("yuoki_industries-3", "y-pink-module-2-recipe") - zgc.add_recipe_to_tech("yuoki_industries-3", "y-pink-module-3-recipe") - - zgc.add_recipe_to_tech("yuoki_industries-4", "y_modul_green_op_recipe") - end - do --# decorative - zgc.add_recipe_to_tech("yuoki_industries", "y_tile_slagfilled_recipe") - zgc.add_recipe_to_tech("yuoki_industries-2", "y_tile_slagpattern_recipe") - zgc.add_recipe_to_tech("yuoki_industries-3", "y_tile_slagbricks_recipe") - - zgc.add_recipe_to_tech("yuoki_energy", "y_lamp_red_recipe") - zgc.add_recipe_to_tech("yuoki_energy", "y_lamp_green_recipe") - zgc.add_recipe_to_tech("yuoki_energy", "y_lamp_blue_recipe") - zgc.add_recipe_to_tech("yuoki_energy", "y_lamp_yellow_recipe") - zgc.add_recipe_to_tech("yuoki_energy", "yi_bug1_recipe") - - zgc.add_recipe_to_tech("yuoki_energy-3", "yi-monument1-recipe") - end - - end -end +local allow_changes = z_balance.youki + +do --[[gathering]]-- + aadd("z-gathering-0", "y_quantrinum_hammer", "h") + aadd("z-gathering-0", "y-repair-durotal", "k") + aadd("z-gathering-0", "y-repair-krakon", "l") + aadd("z-gathering-0", "y_repair_quantrinum", "n") + + if not allow_changes then + aadd("z-gathering-0", "y-axe-duro", "h") + aadd("z-gathering-0", "y-axe-durotal-recipe", "h") + if z_balance.youki_tech then + zgc.add_recipe_to_tech("yuoki_industries-3", "y-axe-durotal-recipe") + end + else + ahide("brass-axe", "mining-tool") + ahide("cobalt-axe", "mining-tool") + ahide("tungsten-axe", "mining-tool") + ahide("y-axe-duro", "mining-tool") + ahide("y-axe-durotal-recipe") + end + + aadd("z-gathering-2", "y_sc11", "a") + aadd("z-gathering-2", "y_c11", "a") + aadd("z-gathering-2", "y_c22", "b") + aadd("z-gathering-2", "y_cg33", "c") + aadd("z-gathering-2", "y_sc44", "d") + + aadd("z-gathering-3", "5d-storage-tank", "e") + aadd("z-gathering-3", "y_buffer_station", "f") + aadd("z-gathering-3", "y-tank-4500", "h") + aadd("z-gathering-3", "y-tank-24k", "j") + + if not allow_changes then + aadd("z-gathering-3", "y-tank-1000", "g") + aadd("z-gathering-3", "y-tank-8000", "i") + if z_balance.youki_tech then + zgc.add_recipe_to_tech("yuoki_liquids-2", "y-tank-1000") + zgc.add_recipe_to_tech("yuoki_liquids-3", "y-tank-8000") + end + else + ahide("y-tank-1000", "5d-storage-tank") + ahide("y-tank-8000", "y-tank-1000") + ahide("storage-tank-2", "storage-tank") + ahide("storage-tank-3", "storage-tank") + ahide("storage-tank-4", "storage-tank") + zgc.t_add_recipe_unlock("bob-fluid-handling-2", "5d-storage-tank") + end + + aadd("z-gathering-4", "y-mining-drill", "z") + aadd("z-gathering-5", "y-mining-drill-e2", "z") + aadd("z-gathering-6", "y-underground-drill", "z") + + aadd("z-gathering-8", "y-water-gen", "h") + iadd("z-gathering-8", "y-water-gen-e", "i") + radd("z-gathering-8", "y-water-gen-recipe-e", "i") + + if i_exist("water-miner-1") and allow_changes and z_balance.bob then + aadd("z-gathering-9", "y-water-gen", "a") + aadd("z-gathering-9", "y-water-gen-e", "b") + aadd("z-gathering-9", "y-water-gen-recipe-e", "b") + aadd("z-gathering-9", "water-miner-1", "c") + + ahide("water-miner-2") + ahide("water-miner-3") + ahide("water-miner-4") + ahide("water-miner-5") + switch_tech("water-miner-2") + switch_tech("water-miner-3") + switch_tech("water-miner-4") + switch_tech("water-miner-5") + end + +end +do --[[production]]-- + aadd("z-production-3", "y-crusher", "a") + aadd("z-production-3", "y_crusher2", "b") + aadd("z-production-3", "y-dirtwasher", "c") + aadd("z-production-3", "y-heat-form-press", "d") + aadd("z-production-3", "y_formpress2", "e") + aadd("z-production-3", "y_maintance_workshop", "f") + + aadd("z-production-5", "y_smelter", "d") + aadd("z-production-5", "y_charger", "e") + aadd("z-production-5", "y-atomic-quantum-composer","f") + aadd("z-production-5", "y-alien-infuser", "g") + +end +do --[[resources]]-- + aadd("z-resources-3", "y-res1", "h") + aadd("z-resources-3", "y-res2", "i") + + if z_balance.add_trees then + zgc.add_newRessource_min_max("raw-wood", "y_organic_dust",1,4,0.5) + end + if z_balance.add_dirt then + zgc.add_newRessource_min_max("coal", "y-dirt",1,2,0.3 ,"y-coal-dust",1,2,0.2) + zgc.add_newRessource_min_max("stone", "y-dirt",1,2,0.3) + zgc.add_newRessource_min_max("iron-ore", "y-dirt",1,2,0.2) + zgc.add_newRessource_min_max("copper-ore", "y-dirt",1,2,0.2) + zgc.add_newRessource_min_max("lead-ore", "y-dirt",1,1,0.2, "y-toxic-dust",1,2,0.2) + zgc.add_newRessource_min_max("tin-ore", "y-dirt",1,2,0.2) + zgc.add_newRessource_min_max("zinc-ore", "y-dirt",1,2,0.2, "y-toxic-dust",1,1,0.2) + zgc.add_newRessource_min_max("bauxite-ore", "y-dirt",1,1,0.3) + zgc.add_newRessource_min_max("cobalt-ore", "y-dirt",1,2,0.2) + zgc.add_newRessource_min_max("nickel-ore", "y-dirt",1,1,0.2, "y-toxic-dust",1,1,0.2) + zgc.add_newRessource_min_max("rutile-ore", "y-dirt",1,2,0.2, "y-toxic-dust",1,2,0.2) + zgc.add_newRessource_min_max("silver-ore", "y-dirt",1,1,0.2) + zgc.add_newRessource_min_max("tungsten-ore","y-dirt",1,2,0.2, "y-toxic-dust",1,2,0.2) + zgc.add_newRessource_min_max("sulfur", "y-toxic-dust",1,2,0.3) + zgc.add_newRessource_min_max("y-res1", "y-toxic-dust",1,2,0.2) + zgc.add_newRessource_min_max("y-res2", "y-toxic-dust",1,2,0.2) + end + if z_balance.add_dust then + zgc.add_newRessource_min_max("y-res1", "y-crush-yres1",1,1,0.2) + zgc.add_newRessource_min_max("y-res2", "y-crush-yres2",1,1,0.2) + end +end +do --[[plates]]-- + aadd("z-plates-9", "y-refined-iron", "h") + aadd("z-plates-9", "y-refined-copper", "i") + + aadd("z-plates-10", "y_hps_pureiron_recipe", "h") + aadd("z-plates-10", "y_hps_purecopper_recipe", "i") + + aadd("z-plates-15", "y_hps_steel_recipe", "ab") + + if use_graphics_tunnings then + zgc.set_icon("y-refined-iron", "__ZGroupChange__/graphics/icons/pure-iron.png") + zgc.set_icon("y-refined-copper", "__ZGroupChange__/graphics/icons/pure-copper.png") + + zgc.set_icon("y_hps_pureiron_recipe", "__ZGroupChange__/graphics/icons/heat-iron.png") + zgc.set_icon("y_hps_purecopper_recipe", "__ZGroupChange__/graphics/icons/heat-copper.png") + + zgc.set_icon("y_hps_steel_recipe", "__ZGroupChange__/graphics/icons/heat-steel.png") + end + +end +do --[[liquids]]-- + if allow_changes and data.raw.fluid["lithia-water"] and i_exist("y-water-gen") then + data:extend({ + { + type="recipe-category", + name="z-watergen-recipe" + }, + { + type = "recipe", + name = "z-lithia-water", + icon = "__ZGroupChange__/graphics/icons/lithia-water.png", + category = "z-watergen-recipe", + energy_required = 5, + enabled = true, + ingredients = { + {"y_organic_dust",7} + }, + results = {{type="fluid",name="lithia-water",amount=140}}, + main_product = "lithia-water", + hidden = false, + subgroup = "z-liquids-2", + order = "b" + }, + }) + table.insert(data.raw["assembling-machine"]["y-water-gen"].crafting_categories,"z-watergen-recipe") + if z_balance.youki_tech then + zgc.add_recipe_to_tech("yuoki_liquids", "z-lithia-water") + end + end + + aadd("z-liquids-2", "y-water-gen-fluid-recipe", "a") + aadd("z-liquids-2", "z-lithia-water", "b") + aadd("z-liquids-0", "liquid-air", "f") + aadd("z-liquids-2", "bob-liquid-air", "g") + + aadd("z-liquids-4", "y-con_water", "k") + aadd("z-liquids-4", "y-liquid-uc2", "l") + + if use_graphics_tunnings then + zgc.set_icon("y-con_water", "__ZGroupChange__/graphics/icons/y-con-water.png") + end + +end +do --[[chemistry]]-- + radd("z-chemistry-0", "y-sulfuric-acid-recipe", "a") + aadd("z-chemistry-4", "y_coal2liquid", "a") + aadd("z-chemistry-4", "y_ft_recipe", "b") + aadd("z-chemistry-4", "y_rawsyngas1_recipe", "c") + aadd("z-chemistry-4", "y_rawsyngas2_recipe", "d") + aadd("z-chemistry-4", "y_refinehydrogen_recipe", "e") + aadd("z-chemistry-9", "y_hydrogen", "p") + aadd("z-chemistry-9", "y_syngas_clean", "q") + aadd("z-chemistry-9", "y_syngas_raw", "r") + +end +do --[[automatization]]-- + if z_balance.bob_inserters then + ahide("y-inserter-s4","inserter") + ahide("y-inserter-fast", "fast-inserter") + ahide("y-inserter-smart","filter-inserter") + ahide("y-inserter-smart-long","filter-inserter") + ahide("y_inserter_smart_LL","filter-inserter") + ahide("y_inserter_smart_RR","filter-inserter") + ahide("y_inserter_diagonal","inserter") + ahide("y_inserter_smart_leftR2","filter-inserter") + ahide("y_inserter_smart_rightR2","filter-inserter") + ahide("y_inserter_evade_shortL","inserter") + ahide("y_inserter_evade_shortR","inserter") + else + aadd("z-automatization-0", "y-inserter-fast", "i") + aadd("z-automatization-0", "y-inserter-s4", "j") + + aadd("z-automatization-1", "y-inserter-smart", "i") + aadd("z-automatization-1", "y-inserter-smart-long", "j") + + aadd("z-automatization-2", "y_inserter_diagonal", "j") + + aadd("z-automatization-4", "y_inserter_smart_LL", "h") + aadd("z-automatization-4", "y_inserter_smart_leftR2", "i") + aadd("z-automatization-4", "y_inserter_evade_shortL", "j") + + aadd("z-automatization-5", "y_inserter_smart_RR", "h") + aadd("z-automatization-5", "y_inserter_smart_rightR2", "i") + aadd("z-automatization-5", "y_inserter_evade_shortR", "j") + + if z_balance.youki_tech then + zgc.add_recipe_to_tech("yuoki_industries", "y-inserter-fast") + zgc.add_recipe_to_tech("yuoki_industries", "y-inserter-smart") + + zgc.add_recipe_to_tech("yuoki_industries-2", "y-inserter-s4") + zgc.add_recipe_to_tech("yuoki_industries-2", "y-inserter-smart-long") + zgc.add_recipe_to_tech("yuoki_industries-2", "y_inserter_smart_LL") + zgc.add_recipe_to_tech("yuoki_industries-2", "y_inserter_smart_leftR2") + zgc.add_recipe_to_tech("yuoki_industries-2", "y_inserter_evade_shortL") + + zgc.add_recipe_to_tech("yuoki_industries-3", "y_inserter_diagonal") + zgc.add_recipe_to_tech("yuoki_industries-3", "y_inserter_smart_RR") + zgc.add_recipe_to_tech("yuoki_industries-3", "y_inserter_smart_rightR2") + zgc.add_recipe_to_tech("yuoki_industries-3", "y_inserter_evade_shortR") + end + end + +end +do --[[transport]]-- + aadd("z-transport-6", "y_flowcheck_10", "g") + + if not z_balance.youki_pipe then + aadd("z-transport-6", "y-valve-direction-buffer", "h") + + aadd("z-transport-14", "y-pipe-v", "a") + aadd("z-transport-14", "y-pipe-h", "b") + aadd("z-transport-14", "y-pipe-hc", "c") + aadd("z-transport-14", "y-pipe-ec", "d") + aadd("z-transport-14", "y-pipe-to-ground-hc", "e") + aadd("z-transport-14", "y-pipe-to-ground-ec", "f") + + if z_balance.youki_tech then + zgc.add_recipe_to_tech("yuoki_liquids", "y-pipe-v") + zgc.add_recipe_to_tech("yuoki_liquids", "y-pipe-h") + zgc.add_recipe_to_tech("yuoki_liquids", "y_flowcheck_10_recipe") + + zgc.add_recipe_to_tech("yuoki_liquids-2", "y-pipe-hc") + zgc.add_recipe_to_tech("yuoki_liquids-2", "y-pipe-ec") + zgc.add_recipe_to_tech("yuoki_liquids-2", "y-pipe-to-ground-hc") + zgc.add_recipe_to_tech("yuoki_liquids-2", "y-pipe-to-ground-ec") + end + else + ahide("y-pipe-h", "pipe") + ahide("y-pipe-v", "pipe") + if data.raw.item["5d-pipe-mk2"] then + ahide("y-pipe-hc", "5d-pipe-mk2") + ahide("y-pipe-to-ground-hc", "5d-pipe-mk2") + ahide("y-pipe-ec", "5d-pipe-mk3") + ahide("y-pipe-to-ground-ec", "5d-pipe-mk3") + else + ahide("y-pipe-hc", "pipe") + ahide("y-pipe-to-ground-hc", "pipe") + ahide("y-pipe-ec", "pipe") + ahide("y-pipe-to-ground-ec", "pipe") + end + ahide("y-valve-direction-buffer", "valve") + end +end +do --[[logistic]]-- + aadd("z-logistic-1", "yi_roboport", "c") + + aadd("z-logistic-3", "yi_logistic-robot", "e") + aadd("z-logistic-3", "yi_construction-robot", "j") + + aadd("z-logistic-5", "y-rare-chest-log", "a") + aadd("z-logistic-5", "y-rare-m1bunker-log", "b") + aadd("z-logistic-5", "y_pc22", "c") + aadd("z-logistic-5", "y_rc22", "d") +end +do --[[energy]]-- + aadd("z-energy-0", "y-wooden-brikett", "a") + aadd("z-energy-0", "y-coal-brikett", "b") + aadd("z-energy-0", "solid-fuel", "c") + aadd("z-energy-0", "y-mixed-fuel", "d") + aadd("z-energy-0", "y-coaldust-mixing-recipe", "d") + aadd("z-energy-0", "y-mixed-fuel-loaded", "e") + aadd("z-energy-0", "y-mixfuel-load-recipe", "e") + aadd("z-energy-0", "y-wooden-brikett-packed", "g") + aadd("z-energy-0", "y-coal-stack", "h") + aadd("z-energy-0", "y-infused-mud", "i") + aadd("z-energy-0", "y-fuel-cell-c", "j") + aadd("z-energy-0", "y-sgtrade-ic1-recipe", "j") + + aadd("z-energy-1", "y-boiler-t2", "g") + aadd("z-energy-1", "y-boiler-t3", "h") + aadd("z-energy-1", "y-boiler-iv", "i") + aadd("z-energy-1", "y-obninsk-reactor", "j") + + aadd("z-energy-2", "y-notfall-generator-s2", "f") + aadd("z-energy-2", "y-steam-turbine", "g") + aadd("z-energy-2", "y-steam-turbine-mk3", "h") + aadd("z-energy-2", "y-obninsk-turbine", "i") + aadd("z-energy-2", "y-meg-s", "j") + aadd("z-energy-2", "y-beg", "k") + aadd("z-energy-2", "y-heg", "l") + + aadd("z-energy-3", "y-accumulator-m", "c") + aadd("z-energy-3", "y-accumulator-m-t2", "d") + aadd("z-energy-3", "y-accumulator-mt2-recipe", "d") + aadd("z-energy-3", "y-accumulator-b", "e") + aadd("z-energy-3", "y-accumulator-b-t2", "f") + aadd("z-energy-3", "y-accumulator-bt2-recipe", "f") + aadd("z-energy-3", "y-accumulator-b-tx", "g") + aadd("z-energy-3", "y-accumulator-btx-recipe", "g") + aadd("z-energy-3", "y-accumulator-crystal-m", "h") + aadd("z-energy-3", "y-ups-flywheel-b", "i") + aadd("z-energy-3", "y_compensator_25", "j") + + aadd("z-energy-4", "y-stirling-solar-dish", "g") + aadd("z-energy-4", "y-solar-dish-recipe", "h") + aadd("z-energy-4", "y_alien_solar", "i") + aadd("z-energy-4", "y_alien_solar2", "j") + + aadd("z-energy-7", "y-substation-m", "g") + aadd("z-energy-7", "y-substation-h", "h") + + if not allow_changes then + aadd("z-energy-3", "y-seg", "b") + aadd("z-energy-3", "y-seg-p", "b") + + if z_balance.youki_tech then + zgc.add_recipe_to_tech("yuoki_energy", "y-seg-recipe") + zgc.add_recipe_to_tech("yuoki_energy", "y-seg-p-recipe") + end + + aadd("z-energy-3", "y-notfall-generator-s1", "z") + + aadd("z-energy-4", "y-accumulator-s", "z") + aadd("z-energy-4", "y-accumulator-s-t2", "z") + aadd("z-energy-4", "yi_obelisk_A3_5X", "z") + else + ahide("5d-basic-accumulator-3") + ahide("y-notfall-generator-s1") + ahide("y-seg") + ahide("y-seg-p") + ahide("y-accumulator-s") + ahide("y-accumulator-s-t2") + ahide("yi_obelisk_A3_5X") + + switch_tech("electric-energy-accumulators-3") + switch_tech("engine-3") + end + +end +do --[[defense]]-- + aadd("z-defense-1", "y-mud-wall", "a") + aadd("z-defense-1", "y-rare-wall-basic", "b") + aadd("z-defense-1", "y-rare-wall-adv", "c") + aadd("z-defense-1", "y_wall22_hardic", "d") + aadd("z-defense-1", "y-wall-forcefield", "e") + + aadd("z-defense-6", "y_turret_flame", "a") + aadd("z-defense-6", "y_turret_plasma", "b") + aadd("z-defense-6", "y-laser-def-s4", "c") + aadd("z-defense-6", "y_laser_onhwall_recipe", "c") + aadd("z-defense-6", "y_turret_gun2f12", "d") + aadd("z-defense-6", "y-gun-turret-mk2-recipe", "d") + aadd("z-defense-6", "y_turret_gun1f12", "e") + aadd("z-defense-6", "y-gun-turret-mk3-recipe", "e") + aadd("z-defense-6", "y_turret_laser22f12", "f") + aadd("z-defense-6", "y_laser_mk1_recipe", "f") + aadd("z-defense-6", "y-weapon-ztt", "g") + + aadd("z-defense-7", "y-bullet-case", "a") + aadd("z-defense-7", "y_ammo_case", "b") + aadd("z-defense-7", "y-ammo-hohlspitz", "c") + aadd("z-defense-7", "y-ammo-krakon", "d") + aadd("z-defense-7", "y-ammo-explosiv", "e") + aadd("z-defense-7", "y-ammo-biggun", "f") + aadd("z-defense-7", "y-ammo-poison", "g") + aadd("z-defense-7", "y-ammo-acid-2", "h") + aadd("z-defense-7", "y-ammo-acid-medium-recipe", "h") + aadd("z-defense-7", "y_ammo_flame", "i") + aadd("z-defense-7", "y_ammo_plasma", "j") + + aadd("z-defense-8", "yi_radar", "d") + + if allow_changes and i_exist("yi_radar") then + ahide("radar-4") + ahide("radar-5") + switch_tech("radars-3") + switch_tech("radars-4") + else + aadd("z-defense-8", "yi_radar", "g") + end +end +do --[[intermediate]]-- + aadd("z-intermediate-7", "y-battery-single-use1", "d") + aadd("z-intermediate-7", "y-battery-single-use2", "e") + aadd("z-intermediate-7", "y-battery-single-use3", "f") + aadd("z-intermediate-7", "y-battery-singleuse1-recipe", "d") + aadd("z-intermediate-7", "y-battery-singleuse2-recipe", "e") + aadd("z-intermediate-7", "engine-unit", "g") + aadd("z-intermediate-7", "electric-engine-unit", "h") + +end +do --[[parts]]-- + if i_exist("y-dirt") then zgc.add_main_group("parts") end + + aadd("z-parts-1", "y-dirt", "a") + aadd("z-parts-1", "y-digfdirt-recipe", "a") + aadd("z-parts-1", "y-digfdirt2-recipe", "b") + aadd("z-parts-1", "y-coal-dust", "c") + aadd("z-parts-1", "y-crush-yres1", "d") + aadd("z-parts-1", "y-crush-unicomp-raw-recipe", "d") + aadd("z-parts-1", "y-crush-yres2", "e") + aadd("z-parts-1", "y-crush-fuel-raw-recipe", "e") + aadd("z-parts-1", "y-filtering-dust-recipe", "f") + aadd("z-parts-1", "y-crush-blue_whead-recipe", "g") + aadd("z-parts-1", "y-crush-green_whead-recipe", "h") + aadd("z-parts-1", "y-richdust", "i") + aadd("z-parts-1", "y-mixing-rich-recipe", "i") + + aadd("z-parts-2", "y-c_mud", "a") + aadd("z-parts-2", "y-release-cwater", "a") + aadd("z-parts-2", "y-wash-special-recipe", "b") + aadd("z-parts-2", "y-toxic-dust", "c") + aadd("z-parts-2", "y-dry_mud", "d") + aadd("z-parts-2", "y-pressed_dry_mud-recipe", "d") + aadd("z-parts-2", "y_slag_granulate", "e") + aadd("z-parts-2", "y-slag", "f") + aadd("z-parts-2", "y-unicomp-raw", "g") + aadd("z-parts-2", "y-unicomp-a2", "h") + aadd("z-parts-2", "y-press-richdust-recipe", "h") + aadd("z-parts-2", "y-orange-stuff", "i") + aadd("z-parts-2", "y-smelt-richdust-recipe", "i") + aadd("z-parts-2", "y-crystal2", "j") + aadd("z-parts-2", "y-raw-fuelnium", "k") + + aadd("z-parts-3", "y-pure-iron", "a") + aadd("z-parts-3", "y_pure_iron_wtool_recipe", "b") + aadd("z-parts-3", "y-pure-copper", "c") + aadd("z-parts-3", "y_pure_copper_wtool_recipe", "d") + aadd("z-parts-3", "y-refined-yres1", "e") + aadd("z-parts-3", "y-smelt-crush-res1-recipe", "e") + aadd("z-parts-3", "y-refined-yres2", "f") + aadd("z-parts-3", "y-smelt-crush-res2-recipe", "f") + aadd("z-parts-3", "y_slag_brick", "g") + aadd("z-parts-3", "y_slag_brick_recipe", "g") + aadd("z-parts-3", "y_slag_brick_burn_recipe", "h") + aadd("z-parts-3", "y-wash-dirt-recipe", "i") + + aadd("z-parts-4", "y_drillhead", "a") + aadd("z-parts-4", "y_drillhead_broken", "b") + aadd("z-parts-4", "y_drillhead_repair_recipe", "c") + aadd("z-parts-4", "y_toolhead", "d") + aadd("z-parts-4", "y_toolhead_broken", "e") + aadd("z-parts-4", "y_toolhead_repair_recipe", "f") + aadd("z-parts-4", "y_block_cold", "g") + aadd("z-parts-4", "y_block_heat", "h") + + aadd("z-parts-5", "y-heat-pipe", "a") + aadd("z-parts-5", "y-bluegear", "b") + aadd("z-parts-5", "y_structure_element", "c") + aadd("z-parts-5", "y_structure_vessel", "d") + aadd("z-parts-5", "y_blocked_capa", "f") + aadd("z-parts-5", "y-basic-t1-mf", "g") + aadd("z-parts-5", "y-basic-st1-mf-recipe", "g") + aadd("z-parts-5", "y-basic-t2-mf", "h") + aadd("z-parts-5", "y-basic-st2-mf-recipe", "h") + + aadd("z-parts-6", "y-conductive-wire-1", "a") + aadd("z-parts-6", "y-conductive-coil-1", "b") + aadd("z-parts-6", "yi_magnetron", "c") + aadd("z-parts-6", "y_dotzetron", "d") + aadd("z-parts-6", "y_chip_plate", "e") + aadd("z-parts-6", "y-chip-1", "f") + aadd("z-parts-6", "y-chip1-recipe", "f") + aadd("z-parts-6", "y-chip-2", "g") + aadd("z-parts-6", "y-chip2-recipe", "g") + + aadd("z-parts-7", "y_organic_dust", "a") + aadd("z-parts-7", "y_granulate_wood_recipe", "a") + aadd("z-parts-5", "y_gauge", "b") + aadd("z-parts-5", "y_gauge_analog_recipe", "b") + aadd("z-parts-7", "y_catalyst_base", "c") + aadd("z-parts-7", "y_usedcatalyst", "d") + aadd("z-parts-7", "y_catalyst_bp", "e") + aadd("z-parts-7", "y_catalyst_ft", "f") + aadd("z-parts-7", "y_regcatbp_recipe", "g") + aadd("z-parts-7", "y_regcatft_recipe", "h") + + aadd("z-parts-8", "y-fuel-reactor", "b") + aadd("z-parts-8", "y-infused-uca2", "c") + aadd("z-parts-8", "y_crystal2_combined", "d") + aadd("z-parts-8", "y_data_crystal_recipe", "d") + aadd("z-parts-8", "y-crystal-cnd", "e") + aadd("z-parts-8", "y-quantrinum", "f") + aadd("z-parts-8", "y_quantrinum_infused", "g") + aadd("z-parts-8", "y_quantrinum_infusion_recipe", "g") + +end +do --[[youki]]-- + if i_exist("y-atomic-constructor") then zgc.add_main_group("youki") end + + aadd("z-youki-0", "y-atomic-constructor", "a") + aadd("z-youki-0", "y-fame-gen", "b") + aadd("z-youki-0", "y-stargate", "c") + + aadd("z-youki-1", "y-ac-wood2uc-recipe", "a") + aadd("z-youki-1", "y-ac-coal2uc-recipe", "b") + aadd("z-youki-1", "y-ac-stone2uc-recipe", "c") + aadd("z-youki-1", "y-ac-copper2uc-recipe", "d") + aadd("z-youki-1", "y-ac-iron2uc-recipe", "e") + aadd("z-youki-1", "y-ac-uc42uc-recipe", "f") + aadd("z-youki-1", "y-ac-fuel2uc-recipe", "g") + aadd("z-youki-1", "y-uc2liquid-recipe", "h") + + aadd("z-youki-2", "y-ac-mud2uc-recipe", "a") + aadd("z-youki-2", "y-ac-toxic2uc-recipe", "b") + aadd("z-youki-2", "y-ac-slag2uc-recipe", "c") + aadd("z-youki-2", "y-ac-crystal2uc-recipe", "d") + aadd("z-youki-2", "y-heavyoil2uc-recipe", "e") + aadd("z-youki-2", "y-lightoil2uc-recipe", "f") + aadd("z-youki-2", "y-lubricant2uc-recipe", "g") + aadd("z-youki-2", "y-petroleum-recipe", "h") + aadd("z-youki-2", "y-battery-rip1-recipe", "i") + aadd("z-youki-2", "y_alien_artis1_recipe", "j") + + aadd("z-youki-3", "y-ac-uc2wood-recipe", "a") + aadd("z-youki-3", "y-ac-uc2coal-recipe", "b") + aadd("z-youki-3", "y-ac-uc2stone-recipe", "c") + aadd("z-youki-3", "y-ac-uc2copper-recipe", "d") + aadd("z-youki-3", "y-ac-uc2iron-recipe", "e") + aadd("z-youki-3", "y-ac-uc2uc4-recipe", "f") + aadd("z-youki-3", "y-ac-uc2fuel-recipe", "g") + aadd("z-youki-3", "y-liquid2uc-recipe", "h") + + aadd("z-youki-4", "y-ac-uc2plastic-recipe", "a") + aadd("z-youki-4", "y_uc2catalyst", "b") + aadd("z-youki-4", "y-uc2crudeoil-recipe", "c") + aadd("z-youki-4", "y-battery-rip2-recipe", "d") + aadd("z-youki-4", "y_alien_artis2_recipe", "e") + + aadd("z-youki-5", "y_exchange_a1_recipe", "a") + aadd("z-youki-5", "y_exchange_a4_recipe", "b") + aadd("z-youki-5", "y_exchange_a2_recipe", "c") + aadd("z-youki-5", "y_exchange_a3_recipe", "d") + + aadd("z-youki-6", "y_exchange_b1_recipe", "a") + aadd("z-youki-6", "y_exchange_b4_recipe", "b") + aadd("z-youki-6", "y_exchange_b2_recipe", "c") + aadd("z-youki-6", "y_exchange_b3_recipe", "d") + + aadd("z-youki-7", "yi_slayerfame_recipe", "a") + aadd("z-youki-7", "y-fame", "b") + aadd("z-youki-7", "y_fame_tech_recipe", "b") + aadd("z-youki-7", "y_greensign", "c") + aadd("z-youki-7", "y_greensign_ulti-recipe", "c") + aadd("z-youki-7", "ye_science_blue", "d") + aadd("z-youki-7", "ye_science_blue_recipe", "d") + aadd("z-youki-7", "ypfw_trader_sign", "e") + aadd("z-youki-7", "y_rwtechsign", "f") + + aadd("z-youki-8", "ye_green_ultimate", "a") + aadd("z-youki-8", "ye_science_ultimate", "b") + aadd("z-youki-8", "y_trade_ultimate", "c") + aadd("z-youki-8", "y_mc_e2_mining_drill", "d") + aadd("z-youki-8", "y_mc_underground_drill", "e") + aadd("z-youki-8", "y_mc_dirtwasher", "f") + aadd("z-youki-8", "y_steam_turbine_mc", "g") + aadd("z-youki-8", "y_obninsk_mc", "h") + + aadd("z-youki-9", "y-tinylamp", "a") + aadd("z-youki-9", "y-powerlamp", "b") + aadd("z-youki-9", "y-lamp-alien", "c") + aadd("z-youki-9", "y_old_bodenlampe", "d") + aadd("z-youki-9", "y_lampe_neotix", "e") + aadd("z-youki-9", "y_lampe_yuoki", "f") + + if use_graphics_tunnings then + zgc.set_icon("y-battery-rip1-recipe", "__ZGroupChange__/graphics/icons/battery2unicom.png") + zgc.set_icon("y_alien_artis1_recipe", "__ZGroupChange__/graphics/icons/artifact2unicom.png") + zgc.set_icon("y-battery-rip2-recipe", "__ZGroupChange__/graphics/icons/unicom2battery.png") + zgc.set_icon("y_alien_artis2_recipe", "__ZGroupChange__/graphics/icons/unicom2artifact.png") + end + +end +do --[[module]]-- + aadd("z-module-0", "yi_beacon", "h") + + aadd("z-module-1", "y-speed-module-1", "a") + aadd("z-module-1", "y_modul_blue1-recipe", "a") + aadd("z-module-1", "y-speed-module-2", "b") + aadd("z-module-1", "y_modul_blue2-recipe", "b") + aadd("z-module-1", "y-green-module-1", "c") + aadd("z-module-1", "y_modul_green1_recipe", "c") + aadd("z-module-1", "y-green-module-2", "d") + aadd("z-module-1", "y_modul_green2_recipe", "d") + aadd("z-module-1", "y_modul_green_op", "e") + + aadd("z-module-2", "y_modul_red1", "a") + aadd("z-module-2", "y_modul_red2", "b") + aadd("z-module-2", "y-pink-module-1", "c") + aadd("z-module-2", "y-pink-module-2", "d") + aadd("z-module-2", "y-pink-module-3", "e") + +end +do --[[decorative]]-- + aadd("z-decorative-4", "y_lamp_red", "c") + aadd("z-decorative-4", "y_lamp_green", "d") + aadd("z-decorative-4", "y_lamp_blue", "e") + aadd("z-decorative-4", "y_lamp_yellow", "f") + + aadd("z-decorative-6", "y_tile_slagfilled", "a") + aadd("z-decorative-6", "y_tile_slagpattern", "e") + aadd("z-decorative-6", "y_tile_slagbricks", "g") + + aadd("z-decorative-8", "yi_bug1", "i") + aadd("z-decorative-8", "yi-monument1", "j") + +end +do --[[other]]-- + aadd("z-other-2", "y-small-stirling-engine", "c") + +end +do --[[TECH]]-- + if z_balance.youki_tech and i_exist("y-dirt") then + + local s_pack = "alien-science-pack" + if data.raw.tool["science-pack-4"] then s_pack = "science-pack-4" end + data:extend({ + { + type = "technology", + name = "yuoki_technology", + icon = "__ZGroupChange__/graphics/icons/tech/yuoki_research.png", + unit = { + count = 15, + time = 30, + ingredients = { + {"science-pack-1",1} + } + }, + order = "y-0" + }, + { + type = "technology", + name = "yuoki_industries", + icon = "__ZGroupChange__/graphics/icons/tech/yuoki_industries.png", + prerequisites = {"yuoki_technology"}, + effects = {}, + unit = { + count = 25, + time = 30, + ingredients = { + {"science-pack-1",2}, + {"science-pack-2",1} + } + }, + order = "y-1[a]" + }, + { + type = "technology", + name = "yuoki_energy", + icon = "__ZGroupChange__/graphics/icons/tech/yuoki_energy.png", + prerequisites = {"yuoki_technology"}, + effects = {}, + unit = { + count = 25, + time = 30, + ingredients = { + {"science-pack-1",2}, + {"science-pack-2",1} + } + }, + order = "y-1[b]" + }, + { + type = "technology", + name = "yuoki_liquids", + icon = "__ZGroupChange__/graphics/icons/tech/yuoki_liquids.png", + prerequisites = {"yuoki_technology"}, + effects = {}, + unit = { + count = 25, + time = 30, + ingredients = { + {"science-pack-1",2}, + {"science-pack-2",1} + } + }, + order = "y-1[c]" + }, + { + type = "technology", + name = "yuoki_def", + icon = "__ZGroupChange__/graphics/icons/tech/yuoki_defence.png", + prerequisites = {"yuoki_industries"}, + effects = {}, + unit = { + count = 25, + time = 30, + ingredients = { + {"science-pack-1",2}, + {"science-pack-2",1} + } + }, + order = "y-1[d]" + }, + { + type = "technology", + name = "yuoki_atomics", + icon = "__ZGroupChange__/graphics/icons/tech/yuoki_atomics.png", + prerequisites = {"yuoki_industries", "yuoki_energy", "yuoki_liquids"}, + effects = {}, + unit = { + count = 50, + time = 120, + ingredients = { + {"science-pack-1",4}, + {"science-pack-2",3}, + {"science-pack-3",2}, + {s_pack,1} + } + }, + order = "y-1[e]" + } + }) + data:extend({ + { + type = "technology", + name = "yuoki_industries-2", + icon = "__ZGroupChange__/graphics/icons/tech/yuoki_industries.png", + prerequisites = {"yuoki_industries"}, + effects = {}, + unit = { + count = 25, + time = 45, + ingredients = { + {"science-pack-1",3}, + {"science-pack-2",2}, + {"science-pack-3",1} + } + }, + enabled = false, + order = "y-2[a]" + }, + { + type = "technology", + name = "yuoki_industries-3", + icon = "__ZGroupChange__/graphics/icons/tech/yuoki_industries.png", + prerequisites = {"yuoki_industries-2"}, + effects = {}, + unit = { + count = 50, + time = 60, + ingredients = { + {"science-pack-1",3}, + {"science-pack-2",2}, + {"science-pack-3",1} + } + }, + enabled = false, + order = "y-3[a]" + }, + { + type = "technology", + name = "yuoki_industries-4", + icon = "__ZGroupChange__/graphics/icons/tech/yuoki_industries.png", + prerequisites = {"yuoki_industries-3"}, + effects = {}, + unit = { + count = 75, + time = 90, + ingredients = { + {"science-pack-1",4}, + {"science-pack-2",3}, + {"science-pack-3",2}, + {s_pack,1} + } + }, + enabled = false, + order = "y-4[a]" + }, + { + type = "technology", + name = "yuoki_energy-2", + icon = "__ZGroupChange__/graphics/icons/tech/yuoki_energy.png", + prerequisites = {"yuoki_energy"}, + effects = {}, + unit = { + count = 50, + time = 45, + ingredients = { + {"science-pack-1",2}, + {"science-pack-2",1} + } + }, + enabled = false, + order = "y-2[b]" + }, + { + type = "technology", + name = "yuoki_energy-3", + icon = "__ZGroupChange__/graphics/icons/tech/yuoki_energy.png", + prerequisites = {"yuoki_energy-2"}, + effects = {}, + unit = { + count = 75, + time = 60, + ingredients = { + {"science-pack-1",3}, + {"science-pack-2",2}, + {"science-pack-3",1} + } + }, + enabled = false, + order = "y-3[b]" + }, + { + type = "technology", + name = "yuoki_liquids-2", + icon = "__ZGroupChange__/graphics/icons/tech/yuoki_liquids.png", + prerequisites = {"yuoki_liquids"}, + effects = {}, + unit = { + count = 50, + time = 45, + ingredients = { + {"science-pack-1",2}, + {"science-pack-2",1} + } + }, + enabled = false, + order = "y-2[c]" + }, + { + type = "technology", + name = "yuoki_liquids-3", + icon = "__ZGroupChange__/graphics/icons/tech/yuoki_liquids.png", + prerequisites = {"yuoki_liquids-2"}, + effects = {}, + unit = { + count = 75, + time = 60, + ingredients = { + {"science-pack-1",3}, + {"science-pack-2",2}, + {"science-pack-3",1} + } + }, + enabled = false, + order = "y-3[c]" + }, + { + type = "technology", + name = "yuoki_def-2", + icon = "__ZGroupChange__/graphics/icons/tech/yuoki_defence.png", + prerequisites = {"yuoki_def","yuoki_industries-2"}, + effects = {}, + unit = { + count = 50, + time = 45, + ingredients = { + {"science-pack-1",2}, + {"science-pack-2",1} + } + }, + enabled = false, + order = "y-2[d]" + }, + { + type = "technology", + name = "yuoki_def-3", + icon = "__ZGroupChange__/graphics/icons/tech/yuoki_defence.png", + prerequisites = {"yuoki_def-2","yuoki_industries-3"}, + effects = {}, + unit = { + count = 75, + time = 60, + ingredients = { + {"science-pack-1",3}, + {"science-pack-2",2}, + {"science-pack-3",1} + } + }, + enabled = false, + order = "y-3[d]" + }, + { + type = "technology", + name = "yuoki_atomics-2", + icon = "__ZGroupChange__/graphics/icons/tech/yuoki_atomics.png", + prerequisites = {"yuoki_industries-2","yuoki_energy-2","yuoki_liquids-2","yuoki_atomics"}, + effects = {}, + unit = { + count = 75, + time = 150, + ingredients = { + {"science-pack-1",4}, + {"science-pack-2",3}, + {"science-pack-3",2}, + {s_pack,1} + } + }, + enabled = false, + order = "y-2[e]" + }, + { + type = "technology", + name = "yuoki_atomics-3", + icon = "__ZGroupChange__/graphics/icons/tech/yuoki_atomics.png", + prerequisites = {"yuoki_industries-3","yuoki_energy-3","yuoki_atomics-2"}, + effects = {}, + unit = { + count = 100, + time = 180, + ingredients = { + {"science-pack-1",4}, + {"science-pack-2",3}, + {"science-pack-3",2}, + {s_pack,1} + } + }, + enabled = false, + order = "y-3[e]" + } + }) + + -- yuoki_technology + -- yuoki_industries-4 + -- yuoki_energy-3 + -- yuoki_liquids-3 + -- yuoki_def-3 + -- yuoki_atomics-3 + + do --# gathering + zgc.add_recipe_to_tech("yuoki_industries", "y-mining-drill-recipe") + zgc.add_recipe_to_tech("yuoki_industries", "y-underground-drill-recipe") + zgc.add_recipe_to_tech("yuoki_industries", "y-dirtwasher-recipe") + zgc.add_recipe_to_tech("yuoki_industries", "y_c11_recipe") + + zgc.add_recipe_to_tech("yuoki_industries-2", "y-mining-drill-e2-recipe") + zgc.add_recipe_to_tech("yuoki_industries-2", "y_c22_recipe") + + zgc.add_recipe_to_tech("yuoki_industries-3", "y_cg33_recipe") + zgc.add_recipe_to_tech("yuoki_industries-3", "y-repair-durotal-recipe") + + zgc.add_recipe_to_tech("yuoki_industries-4", "y_mc_dirtwasher_recipe") + zgc.add_recipe_to_tech("yuoki_industries-4", "y_mc_e2_mining_drill_recipe") + zgc.add_recipe_to_tech("yuoki_industries-4", "y_mc_underground_drill_recipe") + zgc.add_recipe_to_tech("yuoki_industries-4", "y_sc44_recipe") + zgc.add_recipe_to_tech("yuoki_industries-4", "y-repair-krakon-recipe") + zgc.add_recipe_to_tech("yuoki_industries-4", "y_quantrinum_hammer_recipe") + + zgc.add_recipe_to_tech("yuoki_liquids", "y-water-gen-recipe") + zgc.add_recipe_to_tech("yuoki_liquids", "y-water-gen-fluid-recipe") + zgc.add_recipe_to_tech("yuoki_liquids", "z-lithia-water") + zgc.add_recipe_to_tech("yuoki_liquids", "y-tank-4500-recipe") + zgc.add_recipe_to_tech("yuoki_liquids", "y_buffer_station") + + zgc.add_recipe_to_tech("yuoki_liquids-2", "y-water-gen-recipe-e") + zgc.add_recipe_to_tech("yuoki_liquids-3", "y-tank-24k") + + zgc.add_recipe_to_tech("yuoki_atomics-3", "y_repair_quantrinum-recipe") + end + do --# production + zgc.add_recipe_to_tech("yuoki_industries", "y-crusher-recipe") + zgc.add_recipe_to_tech("yuoki_industries", "y_smelter_recipe") + + zgc.add_recipe_to_tech("yuoki_industries-2", "y_crusher2_recipe") + zgc.add_recipe_to_tech("yuoki_industries-2", "y-heat-form-press-recipe") + zgc.add_recipe_to_tech("yuoki_industries-2", "y_charger_recipe") + + zgc.add_recipe_to_tech("yuoki_industries-3", "y_formpress2_recipe") + zgc.add_recipe_to_tech("yuoki_industries-3", "y-atomic-quantum-composer-recipe") + + zgc.add_recipe_to_tech("yuoki_industries-4", "y_maintance_workshop_recipe") + zgc.add_recipe_to_tech("yuoki_industries-4", "y-alien-infuser-recipe") + end + do --# plates + zgc.add_recipe_to_tech("yuoki_industries", "y-refined-iron") + zgc.add_recipe_to_tech("yuoki_industries", "y-refined-copper") + + zgc.add_recipe_to_tech("yuoki_industries-3", "y_hps_pureiron_recipe") + zgc.add_recipe_to_tech("yuoki_industries-3", "y_hps_purecopper_recipe") + zgc.add_recipe_to_tech("yuoki_industries-3", "y_hps_steel_recipe") + end + do --# chemistry + zgc.add_recipe_to_tech("yuoki_liquids", "y_coal2liquid") + zgc.add_recipe_to_tech("yuoki_liquids", "y_ft_recipe") + zgc.add_recipe_to_tech("yuoki_liquids", "y_rawsyngas1_recipe") + zgc.add_recipe_to_tech("yuoki_liquids", "y_rawsyngas2_recipe") + zgc.add_recipe_to_tech("yuoki_liquids", "y_refinehydrogen_recipe") + end + do --# automatization + zgc.add_recipe_to_tech("yuoki_industries-2", "y-inserter-s4-recipe") + end + do --# transport + zgc.add_recipe_to_tech("yuoki_liquids", "y_flowcheck_10_recipe") + end + do --# logistic + zgc.add_recipe_to_tech("yuoki_industries-2", "yi_roboport_recipe") + zgc.add_recipe_to_tech("yuoki_industries-2", "yi_logistic-robot_recipe") + zgc.add_recipe_to_tech("yuoki_industries-2", "yi_construction-robot_recipe") + zgc.add_recipe_to_tech("yuoki_industries-2", "y-rare-chest-log-recipe") + zgc.add_recipe_to_tech("yuoki_industries-2", "y-rare-m1bunker-log-recipe") + + zgc.add_recipe_to_tech("yuoki_industries-3", "y_pc22_recipe") + zgc.add_recipe_to_tech("yuoki_industries-3", "y_rc22_recipe") + end + do --# energy + zgc.add_recipe_to_tech("yuoki_industries-4", "y_obninsk_mc_recipe") + zgc.add_recipe_to_tech("yuoki_industries-4", "y_steam_turbine_mc_recipe") + + zgc.add_recipe_to_tech("yuoki_energy", "y-substation-m-recipe") + zgc.add_recipe_to_tech("yuoki_energy", "y-accumulator-m-recipe") + zgc.add_recipe_to_tech("yuoki_energy", "y-accumulator-mt2-recipe") + zgc.add_recipe_to_tech("yuoki_energy", "y-notfall-generator-s2-recipe") + zgc.add_recipe_to_tech("yuoki_energy", "y-steam-turbine-recipe") + zgc.add_recipe_to_tech("yuoki_energy", "y-boiler-t2-recipe") + zgc.add_recipe_to_tech("yuoki_energy", "y-boiler-t3-recipe") + zgc.add_recipe_to_tech("yuoki_energy", "y-boiler-iv-recipe") + zgc.add_recipe_to_tech("yuoki_energy", "y-meg-s-recipe") + zgc.add_recipe_to_tech("yuoki_energy", "y-solar-dish-recipe") + zgc.add_recipe_to_tech("yuoki_energy", "y-wooden-brikett-recipe") + zgc.add_recipe_to_tech("yuoki_energy", "y-coal-brikett-recipe") + zgc.add_recipe_to_tech("yuoki_energy", "y-coaldust-mixing-recipe") + + zgc.add_recipe_to_tech("yuoki_energy-2", "y-substation-h-recipe") + zgc.add_recipe_to_tech("yuoki_energy-2", "y-accumulator-b-recipe") + zgc.add_recipe_to_tech("yuoki_energy-2", "y-accumulator-bt2-recipe") + zgc.add_recipe_to_tech("yuoki_energy-2", "y-ups-flywheel-b-recipe") + zgc.add_recipe_to_tech("yuoki_energy-2", "y-obninsk-turbine-recipe") + zgc.add_recipe_to_tech("yuoki_energy-2", "y-obninsk-reactor-recipe") + zgc.add_recipe_to_tech("yuoki_energy-2", "y-beg-recipe") + zgc.add_recipe_to_tech("yuoki_energy-2", "y_alien_solar_recipe") + zgc.add_recipe_to_tech("yuoki_energy-2", "y-mixfuel-load-recipe") + zgc.add_recipe_to_tech("yuoki_energy-2", "y-wooden-brikett-packed-recipe") + zgc.add_recipe_to_tech("yuoki_energy-2", "y-coal-stack-recipe") + zgc.add_recipe_to_tech("yuoki_energy-2", "y-infused-mud-recipe") + zgc.add_recipe_to_tech("yuoki_energy-2", "y-tinylamp-recipe") + zgc.add_recipe_to_tech("yuoki_energy-2", "y-powerlamp-recipe") + zgc.add_recipe_to_tech("yuoki_energy-2", "y-lamp-alien-recipe") + zgc.add_recipe_to_tech("yuoki_energy-2", "y_old_bodenlampe_recipe") + zgc.add_recipe_to_tech("yuoki_energy-2", "y_lampe_neotix_recipe") + zgc.add_recipe_to_tech("yuoki_energy-2", "y_lampe_yuoki_recipe") + + zgc.add_recipe_to_tech("yuoki_energy-3", "y-accumulator-btx-recipe") + zgc.add_recipe_to_tech("yuoki_energy-3", "y-accumulator-crystal-m-recipe") + zgc.add_recipe_to_tech("yuoki_energy-3", "y_compensator_25_recipe") + zgc.add_recipe_to_tech("yuoki_energy-3", "y-heg-recipe") + zgc.add_recipe_to_tech("yuoki_energy-3", "y_alien_solar2_recipe") + + end + do --# defense + zgc.add_recipe_to_tech("yuoki_def", "y-mud-wall-recipe") + zgc.add_recipe_to_tech("yuoki_def", "y-rare-wall-basic-recipe") + zgc.add_recipe_to_tech("yuoki_def", "y_turret_flame_recipe") + zgc.add_recipe_to_tech("yuoki_def", "y-gun-turret-mk2-recipe") + zgc.add_recipe_to_tech("yuoki_def", "y-bullet-case-recipe") + zgc.add_recipe_to_tech("yuoki_def", "y_ammo_case_recipe") + zgc.add_recipe_to_tech("yuoki_def", "y_ammo_flame_recipe") + zgc.add_recipe_to_tech("yuoki_def", "y-ammo-hohlspitz-recipe") + + zgc.add_recipe_to_tech("yuoki_def-2", "y-rare-wall-adv-recipe") + zgc.add_recipe_to_tech("yuoki_def-2", "y_turret_plasma_recipe") + zgc.add_recipe_to_tech("yuoki_def-2", "y-gun-turret-mk3-recipe") + zgc.add_recipe_to_tech("yuoki_def-2", "y_laser_mk1_recipe") + zgc.add_recipe_to_tech("yuoki_def-2", "yi_radar_recipe") + zgc.add_recipe_to_tech("yuoki_def-2", "y-ammo-krakon-recipe") + zgc.add_recipe_to_tech("yuoki_def-2", "y-ammo-biggun-recipe") + zgc.add_recipe_to_tech("yuoki_def-2", "y_ammo_plasma_recipe") + + zgc.add_recipe_to_tech("yuoki_def-3", "y_wall22_hardic_recipe") + zgc.add_recipe_to_tech("yuoki_def-3", "y-wall-forcefield-recipe") + zgc.add_recipe_to_tech("yuoki_def-3", "y_laser_onhwall_recipe") + zgc.add_recipe_to_tech("yuoki_def-3", "y-weapon-ztt-recipe") + zgc.add_recipe_to_tech("yuoki_def-3", "y-ammo-explosiv-recipe") + zgc.add_recipe_to_tech("yuoki_def-3", "y-ammo-poison-recipe") + zgc.add_recipe_to_tech("yuoki_def-3", "y-ammo-acid-medium-recipe") + end + do --# parts + zgc.add_recipe_to_tech("yuoki_industries", "y-heat-pipe-recipe") + zgc.add_recipe_to_tech("yuoki_industries", "y-bluegear-recipe") + zgc.add_recipe_to_tech("yuoki_industries", "y_structure_element_recipe") + zgc.add_recipe_to_tech("yuoki_industries", "y_structure_vessel_recipe") + zgc.add_recipe_to_tech("yuoki_industries", "y_dotzetron_recipe") + zgc.add_recipe_to_tech("yuoki_industries", "y_chip_plate_recipe") + zgc.add_recipe_to_tech("yuoki_industries", "y_gauge_analog_recipe") + + zgc.add_recipe_to_tech("yuoki_industries-2", "y_drillhead_recipe") + zgc.add_recipe_to_tech("yuoki_industries-2", "y_toolhead_recipe") + zgc.add_recipe_to_tech("yuoki_industries-2", "y-basic-st1-mf-recipe") + zgc.add_recipe_to_tech("yuoki_industries-2", "y-conductive-wire-1-recipe") + zgc.add_recipe_to_tech("yuoki_industries-2", "yi_magnetron_recipe") + zgc.add_recipe_to_tech("yuoki_industries-2", "y-chip1-recipe") + zgc.add_recipe_to_tech("yuoki_industries-2", "y-basic-st2-mf-recipe") + zgc.add_recipe_to_tech("yuoki_industries-2", "y-conductive-coil-1-recipe") + zgc.add_recipe_to_tech("yuoki_industries-2", "y-chip2-recipe") + zgc.add_recipe_to_tech("yuoki_industries-2", "y_blocked_capa_recipe") + + zgc.add_recipe_to_tech("yuoki_industries-3", "y_drillhead_repair_recipe") + zgc.add_recipe_to_tech("yuoki_industries-3", "y_toolhead_repair_recipe") + + zgc.add_recipe_to_tech("yuoki_industries", "y-crush-unicomp-raw-recipe") + zgc.add_recipe_to_tech("yuoki_industries", "y-crush-fuel-raw-recipe") + zgc.add_recipe_to_tech("yuoki_industries", "y-smelt-crush-res1-recipe") + zgc.add_recipe_to_tech("yuoki_industries", "y-unicomp-raw-recipe") + zgc.add_recipe_to_tech("yuoki_industries", "y-pure-iron-recipe") + zgc.add_recipe_to_tech("yuoki_industries", "y-pure-copper-recipe") + zgc.add_recipe_to_tech("yuoki_industries", "y-digfdirt-recipe") + zgc.add_recipe_to_tech("yuoki_industries", "y-release-cwater") + zgc.add_recipe_to_tech("yuoki_industries", "y-wash-dirt-recipe") + + zgc.add_recipe_to_tech("yuoki_industries-2", "y-filtering-dust-recipe") + zgc.add_recipe_to_tech("yuoki_industries-2", "y-smelt-crush-res2-recipe") + zgc.add_recipe_to_tech("yuoki_industries-2", "y-mixing-rich-recipe") + zgc.add_recipe_to_tech("yuoki_industries-2", "y-smelt-richdust-recipe") + zgc.add_recipe_to_tech("yuoki_industries-2", "y_block_cold_recipe") + zgc.add_recipe_to_tech("yuoki_industries-2", "y_block_heat_recipe") + zgc.add_recipe_to_tech("yuoki_industries-2", "y-quantrinum-recipe") + zgc.add_recipe_to_tech("yuoki_industries-2", "y_data_crystal_recipe") + zgc.add_recipe_to_tech("yuoki_industries-2", "y-crystal-cnd-recipe") + zgc.add_recipe_to_tech("yuoki_industries-2", "y-digfdirt2-recipe") + zgc.add_recipe_to_tech("yuoki_industries-3", "y-press-richdust-recipe") + zgc.add_recipe_to_tech("yuoki_industries-2", "y-pressed_dry_mud-recipe") + zgc.add_recipe_to_tech("yuoki_industries-2", "y_slag_granulate_recipe") + zgc.add_recipe_to_tech("yuoki_industries-2", "y_slag_brick_recipe") + + zgc.add_recipe_to_tech("yuoki_industries-3", "y_pure_iron_wtool_recipe") + zgc.add_recipe_to_tech("yuoki_industries-3", "y_pure_copper_wtool_recipe") + zgc.add_recipe_to_tech("yuoki_industries-3", "y-crush-blue_whead-recipe") + zgc.add_recipe_to_tech("yuoki_industries-3", "y-crush-green_whead-recipe") + zgc.add_recipe_to_tech("yuoki_industries-3", "y_quantrinum_infusion_recipe") + zgc.add_recipe_to_tech("yuoki_industries-3", "y-wash-special-recipe") + zgc.add_recipe_to_tech("yuoki_industries-3", "y_slag_brick_burn_recipe") + zgc.add_recipe_to_tech("yuoki_industries-3", "y-raw-fuelnium-recipe") + + zgc.add_recipe_to_tech("yuoki_energy", "y-coaldust-recipe") + + zgc.add_recipe_to_tech("yuoki_energy-3", "y-fuel-reactor-recipe") + zgc.add_recipe_to_tech("yuoki_energy-3", "y-infused-uca2-recipe") + + zgc.add_recipe_to_tech("yuoki_liquids", "y_granulate_wood_recipe") + zgc.add_recipe_to_tech("yuoki_liquids", "y_catalyst_bp_recipe") + zgc.add_recipe_to_tech("yuoki_liquids", "y_catalyst_ft_recipe") + zgc.add_recipe_to_tech("yuoki_liquids", "y_regcatbp_recipe") + zgc.add_recipe_to_tech("yuoki_liquids", "y_regcatft_recipe") + + zgc.add_recipe_to_tech("yuoki_liquids-2", "y-sulfuric-acid-recipe") + end + do --# intermediate + zgc.add_recipe_to_tech("yuoki_industries", "y_blocked_capa_recipe") + zgc.add_recipe_to_tech("yuoki_industries", "y-battery-singleuse1-recipe") + + zgc.add_recipe_to_tech("yuoki_industries-2", "y-battery-singleuse2-recipe") + + zgc.add_recipe_to_tech("yuoki_industries-3", "y-battery-single-use3-recipe") + end + do --# youki + zgc.add_recipe_to_tech("yuoki_atomics", "y-atomic-constructor-recipe") + zgc.add_recipe_to_tech("yuoki_atomics", "y-ac-wood2uc-recipe") + zgc.add_recipe_to_tech("yuoki_atomics", "y-ac-coal2uc-recipe") + zgc.add_recipe_to_tech("yuoki_atomics", "y-ac-stone2uc-recipe") + zgc.add_recipe_to_tech("yuoki_atomics", "y-ac-copper2uc-recipe") + zgc.add_recipe_to_tech("yuoki_atomics", "y-ac-iron2uc-recipe") + zgc.add_recipe_to_tech("yuoki_atomics", "y-ac-uc42uc-recipe") + zgc.add_recipe_to_tech("yuoki_atomics", "y-ac-fuel2uc-recipe") + zgc.add_recipe_to_tech("yuoki_atomics", "y-uc2liquid-recipe") + zgc.add_recipe_to_tech("yuoki_atomics", "y-ac-uc2wood-recipe") + zgc.add_recipe_to_tech("yuoki_atomics", "y-ac-uc2coal-recipe") + zgc.add_recipe_to_tech("yuoki_atomics", "y-ac-uc2stone-recipe") + zgc.add_recipe_to_tech("yuoki_atomics", "y-ac-uc2copper-recipe") + zgc.add_recipe_to_tech("yuoki_atomics", "y-ac-uc2iron-recipe") + zgc.add_recipe_to_tech("yuoki_atomics", "y-ac-uc2uc4-recipe") + zgc.add_recipe_to_tech("yuoki_atomics", "y-ac-uc2fuel-recipe") + zgc.add_recipe_to_tech("yuoki_atomics", "y-liquid2uc-recipe") + zgc.add_recipe_to_tech("yuoki_atomics", "y_exchange_a1_recipe") + zgc.add_recipe_to_tech("yuoki_atomics", "y_exchange_a4_recipe") + zgc.add_recipe_to_tech("yuoki_atomics", "y_exchange_a2_recipe") + zgc.add_recipe_to_tech("yuoki_atomics", "y_exchange_a3_recipe") + zgc.add_recipe_to_tech("yuoki_atomics", "y_exchange_b1_recipe") + zgc.add_recipe_to_tech("yuoki_atomics", "y_exchange_b4_recipe") + zgc.add_recipe_to_tech("yuoki_atomics", "y_exchange_b2_recipe") + zgc.add_recipe_to_tech("yuoki_atomics", "y_exchange_b3_recipe") + zgc.add_recipe_to_tech("yuoki_atomics", "yi_slayerfame_recipe") + + zgc.add_recipe_to_tech("yuoki_atomics-2", "y_fame_tech_recipe") + zgc.add_recipe_to_tech("yuoki_atomics-2", "y-ac-mud2uc-recipe") + zgc.add_recipe_to_tech("yuoki_atomics-2", "y-ac-toxic2uc-recipe") + zgc.add_recipe_to_tech("yuoki_atomics-2", "y-ac-slag2uc-recipe") + zgc.add_recipe_to_tech("yuoki_atomics-2", "y-ac-crystal2uc-recipe") + zgc.add_recipe_to_tech("yuoki_atomics-2", "y-heavyoil2uc-recipe") + zgc.add_recipe_to_tech("yuoki_atomics-2", "y-lightoil2uc-recipe") + zgc.add_recipe_to_tech("yuoki_atomics-2", "y-lubricant2uc-recipe") + zgc.add_recipe_to_tech("yuoki_atomics-2", "y-petroleum-recipe") + zgc.add_recipe_to_tech("yuoki_atomics-2", "y-battery-rip1-recipe") + zgc.add_recipe_to_tech("yuoki_atomics-2", "y_alien_artis1_recipe") + zgc.add_recipe_to_tech("yuoki_atomics-2", "y-ac-uc2plastic-recipe") + zgc.add_recipe_to_tech("yuoki_atomics-2", "y_uc2catalyst") + zgc.add_recipe_to_tech("yuoki_atomics-2", "y-uc2crudeoil-recipe") + zgc.add_recipe_to_tech("yuoki_atomics-2", "y-battery-rip2-recipe") + zgc.add_recipe_to_tech("yuoki_atomics-2", "y_alien_artis2_recipe") + + zgc.add_recipe_to_tech("yuoki_atomics-3", "y-stargate-recipe") + zgc.add_recipe_to_tech("yuoki_atomics-3", "y-fame-recipe") + zgc.add_recipe_to_tech("yuoki_atomics-3", "y_greensign_ulti-recipe") + zgc.add_recipe_to_tech("yuoki_atomics-3", "ye_science_blue_recipe") + zgc.add_recipe_to_tech("yuoki_atomics-3", "ypfw_trader_sign") + zgc.add_recipe_to_tech("yuoki_atomics-3", "y_rwtechsign") + zgc.add_recipe_to_tech("yuoki_atomics-3", "y-fame-gen-recipe") + zgc.add_recipe_to_tech("yuoki_atomics-3", "y-sgtrade-ic1-recipe") + zgc.add_recipe_to_tech("yuoki_atomics-3", "ye_green_ultimate_recipe") + zgc.add_recipe_to_tech("yuoki_atomics-3", "ye_science_ultimate_recipe") + zgc.add_recipe_to_tech("yuoki_atomics-3", "y_trade_ultimate_recipe") + end + do --# module + zgc.add_recipe_to_tech("yuoki_industries-2", "yi_beacon_recipe") + zgc.add_recipe_to_tech("yuoki_industries-2", "y_modul_blue1-recipe") + zgc.add_recipe_to_tech("yuoki_industries-2", "y_modul_blue2-recipe") + zgc.add_recipe_to_tech("yuoki_industries-2", "y_modul_green1_recipe") + zgc.add_recipe_to_tech("yuoki_industries-2", "y_modul_green2_recipe") + zgc.add_recipe_to_tech("yuoki_industries-2", "y-pink-module-1-recipe") + + zgc.add_recipe_to_tech("yuoki_industries-3", "y_modul_red1_recipe") + zgc.add_recipe_to_tech("yuoki_industries-3", "y_modul_red2_recipe") + zgc.add_recipe_to_tech("yuoki_industries-3", "y-pink-module-2-recipe") + zgc.add_recipe_to_tech("yuoki_industries-3", "y-pink-module-3-recipe") + + zgc.add_recipe_to_tech("yuoki_industries-4", "y_modul_green_op_recipe") + end + do --# decorative + zgc.add_recipe_to_tech("yuoki_industries", "y_tile_slagfilled_recipe") + zgc.add_recipe_to_tech("yuoki_industries-2", "y_tile_slagpattern_recipe") + zgc.add_recipe_to_tech("yuoki_industries-3", "y_tile_slagbricks_recipe") + + zgc.add_recipe_to_tech("yuoki_energy", "y_lamp_red_recipe") + zgc.add_recipe_to_tech("yuoki_energy", "y_lamp_green_recipe") + zgc.add_recipe_to_tech("yuoki_energy", "y_lamp_blue_recipe") + zgc.add_recipe_to_tech("yuoki_energy", "y_lamp_yellow_recipe") + zgc.add_recipe_to_tech("yuoki_energy", "yi_bug1_recipe") + + zgc.add_recipe_to_tech("yuoki_energy-3", "yi-monument1-recipe") + end + + end +end diff --git a/ZGroupChange_1.2.4/mods/yuoki_engine.lua b/ZGroupChange_1.2.5/mods/yuoki_engine.lua similarity index 97% rename from ZGroupChange_1.2.4/mods/yuoki_engine.lua rename to ZGroupChange_1.2.5/mods/yuoki_engine.lua index a33a85b..345c0fc 100644 --- a/ZGroupChange_1.2.4/mods/yuoki_engine.lua +++ b/ZGroupChange_1.2.5/mods/yuoki_engine.lua @@ -1,278 +1,278 @@ -local allow_changes = z_balance.youki_eng - -local eg = {} -local ag = {} - -if i_exist("ye_overheater") then - zgc.add_main_group("engines") - zgc.add_main_group("agronomies") - - for i=0,9 do zgc.get_group_name("z-engines-"..i,"") end - for i=0,9 do zgc.get_group_name("z-agronomies-"..i,"") end - - for _,recipe in pairs(data.raw.recipe) do - - if recipe.subgroup == "yie-engines" then --Engines - recipe.group = "zgc-engines" - recipe.subgroup = "zgc-engines-0" - table.insert(eg,recipe.name) - end - if recipe.subgroup == "yie_machinery" then --machinery - recipe.group = "zgc-engines" - recipe.subgroup = "zgc-engines-1" - table.insert(eg,recipe.name) - end - if recipe.subgroup == "yie_machinery2" then --machinery2 - recipe.group = "zgc-engines" - recipe.subgroup = "zgc-engines-2" - table.insert(eg,recipe.name) - end - if recipe.subgroup == "yie-fluids" then --all fluids (MF) - recipe.group = "zgc-engines" - recipe.subgroup = "zgc-engines-3" - table.insert(eg,recipe.name) - end - if recipe.subgroup == "yie-parts" then --building parts - recipe.group = "zgc-engines" - recipe.subgroup = "zgc-engines-4" - table.insert(eg,recipe.name) - end - if recipe.subgroup == "yie-processed" then --products - recipe.group = "zgc-engines" - recipe.subgroup = "zgc-engines-5" - table.insert(eg,recipe.name) - end - if recipe.subgroup == "yie-exp" then --temporary experimental stuff - recipe.group = "zgc-engines" - recipe.subgroup = "zgc-engines-5" - table.insert(eg,recipe.name) - end - if string.find(recipe.name,"empty") - and recipe.subgroup == "yie_fluid_handle" then --fluid handling - recipe.group = "zgc-engines" - recipe.subgroup = "zgc-engines-7" - table.insert(eg,recipe.name) - elseif recipe.subgroup == "yie_fluid_handle" then - recipe.group = "zgc-engines" - recipe.subgroup = "zgc-engines-6" - table.insert(eg,recipe.name) - end - - if recipe.subgroup == "yie_agromachinery" then --agriculture machinery - recipe.group = "zgc-agronomies" - recipe.subgroup = "zgc-agronomies-0" - table.insert(ag,recipe.name) - end - if recipe.subgroup == "yie_agroproducts" then --agriculture products - recipe.group = "zgc-agronomies" - recipe.subgroup = "zgc-agronomies-1" - table.insert(ag,recipe.name) - end - if recipe.subgroup == "yie_farming" then --farming stuff - recipe.group = "zgc-agronomies" - recipe.subgroup = "zgc-agronomies-2" - table.insert(ag,recipe.name) - end - if recipe.subgroup == "yie_agro_package" then --agriculture packages - recipe.group = "zgc-agronomies" - recipe.subgroup = "zgc-agronomies-3" - table.insert(ag,recipe.name) - end - if recipe.subgroup == "yie_trades" then --trade stuff - recipe.group = "zgc-agronomies" - recipe.subgroup = "zgc-agronomies-3" - table.insert(ag,recipe.name) - end - if recipe.subgroup == "yie_animals" then --ranch stuff - recipe.group = "zgc-agronomies" - recipe.subgroup = "zgc-agronomies-4" - table.insert(ag,recipe.name) - end - if recipe.subgroup == "yie_fish" then --fish-stuff - recipe.group = "zgc-agronomies" - recipe.subgroup = "zgc-agronomies-4" - table.insert(ag,recipe.name) - end - if recipe.subgroup == "yie_dnaline" then --DNA-Line - recipe.group = "zgc-agronomies" - recipe.subgroup = "zgc-agronomies-5" - table.insert(ag,recipe.name) - end - - end - - for _,item in pairs(data.raw.item) do - - if item.subgroup == "yie-engines" then item.group = "zgc-engines"; item.subgroup = "zgc-engines-0" end --Engines - if item.subgroup == "yie-exp" then item.group = "zgc-engines"; item.subgroup = "zgc-engines-1" end --temporary experimental stuff - if item.subgroup == "yie-fluids" then item.group = "zgc-engines"; item.subgroup = "zgc-engines-2" end --all fluids (MF) - if item.subgroup == "yie-parts" then item.group = "zgc-engines"; item.subgroup = "zgc-engines-3" end --building parts - if item.subgroup == "yie-processed" then item.group = "zgc-engines"; item.subgroup = "zgc-engines-4" end --products - if item.subgroup == "yie_machinery" then item.group = "zgc-engines"; item.subgroup = "zgc-engines-5" end --machinery - if item.subgroup == "yie_machinery2" then item.group = "zgc-engines"; item.subgroup = "zgc-engines-6" end --machinery2 - if item.subgroup == "yie_fluid_handle" then item.group = "zgc-engines"; item.subgroup = "zgc-engines-7" end --fluid handling - if item.subgroup == "yie_agromachinery" then item.group = "zgc-agronomies"; item.subgroup = "zgc-agronomies-0" end --agriculture machinery - if item.subgroup == "yie_agroproducts" then item.group = "zgc-agronomies"; item.subgroup = "zgc-agronomies-1" end --agriculture products - if item.subgroup == "yie_agro_package" then item.group = "zgc-agronomies"; item.subgroup = "zgc-agronomies-2" end --agriculture packages - if item.subgroup == "yie_animals" then item.group = "zgc-agronomies"; item.subgroup = "zgc-agronomies-3" end --ranch stuff - if item.subgroup == "yie_dnaline" then item.group = "zgc-agronomies"; item.subgroup = "zgc-agronomies-4" end --DNA-Line - if item.subgroup == "yie_farming" then item.group = "zgc-agronomies"; item.subgroup = "zgc-agronomies-5" end --farming stuff - if item.subgroup == "yie_fish" then item.group = "zgc-agronomies"; item.subgroup = "zgc-agronomies-6" end --fish-stuff - if item.subgroup == "yie_trades" then item.group = "zgc-agronomies"; item.subgroup = "zgc-agronomies-7" end --trade stuff - - end -end - -do --[[engines]]-- - aadd("z-engines-2", "ye_canmachine", "z") -- - - aadd("z-engines-5", "ye_canister", "z") -- - aadd("z-engines-5", "ye_canister2plates_smelt", "z") -- - -end -do --[[agronomies]]-- - aadd("z-agronomies-2", "y_unlimited_wood", "z") -- - aadd("z-agronomies-2", "ye_granulate_trifitan_recipe", "z") -- - aadd("z-agronomies-2", "ye_granulate_vuger_recipe", "z") -- - aadd("z-agronomies-2", "ye_granulate_corn_recipe", "z") -- - aadd("z-agronomies-2", "ye_biofuel_recipe", "z") -- - aadd("z-agronomies-2", "ye_slurry2ethanol_recipe", "z") -- - -end - -do --[[TECH]]-- - if z_balance.youki_tech and i_exist("ye_overheater") then - - data:extend({ - { - type = "technology", - name = "yuoki_engines", - icon = "__ZGroupChange__/graphics/icons/tech/yuoki_engines.png", - prerequisites = {"yuoki_technology"}, - effects = {}, - unit = { - count = 25, - time = 30, - ingredients = { - {"science-pack-1",2}, - {"science-pack-2",1} - } - }, - order = "y-1[g]" - }, - { - type = "technology", - name = "yuoki_engines-2", - icon = "__ZGroupChange__/graphics/icons/tech/yuoki_engines.png", - prerequisites = {"yuoki_engines"}, - effects = {}, - unit = { - count = 25, - time = 45, - ingredients = { - {"science-pack-1",3}, - {"science-pack-2",2}, - {"science-pack-3",1} - } - }, - enabled = false, - order = "y-2[g]" - }, - { - type = "technology", - name = "yuoki_engines-3", - icon = "__ZGroupChange__/graphics/icons/tech/yuoki_engines.png", - prerequisites = {"yuoki_engines-2"}, - effects = {}, - unit = { - count = 50, - time = 60, - ingredients = { - {"science-pack-1",3}, - {"science-pack-2",2}, - {"science-pack-3",1} - } - }, - enabled = false, - order = "y-3[g]" - } - }) - data:extend({ - { - type = "technology", - name = "yuoki_agronomie", - icon = "__ZGroupChange__/graphics/icons/tech/yuoki_agronomie.png", - prerequisites = {"yuoki_technology"}, - effects = {}, - unit = { - count = 25, - time = 30, - ingredients = { - {"science-pack-1",2}, - {"science-pack-2",1} - } - }, - order = "y-1[h]" - }, - { - type = "technology", - name = "yuoki_agronomie-2", - icon = "__ZGroupChange__/graphics/icons/tech/yuoki_agronomie.png", - prerequisites = {"yuoki_agronomie"}, - effects = {}, - unit = { - count = 25, - time = 45, - ingredients = { - {"science-pack-1",3}, - {"science-pack-2",2}, - {"science-pack-3",1} - } - }, - enabled = false, - order = "y-2[h]" - }, - { - type = "technology", - name = "yuoki_agronomie-3", - icon = "__ZGroupChange__/graphics/icons/tech/yuoki_agronomie.png", - prerequisites = {"yuoki_agronomie-2"}, - effects = {}, - unit = { - count = 50, - time = 60, - ingredients = { - {"science-pack-1",3}, - {"science-pack-2",2}, - {"science-pack-3",1} - } - }, - enabled = false, - order = "y-3[h]" - } - }) - - -- yuoki_engines-3 - -- yuoki_agronomie-3 - - for _,r in pairs(eg) do - zgc.add_recipe_to_tech("yuoki_engines",r) - end - for _,r in pairs(ag) do - zgc.add_recipe_to_tech("yuoki_agronomie",r) - end - - do --# engines - zgc.add_recipe_to_tech("yuoki_engines", "ye_canmachine_recipe") - zgc.add_recipe_to_tech("yuoki_engines", "ye_canister2plates_smelt") - end - do --# agronomies - zgc.add_recipe_to_tech("yuoki_agronomie", "y_unlimited_wood") - zgc.add_recipe_to_tech("yuoki_agronomie", "ye_granulate_trifitan_recipe") - zgc.add_recipe_to_tech("yuoki_agronomie", "ye_granulate_vuger_recipe") - zgc.add_recipe_to_tech("yuoki_agronomie", "ye_granulate_corn_recipe") - zgc.add_recipe_to_tech("yuoki_agronomie", "ye_biofuel_recipe") - zgc.add_recipe_to_tech("yuoki_agronomie", "ye_slurry2ethanol_recipe") - end - end -end +local allow_changes = z_balance.youki_eng + +local eg = {} +local ag = {} + +if i_exist("ye_overheater") then + zgc.add_main_group("engines") + zgc.add_main_group("agronomies") + + for i=0,9 do zgc.get_group_name("z-engines-"..i,"") end + for i=0,9 do zgc.get_group_name("z-agronomies-"..i,"") end + + for _,recipe in pairs(data.raw.recipe) do + + if recipe.subgroup == "yie-engines" then --Engines + recipe.group = "zgc-engines" + recipe.subgroup = "zgc-engines-0" + table.insert(eg,recipe.name) + end + if recipe.subgroup == "yie_machinery" then --machinery + recipe.group = "zgc-engines" + recipe.subgroup = "zgc-engines-1" + table.insert(eg,recipe.name) + end + if recipe.subgroup == "yie_machinery2" then --machinery2 + recipe.group = "zgc-engines" + recipe.subgroup = "zgc-engines-2" + table.insert(eg,recipe.name) + end + if recipe.subgroup == "yie-fluids" then --all fluids (MF) + recipe.group = "zgc-engines" + recipe.subgroup = "zgc-engines-3" + table.insert(eg,recipe.name) + end + if recipe.subgroup == "yie-parts" then --building parts + recipe.group = "zgc-engines" + recipe.subgroup = "zgc-engines-4" + table.insert(eg,recipe.name) + end + if recipe.subgroup == "yie-processed" then --products + recipe.group = "zgc-engines" + recipe.subgroup = "zgc-engines-5" + table.insert(eg,recipe.name) + end + if recipe.subgroup == "yie-exp" then --temporary experimental stuff + recipe.group = "zgc-engines" + recipe.subgroup = "zgc-engines-5" + table.insert(eg,recipe.name) + end + if string.find(recipe.name,"empty") + and recipe.subgroup == "yie_fluid_handle" then --fluid handling + recipe.group = "zgc-engines" + recipe.subgroup = "zgc-engines-7" + table.insert(eg,recipe.name) + elseif recipe.subgroup == "yie_fluid_handle" then + recipe.group = "zgc-engines" + recipe.subgroup = "zgc-engines-6" + table.insert(eg,recipe.name) + end + + if recipe.subgroup == "yie_agromachinery" then --agriculture machinery + recipe.group = "zgc-agronomies" + recipe.subgroup = "zgc-agronomies-0" + table.insert(ag,recipe.name) + end + if recipe.subgroup == "yie_agroproducts" then --agriculture products + recipe.group = "zgc-agronomies" + recipe.subgroup = "zgc-agronomies-1" + table.insert(ag,recipe.name) + end + if recipe.subgroup == "yie_farming" then --farming stuff + recipe.group = "zgc-agronomies" + recipe.subgroup = "zgc-agronomies-2" + table.insert(ag,recipe.name) + end + if recipe.subgroup == "yie_agro_package" then --agriculture packages + recipe.group = "zgc-agronomies" + recipe.subgroup = "zgc-agronomies-3" + table.insert(ag,recipe.name) + end + if recipe.subgroup == "yie_trades" then --trade stuff + recipe.group = "zgc-agronomies" + recipe.subgroup = "zgc-agronomies-3" + table.insert(ag,recipe.name) + end + if recipe.subgroup == "yie_animals" then --ranch stuff + recipe.group = "zgc-agronomies" + recipe.subgroup = "zgc-agronomies-4" + table.insert(ag,recipe.name) + end + if recipe.subgroup == "yie_fish" then --fish-stuff + recipe.group = "zgc-agronomies" + recipe.subgroup = "zgc-agronomies-4" + table.insert(ag,recipe.name) + end + if recipe.subgroup == "yie_dnaline" then --DNA-Line + recipe.group = "zgc-agronomies" + recipe.subgroup = "zgc-agronomies-5" + table.insert(ag,recipe.name) + end + + end + + for _,item in pairs(data.raw.item) do + + if item.subgroup == "yie-engines" then item.group = "zgc-engines"; item.subgroup = "zgc-engines-0" end --Engines + if item.subgroup == "yie-exp" then item.group = "zgc-engines"; item.subgroup = "zgc-engines-1" end --temporary experimental stuff + if item.subgroup == "yie-fluids" then item.group = "zgc-engines"; item.subgroup = "zgc-engines-2" end --all fluids (MF) + if item.subgroup == "yie-parts" then item.group = "zgc-engines"; item.subgroup = "zgc-engines-3" end --building parts + if item.subgroup == "yie-processed" then item.group = "zgc-engines"; item.subgroup = "zgc-engines-4" end --products + if item.subgroup == "yie_machinery" then item.group = "zgc-engines"; item.subgroup = "zgc-engines-5" end --machinery + if item.subgroup == "yie_machinery2" then item.group = "zgc-engines"; item.subgroup = "zgc-engines-6" end --machinery2 + if item.subgroup == "yie_fluid_handle" then item.group = "zgc-engines"; item.subgroup = "zgc-engines-7" end --fluid handling + if item.subgroup == "yie_agromachinery" then item.group = "zgc-agronomies"; item.subgroup = "zgc-agronomies-0" end --agriculture machinery + if item.subgroup == "yie_agroproducts" then item.group = "zgc-agronomies"; item.subgroup = "zgc-agronomies-1" end --agriculture products + if item.subgroup == "yie_agro_package" then item.group = "zgc-agronomies"; item.subgroup = "zgc-agronomies-2" end --agriculture packages + if item.subgroup == "yie_animals" then item.group = "zgc-agronomies"; item.subgroup = "zgc-agronomies-3" end --ranch stuff + if item.subgroup == "yie_dnaline" then item.group = "zgc-agronomies"; item.subgroup = "zgc-agronomies-4" end --DNA-Line + if item.subgroup == "yie_farming" then item.group = "zgc-agronomies"; item.subgroup = "zgc-agronomies-5" end --farming stuff + if item.subgroup == "yie_fish" then item.group = "zgc-agronomies"; item.subgroup = "zgc-agronomies-6" end --fish-stuff + if item.subgroup == "yie_trades" then item.group = "zgc-agronomies"; item.subgroup = "zgc-agronomies-7" end --trade stuff + + end +end + +do --[[engines]]-- + aadd("z-engines-2", "ye_canmachine", "z") -- + + aadd("z-engines-5", "ye_canister", "z") -- + aadd("z-engines-5", "ye_canister2plates_smelt", "z") -- + +end +do --[[agronomies]]-- + aadd("z-agronomies-2", "y_unlimited_wood", "z") -- + aadd("z-agronomies-2", "ye_granulate_trifitan_recipe", "z") -- + aadd("z-agronomies-2", "ye_granulate_vuger_recipe", "z") -- + aadd("z-agronomies-2", "ye_granulate_corn_recipe", "z") -- + aadd("z-agronomies-2", "ye_biofuel_recipe", "z") -- + aadd("z-agronomies-2", "ye_slurry2ethanol_recipe", "z") -- + +end + +do --[[TECH]]-- + if z_balance.youki_tech and i_exist("ye_overheater") then + + data:extend({ + { + type = "technology", + name = "yuoki_engines", + icon = "__ZGroupChange__/graphics/icons/tech/yuoki_engines.png", + prerequisites = {"yuoki_technology"}, + effects = {}, + unit = { + count = 25, + time = 30, + ingredients = { + {"science-pack-1",2}, + {"science-pack-2",1} + } + }, + order = "y-1[g]" + }, + { + type = "technology", + name = "yuoki_engines-2", + icon = "__ZGroupChange__/graphics/icons/tech/yuoki_engines.png", + prerequisites = {"yuoki_engines"}, + effects = {}, + unit = { + count = 25, + time = 45, + ingredients = { + {"science-pack-1",3}, + {"science-pack-2",2}, + {"science-pack-3",1} + } + }, + enabled = false, + order = "y-2[g]" + }, + { + type = "technology", + name = "yuoki_engines-3", + icon = "__ZGroupChange__/graphics/icons/tech/yuoki_engines.png", + prerequisites = {"yuoki_engines-2"}, + effects = {}, + unit = { + count = 50, + time = 60, + ingredients = { + {"science-pack-1",3}, + {"science-pack-2",2}, + {"science-pack-3",1} + } + }, + enabled = false, + order = "y-3[g]" + } + }) + data:extend({ + { + type = "technology", + name = "yuoki_agronomie", + icon = "__ZGroupChange__/graphics/icons/tech/yuoki_agronomie.png", + prerequisites = {"yuoki_technology"}, + effects = {}, + unit = { + count = 25, + time = 30, + ingredients = { + {"science-pack-1",2}, + {"science-pack-2",1} + } + }, + order = "y-1[h]" + }, + { + type = "technology", + name = "yuoki_agronomie-2", + icon = "__ZGroupChange__/graphics/icons/tech/yuoki_agronomie.png", + prerequisites = {"yuoki_agronomie"}, + effects = {}, + unit = { + count = 25, + time = 45, + ingredients = { + {"science-pack-1",3}, + {"science-pack-2",2}, + {"science-pack-3",1} + } + }, + enabled = false, + order = "y-2[h]" + }, + { + type = "technology", + name = "yuoki_agronomie-3", + icon = "__ZGroupChange__/graphics/icons/tech/yuoki_agronomie.png", + prerequisites = {"yuoki_agronomie-2"}, + effects = {}, + unit = { + count = 50, + time = 60, + ingredients = { + {"science-pack-1",3}, + {"science-pack-2",2}, + {"science-pack-3",1} + } + }, + enabled = false, + order = "y-3[h]" + } + }) + + -- yuoki_engines-3 + -- yuoki_agronomie-3 + + for _,r in pairs(eg) do + zgc.add_recipe_to_tech("yuoki_engines",r) + end + for _,r in pairs(ag) do + zgc.add_recipe_to_tech("yuoki_agronomie",r) + end + + do --# engines + zgc.add_recipe_to_tech("yuoki_engines", "ye_canmachine_recipe") + zgc.add_recipe_to_tech("yuoki_engines", "ye_canister2plates_smelt") + end + do --# agronomies + zgc.add_recipe_to_tech("yuoki_agronomie", "y_unlimited_wood") + zgc.add_recipe_to_tech("yuoki_agronomie", "ye_granulate_trifitan_recipe") + zgc.add_recipe_to_tech("yuoki_agronomie", "ye_granulate_vuger_recipe") + zgc.add_recipe_to_tech("yuoki_agronomie", "ye_granulate_corn_recipe") + zgc.add_recipe_to_tech("yuoki_agronomie", "ye_biofuel_recipe") + zgc.add_recipe_to_tech("yuoki_agronomie", "ye_slurry2ethanol_recipe") + end + end +end diff --git a/ZGroupChange_1.2.4/mods/yuoki_railway.lua b/ZGroupChange_1.2.5/mods/yuoki_railway.lua similarity index 97% rename from ZGroupChange_1.2.4/mods/yuoki_railway.lua rename to ZGroupChange_1.2.5/mods/yuoki_railway.lua index 776fb0e..821cb5f 100644 --- a/ZGroupChange_1.2.4/mods/yuoki_railway.lua +++ b/ZGroupChange_1.2.5/mods/yuoki_railway.lua @@ -1,354 +1,354 @@ -local allow_changes = z_balance.youki_rail - -do --[[transport]]-- - aadd("z-transport-6", "y_loco_access-pipe-in", "e") - aadd("z-transport-6", "y_loco_access-pipe-out", "f") -end -do --[[energy]]-- - aadd("z-energy-0", "yir_fuel_energy", "g") - - ahide("yir_fuel_coks") - ahide("yir_fuel_diesel") -end -do --[[trains-vehicles]]-- - - aadd("z-trains-0", "yir_factory_loco", "a") - aadd("z-trains-0", "yir_factory_wagon", "b") -- production - aadd("z-trains-0", "yir_factory_material", "c") - aadd("z-trains-0", "yir_factory_tiles", "d") - aadd("z-trains-0", "yir_factory_stuff", "e") - aadd("z-trains-0", "yir_coin", "f") - aadd("z-trains-0", "yir_coins_gen1", "g") - - aadd("z-trains-1", "yir_frame_loco_steam", "a") - aadd("z-trains-1", "yir_frame_loco_diesel", "b") -- parts - aadd("z-trains-1", "yir_frame_loco_future", "c") - aadd("z-trains-1", "yir_frame_waggon", "d") - aadd("z-trains-1", "yir_radsatz_locos", "e") - aadd("z-trains-1", "yir_radsatz_waggon", "f") - - aadd("z-trains-2", "yir_color_white", "a") - aadd("z-trains-2", "yir_color_black", "b") -- colors - aadd("z-trains-2", "yir_color_red", "c") - aadd("z-trains-2", "yir_color_green", "d") - aadd("z-trains-2", "yir_color_blue", "e") - - aadd("z-trains-4", "armoured-diesel-locomotive", "a") - aadd("z-trains-4", "diesel-locomotive", "b") -- vanila loco - aadd("z-trains-4", "diesel-locomotive-2", "c") - aadd("z-trains-4", "diesel-locomotive-3", "d") - aadd("z-trains-4", "farl", "e") - - aadd("z-trains-5", "armoured-cargo-wagon", "a") - aadd("z-trains-5", "cargo-wagon", "b") -- vanila wagon - aadd("z-trains-5", "cargo-wagon-2", "c") - aadd("z-trains-5", "cargo-wagon-3", "d") - aadd("z-trains-5", "rail-tanker", "e") - - aadd("z-trains-6", "y_loco_ses_std", "a") - aadd("z-trains-6", "y_loco_ses_red", "b") -- loco 1 - aadd("z-trains-6", "yir_loco_sel_blue", "c") - aadd("z-trains-6", "y_loco_fs_steam_green", "d") - aadd("z-trains-6", "y_wagon_tender_black", "e") - aadd("z-trains-6", "y_wagon_tender_green", "f") - aadd("z-trains-6", "yir_loco_del_mk1400", "g") - aadd("z-trains-6", "y_loco_emd3000_white", "h") - aadd("z-trains-6", "yir_loco_del_bluegray", "i") - aadd("z-trains-6", "yir_loco_de_bluegray_recipe", "i") - - aadd("z-trains-7", "y_loco_emd1500black", "a") - aadd("z-trains-7", "y_loco_emd1500black_v2", "b") -- loco 2 Amer - aadd("z-trains-7", "y_loco_emd1500blue", "c") - aadd("z-trains-7", "y_loco_emd1500blue_v2", "d") - aadd("z-trains-7", "yir_loco_fesw_op", "e") - aadd("z-trains-7", "y_loco_desw", "f") - aadd("z-trains-7", "y_loco_desw_orange", "g") - aadd("z-trains-7", "y_loco_desw_blue", "h") - aadd("z-trains-7", "yir_es44cr", "i") - - aadd("z-trains-8", "y_3acw_T10K", "a") - aadd("z-trains-8", "yir_mre044", "b") -- loco 3 UP&Industries&Amer - aadd("z-trains-8", "yir_lsw_840green", "c") - aadd("z-trains-8", "yir_lsw_r790orange", "d") - aadd("z-trains-8", "yir_lsw_r790red", "e") - aadd("z-trains-8", "yir_emdf7a_cr", "f") - aadd("z-trains-9", "yir_emdf7a_mn", "g") - aadd("z-trains-8", "yir_atom_header", "h") - aadd("z-trains-8", "yir_atom_mitte", "i") - - aadd("z-trains-9", "yir_2acw_wood", "a") - aadd("z-trains-9", "y_wagon_coal", "b")-- wagon 1 Amer - aadd("z-trains-9", "y_wagon_stone", "c") - aadd("z-trains-9", "y_wagon_copper", "d") - aadd("z-trains-9", "y_wagon_iron", "e") - aadd("z-trains-8", "yir_emdf7b_cr", "g") - aadd("z-trains-9", "yir_emdf7b_mn", "h") - - aadd("z-trains-10", "yir_cw_cargo_blue", "a") - aadd("z-trains-10", "yir_cw_cargo_green", "b") -- wagon 5 UP&Amer - aadd("z-trains-10", "z_yira_4a_cw_steel", "c") - aadd("z-trains-10", "z_yira_6a_maai1", "d") - aadd("z-trains-10", "yir_wagon_caboose_cr_crrecipe","e") - aadd("z-trains-10", "yir_wagon_caboose_cr", "e") - aadd("z-trains-10", "yir_4a_container_crrecipe", "f") - aadd("z-trains-10", "yir_4a_container_cr", "f") - aadd("z-trains-10", "yir_4a_clean_cr", "g") - - aadd("z-trains-11", "y_wagon_closed", "a") - aadd("z-trains-11", "yir_wagon2a_closed_recipe", "a") - aadd("z-trains-11", "y_wagon_trans", "b") -- wagon 2 - aadd("z-trains-11", "yir_2acw_3blocks", "c") - aadd("z-trains-11", "y_wagon_corn_green", "d") - aadd("z-trains-11", "y_wagon_corn_blue", "e") - aadd("z-trains-11", "y_wagon_hopper_yellow", "f") - - aadd("z-trains-12", "yir_4acw_grey", "a") - aadd("z-trains-12", "yir_4acw_oceanblue", "b") -- wagon 3 - aadd("z-trains-12", "yir_4acw_purple", "c") - aadd("z-trains-12", "y_wagon_zement_gray", "d") - aadd("z-trains-12", "y_wagon_zement_white", "e") - - aadd("z-trains-13", "y_wagon_tank_fm1", "a") - aadd("z-trains-13", "y_wagon_tank_fm2", "b") -- wagon 4 - aadd("z-trains-13", "y_wagon_tank_blue", "c") - aadd("z-trains-13", "yir_wagon2a_tank_blue_recipe", "c") - aadd("z-trains-13", "y_wagon_tank_orange", "d") - aadd("z-trains-13", "yir_wagon2a_tank_orange_recipe","d") - - aadd("z-trains-14", "yir_cw_flourit", "a") - aadd("z-trains-14", "yir_cw_uranite", "b") -- wagon 6 Industries - aadd("z-trains-14", "yir_cw_upempty", "c") - aadd("z-trains-14", "yir_cw_upclosed", "d") - - aadd("z-trains-3", "rail", "a") - aadd("z-trains-3", "straight-rail", "c") - aadd("z-trains-3", "curved-rail", "d") -- signaml - aadd("z-trains-3", "train-stop", "e") - aadd("z-trains-3", "rail-signal", "f") - aadd("z-trains-3", "rail-chain-signal", "g") -end -do --[[decorative]]-- - aadd("z-decorative-5", "y_path_slag", "a") - aadd("z-decorative-5", "yir_copper_tile", "b") - aadd("z-decorative-5", "yir_iron_tile", "c") - aadd("z-decorative-5", "y_path_labor", "d") - aadd("z-decorative-5", "y_path_checker", "e") - aadd("z-decorative-5", "yir_stony_tile", "f") - aadd("z-decorative-5", "yir_grating_tile", "g") - aadd("z-decorative-5", "y_path_science", "h") - aadd("z-decorative-5", "y_tgb", "i") - aadd("z-decorative-5", "y_tring", "j") - - aadd("z-decorative-6", "yir_wood1_tile", "a") - aadd("z-decorative-6", "yir_wood2_tile", "b") - aadd("z-decorative-6", "yir_wood3_tile", "c") - aadd("z-decorative-6", "yir_ground1_tile", "d") - aadd("z-decorative-6", "yir_plates2_tile", "f") - aadd("z-decorative-6", "yir_muster1_tile", "g") - aadd("z-decorative-6", "yir_brick2_tile", "i") - aadd("z-decorative-6", "yir_brick1_tile", "j") - - aadd("z-decorative-7", "yir_metal1_tile", "a") - aadd("z-decorative-7", "yir_metal2_tile", "b") - aadd("z-decorative-7", "yir_metal3_tile", "c") - aadd("z-decorative-7", "yir_metal4_tile", "d") - aadd("z-decorative-7", "yir_metal5_tile", "e") - aadd("z-decorative-7", "yir_tile3_tile", "f") - aadd("z-decorative-7", "yir_tile2_tile", "g") - aadd("z-decorative-7", "yir_tile1_tile", "h") - aadd("z-decorative-7", "yir_blue_tile", "i") - - ahide("y_tile_slagfilled") - ahide("yir_wood4_tile") - - zgc.t_remove_recipe_unlock("yuoki_industries", "y_tile_slagfilled_recipe") - zgc.t_remove_recipe_unlock("yuoki_industries-2", "y_tile_slagpattern_recipe") - zgc.t_remove_recipe_unlock("yuoki_industries-3", "y_tile_slagbricks_recipe") - - if i_exist("yir_blue_tile") and data.raw.recipe["y_tile_slagpattern_recipe"] and data.raw.recipe["y_tile_slagbricks_recipe"]then - data.raw.recipe["y_tile_slagpattern_recipe"].category= "yir_rc_tiles" - data.raw.recipe["y_tile_slagbricks_recipe"].category = "yir_rc_tiles" - end -end -do --[[TECH]]-- - if z_balance.youki_tech and i_exist("yir_factory_loco") then - - data:extend({ - { - type = "technology", - name = "yuoki_railway", - icon = "__ZGroupChange__/graphics/icons/tech/yuoki_railway.png", - prerequisites = {"yuoki_technology"}, - effects = {}, - unit = { - count = 25, - time = 30, - ingredients = { - {"science-pack-1",2}, - {"science-pack-2",1} - } - }, - order = "y-1[f]" - }, - { - type = "technology", - name = "yuoki_railway-2", - icon = "__ZGroupChange__/graphics/icons/tech/yuoki_railway.png", - prerequisites = {"yuoki_railway","yuoki_industries"}, - effects = {}, - unit = { - count = 25, - time = 45, - ingredients = { - {"science-pack-1",3}, - {"science-pack-2",2}, - {"science-pack-3",1} - } - }, - enabled = false, - order = "y-2[f]" - }, - { - type = "technology", - name = "yuoki_railway-3", - icon = "__ZGroupChange__/graphics/icons/tech/yuoki_railway.png", - prerequisites = {"yuoki_railway-2","yuoki_industries-2"}, - effects = {}, - unit = { - count = 50, - time = 60, - ingredients = { - {"science-pack-1",3}, - {"science-pack-2",2}, - {"science-pack-3",1} - } - }, - enabled = false, - order = "y-3[f]" - } - }) - - -- yuoki_railway-3 - - do --# transport - zgc.add_recipe_to_tech("yuoki_railway-2", "y_loco_access-pipe-in") - zgc.add_recipe_to_tech("yuoki_railway-2", "y_loco_access-pipe-out") - end - do --# energy - zgc.add_recipe_to_tech("yuoki_railway-3", "yir_fuel_energy_recipe") - end - do --# trains-vehicles - zgc.add_recipe_to_tech("yuoki_railway", "yir_factory_loco_recipe") - zgc.add_recipe_to_tech("yuoki_railway", "yir_factory_material_recipe") - zgc.add_recipe_to_tech("yuoki_railway", "yir_factory_tiles_recipe") - zgc.add_recipe_to_tech("yuoki_railway", "yir_factory_stuff_recipe") - zgc.add_recipe_to_tech("yuoki_railway", "yir_coins_gen1_recipe") - zgc.add_recipe_to_tech("yuoki_railway", "yir_frame_loco_steam_recipe") - zgc.add_recipe_to_tech("yuoki_railway", "yir_frame_waggon_recipe") - zgc.add_recipe_to_tech("yuoki_railway", "yir_radsatz_locos_recipe") - zgc.add_recipe_to_tech("yuoki_railway", "yir_color_white_recipe") - zgc.add_recipe_to_tech("yuoki_railway", "yir_color_black_recipe") - zgc.add_recipe_to_tech("yuoki_railway", "yir_color_red_recipe") - zgc.add_recipe_to_tech("yuoki_railway", "yir_color_green_recipe") - zgc.add_recipe_to_tech("yuoki_railway", "yir_color_blue_recipe") - zgc.add_recipe_to_tech("yuoki_railway", "y_loco_ses_std_recipe") - zgc.add_recipe_to_tech("yuoki_railway", "y_loco_ses_red_recipe") - zgc.add_recipe_to_tech("yuoki_railway", "yir_loco_sel_blue_recipe") - zgc.add_recipe_to_tech("yuoki_railway", "y_loco_fs_steam_green_recipe") - zgc.add_recipe_to_tech("yuoki_railway", "y_3acw_T10K_recipe") - zgc.add_recipe_to_tech("yuoki_railway", "yir_mre044_recipe") - zgc.add_recipe_to_tech("yuoki_railway", "yir_cw_cargo_blue_recipe") - zgc.add_recipe_to_tech("yuoki_railway", "yir_cw_cargo_green_recipe") - zgc.add_recipe_to_tech("yuoki_railway", "z_yira_4a_cw_steel_recipe") - zgc.add_recipe_to_tech("yuoki_railway", "z_yira_6a_maai1_recipe") - zgc.add_recipe_to_tech("yuoki_railway", "yir_cw_flourit_recipe") - zgc.add_recipe_to_tech("yuoki_railway", "yir_cw_uranite_recipe") - zgc.add_recipe_to_tech("yuoki_railway", "z_yira_4a_cw_steel_recipe") - zgc.add_recipe_to_tech("yuoki_railway", "z_yira_6a_maai1_recipe") - - zgc.add_recipe_to_tech("yuoki_railway-2", "yir_frame_loco_diesel_recipe") - zgc.add_recipe_to_tech("yuoki_railway-2", "yir_radsatz_waggon_recipe") - zgc.add_recipe_to_tech("yuoki_railway-2", "y_loco_ses_red_recipe") - zgc.add_recipe_to_tech("yuoki_railway-2", "y_wagon_tender_black_recipe") - zgc.add_recipe_to_tech("yuoki_railway-2", "y_wagon_tender_green_recipe") - zgc.add_recipe_to_tech("yuoki_railway-2", "y_loco_emd1500black_recipe") - zgc.add_recipe_to_tech("yuoki_railway-2", "y_loco_emd1500blue_recipe") - zgc.add_recipe_to_tech("yuoki_railway-2", "y_loco_desw_recipe") - zgc.add_recipe_to_tech("yuoki_railway-2", "y_loco_desw_orange_recipe") - zgc.add_recipe_to_tech("yuoki_railway-2", "y_loco_desw_blue_recipe") - zgc.add_recipe_to_tech("yuoki_railway-2", "yir_factory_wagon_recipe") - zgc.add_recipe_to_tech("yuoki_railway-2", "yir_2acw_wood_recipe") - zgc.add_recipe_to_tech("yuoki_railway-2", "y_wagon_coal_recipe") - zgc.add_recipe_to_tech("yuoki_railway-2", "y_wagon_stone_recipe") - zgc.add_recipe_to_tech("yuoki_railway-2", "y_wagon_copper_recipe") - zgc.add_recipe_to_tech("yuoki_railway-2", "y_wagon_iron_recipe") - zgc.add_recipe_to_tech("yuoki_railway-2", "yir_wagon2a_closed_recipe") - zgc.add_recipe_to_tech("yuoki_railway-2", "y_wagon_trans_recipe") - zgc.add_recipe_to_tech("yuoki_railway-2", "y_wagon_tank_fm1_recipe") - zgc.add_recipe_to_tech("yuoki_railway-2", "y_wagon_tank_fm2_recipe") - zgc.add_recipe_to_tech("yuoki_railway-2", "yir_atom_header_recipe") - zgc.add_recipe_to_tech("yuoki_railway-2", "yir_atom_mitte_recipe") - zgc.add_recipe_to_tech("yuoki_railway-2", "yir_lsw_840green_recipe") - zgc.add_recipe_to_tech("yuoki_railway-2", "yir_lsw_r790orange_recipe") - zgc.add_recipe_to_tech("yuoki_railway-2", "yir_lsw_r790red_recipe") - zgc.add_recipe_to_tech("yuoki_railway-2", "yir_cw_upempty_recipe") - zgc.add_recipe_to_tech("yuoki_railway-2", "yir_cw_upclosed_recipe") - zgc.add_recipe_to_tech("yuoki_railway-2", "yir_es44cr_recipe") - zgc.add_recipe_to_tech("yuoki_railway-2", "yir_emdf7a_cr_recipe") - zgc.add_recipe_to_tech("yuoki_railway-2", "yir_emdf7a_mn_recipe") - zgc.add_recipe_to_tech("yuoki_railway-2", "yir_emdf7b_cr_recipe") - zgc.add_recipe_to_tech("yuoki_railway-2", "yir_emdf7b_mn_recipe") - zgc.add_recipe_to_tech("yuoki_railway-2", "yir_wagon_caboose_cr_crrecipe") - zgc.add_recipe_to_tech("yuoki_railway-2", "yir_4a_container_crrecipe") - zgc.add_recipe_to_tech("yuoki_railway-2", "yir_4a_clean_cr_recipe") - - zgc.add_recipe_to_tech("yuoki_railway-3", "yir_frame_loco_future_recipe") - zgc.add_recipe_to_tech("yuoki_railway-3", "yir_loco_fesw_op_recipe") - zgc.add_recipe_to_tech("yuoki_railway-3", "y_loco_emd1500black_v2_recipe") - zgc.add_recipe_to_tech("yuoki_railway-3", "y_loco_emd1500blue_v2") - zgc.add_recipe_to_tech("yuoki_railway-3", "yir_loco_del_mk1400") - zgc.add_recipe_to_tech("yuoki_railway-3", "y_loco_emd3000_white_recipe") - zgc.add_recipe_to_tech("yuoki_railway-3", "yir_loco_de_bluegray_recipe") - zgc.add_recipe_to_tech("yuoki_railway-3", "yir_2acw_3blocks_recipe") - zgc.add_recipe_to_tech("yuoki_railway-3", "y_wagon_corn_green_recipe") - zgc.add_recipe_to_tech("yuoki_railway-3", "y_wagon_corn_blue_recipe") - zgc.add_recipe_to_tech("yuoki_railway-3", "y_wagon_hopper_yellow_recipe") - zgc.add_recipe_to_tech("yuoki_railway-3", "yir_4acw_grey_recipe") - zgc.add_recipe_to_tech("yuoki_railway-3", "yir_4acw_oceanblue_recipe") - zgc.add_recipe_to_tech("yuoki_railway-3", "yir_4acw_purple_recipe") - zgc.add_recipe_to_tech("yuoki_railway-3", "y_wagon_zement_gray_recipe") - zgc.add_recipe_to_tech("yuoki_railway-3", "y_wagon_zement_white_recipe") - zgc.add_recipe_to_tech("yuoki_railway-3", "yir_wagon2a_tank_blue_recipe") - zgc.add_recipe_to_tech("yuoki_railway-3", "yir_wagon2a_tank_orange_recipe") - end - do --# decorative - zgc.add_recipe_to_tech("yuoki_railway", "y_path_slag_recipe") - zgc.add_recipe_to_tech("yuoki_railway", "y_path_labor_recipe") - zgc.add_recipe_to_tech("yuoki_railway", "y_path_checker_recipe") - zgc.add_recipe_to_tech("yuoki_railway", "yir_stony_tile_recipe") - zgc.add_recipe_to_tech("yuoki_railway", "yir_grating_tile_recipe") - zgc.add_recipe_to_tech("yuoki_railway", "y_path_science_recipe") - zgc.add_recipe_to_tech("yuoki_railway", "y_tgb_recipe") - zgc.add_recipe_to_tech("yuoki_railway", "y_tring_recipe") - - zgc.add_recipe_to_tech("yuoki_railway-2", "yir_wood1_tile_recipe") - zgc.add_recipe_to_tech("yuoki_railway-2", "yir_wood3_tile_recipe") - zgc.add_recipe_to_tech("yuoki_railway-2", "yir_ground1_tile_recipe") - zgc.add_recipe_to_tech("yuoki_railway-2", "yir_plates2_tile_recipe") - zgc.add_recipe_to_tech("yuoki_railway-2", "y_tile_slagpattern_recipe") - zgc.add_recipe_to_tech("yuoki_railway-2", "yir_muster1_tile_recipe") - zgc.add_recipe_to_tech("yuoki_railway-2", "y_tile_slagbricks_recipe") - zgc.add_recipe_to_tech("yuoki_railway-2", "yir_brick2_tile_recipe") - zgc.add_recipe_to_tech("yuoki_railway-2", "yir_brick1_tile_recipe") - - zgc.add_recipe_to_tech("yuoki_railway-3", "yir_metal1_tile_recipe") - zgc.add_recipe_to_tech("yuoki_railway-3", "yir_metal3_tile_recipe") - zgc.add_recipe_to_tech("yuoki_railway-3", "yir_metal4_tile_recipe") - zgc.add_recipe_to_tech("yuoki_railway-3", "yir_metal5_tile_recipe") - zgc.add_recipe_to_tech("yuoki_railway-3", "yir_tile3_tile_recipe") - zgc.add_recipe_to_tech("yuoki_railway-3", "yir_tile2_tile_recipe") - zgc.add_recipe_to_tech("yuoki_railway-3", "yir_tile1_tile_recipe") - zgc.add_recipe_to_tech("yuoki_railway-3", "yir_blue_tile_recipe") - end - end -end +local allow_changes = z_balance.youki_rail + +do --[[transport]]-- + aadd("z-transport-6", "y_loco_access-pipe-in", "e") + aadd("z-transport-6", "y_loco_access-pipe-out", "f") +end +do --[[energy]]-- + aadd("z-energy-0", "yir_fuel_energy", "g") + + ahide("yir_fuel_coks") + ahide("yir_fuel_diesel") +end +do --[[trains-vehicles]]-- + + aadd("z-trains-0", "yir_factory_loco", "a") + aadd("z-trains-0", "yir_factory_wagon", "b") -- production + aadd("z-trains-0", "yir_factory_material", "c") + aadd("z-trains-0", "yir_factory_tiles", "d") + aadd("z-trains-0", "yir_factory_stuff", "e") + aadd("z-trains-0", "yir_coin", "f") + aadd("z-trains-0", "yir_coins_gen1", "g") + + aadd("z-trains-1", "yir_frame_loco_steam", "a") + aadd("z-trains-1", "yir_frame_loco_diesel", "b") -- parts + aadd("z-trains-1", "yir_frame_loco_future", "c") + aadd("z-trains-1", "yir_frame_waggon", "d") + aadd("z-trains-1", "yir_radsatz_locos", "e") + aadd("z-trains-1", "yir_radsatz_waggon", "f") + + aadd("z-trains-2", "yir_color_white", "a") + aadd("z-trains-2", "yir_color_black", "b") -- colors + aadd("z-trains-2", "yir_color_red", "c") + aadd("z-trains-2", "yir_color_green", "d") + aadd("z-trains-2", "yir_color_blue", "e") + + aadd("z-trains-4", "armoured-diesel-locomotive", "a") + aadd("z-trains-4", "diesel-locomotive", "b") -- vanila loco + aadd("z-trains-4", "diesel-locomotive-2", "c") + aadd("z-trains-4", "diesel-locomotive-3", "d") + aadd("z-trains-4", "farl", "e") + + aadd("z-trains-5", "armoured-cargo-wagon", "a") + aadd("z-trains-5", "cargo-wagon", "b") -- vanila wagon + aadd("z-trains-5", "cargo-wagon-2", "c") + aadd("z-trains-5", "cargo-wagon-3", "d") + aadd("z-trains-5", "rail-tanker", "e") + + aadd("z-trains-6", "y_loco_ses_std", "a") + aadd("z-trains-6", "y_loco_ses_red", "b") -- loco 1 + aadd("z-trains-6", "yir_loco_sel_blue", "c") + aadd("z-trains-6", "y_loco_fs_steam_green", "d") + aadd("z-trains-6", "y_wagon_tender_black", "e") + aadd("z-trains-6", "y_wagon_tender_green", "f") + aadd("z-trains-6", "yir_loco_del_mk1400", "g") + aadd("z-trains-6", "y_loco_emd3000_white", "h") + aadd("z-trains-6", "yir_loco_del_bluegray", "i") + aadd("z-trains-6", "yir_loco_de_bluegray_recipe", "i") + + aadd("z-trains-7", "y_loco_emd1500black", "a") + aadd("z-trains-7", "y_loco_emd1500black_v2", "b") -- loco 2 Amer + aadd("z-trains-7", "y_loco_emd1500blue", "c") + aadd("z-trains-7", "y_loco_emd1500blue_v2", "d") + aadd("z-trains-7", "yir_loco_fesw_op", "e") + aadd("z-trains-7", "y_loco_desw", "f") + aadd("z-trains-7", "y_loco_desw_orange", "g") + aadd("z-trains-7", "y_loco_desw_blue", "h") + aadd("z-trains-7", "yir_es44cr", "i") + + aadd("z-trains-8", "y_3acw_T10K", "a") + aadd("z-trains-8", "yir_mre044", "b") -- loco 3 UP&Industries&Amer + aadd("z-trains-8", "yir_lsw_840green", "c") + aadd("z-trains-8", "yir_lsw_r790orange", "d") + aadd("z-trains-8", "yir_lsw_r790red", "e") + aadd("z-trains-8", "yir_emdf7a_cr", "f") + aadd("z-trains-9", "yir_emdf7a_mn", "g") + aadd("z-trains-8", "yir_atom_header", "h") + aadd("z-trains-8", "yir_atom_mitte", "i") + + aadd("z-trains-9", "yir_2acw_wood", "a") + aadd("z-trains-9", "y_wagon_coal", "b")-- wagon 1 Amer + aadd("z-trains-9", "y_wagon_stone", "c") + aadd("z-trains-9", "y_wagon_copper", "d") + aadd("z-trains-9", "y_wagon_iron", "e") + aadd("z-trains-8", "yir_emdf7b_cr", "g") + aadd("z-trains-9", "yir_emdf7b_mn", "h") + + aadd("z-trains-10", "yir_cw_cargo_blue", "a") + aadd("z-trains-10", "yir_cw_cargo_green", "b") -- wagon 5 UP&Amer + aadd("z-trains-10", "z_yira_4a_cw_steel", "c") + aadd("z-trains-10", "z_yira_6a_maai1", "d") + aadd("z-trains-10", "yir_wagon_caboose_cr_crrecipe","e") + aadd("z-trains-10", "yir_wagon_caboose_cr", "e") + aadd("z-trains-10", "yir_4a_container_crrecipe", "f") + aadd("z-trains-10", "yir_4a_container_cr", "f") + aadd("z-trains-10", "yir_4a_clean_cr", "g") + + aadd("z-trains-11", "y_wagon_closed", "a") + aadd("z-trains-11", "yir_wagon2a_closed_recipe", "a") + aadd("z-trains-11", "y_wagon_trans", "b") -- wagon 2 + aadd("z-trains-11", "yir_2acw_3blocks", "c") + aadd("z-trains-11", "y_wagon_corn_green", "d") + aadd("z-trains-11", "y_wagon_corn_blue", "e") + aadd("z-trains-11", "y_wagon_hopper_yellow", "f") + + aadd("z-trains-12", "yir_4acw_grey", "a") + aadd("z-trains-12", "yir_4acw_oceanblue", "b") -- wagon 3 + aadd("z-trains-12", "yir_4acw_purple", "c") + aadd("z-trains-12", "y_wagon_zement_gray", "d") + aadd("z-trains-12", "y_wagon_zement_white", "e") + + aadd("z-trains-13", "y_wagon_tank_fm1", "a") + aadd("z-trains-13", "y_wagon_tank_fm2", "b") -- wagon 4 + aadd("z-trains-13", "y_wagon_tank_blue", "c") + aadd("z-trains-13", "yir_wagon2a_tank_blue_recipe", "c") + aadd("z-trains-13", "y_wagon_tank_orange", "d") + aadd("z-trains-13", "yir_wagon2a_tank_orange_recipe","d") + + aadd("z-trains-14", "yir_cw_flourit", "a") + aadd("z-trains-14", "yir_cw_uranite", "b") -- wagon 6 Industries + aadd("z-trains-14", "yir_cw_upempty", "c") + aadd("z-trains-14", "yir_cw_upclosed", "d") + + aadd("z-trains-3", "rail", "a") + aadd("z-trains-3", "straight-rail", "c") + aadd("z-trains-3", "curved-rail", "d") -- signaml + aadd("z-trains-3", "train-stop", "e") + aadd("z-trains-3", "rail-signal", "f") + aadd("z-trains-3", "rail-chain-signal", "g") +end +do --[[decorative]]-- + aadd("z-decorative-5", "y_path_slag", "a") + aadd("z-decorative-5", "yir_copper_tile", "b") + aadd("z-decorative-5", "yir_iron_tile", "c") + aadd("z-decorative-5", "y_path_labor", "d") + aadd("z-decorative-5", "y_path_checker", "e") + aadd("z-decorative-5", "yir_stony_tile", "f") + aadd("z-decorative-5", "yir_grating_tile", "g") + aadd("z-decorative-5", "y_path_science", "h") + aadd("z-decorative-5", "y_tgb", "i") + aadd("z-decorative-5", "y_tring", "j") + + aadd("z-decorative-6", "yir_wood1_tile", "a") + aadd("z-decorative-6", "yir_wood2_tile", "b") + aadd("z-decorative-6", "yir_wood3_tile", "c") + aadd("z-decorative-6", "yir_ground1_tile", "d") + aadd("z-decorative-6", "yir_plates2_tile", "f") + aadd("z-decorative-6", "yir_muster1_tile", "g") + aadd("z-decorative-6", "yir_brick2_tile", "i") + aadd("z-decorative-6", "yir_brick1_tile", "j") + + aadd("z-decorative-7", "yir_metal1_tile", "a") + aadd("z-decorative-7", "yir_metal2_tile", "b") + aadd("z-decorative-7", "yir_metal3_tile", "c") + aadd("z-decorative-7", "yir_metal4_tile", "d") + aadd("z-decorative-7", "yir_metal5_tile", "e") + aadd("z-decorative-7", "yir_tile3_tile", "f") + aadd("z-decorative-7", "yir_tile2_tile", "g") + aadd("z-decorative-7", "yir_tile1_tile", "h") + aadd("z-decorative-7", "yir_blue_tile", "i") + + ahide("y_tile_slagfilled") + ahide("yir_wood4_tile") + + zgc.t_remove_recipe_unlock("yuoki_industries", "y_tile_slagfilled_recipe") + zgc.t_remove_recipe_unlock("yuoki_industries-2", "y_tile_slagpattern_recipe") + zgc.t_remove_recipe_unlock("yuoki_industries-3", "y_tile_slagbricks_recipe") + + if i_exist("yir_blue_tile") and data.raw.recipe["y_tile_slagpattern_recipe"] and data.raw.recipe["y_tile_slagbricks_recipe"]then + data.raw.recipe["y_tile_slagpattern_recipe"].category= "yir_rc_tiles" + data.raw.recipe["y_tile_slagbricks_recipe"].category = "yir_rc_tiles" + end +end +do --[[TECH]]-- + if z_balance.youki_tech and i_exist("yir_factory_loco") then + + data:extend({ + { + type = "technology", + name = "yuoki_railway", + icon = "__ZGroupChange__/graphics/icons/tech/yuoki_railway.png", + prerequisites = {"yuoki_technology"}, + effects = {}, + unit = { + count = 25, + time = 30, + ingredients = { + {"science-pack-1",2}, + {"science-pack-2",1} + } + }, + order = "y-1[f]" + }, + { + type = "technology", + name = "yuoki_railway-2", + icon = "__ZGroupChange__/graphics/icons/tech/yuoki_railway.png", + prerequisites = {"yuoki_railway","yuoki_industries"}, + effects = {}, + unit = { + count = 25, + time = 45, + ingredients = { + {"science-pack-1",3}, + {"science-pack-2",2}, + {"science-pack-3",1} + } + }, + enabled = false, + order = "y-2[f]" + }, + { + type = "technology", + name = "yuoki_railway-3", + icon = "__ZGroupChange__/graphics/icons/tech/yuoki_railway.png", + prerequisites = {"yuoki_railway-2","yuoki_industries-2"}, + effects = {}, + unit = { + count = 50, + time = 60, + ingredients = { + {"science-pack-1",3}, + {"science-pack-2",2}, + {"science-pack-3",1} + } + }, + enabled = false, + order = "y-3[f]" + } + }) + + -- yuoki_railway-3 + + do --# transport + zgc.add_recipe_to_tech("yuoki_railway-2", "y_loco_access-pipe-in") + zgc.add_recipe_to_tech("yuoki_railway-2", "y_loco_access-pipe-out") + end + do --# energy + zgc.add_recipe_to_tech("yuoki_railway-3", "yir_fuel_energy_recipe") + end + do --# trains-vehicles + zgc.add_recipe_to_tech("yuoki_railway", "yir_factory_loco_recipe") + zgc.add_recipe_to_tech("yuoki_railway", "yir_factory_material_recipe") + zgc.add_recipe_to_tech("yuoki_railway", "yir_factory_tiles_recipe") + zgc.add_recipe_to_tech("yuoki_railway", "yir_factory_stuff_recipe") + zgc.add_recipe_to_tech("yuoki_railway", "yir_coins_gen1_recipe") + zgc.add_recipe_to_tech("yuoki_railway", "yir_frame_loco_steam_recipe") + zgc.add_recipe_to_tech("yuoki_railway", "yir_frame_waggon_recipe") + zgc.add_recipe_to_tech("yuoki_railway", "yir_radsatz_locos_recipe") + zgc.add_recipe_to_tech("yuoki_railway", "yir_color_white_recipe") + zgc.add_recipe_to_tech("yuoki_railway", "yir_color_black_recipe") + zgc.add_recipe_to_tech("yuoki_railway", "yir_color_red_recipe") + zgc.add_recipe_to_tech("yuoki_railway", "yir_color_green_recipe") + zgc.add_recipe_to_tech("yuoki_railway", "yir_color_blue_recipe") + zgc.add_recipe_to_tech("yuoki_railway", "y_loco_ses_std_recipe") + zgc.add_recipe_to_tech("yuoki_railway", "y_loco_ses_red_recipe") + zgc.add_recipe_to_tech("yuoki_railway", "yir_loco_sel_blue_recipe") + zgc.add_recipe_to_tech("yuoki_railway", "y_loco_fs_steam_green_recipe") + zgc.add_recipe_to_tech("yuoki_railway", "y_3acw_T10K_recipe") + zgc.add_recipe_to_tech("yuoki_railway", "yir_mre044_recipe") + zgc.add_recipe_to_tech("yuoki_railway", "yir_cw_cargo_blue_recipe") + zgc.add_recipe_to_tech("yuoki_railway", "yir_cw_cargo_green_recipe") + zgc.add_recipe_to_tech("yuoki_railway", "z_yira_4a_cw_steel_recipe") + zgc.add_recipe_to_tech("yuoki_railway", "z_yira_6a_maai1_recipe") + zgc.add_recipe_to_tech("yuoki_railway", "yir_cw_flourit_recipe") + zgc.add_recipe_to_tech("yuoki_railway", "yir_cw_uranite_recipe") + zgc.add_recipe_to_tech("yuoki_railway", "z_yira_4a_cw_steel_recipe") + zgc.add_recipe_to_tech("yuoki_railway", "z_yira_6a_maai1_recipe") + + zgc.add_recipe_to_tech("yuoki_railway-2", "yir_frame_loco_diesel_recipe") + zgc.add_recipe_to_tech("yuoki_railway-2", "yir_radsatz_waggon_recipe") + zgc.add_recipe_to_tech("yuoki_railway-2", "y_loco_ses_red_recipe") + zgc.add_recipe_to_tech("yuoki_railway-2", "y_wagon_tender_black_recipe") + zgc.add_recipe_to_tech("yuoki_railway-2", "y_wagon_tender_green_recipe") + zgc.add_recipe_to_tech("yuoki_railway-2", "y_loco_emd1500black_recipe") + zgc.add_recipe_to_tech("yuoki_railway-2", "y_loco_emd1500blue_recipe") + zgc.add_recipe_to_tech("yuoki_railway-2", "y_loco_desw_recipe") + zgc.add_recipe_to_tech("yuoki_railway-2", "y_loco_desw_orange_recipe") + zgc.add_recipe_to_tech("yuoki_railway-2", "y_loco_desw_blue_recipe") + zgc.add_recipe_to_tech("yuoki_railway-2", "yir_factory_wagon_recipe") + zgc.add_recipe_to_tech("yuoki_railway-2", "yir_2acw_wood_recipe") + zgc.add_recipe_to_tech("yuoki_railway-2", "y_wagon_coal_recipe") + zgc.add_recipe_to_tech("yuoki_railway-2", "y_wagon_stone_recipe") + zgc.add_recipe_to_tech("yuoki_railway-2", "y_wagon_copper_recipe") + zgc.add_recipe_to_tech("yuoki_railway-2", "y_wagon_iron_recipe") + zgc.add_recipe_to_tech("yuoki_railway-2", "yir_wagon2a_closed_recipe") + zgc.add_recipe_to_tech("yuoki_railway-2", "y_wagon_trans_recipe") + zgc.add_recipe_to_tech("yuoki_railway-2", "y_wagon_tank_fm1_recipe") + zgc.add_recipe_to_tech("yuoki_railway-2", "y_wagon_tank_fm2_recipe") + zgc.add_recipe_to_tech("yuoki_railway-2", "yir_atom_header_recipe") + zgc.add_recipe_to_tech("yuoki_railway-2", "yir_atom_mitte_recipe") + zgc.add_recipe_to_tech("yuoki_railway-2", "yir_lsw_840green_recipe") + zgc.add_recipe_to_tech("yuoki_railway-2", "yir_lsw_r790orange_recipe") + zgc.add_recipe_to_tech("yuoki_railway-2", "yir_lsw_r790red_recipe") + zgc.add_recipe_to_tech("yuoki_railway-2", "yir_cw_upempty_recipe") + zgc.add_recipe_to_tech("yuoki_railway-2", "yir_cw_upclosed_recipe") + zgc.add_recipe_to_tech("yuoki_railway-2", "yir_es44cr_recipe") + zgc.add_recipe_to_tech("yuoki_railway-2", "yir_emdf7a_cr_recipe") + zgc.add_recipe_to_tech("yuoki_railway-2", "yir_emdf7a_mn_recipe") + zgc.add_recipe_to_tech("yuoki_railway-2", "yir_emdf7b_cr_recipe") + zgc.add_recipe_to_tech("yuoki_railway-2", "yir_emdf7b_mn_recipe") + zgc.add_recipe_to_tech("yuoki_railway-2", "yir_wagon_caboose_cr_crrecipe") + zgc.add_recipe_to_tech("yuoki_railway-2", "yir_4a_container_crrecipe") + zgc.add_recipe_to_tech("yuoki_railway-2", "yir_4a_clean_cr_recipe") + + zgc.add_recipe_to_tech("yuoki_railway-3", "yir_frame_loco_future_recipe") + zgc.add_recipe_to_tech("yuoki_railway-3", "yir_loco_fesw_op_recipe") + zgc.add_recipe_to_tech("yuoki_railway-3", "y_loco_emd1500black_v2_recipe") + zgc.add_recipe_to_tech("yuoki_railway-3", "y_loco_emd1500blue_v2") + zgc.add_recipe_to_tech("yuoki_railway-3", "yir_loco_del_mk1400") + zgc.add_recipe_to_tech("yuoki_railway-3", "y_loco_emd3000_white_recipe") + zgc.add_recipe_to_tech("yuoki_railway-3", "yir_loco_de_bluegray_recipe") + zgc.add_recipe_to_tech("yuoki_railway-3", "yir_2acw_3blocks_recipe") + zgc.add_recipe_to_tech("yuoki_railway-3", "y_wagon_corn_green_recipe") + zgc.add_recipe_to_tech("yuoki_railway-3", "y_wagon_corn_blue_recipe") + zgc.add_recipe_to_tech("yuoki_railway-3", "y_wagon_hopper_yellow_recipe") + zgc.add_recipe_to_tech("yuoki_railway-3", "yir_4acw_grey_recipe") + zgc.add_recipe_to_tech("yuoki_railway-3", "yir_4acw_oceanblue_recipe") + zgc.add_recipe_to_tech("yuoki_railway-3", "yir_4acw_purple_recipe") + zgc.add_recipe_to_tech("yuoki_railway-3", "y_wagon_zement_gray_recipe") + zgc.add_recipe_to_tech("yuoki_railway-3", "y_wagon_zement_white_recipe") + zgc.add_recipe_to_tech("yuoki_railway-3", "yir_wagon2a_tank_blue_recipe") + zgc.add_recipe_to_tech("yuoki_railway-3", "yir_wagon2a_tank_orange_recipe") + end + do --# decorative + zgc.add_recipe_to_tech("yuoki_railway", "y_path_slag_recipe") + zgc.add_recipe_to_tech("yuoki_railway", "y_path_labor_recipe") + zgc.add_recipe_to_tech("yuoki_railway", "y_path_checker_recipe") + zgc.add_recipe_to_tech("yuoki_railway", "yir_stony_tile_recipe") + zgc.add_recipe_to_tech("yuoki_railway", "yir_grating_tile_recipe") + zgc.add_recipe_to_tech("yuoki_railway", "y_path_science_recipe") + zgc.add_recipe_to_tech("yuoki_railway", "y_tgb_recipe") + zgc.add_recipe_to_tech("yuoki_railway", "y_tring_recipe") + + zgc.add_recipe_to_tech("yuoki_railway-2", "yir_wood1_tile_recipe") + zgc.add_recipe_to_tech("yuoki_railway-2", "yir_wood3_tile_recipe") + zgc.add_recipe_to_tech("yuoki_railway-2", "yir_ground1_tile_recipe") + zgc.add_recipe_to_tech("yuoki_railway-2", "yir_plates2_tile_recipe") + zgc.add_recipe_to_tech("yuoki_railway-2", "y_tile_slagpattern_recipe") + zgc.add_recipe_to_tech("yuoki_railway-2", "yir_muster1_tile_recipe") + zgc.add_recipe_to_tech("yuoki_railway-2", "y_tile_slagbricks_recipe") + zgc.add_recipe_to_tech("yuoki_railway-2", "yir_brick2_tile_recipe") + zgc.add_recipe_to_tech("yuoki_railway-2", "yir_brick1_tile_recipe") + + zgc.add_recipe_to_tech("yuoki_railway-3", "yir_metal1_tile_recipe") + zgc.add_recipe_to_tech("yuoki_railway-3", "yir_metal3_tile_recipe") + zgc.add_recipe_to_tech("yuoki_railway-3", "yir_metal4_tile_recipe") + zgc.add_recipe_to_tech("yuoki_railway-3", "yir_metal5_tile_recipe") + zgc.add_recipe_to_tech("yuoki_railway-3", "yir_tile3_tile_recipe") + zgc.add_recipe_to_tech("yuoki_railway-3", "yir_tile2_tile_recipe") + zgc.add_recipe_to_tech("yuoki_railway-3", "yir_tile1_tile_recipe") + zgc.add_recipe_to_tech("yuoki_railway-3", "yir_blue_tile_recipe") + end + end +end diff --git a/boblibrary_0.14.0/category-functions.lua b/boblibrary_0.14.1/category-functions.lua similarity index 87% rename from boblibrary_0.14.0/category-functions.lua rename to boblibrary_0.14.1/category-functions.lua index 69b3c1f..4b11838 100644 --- a/boblibrary_0.14.0/category-functions.lua +++ b/boblibrary_0.14.1/category-functions.lua @@ -1,128 +1,132 @@ -if not bobmods.lib.machine then bobmods.lib.machine = {} end - - -function bobmods.lib.machine.has_category(machine, category_in) - local hasit = false - if machine then - for i, category in pairs(machine.crafting_categories) do - if category == category_in then - hasit = true - end - end - else - log(machine .. " does not exist.") - end - return hasit -end - -function bobmods.lib.machine.add_category(machine, category) - if machine and data.raw["recipe-category"][category] then - if not bobmods.lib.machine.has_category(machine, category) then - table.insert(machine.crafting_categories, category) - end - else - if not machine then - log(machine .. " does not exist.") - end - if not data.raw["recipe-category"][category] then - log("Crafting category " .. category .. " does not exist.") - end - end -end - -function bobmods.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 bobmods.lib.machine.has_category(machine, category) then - bobmods.lib.machine.add_category(machine, category_to_add) - end - else - if not machine then - log(machine .. " does not exist.") - end - if not data.raw["recipe-category"][category] then - log("Crafting category " .. category .. " does not exist.") - end - if not data.raw["recipe-category"][category_to_add] then - log("Crafting category " .. category_to_add .. " does not exist.") - end - end -end - -function bobmods.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 - bobmods.lib.machine.if_add_category(machine, category, category_to_add) - end - else - if not data.raw["recipe-category"][category] then - log("Crafting category " .. category .. " does not exist.") - end - if not data.raw["recipe-category"][category_to_add] then - log("Crafting category " .. category_to_add .. " does not exist.") - end - end -end - - -function bobmods.lib.machine.has_resource_category(machine, category_in) - local hasit = false - if machine then - for i, category in pairs(machine.resource_categories) do - if category == category_in then - hasit = true - end - end - else - log(machine .. " does not exist.") - end - return hasit -end - -function bobmods.lib.machine.add_resource_category(machine, category) - if machine and data.raw["resource-category"][category] then - if not bobmods.lib.machine.has_resource_category(machine, category) then - table.insert(machine.resource_categories, category) - end - else - if not machine then - log(machine .. " does not exist.") - end - if not data.raw["resource-category"][category] then - log("Crafting category " .. category .. " does not exist.") - end - end -end - -function bobmods.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 bobmods.lib.machine.has_resource_category(machine, category) then - bobmods.lib.machine.add_resource_category(machine, category_to_add) - end - else - if not machine then - log(machine .. " does not exist.") - end - if not data.raw["resource-category"][category] then - log("Crafting category " .. category .. " does not exist.") - end - if not data.raw["resource-category"][category_to_add] then - log("Crafting category " .. category_to_add .. " does not exist.") - end - end -end - -function bobmods.lib.machine.type_if_add_resource_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 - bobmods.lib.machine.if_add_resource_category(machine, category, category_to_add) - end - else - if not data.raw["resource-category"][category] then - log("Crafting category " .. category .. " does not exist.") - end - if not data.raw["resource-category"][category_to_add] then - log("Crafting category " .. category_to_add .. " does not exist.") - end - end -end - +if not bobmods.lib.machine then bobmods.lib.machine = {} end + + +function bobmods.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 + else + log(machine .. " does not exist.") + end + return hasit +end + +function bobmods.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 bobmods.lib.machine.has_category(machine, category) then + table.insert(machine.crafting_categories, category) + end + else + if not machine then + log(machine .. " does not exist.") + end + if not data.raw["recipe-category"][category] then + log("Crafting category " .. category .. " does not exist.") + end + end +end + +function bobmods.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 bobmods.lib.machine.has_category(machine, category) then + bobmods.lib.machine.add_category(machine, category_to_add) + end + else + if not machine then + log(machine .. " does not exist.") + end + if not data.raw["recipe-category"][category] then + log("Crafting category " .. category .. " does not exist.") + end + if not data.raw["recipe-category"][category_to_add] then + log("Crafting category " .. category_to_add .. " does not exist.") + end + end +end + +function bobmods.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 + bobmods.lib.machine.if_add_category(machine, category, category_to_add) + end + else + if not data.raw["recipe-category"][category] then + log("Crafting category " .. category .. " does not exist.") + end + if not data.raw["recipe-category"][category_to_add] then + log("Crafting category " .. category_to_add .. " does not exist.") + end + end +end + + +function bobmods.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 + else + log(machine .. " does not exist.") + end + return hasit +end + +function bobmods.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 bobmods.lib.machine.has_resource_category(machine, category) then + table.insert(machine.resource_categories, category) + end + else + if not machine then + log(machine .. " does not exist.") + end + if not data.raw["resource-category"][category] then + log("Crafting category " .. category .. " does not exist.") + end + end +end + +function bobmods.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 bobmods.lib.machine.has_resource_category(machine, category) then + bobmods.lib.machine.add_resource_category(machine, category_to_add) + end + else + if not machine then + log(machine .. " does not exist.") + end + if not data.raw["resource-category"][category] then + log("Crafting category " .. category .. " does not exist.") + end + if not data.raw["resource-category"][category_to_add] then + log("Crafting category " .. category_to_add .. " does not exist.") + end + end +end + +function bobmods.lib.machine.type_if_add_resource_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 + bobmods.lib.machine.if_add_resource_category(machine, category, category_to_add) + end + else + if not data.raw["resource-category"][category] then + log("Crafting category " .. category .. " does not exist.") + end + if not data.raw["resource-category"][category_to_add] then + log("Crafting category " .. category_to_add .. " does not exist.") + end + end +end + diff --git a/boblibrary_0.14.0/data.lua b/boblibrary_0.14.1/data.lua similarity index 95% rename from boblibrary_0.14.0/data.lua rename to boblibrary_0.14.1/data.lua index a55953f..da2a4c6 100644 --- a/boblibrary_0.14.0/data.lua +++ b/boblibrary_0.14.1/data.lua @@ -1,13 +1,13 @@ -if not bobmods then bobmods = {} end -if not bobmods.lib then bobmods.lib = {} end - - -require("functions") -require("item-functions") -require("technology-functions") -require("module-functions") -require("recipe-functions") -require("ore-functions") -require("category-functions") - -require("legacy") +if not bobmods then bobmods = {} end +if not bobmods.lib then bobmods.lib = {} end + + +require("functions") +require("item-functions") +require("technology-functions") +require("module-functions") +require("recipe-functions") +require("ore-functions") +require("category-functions") + +require("legacy") diff --git a/boblibrary_0.14.0/functions.lua b/boblibrary_0.14.1/functions.lua similarity index 97% rename from boblibrary_0.14.0/functions.lua rename to boblibrary_0.14.1/functions.lua index c2ecbd8..58f6a1b 100644 --- a/boblibrary_0.14.0/functions.lua +++ b/boblibrary_0.14.1/functions.lua @@ -1,51 +1,51 @@ --- Merges table2's contents into table1. -function bobmods.lib.table_merge(table1, table2) - for index, value in pairs(table2) do - if type(value) == "table" then - bobmods.lib.table_merge(table1[index], table2[index]) - else - table1[index] = value - end - end -end - - -function bobmods.lib.result_check(object) - if object then - if object.results == nil then - object.results = {} - end - - if object.result then - local item = bobmods.lib.item.basic_item({name = object.result}) - if object.result_count then - item.amount = object.result_count - object.result_count = nil - end - bobmods.lib.item.add_new(object.results, item) - - 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 - if not object.icon and data.raw[item.type][object.result].icon then - object.icon = data.raw[item.type][object.result].icon - end - if not object.subgroup 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].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 - log(object .. " does not exist.") - end -end - +-- Merges table2's contents into table1. +function bobmods.lib.table_merge(table1, table2) + for index, value in pairs(table2) do + if type(value) == "table" then + bobmods.lib.table_merge(table1[index], table2[index]) + else + table1[index] = value + end + end +end + + +function bobmods.lib.result_check(object) + if object then + if object.results == nil then + object.results = {} + end + + if object.result then + local item = bobmods.lib.item.basic_item({name = object.result}) + if object.result_count then + item.amount = object.result_count + object.result_count = nil + end + bobmods.lib.item.add_new(object.results, item) + + 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 + if not object.icon and data.raw[item.type][object.result].icon then + object.icon = data.raw[item.type][object.result].icon + end + if not object.subgroup 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].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 + log(object .. " does not exist.") + end +end + diff --git a/boblibrary_0.14.0/graphics/entity/liquid.png b/boblibrary_0.14.1/graphics/entity/liquid.png similarity index 100% rename from boblibrary_0.14.0/graphics/entity/liquid.png rename to boblibrary_0.14.1/graphics/entity/liquid.png diff --git a/boblibrary_0.14.0/graphics/entity/ores/ore-1.png b/boblibrary_0.14.1/graphics/entity/ores/ore-1.png similarity index 100% rename from boblibrary_0.14.0/graphics/entity/ores/ore-1.png rename to boblibrary_0.14.1/graphics/entity/ores/ore-1.png diff --git a/boblibrary_0.14.0/graphics/entity/ores/ore-2.png b/boblibrary_0.14.1/graphics/entity/ores/ore-2.png similarity index 100% rename from boblibrary_0.14.0/graphics/entity/ores/ore-2.png rename to boblibrary_0.14.1/graphics/entity/ores/ore-2.png diff --git a/boblibrary_0.14.0/graphics/entity/ores/ore-3.png b/boblibrary_0.14.1/graphics/entity/ores/ore-3.png similarity index 100% rename from boblibrary_0.14.0/graphics/entity/ores/ore-3.png rename to boblibrary_0.14.1/graphics/entity/ores/ore-3.png diff --git a/boblibrary_0.14.0/graphics/entity/ores/ore-4.png b/boblibrary_0.14.1/graphics/entity/ores/ore-4.png similarity index 100% rename from boblibrary_0.14.0/graphics/entity/ores/ore-4.png rename to boblibrary_0.14.1/graphics/entity/ores/ore-4.png diff --git a/boblibrary_0.14.0/graphics/entity/ores/ore-particle-1.png b/boblibrary_0.14.1/graphics/entity/ores/ore-particle-1.png similarity index 100% rename from boblibrary_0.14.0/graphics/entity/ores/ore-particle-1.png rename to boblibrary_0.14.1/graphics/entity/ores/ore-particle-1.png diff --git a/boblibrary_0.14.0/graphics/entity/ores/ore-particle-2.png b/boblibrary_0.14.1/graphics/entity/ores/ore-particle-2.png similarity index 100% rename from boblibrary_0.14.0/graphics/entity/ores/ore-particle-2.png rename to boblibrary_0.14.1/graphics/entity/ores/ore-particle-2.png diff --git a/boblibrary_0.14.0/graphics/entity/ores/ore-particle-3.png b/boblibrary_0.14.1/graphics/entity/ores/ore-particle-3.png similarity index 100% rename from boblibrary_0.14.0/graphics/entity/ores/ore-particle-3.png rename to boblibrary_0.14.1/graphics/entity/ores/ore-particle-3.png diff --git a/boblibrary_0.14.0/graphics/entity/ores/ore-particle-4.png b/boblibrary_0.14.1/graphics/entity/ores/ore-particle-4.png similarity index 100% rename from boblibrary_0.14.0/graphics/entity/ores/ore-particle-4.png rename to boblibrary_0.14.1/graphics/entity/ores/ore-particle-4.png diff --git a/boblibrary_0.14.0/graphics/entity/ores/ore-particle-5.png b/boblibrary_0.14.1/graphics/entity/ores/ore-particle-5.png similarity index 100% rename from boblibrary_0.14.0/graphics/entity/ores/ore-particle-5.png rename to boblibrary_0.14.1/graphics/entity/ores/ore-particle-5.png diff --git a/boblibrary_0.14.0/graphics/entity/ores/ore-particle-6.png b/boblibrary_0.14.1/graphics/entity/ores/ore-particle-6.png similarity index 100% rename from boblibrary_0.14.0/graphics/entity/ores/ore-particle-6.png rename to boblibrary_0.14.1/graphics/entity/ores/ore-particle-6.png diff --git a/boblibrary_0.14.0/graphics/entity/ores/ore-particle-7.png b/boblibrary_0.14.1/graphics/entity/ores/ore-particle-7.png similarity index 100% rename from boblibrary_0.14.0/graphics/entity/ores/ore-particle-7.png rename to boblibrary_0.14.1/graphics/entity/ores/ore-particle-7.png diff --git a/boblibrary_0.14.0/graphics/entity/ores/ore-particle-8.png b/boblibrary_0.14.1/graphics/entity/ores/ore-particle-8.png similarity index 100% rename from boblibrary_0.14.0/graphics/entity/ores/ore-particle-8.png rename to boblibrary_0.14.1/graphics/entity/ores/ore-particle-8.png diff --git a/boblibrary_0.14.0/graphics/entity/ores/ore-particle-shadow-1.png b/boblibrary_0.14.1/graphics/entity/ores/ore-particle-shadow-1.png similarity index 100% rename from boblibrary_0.14.0/graphics/entity/ores/ore-particle-shadow-1.png rename to boblibrary_0.14.1/graphics/entity/ores/ore-particle-shadow-1.png diff --git a/boblibrary_0.14.0/graphics/entity/ores/ore-particle-shadow-2.png b/boblibrary_0.14.1/graphics/entity/ores/ore-particle-shadow-2.png similarity index 100% rename from boblibrary_0.14.0/graphics/entity/ores/ore-particle-shadow-2.png rename to boblibrary_0.14.1/graphics/entity/ores/ore-particle-shadow-2.png diff --git a/boblibrary_0.14.0/graphics/entity/ores/ore-particle-shadow-3.png b/boblibrary_0.14.1/graphics/entity/ores/ore-particle-shadow-3.png similarity index 100% rename from boblibrary_0.14.0/graphics/entity/ores/ore-particle-shadow-3.png rename to boblibrary_0.14.1/graphics/entity/ores/ore-particle-shadow-3.png diff --git a/boblibrary_0.14.0/graphics/entity/ores/ore-particle-shadow-4.png b/boblibrary_0.14.1/graphics/entity/ores/ore-particle-shadow-4.png similarity index 100% rename from boblibrary_0.14.0/graphics/entity/ores/ore-particle-shadow-4.png rename to boblibrary_0.14.1/graphics/entity/ores/ore-particle-shadow-4.png diff --git a/boblibrary_0.14.0/graphics/entity/ores/ore-particle-shadow-5.png b/boblibrary_0.14.1/graphics/entity/ores/ore-particle-shadow-5.png similarity index 100% rename from boblibrary_0.14.0/graphics/entity/ores/ore-particle-shadow-5.png rename to boblibrary_0.14.1/graphics/entity/ores/ore-particle-shadow-5.png diff --git a/boblibrary_0.14.0/graphics/entity/ores/ore-particle-shadow-6.png b/boblibrary_0.14.1/graphics/entity/ores/ore-particle-shadow-6.png similarity index 100% rename from boblibrary_0.14.0/graphics/entity/ores/ore-particle-shadow-6.png rename to boblibrary_0.14.1/graphics/entity/ores/ore-particle-shadow-6.png diff --git a/boblibrary_0.14.0/graphics/entity/ores/ore-particle-shadow-7.png b/boblibrary_0.14.1/graphics/entity/ores/ore-particle-shadow-7.png similarity index 100% rename from boblibrary_0.14.0/graphics/entity/ores/ore-particle-shadow-7.png rename to boblibrary_0.14.1/graphics/entity/ores/ore-particle-shadow-7.png diff --git a/boblibrary_0.14.0/graphics/entity/ores/ore-particle-shadow-8.png b/boblibrary_0.14.1/graphics/entity/ores/ore-particle-shadow-8.png similarity index 100% rename from boblibrary_0.14.0/graphics/entity/ores/ore-particle-shadow-8.png rename to boblibrary_0.14.1/graphics/entity/ores/ore-particle-shadow-8.png diff --git a/boblibrary_0.14.0/info.json b/boblibrary_0.14.1/info.json similarity index 91% rename from boblibrary_0.14.0/info.json rename to boblibrary_0.14.1/info.json index 0380dd7..dbda38a 100644 --- a/boblibrary_0.14.0/info.json +++ b/boblibrary_0.14.1/info.json @@ -1,11 +1,11 @@ -{ - "name": "boblibrary", - "version": "0.14.0", - "factorio_version": "0.14", - "title": "Bob's Functions Library mod", - "author": "Bobingabout", - "contact": "robertagius@hotmail.com", - "homepage": "https://forums.factorio.com/viewforum.php?f=51", - "description": "Adds a series of useful functions used by Bob's Mods. These can easilly be used by other mods too.", - "dependencies": ["base >= 0.14.0"] -} +{ + "name": "boblibrary", + "version": "0.14.1", + "factorio_version": "0.14", + "title": "Bob's Functions Library mod", + "author": "Bobingabout", + "contact": "robertagius@hotmail.com", + "homepage": "https://forums.factorio.com/viewforum.php?f=51", + "description": "Adds a series of useful functions used by Bob's Mods. These can easilly be used by other mods too.", + "dependencies": ["base >= 0.14.0"] +} diff --git a/boblibrary_0.14.0/item-functions.lua b/boblibrary_0.14.1/item-functions.lua similarity index 96% rename from boblibrary_0.14.0/item-functions.lua rename to boblibrary_0.14.1/item-functions.lua index 417be8a..e3b9437 100644 --- a/boblibrary_0.14.0/item-functions.lua +++ b/boblibrary_0.14.1/item-functions.lua @@ -1,157 +1,157 @@ -if not bobmods.lib.item then bobmods.lib.item = {} end - - -function bobmods.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 bobmods.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 bobmods.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 = bobmods.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 bobmods.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 = bobmods.lib.item.get_basic_type(item.name) - end - - return item -end - - -function bobmods.lib.item.combine(item1_in, item2_in) - local item = {} - local item1 = bobmods.lib.item.item(item1_in) - local item2 = bobmods.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 bobmods.lib.item.add(list, item_in) --increments amount if exists - local item = bobmods.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] = bobmods.lib.item.combine(object, item) - end - end - if addit then table.insert(list, item) end -end - -function bobmods.lib.item.add_new(list, item_in) --ignores if exists - local item = bobmods.lib.item.item(item_in) - local addit = true - for i, object in pairs(list) do - if item.name == bobmods.lib.item.basic_item(object).name then addit = false end - end - if addit then table.insert(list, item) end -end - -function bobmods.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 - - +if not bobmods.lib.item then bobmods.lib.item = {} end + + +function bobmods.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 bobmods.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 bobmods.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 = bobmods.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 bobmods.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 = bobmods.lib.item.get_basic_type(item.name) + end + + return item +end + + +function bobmods.lib.item.combine(item1_in, item2_in) + local item = {} + local item1 = bobmods.lib.item.item(item1_in) + local item2 = bobmods.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 bobmods.lib.item.add(list, item_in) --increments amount if exists + local item = bobmods.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] = bobmods.lib.item.combine(object, item) + end + end + if addit then table.insert(list, item) end +end + +function bobmods.lib.item.add_new(list, item_in) --ignores if exists + local item = bobmods.lib.item.item(item_in) + local addit = true + for i, object in pairs(list) do + if item.name == bobmods.lib.item.basic_item(object).name then addit = false end + end + if addit then table.insert(list, item) end +end + +function bobmods.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 + + diff --git a/boblibrary_0.14.0/legacy.lua b/boblibrary_0.14.1/legacy.lua similarity index 96% rename from boblibrary_0.14.0/legacy.lua rename to boblibrary_0.14.1/legacy.lua index 8769850..48d43b4 100644 --- a/boblibrary_0.14.0/legacy.lua +++ b/boblibrary_0.14.1/legacy.lua @@ -1,186 +1,186 @@ -function bobmods.lib.basic_item(inputs) - return bobmods.lib.item.basic_item(inputs) -end - ---[[ Cannot be used in legacy, due to new group conflict. -function bobmods.lib.item(inputs) - return bobmods.lib.item.item(inputs) -end -]]-- - -function bobmods.lib.get_item_type(name) - return bobmods.lib.item.get_type(name) -end - -function bobmods.lib.get_basic_item_type(name) - return bobmods.lib.item.get_basic_type(name) -end - -function bobmods.lib.combine_items(item1_in, item2_in) - return bobmods.lib.item.combine(item1_in, item2_in) -end - -function bobmods.lib.add_item(list, item_in) - bobmods.lib.item.add(list, item_in) --increments amount if exists -end - -function bobmods.lib.add_new_item(list, item_in) - bobmods.lib.item.add_new(list, item_in) --ignores if exists -end - -function bobmods.lib.remove_item(list, item) - bobmods.lib.item.remove(list, item) -end - - - -function bobmods.lib.replace_science_pack (technology, old, new) - bobmods.lib.tech.replace_science_pack (technology, old, new) -end - -function bobmods.lib.add_new_science_pack (technology, pack, amount) - bobmods.lib.tech.add_new_science_pack (technology, pack, amount) -end - -function bobmods.lib.add_science_pack (technology, pack, amount) - bobmods.lib.tech.add_science_pack (technology, pack, amount) -end - -function bobmods.lib.remove_science_pack (technology, pack) - bobmods.lib.tech.remove_science_pack (technology, pack) -end - -function bobmods.lib.add_technology_recipe (technology, recipe) - bobmods.lib.tech.add_recipe_unlock (technology, recipe) -end - -function bobmods.lib.remove_technology_recipe (technology, recipe) - bobmods.lib.tech.remove_recipe_unlock (technology, recipe) -end - -function bobmods.lib.replace_technology_prerequisite (technology, old, new) - bobmods.lib.tech.replace_prerequisite (technology, old, new) -end - -function bobmods.lib.add_technology_prerequisite (technology, prerequisite) - bobmods.lib.tech.add_prerequisite (technology, prerequisite) -end - -function bobmods.lib.remove_technology_prerequisite (technology, prerequisite) - bobmods.lib.tech.remove_prerequisite (technology, prerequisite) -end - - - -function bobmods.lib.add_productivity_limitation(intermediate) - bobmods.lib.module.add_productivity_limitation(intermediate) -end - -function bobmods.lib.add_productivity_limitations(intermediates) - bobmods.lib.module.add_productivity_limitations(intermediates) -end - - - -function bobmods.lib.replace_recipe_item (recipe, old, new) - bobmods.lib.recipe.replace_ingredient(recipe, old, new) -end - -function bobmods.lib.replace_recipe_item_crude (recipe, old, new) - bobmods.lib.recipe.replace_ingredient_crude(recipe, old, new) -end - -function bobmods.lib.replace_item_all_recipes (old, new) - bobmods.lib.recipe.replace_ingredient_in_all(old, new) -end - -function bobmods.lib.remove_recipe_item (recipe, item) - bobmods.lib.recipe.remove_ingredient(recipe, item) -end - -function bobmods.lib.add_new_recipe_item (recipe, item) - bobmods.lib.recipe.add_new_ingredient(recipe, item) -end - -function bobmods.lib.add_recipe_item (recipe, item) - bobmods.lib.recipe.add_ingredient(recipe, item) -end - -function bobmods.lib.add_recipe_result(recipe, item) - bobmods.lib.recipe.add_result(recipe, item) -end - -function bobmods.lib.remove_recipe_result(recipe, item) - bobmods.lib.recipe.remove_result(recipe, item) -end - - - -function bobmods.lib.create_autoplace(inputs) - return bobmods.lib.resource.create_autoplace(inputs) -end - -function bobmods.lib.autoplace_peak(inputs) - return bobmods.lib.resource.autoplace_peak(inputs) -end - -function bobmods.lib.add_autoplace_peak(inputs) - bobmods.lib.resource.add_autoplace_peak(inputs) -end - -function bobmods.lib.add_item_to_resource(resource, item) - bobmods.lib.resource.add_result(resource, item) -end - -function bobmods.lib.remove_item_from_resource(resource, item) - bobmods.lib.resource.remove_result(resource, item) -end - -function bobmods.lib.stage_counts(stages, mult) - return bobmods.lib.resource.stage_counts(stages, mult) -end - -function bobmods.lib.ore_sprite(inputs) - return bobmods.lib.resource.sprite(inputs) -end - -function bobmods.lib.create_ore_item(inputs) - bobmods.lib.resource.create_item(inputs) -end - -function bobmods.lib.create_ore_resource(inputs) - bobmods.lib.resource.create(inputs) -end - -function bobmods.lib.create_ore_particle(inputs) - bobmods.lib.resource.create_particle(inputs) -end - -function bobmods.lib.generate_ore_data_stage(inputs) - bobmods.lib.resource.generate_data_stage(inputs) -end - -function bobmods.lib.generate_ore_updates_stage(inputs) - bobmods.lib.resource.generate_updates_stage(inputs) -end - -function bobmods.lib.generate_ore(inputs) - bobmods.lib.resource.generate(inputs) -end - - - -function bobmods.lib.machine_has_category(machine, category_in) - return bobmods.lib.machine.has_category(machine, category_in) -end - -function bobmods.lib.machine_add_category(machine, category) - bobmods.lib.machine.add_category(machine, category) -end - -function bobmods.lib.machine_type_if_category_add_category(machine_type, category, category_to_add) - bobmods.lib.machine.type_if_add_category(machine_type, category, category_to_add) -end - - - +function bobmods.lib.basic_item(inputs) + return bobmods.lib.item.basic_item(inputs) +end + +--[[ Cannot be used in legacy, due to new group conflict. +function bobmods.lib.item(inputs) + return bobmods.lib.item.item(inputs) +end +]]-- + +function bobmods.lib.get_item_type(name) + return bobmods.lib.item.get_type(name) +end + +function bobmods.lib.get_basic_item_type(name) + return bobmods.lib.item.get_basic_type(name) +end + +function bobmods.lib.combine_items(item1_in, item2_in) + return bobmods.lib.item.combine(item1_in, item2_in) +end + +function bobmods.lib.add_item(list, item_in) + bobmods.lib.item.add(list, item_in) --increments amount if exists +end + +function bobmods.lib.add_new_item(list, item_in) + bobmods.lib.item.add_new(list, item_in) --ignores if exists +end + +function bobmods.lib.remove_item(list, item) + bobmods.lib.item.remove(list, item) +end + + + +function bobmods.lib.replace_science_pack (technology, old, new) + bobmods.lib.tech.replace_science_pack (technology, old, new) +end + +function bobmods.lib.add_new_science_pack (technology, pack, amount) + bobmods.lib.tech.add_new_science_pack (technology, pack, amount) +end + +function bobmods.lib.add_science_pack (technology, pack, amount) + bobmods.lib.tech.add_science_pack (technology, pack, amount) +end + +function bobmods.lib.remove_science_pack (technology, pack) + bobmods.lib.tech.remove_science_pack (technology, pack) +end + +function bobmods.lib.add_technology_recipe (technology, recipe) + bobmods.lib.tech.add_recipe_unlock (technology, recipe) +end + +function bobmods.lib.remove_technology_recipe (technology, recipe) + bobmods.lib.tech.remove_recipe_unlock (technology, recipe) +end + +function bobmods.lib.replace_technology_prerequisite (technology, old, new) + bobmods.lib.tech.replace_prerequisite (technology, old, new) +end + +function bobmods.lib.add_technology_prerequisite (technology, prerequisite) + bobmods.lib.tech.add_prerequisite (technology, prerequisite) +end + +function bobmods.lib.remove_technology_prerequisite (technology, prerequisite) + bobmods.lib.tech.remove_prerequisite (technology, prerequisite) +end + + + +function bobmods.lib.add_productivity_limitation(intermediate) + bobmods.lib.module.add_productivity_limitation(intermediate) +end + +function bobmods.lib.add_productivity_limitations(intermediates) + bobmods.lib.module.add_productivity_limitations(intermediates) +end + + + +function bobmods.lib.replace_recipe_item (recipe, old, new) + bobmods.lib.recipe.replace_ingredient(recipe, old, new) +end + +function bobmods.lib.replace_recipe_item_crude (recipe, old, new) + bobmods.lib.recipe.replace_ingredient_crude(recipe, old, new) +end + +function bobmods.lib.replace_item_all_recipes (old, new) + bobmods.lib.recipe.replace_ingredient_in_all(old, new) +end + +function bobmods.lib.remove_recipe_item (recipe, item) + bobmods.lib.recipe.remove_ingredient(recipe, item) +end + +function bobmods.lib.add_new_recipe_item (recipe, item) + bobmods.lib.recipe.add_new_ingredient(recipe, item) +end + +function bobmods.lib.add_recipe_item (recipe, item) + bobmods.lib.recipe.add_ingredient(recipe, item) +end + +function bobmods.lib.add_recipe_result(recipe, item) + bobmods.lib.recipe.add_result(recipe, item) +end + +function bobmods.lib.remove_recipe_result(recipe, item) + bobmods.lib.recipe.remove_result(recipe, item) +end + + + +function bobmods.lib.create_autoplace(inputs) + return bobmods.lib.resource.create_autoplace(inputs) +end + +function bobmods.lib.autoplace_peak(inputs) + return bobmods.lib.resource.autoplace_peak(inputs) +end + +function bobmods.lib.add_autoplace_peak(inputs) + bobmods.lib.resource.add_autoplace_peak(inputs) +end + +function bobmods.lib.add_item_to_resource(resource, item) + bobmods.lib.resource.add_result(resource, item) +end + +function bobmods.lib.remove_item_from_resource(resource, item) + bobmods.lib.resource.remove_result(resource, item) +end + +function bobmods.lib.stage_counts(stages, mult) + return bobmods.lib.resource.stage_counts(stages, mult) +end + +function bobmods.lib.ore_sprite(inputs) + return bobmods.lib.resource.sprite(inputs) +end + +function bobmods.lib.create_ore_item(inputs) + bobmods.lib.resource.create_item(inputs) +end + +function bobmods.lib.create_ore_resource(inputs) + bobmods.lib.resource.create(inputs) +end + +function bobmods.lib.create_ore_particle(inputs) + bobmods.lib.resource.create_particle(inputs) +end + +function bobmods.lib.generate_ore_data_stage(inputs) + bobmods.lib.resource.generate_data_stage(inputs) +end + +function bobmods.lib.generate_ore_updates_stage(inputs) + bobmods.lib.resource.generate_updates_stage(inputs) +end + +function bobmods.lib.generate_ore(inputs) + bobmods.lib.resource.generate(inputs) +end + + + +function bobmods.lib.machine_has_category(machine, category_in) + return bobmods.lib.machine.has_category(machine, category_in) +end + +function bobmods.lib.machine_add_category(machine, category) + bobmods.lib.machine.add_category(machine, category) +end + +function bobmods.lib.machine_type_if_category_add_category(machine_type, category, category_to_add) + bobmods.lib.machine.type_if_add_category(machine_type, category, category_to_add) +end + + + diff --git a/boblibrary_0.14.0/module-functions.lua b/boblibrary_0.14.1/module-functions.lua similarity index 97% rename from boblibrary_0.14.0/module-functions.lua rename to boblibrary_0.14.1/module-functions.lua index b662f17..46d8cfd 100644 --- a/boblibrary_0.14.0/module-functions.lua +++ b/boblibrary_0.14.1/module-functions.lua @@ -1,34 +1,34 @@ -if not bobmods.lib.module then bobmods.lib.module = {} end - - -function bobmods.lib.module.add_productivity_limitation(recipe) - if data.raw.recipe[recipe] then - for i, module in pairs(data.raw.module) do - if module.limitation and module.effect.productivity then - table.insert(module.limitation, recipe) - end - end - else - log("Recipe " .. recipe .. " does not exist.") - end -end - --- Although this version in theory takes longer because it will check each module multiple times, instead of once --- it does a recipe exist check only once, intead of multiple times, and allows a single error message, instead of once per module with a limitation. -function bobmods.lib.module.add_productivity_limitations(recipes) - for j, recipe in pairs(recipes) do - bobmods.lib.module.add_productivity_limitation(recipe) - end -end - ---[[ -function bobmods.lib.module.add_productivity_limitations(intermediates) - for i, module in pairs(data.raw.module) do - if module.limitation and module.effect.productivity then - for j, intermediate in pairs(intermediates) do - table.insert(module.limitation, intermediate) - end - end - end -end +if not bobmods.lib.module then bobmods.lib.module = {} end + + +function bobmods.lib.module.add_productivity_limitation(recipe) + if data.raw.recipe[recipe] then + for i, module in pairs(data.raw.module) do + if module.limitation and module.effect.productivity then + table.insert(module.limitation, recipe) + end + end + else + log("Recipe " .. recipe .. " does not exist.") + end +end + +-- Although this version in theory takes longer because it will check each module multiple times, instead of once +-- it does a recipe exist check only once, intead of multiple times, and allows a single error message, instead of once per module with a limitation. +function bobmods.lib.module.add_productivity_limitations(recipes) + for j, recipe in pairs(recipes) do + bobmods.lib.module.add_productivity_limitation(recipe) + end +end + +--[[ +function bobmods.lib.module.add_productivity_limitations(intermediates) + for i, module in pairs(data.raw.module) do + if module.limitation and module.effect.productivity then + for j, intermediate in pairs(intermediates) do + table.insert(module.limitation, intermediate) + end + end + end +end ]]-- \ No newline at end of file diff --git a/boblibrary_0.14.0/ore-functions.lua b/boblibrary_0.14.1/ore-functions.lua similarity index 96% rename from boblibrary_0.14.0/ore-functions.lua rename to boblibrary_0.14.1/ore-functions.lua index 29942b5..15d3094 100644 --- a/boblibrary_0.14.0/ore-functions.lua +++ b/boblibrary_0.14.1/ore-functions.lua @@ -1,405 +1,405 @@ -if not bobmods.lib.resource then bobmods.lib.resource = {} end - - -function bobmods.lib.resource.create_autoplace(inputs) --- note: Use size 1 for stone size, 1.5 for iron/copper/coal size, over 2 is untested. - local autoplace = {control = inputs.control or inputs.name} - local richness = inputs.richness or 1 - local size = inputs.size and inputs.size or 1.2 - autoplace.sharpness = 1 - autoplace.richness_multiplier = 1250 * richness - autoplace.richness_base = 400 * richness - autoplace.richness_multiplier_distance_bonus = 20 - autoplace.coverage = size / 75 - autoplace.peaks = {} - if inputs.starting_area then - table.insert(autoplace.peaks,bobmods.lib.resource.autoplace_peak{starting_area = 1, noise = {layer = inputs.name, octaves = -2.5, persistance = 0.3}}) - end - table.insert(autoplace.peaks,bobmods.lib.resource.autoplace_peak{starting_area = 0, noise = {layer = inputs.name, octaves = -1.5, persistance = 0.3}}) - return autoplace -end - - -function bobmods.lib.resource.autoplace_peak(inputs) - local peak = {} - if inputs.influence then - influence = inputs.influence - end - if inputs.starting_area then - peak.starting_area_weight_optimal = inputs.starting_area - peak.starting_area_weight_range = 0 - peak.starting_area_weight_max_range = 2 - end - if inputs.noise then - peak.noise_layer = inputs.noise.layer - peak.noise_octaves_difference = inputs.noise.octaves - peak.noise_persistence = inputs.noise.persistance - end - return peak -end - -function bobmods.lib.resource.add_autoplace_peak(inputs) - table.insert(data.raw.resource[inputs.resource].autoplace.peaks,bobmods.lib.resource.autoplace_peak(inputs)) -end - - - -function bobmods.lib.resource.add_result(resource, item) - if data.raw.resource[resource] and bobmods.lib.item.get_type(bobmods.lib.item.basic_item(item).name) then - bobmods.lib.result_check(data.raw.resource[resource].minable) - bobmods.lib.item.add_new(data.raw.resource[resource].minable.results, item) - else - if not data.raw.resource[resource] then - log("Resource " .. resource .. " does not exist.") - end - if not bobmods.lib.item.get_type(item) then - log("Ingredient " .. bobmods.lib.item.basic_item(item).name .. " does not exist.") - end - end -end - -function bobmods.lib.resource.remove_result(resource, item) - if data.raw.resource[resource] then - bobmods.lib.result_check(data.raw.resource[resource].minable) - bobmods.lib.item.remove(data.raw.resource[resource].minable.results, item) - else - log("Resource " .. resource .. " does not exist.") - end -end - - -function bobmods.lib.resource.stage_counts(stages, mult) - local stage_counts = {} - local stage = stages - while stage > 0 do - stage = stage - 1 - table.insert(stage_counts, mult * (2^stage)) - end - return stage_counts -end - -function bobmods.lib.resource.sprite(inputs) - local filename - local width = 38 - local height = 38 - local frame_count = 4 - local variation_count = 8 - if inputs.width then width = inputs.width end - if inputs.height then height = inputs.height end - if inputs.frame_count then frame_count = inputs.frame_count end - if inputs.variation_count then variation_count = inputs.variation_count end - if inputs.filename then - filename = inputs.filename - else - filename = "__boblibrary__/graphics/entity/ores/ore-1.png" - width = 38 - height = 38 - frame_count = 4 - variation_count = 8 - if inputs.sheet == 2 then - filename = "__boblibrary__/graphics/entity/ores/ore-2.png" - end - if inputs.sheet == 3 then - filename = "__boblibrary__/graphics/entity/ores/ore-3.png" - end - if inputs.sheet == 4 then - filename = "__boblibrary__/graphics/entity/ores/ore-4.png" - end - if inputs.sheet == 5 then - filename = "__boblibrary__/graphics/entity/liquid.png" - width = 75 - height = 61 - variation_count = 1 - end - end - - return - { - sheet = - { - filename = filename, - priority = "extra-high", - width = width, - height = height, - frame_count = frame_count, - variation_count = variation_count, - tint = inputs.tint, - scale = inputs.scale or 1, - } - } -end - - - -function bobmods.lib.resource.create_item(inputs) - data:extend( - { - { - type = "item", - name = inputs.name, - icon = inputs.icon, - flags = {"goes-to-main-inventory"}, - subgroup = inputs.subgroup and inputs.subgroup or "raw-resource", - order = "b-d[" .. inputs.name .."]", - stack_size = inputs.stack_size and inputs.stack_size or 200 - } - } - ) -end - -function bobmods.lib.resource.create(inputs) - local sprite = {} - local minimum = 35 - local normal = 350 - if inputs.sprite then - sprite = inputs.sprite - end - sprite.tint = inputs.tint - if inputs.minimum then - minimum = inputs.minimum - elseif inputs.autoplace and inputs.autoplace.richness_base then - minimum = inputs.autoplace.richness_base /10 - end - if inputs.normal then - normal = inputs.normal - elseif inputs.autoplace and inputs.autoplace.richness_base then - normal = inputs.autoplace.richness_base - end - local sheet = bobmods.lib.resource.sprite(sprite) - data:extend( - { - { - type = "resource", - name = inputs.name, - icon = inputs.icon, - flags = {"placeable-neutral"}, - category = inputs.category, - order = "b-d-" .. inputs.name, - minimum = minimum, - normal = normal, - infinite = inputs.infinite, - collision_box = inputs.collision_box or {{ -0.1, -0.1}, {0.1, 0.1}}, - selection_box = inputs.selection_box or {{ -0.5, -0.5}, {0.5, 0.5}}, - stages = sheet, - stage_counts = bobmods.lib.resource.stage_counts(sheet.sheet.variation_count, inputs.stage_mult or 10), - map_color = inputs.map_color, - minable = - { - mining_particle = inputs.particle, - hardness = inputs.hardness or 0.9, - mining_time = inputs.mining_time or 2, - }, - } - } - ) - if inputs.disable_map_grid then - data.raw.resource[inputs.name].map_grid = false - end -end - -function bobmods.lib.resource.create_particle(inputs) -data:extend( -{ - { - type = "particle", - name = inputs.name, - flags = {"not-on-map"}, - life_time = 180, - pictures = - { - { - filename = "__boblibrary__/graphics/entity/ores/ore-particle-1.png", - priority = "extra-high", - tint = inputs.tint, - width = 5, - height = 5, - frame_count = 1 - }, - { - filename = "__boblibrary__/graphics/entity/ores/ore-particle-2.png", - priority = "extra-high", - tint = inputs.tint, - width = 7, - height = 5, - frame_count = 1 - }, - { - filename = "__boblibrary__/graphics/entity/ores/ore-particle-3.png", - priority = "extra-high", - tint = inputs.tint, - width = 6, - height = 7, - frame_count = 1 - }, - { - filename = "__boblibrary__/graphics/entity/ores/ore-particle-4.png", - priority = "extra-high", - tint = inputs.tint, - width = 9, - height = 8, - frame_count = 1 - }, - { - filename = "__boblibrary__/graphics/entity/ores/ore-particle-5.png", - priority = "extra-high", - tint = inputs.tint, - width = 5, - height = 5, - frame_count = 1 - }, - { - filename = "__boblibrary__/graphics/entity/ores/ore-particle-6.png", - priority = "extra-high", - tint = inputs.tint, - width = 6, - height = 4, - frame_count = 1 - }, - { - filename = "__boblibrary__/graphics/entity/ores/ore-particle-7.png", - priority = "extra-high", - tint = inputs.tint, - width = 7, - height = 8, - frame_count = 1 - }, - { - filename = "__boblibrary__/graphics/entity/ores/ore-particle-8.png", - priority = "extra-high", - tint = inputs.tint, - width = 6, - height = 5, - frame_count = 1 - } - }, - shadows = - { - { - filename = "__boblibrary__/graphics/entity/ores/ore-particle-shadow-1.png", - priority = "extra-high", - width = 5, - height = 5, - frame_count = 1 - }, - { - filename = "__boblibrary__/graphics/entity/ores/ore-particle-shadow-2.png", - priority = "extra-high", - width = 7, - height = 5, - frame_count = 1 - }, - { - filename = "__boblibrary__/graphics/entity/ores/ore-particle-shadow-3.png", - priority = "extra-high", - width = 6, - height = 7, - frame_count = 1 - }, - { - filename = "__boblibrary__/graphics/entity/ores/ore-particle-shadow-4.png", - priority = "extra-high", - width = 9, - height = 8, - frame_count = 1 - }, - { - filename = "__boblibrary__/graphics/entity/ores/ore-particle-shadow-5.png", - priority = "extra-high", - width = 5, - height = 5, - frame_count = 1 - }, - { - filename = "__boblibrary__/graphics/entity/ores/ore-particle-shadow-6.png", - priority = "extra-high", - width = 6, - height = 4, - frame_count = 1 - }, - { - filename = "__boblibrary__/graphics/entity/ores/ore-particle-shadow-7.png", - priority = "extra-high", - width = 7, - height = 8, - frame_count = 1 - }, - { - filename = "__boblibrary__/graphics/entity/ores/ore-particle-shadow-8.png", - priority = "extra-high", - width = 6, - height = 5, - frame_count = 1 - } - } - } -} -) -end - - -function bobmods.lib.resource.generate_data_stage(inputs) - if inputs.name then - if not inputs.particle then - inputs.particle = inputs.name .. "-particle" - bobmods.lib.resource.create_particle{name = inputs.particle, tint = inputs.tint} - end - - if inputs.item and inputs.item.create then - if not inputs.items then inputs.items = {} end - bobmods.lib.resource.create_item{name = inputs.name, icon = inputs.icon, subgroup = inputs.item.subgroup, stack_size = inputs.item.stack_size} - table.insert(inputs.items,{name = inputs.name}) - end - - if not inputs.autoplace then - inputs.autoplace = bobmods.lib.resource.create_autoplace{control = inputs.autoplace.control or inputs.name, name = inputs.name, starting_area = true, size = 1, richness = 1} - else - if inputs.autoplace.create then - local autoplace = bobmods.lib.resource.create_autoplace{control = inputs.autoplace.control or inputs.name, name = inputs.name, starting_area = inputs.autoplace.starting_area, size = inputs.autoplace.size, richness = inputs.autoplace.richness} - inputs.autoplace = autoplace - end - end - - bobmods.lib.resource.create(inputs) - - if inputs.items then - for i, item in pairs(inputs.items) do - bobmods.lib.resource.add_result(inputs.name, item) - end - end - end -end - -function bobmods.lib.resource.generate_updates_stage(inputs) - if data.raw.resource[inputs.name] and inputs.autoplace then - local control = inputs.autoplace.control or inputs.name - if not data.raw["autoplace-control"][control] then - data:extend( - { - { - type = "autoplace-control", - name = control, - richness = true, - order = "b-d-" .. inputs.name - }, - } - ) - end - if not data.raw["noise-layer"][inputs.name] then - data:extend( - { - { - type = "noise-layer", - name = inputs.name - }, - } - ) - end - data.raw.resource[inputs.name].autoplace = inputs.autoplace - end -end - -function bobmods.lib.resource.generate(inputs) - bobmods.lib.resource.generate_data_stage(inputs) - bobmods.lib.resource.generate_updates_stage(inputs) -end - +if not bobmods.lib.resource then bobmods.lib.resource = {} end + + +function bobmods.lib.resource.create_autoplace(inputs) +-- note: Use size 1 for stone size, 1.5 for iron/copper/coal size, over 2 is untested. + local autoplace = {control = inputs.control or inputs.name} + local richness = inputs.richness or 1 + local size = inputs.size and inputs.size or 1.2 + autoplace.sharpness = 1 + autoplace.richness_multiplier = 1250 * richness + autoplace.richness_base = 400 * richness + autoplace.richness_multiplier_distance_bonus = 20 + autoplace.coverage = size / 75 + autoplace.peaks = {} + if inputs.starting_area then + table.insert(autoplace.peaks,bobmods.lib.resource.autoplace_peak{starting_area = 1, noise = {layer = inputs.name, octaves = -2.5, persistance = 0.3}}) + end + table.insert(autoplace.peaks,bobmods.lib.resource.autoplace_peak{starting_area = 0, noise = {layer = inputs.name, octaves = -1.5, persistance = 0.3}}) + return autoplace +end + + +function bobmods.lib.resource.autoplace_peak(inputs) + local peak = {} + if inputs.influence then + influence = inputs.influence + end + if inputs.starting_area then + peak.starting_area_weight_optimal = inputs.starting_area + peak.starting_area_weight_range = 0 + peak.starting_area_weight_max_range = 2 + end + if inputs.noise then + peak.noise_layer = inputs.noise.layer + peak.noise_octaves_difference = inputs.noise.octaves + peak.noise_persistence = inputs.noise.persistance + end + return peak +end + +function bobmods.lib.resource.add_autoplace_peak(inputs) + table.insert(data.raw.resource[inputs.resource].autoplace.peaks,bobmods.lib.resource.autoplace_peak(inputs)) +end + + + +function bobmods.lib.resource.add_result(resource, item) + if data.raw.resource[resource] and bobmods.lib.item.get_type(bobmods.lib.item.basic_item(item).name) then + bobmods.lib.result_check(data.raw.resource[resource].minable) + bobmods.lib.item.add_new(data.raw.resource[resource].minable.results, item) + else + if not data.raw.resource[resource] then + log("Resource " .. resource .. " does not exist.") + end + if not bobmods.lib.item.get_type(item) then + log("Ingredient " .. bobmods.lib.item.basic_item(item).name .. " does not exist.") + end + end +end + +function bobmods.lib.resource.remove_result(resource, item) + if data.raw.resource[resource] then + bobmods.lib.result_check(data.raw.resource[resource].minable) + bobmods.lib.item.remove(data.raw.resource[resource].minable.results, item) + else + log("Resource " .. resource .. " does not exist.") + end +end + + +function bobmods.lib.resource.stage_counts(stages, mult) + local stage_counts = {} + local stage = stages + while stage > 0 do + stage = stage - 1 + table.insert(stage_counts, mult * (2^stage)) + end + return stage_counts +end + +function bobmods.lib.resource.sprite(inputs) + local filename + local width = 38 + local height = 38 + local frame_count = 4 + local variation_count = 8 + if inputs.width then width = inputs.width end + if inputs.height then height = inputs.height end + if inputs.frame_count then frame_count = inputs.frame_count end + if inputs.variation_count then variation_count = inputs.variation_count end + if inputs.filename then + filename = inputs.filename + else + filename = "__boblibrary__/graphics/entity/ores/ore-1.png" + width = 38 + height = 38 + frame_count = 4 + variation_count = 8 + if inputs.sheet == 2 then + filename = "__boblibrary__/graphics/entity/ores/ore-2.png" + end + if inputs.sheet == 3 then + filename = "__boblibrary__/graphics/entity/ores/ore-3.png" + end + if inputs.sheet == 4 then + filename = "__boblibrary__/graphics/entity/ores/ore-4.png" + end + if inputs.sheet == 5 then + filename = "__boblibrary__/graphics/entity/liquid.png" + width = 75 + height = 61 + variation_count = 1 + end + end + + return + { + sheet = + { + filename = filename, + priority = "extra-high", + width = width, + height = height, + frame_count = frame_count, + variation_count = variation_count, + tint = inputs.tint, + scale = inputs.scale or 1, + } + } +end + + + +function bobmods.lib.resource.create_item(inputs) + data:extend( + { + { + type = "item", + name = inputs.name, + icon = inputs.icon, + flags = {"goes-to-main-inventory"}, + subgroup = inputs.subgroup and inputs.subgroup or "raw-resource", + order = "b-d[" .. inputs.name .."]", + stack_size = inputs.stack_size and inputs.stack_size or 200 + } + } + ) +end + +function bobmods.lib.resource.create(inputs) + local sprite = {} + local minimum = 35 + local normal = 350 + if inputs.sprite then + sprite = inputs.sprite + end + sprite.tint = inputs.tint + if inputs.minimum then + minimum = inputs.minimum + elseif inputs.autoplace and inputs.autoplace.richness_base then + minimum = inputs.autoplace.richness_base /10 + end + if inputs.normal then + normal = inputs.normal + elseif inputs.autoplace and inputs.autoplace.richness_base then + normal = inputs.autoplace.richness_base + end + local sheet = bobmods.lib.resource.sprite(sprite) + data:extend( + { + { + type = "resource", + name = inputs.name, + icon = inputs.icon, + flags = {"placeable-neutral"}, + category = inputs.category, + order = "b-d-" .. inputs.name, + minimum = minimum, + normal = normal, + infinite = inputs.infinite, + collision_box = inputs.collision_box or {{ -0.1, -0.1}, {0.1, 0.1}}, + selection_box = inputs.selection_box or {{ -0.5, -0.5}, {0.5, 0.5}}, + stages = sheet, + stage_counts = bobmods.lib.resource.stage_counts(sheet.sheet.variation_count, inputs.stage_mult or 10), + map_color = inputs.map_color, + minable = + { + mining_particle = inputs.particle, + hardness = inputs.hardness or 0.9, + mining_time = inputs.mining_time or 2, + }, + } + } + ) + if inputs.disable_map_grid then + data.raw.resource[inputs.name].map_grid = false + end +end + +function bobmods.lib.resource.create_particle(inputs) +data:extend( +{ + { + type = "particle", + name = inputs.name, + flags = {"not-on-map"}, + life_time = 180, + pictures = + { + { + filename = "__boblibrary__/graphics/entity/ores/ore-particle-1.png", + priority = "extra-high", + tint = inputs.tint, + width = 5, + height = 5, + frame_count = 1 + }, + { + filename = "__boblibrary__/graphics/entity/ores/ore-particle-2.png", + priority = "extra-high", + tint = inputs.tint, + width = 7, + height = 5, + frame_count = 1 + }, + { + filename = "__boblibrary__/graphics/entity/ores/ore-particle-3.png", + priority = "extra-high", + tint = inputs.tint, + width = 6, + height = 7, + frame_count = 1 + }, + { + filename = "__boblibrary__/graphics/entity/ores/ore-particle-4.png", + priority = "extra-high", + tint = inputs.tint, + width = 9, + height = 8, + frame_count = 1 + }, + { + filename = "__boblibrary__/graphics/entity/ores/ore-particle-5.png", + priority = "extra-high", + tint = inputs.tint, + width = 5, + height = 5, + frame_count = 1 + }, + { + filename = "__boblibrary__/graphics/entity/ores/ore-particle-6.png", + priority = "extra-high", + tint = inputs.tint, + width = 6, + height = 4, + frame_count = 1 + }, + { + filename = "__boblibrary__/graphics/entity/ores/ore-particle-7.png", + priority = "extra-high", + tint = inputs.tint, + width = 7, + height = 8, + frame_count = 1 + }, + { + filename = "__boblibrary__/graphics/entity/ores/ore-particle-8.png", + priority = "extra-high", + tint = inputs.tint, + width = 6, + height = 5, + frame_count = 1 + } + }, + shadows = + { + { + filename = "__boblibrary__/graphics/entity/ores/ore-particle-shadow-1.png", + priority = "extra-high", + width = 5, + height = 5, + frame_count = 1 + }, + { + filename = "__boblibrary__/graphics/entity/ores/ore-particle-shadow-2.png", + priority = "extra-high", + width = 7, + height = 5, + frame_count = 1 + }, + { + filename = "__boblibrary__/graphics/entity/ores/ore-particle-shadow-3.png", + priority = "extra-high", + width = 6, + height = 7, + frame_count = 1 + }, + { + filename = "__boblibrary__/graphics/entity/ores/ore-particle-shadow-4.png", + priority = "extra-high", + width = 9, + height = 8, + frame_count = 1 + }, + { + filename = "__boblibrary__/graphics/entity/ores/ore-particle-shadow-5.png", + priority = "extra-high", + width = 5, + height = 5, + frame_count = 1 + }, + { + filename = "__boblibrary__/graphics/entity/ores/ore-particle-shadow-6.png", + priority = "extra-high", + width = 6, + height = 4, + frame_count = 1 + }, + { + filename = "__boblibrary__/graphics/entity/ores/ore-particle-shadow-7.png", + priority = "extra-high", + width = 7, + height = 8, + frame_count = 1 + }, + { + filename = "__boblibrary__/graphics/entity/ores/ore-particle-shadow-8.png", + priority = "extra-high", + width = 6, + height = 5, + frame_count = 1 + } + } + } +} +) +end + + +function bobmods.lib.resource.generate_data_stage(inputs) + if inputs.name then + if not inputs.particle then + inputs.particle = inputs.name .. "-particle" + bobmods.lib.resource.create_particle{name = inputs.particle, tint = inputs.tint} + end + + if inputs.item and inputs.item.create then + if not inputs.items then inputs.items = {} end + bobmods.lib.resource.create_item{name = inputs.name, icon = inputs.icon, subgroup = inputs.item.subgroup, stack_size = inputs.item.stack_size} + table.insert(inputs.items,{name = inputs.name}) + end + + if not inputs.autoplace then + inputs.autoplace = bobmods.lib.resource.create_autoplace{control = inputs.autoplace.control or inputs.name, name = inputs.name, starting_area = true, size = 1, richness = 1} + else + if inputs.autoplace.create then + local autoplace = bobmods.lib.resource.create_autoplace{control = inputs.autoplace.control or inputs.name, name = inputs.name, starting_area = inputs.autoplace.starting_area, size = inputs.autoplace.size, richness = inputs.autoplace.richness} + inputs.autoplace = autoplace + end + end + + bobmods.lib.resource.create(inputs) + + if inputs.items then + for i, item in pairs(inputs.items) do + bobmods.lib.resource.add_result(inputs.name, item) + end + end + end +end + +function bobmods.lib.resource.generate_updates_stage(inputs) + if data.raw.resource[inputs.name] and inputs.autoplace then + local control = inputs.autoplace.control or inputs.name + if not data.raw["autoplace-control"][control] then + data:extend( + { + { + type = "autoplace-control", + name = control, + richness = true, + order = "b-d-" .. inputs.name + }, + } + ) + end + if not data.raw["noise-layer"][inputs.name] then + data:extend( + { + { + type = "noise-layer", + name = inputs.name + }, + } + ) + end + data.raw.resource[inputs.name].autoplace = inputs.autoplace + end +end + +function bobmods.lib.resource.generate(inputs) + bobmods.lib.resource.generate_data_stage(inputs) + bobmods.lib.resource.generate_updates_stage(inputs) +end + diff --git a/boblibrary_0.14.0/recipe-functions.lua b/boblibrary_0.14.1/recipe-functions.lua similarity index 97% rename from boblibrary_0.14.0/recipe-functions.lua rename to boblibrary_0.14.1/recipe-functions.lua index 1726871..4f4fdfb 100644 --- a/boblibrary_0.14.0/recipe-functions.lua +++ b/boblibrary_0.14.1/recipe-functions.lua @@ -1,126 +1,126 @@ -if not bobmods.lib.recipe then bobmods.lib.recipe = {} end - - -function bobmods.lib.recipe.replace_ingredient(recipe, old, new) - if data.raw.recipe[recipe] and bobmods.lib.item.get_type(new) then - local amount = 0 - for i, ingredient in pairs(data.raw.recipe[recipe].ingredients) do - if ingredient[1] == old then - amount = ingredient[2] + amount - end - if ingredient.name == old then - amount = ingredient.amount + amount - end - end - if amount > 0 then - bobmods.lib.recipe.remove_ingredient(recipe, old) - bobmods.lib.recipe.add_ingredient(recipe, {new, amount}) - return true - else - return false - end - else - if not data.raw.recipe[recipe] then - log("Recipe " .. recipe .. " does not exist.") - end - if not bobmods.lib.item.get_type(new) then - log("Ingredient " .. new .. " does not exist.") - end - return false - end -end - -function bobmods.lib.recipe.replace_ingredient_crude(recipe, old, new) - if data.raw.recipe[recipe] and bobmods.lib.item.get_basic_type(new) then - local replaced = false - for i, ingredient in pairs(data.raw.recipe[recipe].ingredients) do - if ingredient[1] == old or ingredient.name == old then - local item = bobmods.lib.item.basic_item(ingredient) - item.name = new - item.type = bobmods.lib.item.get_basic_type(new) - ingredient = item - replaced = true - end - end - return replaced - else - if not data.raw.recipe[recipe] then - log("Recipe " .. recipe .. " does not exist.") - end - if not bobmods.lib.item.get_type(new) then - log("Ingredient " .. new .. " does not exist.") - end - return false - end -end - -function bobmods.lib.recipe.replace_ingredient_in_all(old, new) - if bobmods.lib.item.get_basic_type(new) then - for i, recipe in pairs(data.raw.recipe) do - bobmods.lib.recipe.replace_ingredient(recipe.name, old, new) - end - else - log("Ingredient " .. new .. " does not exist.") - end -end - -function bobmods.lib.recipe.remove_ingredient(recipe, item) - if data.raw.recipe[recipe] then - bobmods.lib.item.remove(data.raw.recipe[recipe].ingredients, item) - else - log("Recipe " .. recipe .. " does not exist.") - end -end - -function bobmods.lib.recipe.add_new_ingredient(recipe, item) - if data.raw.recipe[recipe] and bobmods.lib.item.get_type(bobmods.lib.item.basic_item(item).name) then - bobmods.lib.item.add_new(data.raw.recipe[recipe].ingredients, bobmods.lib.item.basic_item(item)) - else - if not data.raw.recipe[recipe] then - log("Recipe " .. recipe .. " does not exist.") - end - if not bobmods.lib.item.get_type(item) then - log("Ingredient " .. bobmods.lib.item.basic_item(item).name .. " does not exist.") - end - end -end - -function bobmods.lib.recipe.add_ingredient(recipe, item) - if data.raw.recipe[recipe] and bobmods.lib.item.get_type(bobmods.lib.item.basic_item(item).name) then - bobmods.lib.item.add(data.raw.recipe[recipe].ingredients, bobmods.lib.item.basic_item(item)) - else - if not data.raw.recipe[recipe] then - log("Recipe " .. recipe .. " does not exist.") - end - if not bobmods.lib.item.get_basic_type(bobmods.lib.item.basic_item(item).name) then - log("Ingredient " .. bobmods.lib.item.basic_item(item).name .. " does not exist.") - end - end -end - - -function bobmods.lib.recipe.add_result(recipe, item) - if data.raw.recipe[recipe] and bobmods.lib.item.get_type(bobmods.lib.item.basic_item(item).name) then - bobmods.lib.result_check(data.raw.recipe[recipe]) - bobmods.lib.item.add(data.raw.recipe[recipe].results, item) - else - if not data.raw.recipe[recipe] then - log("Recipe " .. recipe .. " does not exist.") - end - if not bobmods.lib.item.get_basic_type(bobmods.lib.item.basic_item(item).name) then - log("Item " .. bobmods.lib.item.basic_item(item).name .. " does not exist.") - end - end -end - -function bobmods.lib.recipe.remove_result(recipe, item) - if data.raw.recipe[recipe] then - bobmods.lib.result_check(data.raw.recipe[recipe]) - bobmods.lib.item.remove(data.raw.recipe[recipe].results, item) - else - log("Recipe " .. recipe .. " does not exist.") - end -end - - - +if not bobmods.lib.recipe then bobmods.lib.recipe = {} end + + +function bobmods.lib.recipe.replace_ingredient(recipe, old, new) + if data.raw.recipe[recipe] and bobmods.lib.item.get_type(new) then + local amount = 0 + for i, ingredient in pairs(data.raw.recipe[recipe].ingredients) do + if ingredient[1] == old then + amount = ingredient[2] + amount + end + if ingredient.name == old then + amount = ingredient.amount + amount + end + end + if amount > 0 then + bobmods.lib.recipe.remove_ingredient(recipe, old) + bobmods.lib.recipe.add_ingredient(recipe, {new, amount}) + return true + else + return false + end + else + if not data.raw.recipe[recipe] then + log("Recipe " .. recipe .. " does not exist.") + end + if not bobmods.lib.item.get_type(new) then + log("Ingredient " .. new .. " does not exist.") + end + return false + end +end + +function bobmods.lib.recipe.replace_ingredient_crude(recipe, old, new) + if data.raw.recipe[recipe] and bobmods.lib.item.get_basic_type(new) then + local replaced = false + for i, ingredient in pairs(data.raw.recipe[recipe].ingredients) do + if ingredient[1] == old or ingredient.name == old then + local item = bobmods.lib.item.basic_item(ingredient) + item.name = new + item.type = bobmods.lib.item.get_basic_type(new) + ingredient = item + replaced = true + end + end + return replaced + else + if not data.raw.recipe[recipe] then + log("Recipe " .. recipe .. " does not exist.") + end + if not bobmods.lib.item.get_type(new) then + log("Ingredient " .. new .. " does not exist.") + end + return false + end +end + +function bobmods.lib.recipe.replace_ingredient_in_all(old, new) + if bobmods.lib.item.get_basic_type(new) then + for i, recipe in pairs(data.raw.recipe) do + bobmods.lib.recipe.replace_ingredient(recipe.name, old, new) + end + else + log("Ingredient " .. new .. " does not exist.") + end +end + +function bobmods.lib.recipe.remove_ingredient(recipe, item) + if data.raw.recipe[recipe] then + bobmods.lib.item.remove(data.raw.recipe[recipe].ingredients, item) + else + log("Recipe " .. recipe .. " does not exist.") + end +end + +function bobmods.lib.recipe.add_new_ingredient(recipe, item) + if data.raw.recipe[recipe] and bobmods.lib.item.get_type(bobmods.lib.item.basic_item(item).name) then + bobmods.lib.item.add_new(data.raw.recipe[recipe].ingredients, bobmods.lib.item.basic_item(item)) + else + if not data.raw.recipe[recipe] then + log("Recipe " .. recipe .. " does not exist.") + end + if not bobmods.lib.item.get_type(item) then + log("Ingredient " .. bobmods.lib.item.basic_item(item).name .. " does not exist.") + end + end +end + +function bobmods.lib.recipe.add_ingredient(recipe, item) + if data.raw.recipe[recipe] and bobmods.lib.item.get_type(bobmods.lib.item.basic_item(item).name) then + bobmods.lib.item.add(data.raw.recipe[recipe].ingredients, bobmods.lib.item.basic_item(item)) + else + if not data.raw.recipe[recipe] then + log("Recipe " .. recipe .. " does not exist.") + end + if not bobmods.lib.item.get_basic_type(bobmods.lib.item.basic_item(item).name) then + log("Ingredient " .. bobmods.lib.item.basic_item(item).name .. " does not exist.") + end + end +end + + +function bobmods.lib.recipe.add_result(recipe, item) + if data.raw.recipe[recipe] and bobmods.lib.item.get_type(bobmods.lib.item.basic_item(item).name) then + bobmods.lib.result_check(data.raw.recipe[recipe]) + bobmods.lib.item.add(data.raw.recipe[recipe].results, item) + else + if not data.raw.recipe[recipe] then + log("Recipe " .. recipe .. " does not exist.") + end + if not bobmods.lib.item.get_basic_type(bobmods.lib.item.basic_item(item).name) then + log("Item " .. bobmods.lib.item.basic_item(item).name .. " does not exist.") + end + end +end + +function bobmods.lib.recipe.remove_result(recipe, item) + if data.raw.recipe[recipe] then + bobmods.lib.result_check(data.raw.recipe[recipe]) + bobmods.lib.item.remove(data.raw.recipe[recipe].results, item) + else + log("Recipe " .. recipe .. " does not exist.") + end +end + + + diff --git a/boblibrary_0.14.0/technology-functions.lua b/boblibrary_0.14.1/technology-functions.lua similarity index 97% rename from boblibrary_0.14.0/technology-functions.lua rename to boblibrary_0.14.1/technology-functions.lua index ea37f60..f078ce2 100644 --- a/boblibrary_0.14.0/technology-functions.lua +++ b/boblibrary_0.14.1/technology-functions.lua @@ -1,172 +1,172 @@ -if not bobmods.lib.tech then bobmods.lib.tech = {} end - - -function bobmods.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 - bobmods.lib.tech.remove_science_pack(technology, old) - bobmods.lib.tech.add_science_pack(technology, new, amount) - end - else - if not data.raw.technology[technology] then - log("Technology " .. technology .. " does not exist.") - end - if not data.raw.tool[new] then - log("Science pack " .. new .. " does not exist.") - end - end -end - -function bobmods.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 - log("Technology " .. technology .. " does not exist.") - end - if not data.raw.tool[pack] then - log("Science pack " .. new .. " does not exist.") - end - end -end - -function bobmods.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 - log("Technology " .. technology .. " does not exist.") - end - if not data.raw.tool[pack] then - log("Science pack " .. new .. " does not exist.") - end - end -end - -function bobmods.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 - log("Technology " .. technology .. " does not exist.") - end -end - - -function bobmods.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 - log("Technology " .. technology .. " does not exist.") - end - if not data.raw.recipe[recipe] then - log("Recipe " .. recipe .. " does not exist.") - end - end -end - -function bobmods.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 - log("Technology " .. technology .. " does not exist.") - end - end -end - - -function bobmods.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 - bobmods.lib.tech.remove_prerequisite(technology, old) - bobmods.lib.tech.add_prerequisite(technology, new) - end - end - else - if not data.raw.technology[technology] then - log("Technology " .. technology .. " does not exist.") - end - if not data.raw.technology[new] then - log("Technology " .. new .. " does not exist.") - end - end -end - -function bobmods.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 - log("Technology " .. technology .. " does not exist.") - end - if not data.raw.technology[prerequisite] then - log("Technology " .. prerequisite .. " does not exist.") - end - end -end - -function bobmods.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 - log("Technology " .. technology .. " does not exist.") - end -end - - +if not bobmods.lib.tech then bobmods.lib.tech = {} end + + +function bobmods.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 + bobmods.lib.tech.remove_science_pack(technology, old) + bobmods.lib.tech.add_science_pack(technology, new, amount) + end + else + if not data.raw.technology[technology] then + log("Technology " .. technology .. " does not exist.") + end + if not data.raw.tool[new] then + log("Science pack " .. new .. " does not exist.") + end + end +end + +function bobmods.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 + log("Technology " .. technology .. " does not exist.") + end + if not data.raw.tool[pack] then + log("Science pack " .. new .. " does not exist.") + end + end +end + +function bobmods.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 + log("Technology " .. technology .. " does not exist.") + end + if not data.raw.tool[pack] then + log("Science pack " .. new .. " does not exist.") + end + end +end + +function bobmods.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 + log("Technology " .. technology .. " does not exist.") + end +end + + +function bobmods.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 + log("Technology " .. technology .. " does not exist.") + end + if not data.raw.recipe[recipe] then + log("Recipe " .. recipe .. " does not exist.") + end + end +end + +function bobmods.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 + log("Technology " .. technology .. " does not exist.") + end + end +end + + +function bobmods.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 + bobmods.lib.tech.remove_prerequisite(technology, old) + bobmods.lib.tech.add_prerequisite(technology, new) + end + end + else + if not data.raw.technology[technology] then + log("Technology " .. technology .. " does not exist.") + end + if not data.raw.technology[new] then + log("Technology " .. new .. " does not exist.") + end + end +end + +function bobmods.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 + log("Technology " .. technology .. " does not exist.") + end + if not data.raw.technology[prerequisite] then + log("Technology " .. prerequisite .. " does not exist.") + end + end +end + +function bobmods.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 + log("Technology " .. technology .. " does not exist.") + end +end + + diff --git a/boblogistics_0.14.0/prototypes/recipe/train-recipe-updates.lua b/boblogistics_0.14.0/prototypes/recipe/train-recipe-updates.lua deleted file mode 100644 index 8389354..0000000 --- a/boblogistics_0.14.0/prototypes/recipe/train-recipe-updates.lua +++ /dev/null @@ -1,47 +0,0 @@ -if data.raw.item["invar-alloy"] then - bobmods.lib.recipe.replace_ingredient("diesel-locomotive-2", "steel-plate", "invar-alloy") - bobmods.lib.recipe.replace_ingredient("cargo-wagon-2", "steel-plate", "invar-alloy") - bobmods.lib.tech.add_prerequisite("bob-railway-2", "invar-processing") -end - -if data.raw.item["steel-bearing"] then - bobmods.lib.recipe.add_new_ingredient("diesel-locomotive-2", {"steel-bearing", 16}) - bobmods.lib.recipe.add_new_ingredient("cargo-wagon-2", {"steel-bearing", 8}) -else - bobmods.lib.recipe.add_new_ingredient("diesel-locomotive-2", {"iron-gear-wheel", 10}) - bobmods.lib.recipe.add_new_ingredient("cargo-wagon-2", {"iron-gear-wheel", 8}) -end - -if data.raw.item["steel-gear-wheel"] then - bobmods.lib.recipe.replace_ingredient("diesel-locomotive-2", "iron-gear-wheel", "steel-gear-wheel") - bobmods.lib.recipe.replace_ingredient("cargo-wagon-2", "iron-gear-wheel", "steel-gear-wheel") -end - - - -if data.raw.item["titanium-plate"] then - bobmods.lib.recipe.replace_ingredient("diesel-locomotive-3", "steel-plate", "titanium-plate") - bobmods.lib.recipe.replace_ingredient("cargo-wagon-3", "steel-plate", "titanium-plate") - bobmods.lib.tech.add_prerequisite("bob-railway-3", "titanium-processing") - - bobmods.lib.recipe.replace_ingredient("armoured-diesel-locomotive", "steel-plate", "titanium-plate") - bobmods.lib.recipe.replace_ingredient("armoured-cargo-wagon", "steel-plate", "titanium-plate") - bobmods.lib.tech.add_prerequisite("bob-armoured-railway", "titanium-processing") -end - -if data.raw.item["titanium-bearing"] then - bobmods.lib.recipe.add_new_ingredient("diesel-locomotive-3", {"titanium-bearing", 16}) - bobmods.lib.recipe.add_new_ingredient("cargo-wagon-3", {"titanium-bearing", 8}) -else - bobmods.lib.recipe.add_new_ingredient("diesel-locomotive-3", {"iron-gear-wheel", 10}) - bobmods.lib.recipe.add_new_ingredient("cargo-wagon-3", {"iron-gear-wheel", 8}) -end - -if data.raw.item["titanium-gear-wheel"] then - bobmods.lib.recipe.replace_ingredient("diesel-locomotive-3", "iron-gear-wheel", "titanium-gear-wheel") - bobmods.lib.recipe.replace_ingredient("cargo-wagon-3", "iron-gear-wheel", "titanium-gear-wheel") -end - - - - diff --git a/boblogistics_0.14.0/control.lua b/boblogistics_0.14.2/control.lua similarity index 97% rename from boblogistics_0.14.0/control.lua rename to boblogistics_0.14.2/control.lua index 159c1ea..f3af6bc 100644 --- a/boblogistics_0.14.0/control.lua +++ b/boblogistics_0.14.2/control.lua @@ -1,323 +1,323 @@ -if not bobmods then bobmods = {} end -if not bobmods.logistics then bobmods.logistics = {} end -if not bobmods.logistics.inserters then bobmods.logistics.inserters = {} end -if not bobmods.math then bobmods.math = {} end - -function bobmods.math.mod(number, div) - if number < 0 then - local newnumber = 0 - number - local mod = newnumber % div - return 0 - mod - else - return number % div - end -end - -function bobmods.math.floor(number) - local num - if number < 0 then - num = number - 0.1 - else - num = number + 0.1 - end - return math.floor (num - bobmods.math.mod(num, 1)) -end - -function bobmods.math.round(number) - local num - if number < 0 then - num = number - 0.5 - else - num = number + 0.5 - end - return math.floor (num - bobmods.math.mod(num, 1)) -end - -function bobmods.math.offset(number) - local num = bobmods.math.mod(number, 1) - if num < 0 then - if num > -0.5 then - return num - else - return num + 1 - end - else - if num < 0.5 then - return num - else - return num - 1 - end - end -end - - -bobmods.logistics.long_technology = "long-inserters-1" -bobmods.logistics.near_technology = "near-inserters" -bobmods.logistics.more_technology = "more-inserters-1" - -bobmods.logistics.offset = 0.19 - -bobmods.logistics.inserters.range1 = { - pickup = { - {x = 0, y = -1}, - {x = 1, y = 0}, - {x = 0, y = 1}, - {x = -1, y = 0} - }, - drop = { - {x = 0, y = 1}, - {x = -1, y = 0}, - {x = 0, y = -1}, - {x = 1, y = 0} - } -} - -bobmods.logistics.inserters.range2 = { - pickup = { - {x = 0, y = -2}, - {x = 2, y = 0}, - {x = 0, y = 2}, - {x = -2, y = 0} - }, - drop = { - {x = 0, y = 2}, - {x = -2, y = 0}, - {x = 0, y = -2}, - {x = 2, y = 0} - }, -} - - -bobmods.logistics.inserters.offset_positions = { - near = { - {x = 0, y = -bobmods.logistics.offset}, - {x = bobmods.logistics.offset, y = 0}, - {x = 0, y = bobmods.logistics.offset}, - {x = -bobmods.logistics.offset, y = 0} - }, - far = { - {x = 0, y = bobmods.logistics.offset}, - {x = -bobmods.logistics.offset, y = 0}, - {x = 0, y = -bobmods.logistics.offset}, - {x = bobmods.logistics.offset, y = 0} - } -} - - -function bobmods.logistics.normalise_tile_offset(tile_offset) - local new_offset = {x = 0, y = 0} - if tile_offset.x > 0 then new_offset.x = bobmods.logistics.offset end - if tile_offset.x < 0 then new_offset.x = -bobmods.logistics.offset end - if tile_offset.y > 0 then new_offset.y = bobmods.logistics.offset end - if tile_offset.y < 0 then new_offset.y = -bobmods.logistics.offset end - return new_offset -end - -function bobmods.logistics.set_range(position_in, range) - local position = {x = 0, y = 0} - if position_in.x > 0.1 then - position.x = range - elseif position_in.x < -0.1 then - position.x = -range - else - position.x = 0 - end - if position_in.y > 0.1 then - position.y = range - elseif position_in.y < -0.1 then - position.y = -range - else - position.y = 0 - end - return position -end - - -function bobmods.logistics.create_global_table(player_index) - if not global then global = {} end - if not global.bobmods then global.bobmods = {} end - if not global.bobmods.logistics then global.bobmods.logistics = {} end - if not global.bobmods.logistics[player_index] then global.bobmods.logistics[player_index] = {} end - - if not global.bobmods.logistics[player_index].enabled then global.bobmods.logistics[player_index].enabled = false end - if not global.bobmods.logistics[player_index].long_in then global.bobmods.logistics[player_index].long_in = false end - if not global.bobmods.logistics[player_index].long_out then global.bobmods.logistics[player_index].long_out = false end - if not global.bobmods.logistics[player_index].near then global.bobmods.logistics[player_index].near = false end - if not global.bobmods.logistics[player_index].show then global.bobmods.logistics[player_index].show = false end - if not global.bobmods.logistics[player_index].gui then global.bobmods.logistics[player_index].gui = nil end -end - -function bobmods.logistics.player_setup(player_index) - bobmods.logistics.create_global_table(player_index) - bobmods.logistics.create_gui(player_index) -end - -function tech_unlocked(force, tech) - if force.technologies[tech] then - return force.technologies[tech].researched - end -end - -function bobmods.logistics.create_gui(player_index) - local player = game.players[player_index] - - if player.gui.top.bob_logistics_inserter_gui then - player.gui.top.bob_logistics_inserter_gui.destroy() - end - - local gui = player.gui.top.add({type = "frame", name = "bob_logistics_inserter_gui", direction = "vertical"}) - global.bobmods.logistics[player_index].gui = gui - gui.add({type = "checkbox", name = "bob_logistics_inserter_button", state = global.bobmods.logistics[player_index].show, style = "bob-logistics-inserter-button"}) - - bobmods.logistics.show_gui_options(gui, player_index) -end - -function bobmods.logistics.show_gui_options(gui, player_index) - local long_unlocked = tech_unlocked(game.players[player_index].force, bobmods.logistics.long_technology) - local more_unlocked = tech_unlocked(game.players[player_index].force, bobmods.logistics.more_technology) - local near_unlocked = tech_unlocked(game.players[player_index].force, bobmods.logistics.near_technology) - - if gui.table then - gui.table.destroy() - end - - if global.bobmods.logistics[player_index].show then - gui.add({type = "table", name = "table", colspan = 1, style = "bob-table"}) - if long_unlocked or near_unlocked then - gui.table.add({type = "checkbox", name = "bob_logistics_inserter_enabled", state = global.bobmods.logistics[player_index].enabled, style = "bob-logistics-checkbox", caption = {"gui.bob-logistics-enabled"}}) - end - if long_unlocked then - if more_unlocked then - gui.table.add({type = "checkbox", name = "bob_logistics_inserter_long_in", state = global.bobmods.logistics[player_index].long_in, style = "bob-logistics-checkbox", caption = {"gui.bob-logistics-pickup"}}) - gui.table.add({type = "checkbox", name = "bob_logistics_inserter_long_out", state = global.bobmods.logistics[player_index].long_out, style = "bob-logistics-checkbox", caption = {"gui.bob-logistics-drop"}}) - else - gui.table.add({type = "checkbox", name = "bob_logistics_inserter_long_in", state = global.bobmods.logistics[player_index].long_in, style = "bob-logistics-checkbox", caption = {"gui.bob-logistics-long"}}) - end - end - if near_unlocked then - gui.table.add({type = "checkbox", name = "bob_logistics_inserter_near", state = global.bobmods.logistics[player_index].near, style = "bob-logistics-checkbox", caption = {"gui.bob-logistics-near"}}) - end - end -end - - -function bobmods.logistics.set_positions(entity, player_index) - local enabled = global.bobmods.logistics[player_index].enabled - if enabled then - local force = game.players[player_index].force - local direction = (entity.direction / 2) + 1 - - local long_unlocked = tech_unlocked(force, bobmods.logistics.long_technology) - local more_unlocked = tech_unlocked(force, bobmods.logistics.more_technology) - local near_unlocked = tech_unlocked(force, bobmods.logistics.near_technology) - - local long_in = global.bobmods.logistics[player_index].long_in - local long_out = global.bobmods.logistics[player_index].long_out - local near = global.bobmods.logistics[player_index].near - - local pickup_position = {x = entity.pickup_position.x - entity.position.x, y = entity.pickup_position.y - entity.position.y} - local drop_full_position = {x = entity.drop_position.x - entity.position.x, y = entity.drop_position.y - entity.position.y} - local drop_position = {x = bobmods.math.round(drop_full_position.x), y = bobmods.math.round(drop_full_position.y)} - local drop_offset = bobmods.logistics.normalise_tile_offset({x = bobmods.math.offset(drop_full_position.x), y = bobmods.math.offset(drop_full_position.y)}) - - if long_unlocked then - if more_unlocked then - if long_in then - pickup_position = bobmods.logistics.set_range(pickup_position, 2) - else - pickup_position = bobmods.logistics.set_range(pickup_position, 1) - end - if long_out then - drop_position = bobmods.logistics.set_range(drop_position, 2) - else - drop_position = bobmods.logistics.set_range(drop_position, 1) - end - else - if long_in then - pickup_position = bobmods.logistics.set_range(pickup_position, 2) - drop_position = bobmods.logistics.set_range(drop_position, 2) - else - pickup_position = bobmods.logistics.set_range(pickup_position, 1) - drop_position = bobmods.logistics.set_range(drop_position, 1) - end - end - end - - if near_unlocked then - if near then - drop_offset = bobmods.logistics.set_range(drop_position, -bobmods.logistics.offset) - else - drop_offset = bobmods.logistics.set_range(drop_position, bobmods.logistics.offset) - end - end - - - entity.drop_position = {entity.position.x + drop_position.x + drop_offset.x, entity.position.y + drop_position.y + drop_offset.y} - entity.pickup_position = {entity.position.x + pickup_position.x, entity.position.y + pickup_position.y} - end -end - - -script.on_configuration_changed(function(event) - for i, player in pairs(game.players) do - bobmods.logistics.player_setup(player.index) - end -end) - -script.on_init(function(event) - for i, player in pairs(game.players) do - bobmods.logistics.player_setup(player.index) - end -end) - -script.on_event(defines.events.on_player_created, function(event) - bobmods.logistics.player_setup(event.player_index) -end) - -script.on_event(defines.events.on_player_joined_game, function(event) - bobmods.logistics.player_setup(event.player_index) -end) - -script.on_event(defines.events.on_gui_checked_state_changed, function(event) - if event.element.name == "bob_logistics_inserter_button" then - global.bobmods.logistics[event.player_index].show = event.element.state - bobmods.logistics.show_gui_options(event.element.parent, event.player_index) - elseif event.element.name == "bob_logistics_inserter_enabled" then - global.bobmods.logistics[event.player_index].enabled = event.element.state - elseif event.element.name == "bob_logistics_inserter_long_in" then - global.bobmods.logistics[event.player_index].long_in = event.element.state - elseif event.element.name == "bob_logistics_inserter_long_out" then - global.bobmods.logistics[event.player_index].long_out = event.element.state - elseif event.element.name == "bob_logistics_inserter_near" then - global.bobmods.logistics[event.player_index].near = event.element.state - end -end) - -script.on_event(defines.events.on_research_finished, function(event) - if event.research.name == bobmods.logistics.long_technology or - event.research.name == bobmods.logistics.near_technology or - event.research.name == bobmods.logistics.more_technology then - for i, player in pairs(event.research.force.players) do - bobmods.logistics.show_gui_options(global.bobmods.logistics[player.index].gui, player.index) - end - end -end) - -script.on_event(defines.events.on_built_entity, function(event) - local player = game.players[event.player_index] - if event.created_entity.name == "valve" then - player.rotate_for_build() - player.rotate_for_build() - end - - local entity = event.created_entity - if - entity.type == "inserter" - or (entity.type == "entity-ghost" and entity.ghost_type == "inserter" and not (player.cursor_stack and (player.cursor_stack.type == "blueprint" or player.cursor_stack.type == "blueprint-book"))) - then - bobmods.logistics.set_positions(entity, event.player_index) - end -end) - - - +if not bobmods then bobmods = {} end +if not bobmods.logistics then bobmods.logistics = {} end +if not bobmods.logistics.inserters then bobmods.logistics.inserters = {} end +if not bobmods.math then bobmods.math = {} end + +function bobmods.math.mod(number, div) + if number < 0 then + local newnumber = 0 - number + local mod = newnumber % div + return 0 - mod + else + return number % div + end +end + +function bobmods.math.floor(number) + local num + if number < 0 then + num = number - 0.1 + else + num = number + 0.1 + end + return math.floor (num - bobmods.math.mod(num, 1)) +end + +function bobmods.math.round(number) + local num + if number < 0 then + num = number - 0.5 + else + num = number + 0.5 + end + return math.floor (num - bobmods.math.mod(num, 1)) +end + +function bobmods.math.offset(number) + local num = bobmods.math.mod(number, 1) + if num < 0 then + if num > -0.5 then + return num + else + return num + 1 + end + else + if num < 0.5 then + return num + else + return num - 1 + end + end +end + + +bobmods.logistics.long_technology = "long-inserters-1" +bobmods.logistics.near_technology = "near-inserters" +bobmods.logistics.more_technology = "more-inserters-1" + +bobmods.logistics.offset = 0.19 + +bobmods.logistics.inserters.range1 = { + pickup = { + {x = 0, y = -1}, + {x = 1, y = 0}, + {x = 0, y = 1}, + {x = -1, y = 0} + }, + drop = { + {x = 0, y = 1}, + {x = -1, y = 0}, + {x = 0, y = -1}, + {x = 1, y = 0} + } +} + +bobmods.logistics.inserters.range2 = { + pickup = { + {x = 0, y = -2}, + {x = 2, y = 0}, + {x = 0, y = 2}, + {x = -2, y = 0} + }, + drop = { + {x = 0, y = 2}, + {x = -2, y = 0}, + {x = 0, y = -2}, + {x = 2, y = 0} + }, +} + + +bobmods.logistics.inserters.offset_positions = { + near = { + {x = 0, y = -bobmods.logistics.offset}, + {x = bobmods.logistics.offset, y = 0}, + {x = 0, y = bobmods.logistics.offset}, + {x = -bobmods.logistics.offset, y = 0} + }, + far = { + {x = 0, y = bobmods.logistics.offset}, + {x = -bobmods.logistics.offset, y = 0}, + {x = 0, y = -bobmods.logistics.offset}, + {x = bobmods.logistics.offset, y = 0} + } +} + + +function bobmods.logistics.normalise_tile_offset(tile_offset) + local new_offset = {x = 0, y = 0} + if tile_offset.x > 0 then new_offset.x = bobmods.logistics.offset end + if tile_offset.x < 0 then new_offset.x = -bobmods.logistics.offset end + if tile_offset.y > 0 then new_offset.y = bobmods.logistics.offset end + if tile_offset.y < 0 then new_offset.y = -bobmods.logistics.offset end + return new_offset +end + +function bobmods.logistics.set_range(position_in, range) + local position = {x = 0, y = 0} + if position_in.x > 0.1 then + position.x = range + elseif position_in.x < -0.1 then + position.x = -range + else + position.x = 0 + end + if position_in.y > 0.1 then + position.y = range + elseif position_in.y < -0.1 then + position.y = -range + else + position.y = 0 + end + return position +end + + +function bobmods.logistics.create_global_table(player_index) + if not global then global = {} end + if not global.bobmods then global.bobmods = {} end + if not global.bobmods.logistics then global.bobmods.logistics = {} end + if not global.bobmods.logistics[player_index] then global.bobmods.logistics[player_index] = {} end + + if not global.bobmods.logistics[player_index].enabled then global.bobmods.logistics[player_index].enabled = false end + if not global.bobmods.logistics[player_index].long_in then global.bobmods.logistics[player_index].long_in = false end + if not global.bobmods.logistics[player_index].long_out then global.bobmods.logistics[player_index].long_out = false end + if not global.bobmods.logistics[player_index].near then global.bobmods.logistics[player_index].near = false end + if not global.bobmods.logistics[player_index].show then global.bobmods.logistics[player_index].show = false end + if not global.bobmods.logistics[player_index].gui then global.bobmods.logistics[player_index].gui = nil end +end + +function bobmods.logistics.player_setup(player_index) + bobmods.logistics.create_global_table(player_index) + bobmods.logistics.create_gui(player_index) +end + +function tech_unlocked(force, tech) + if force.technologies[tech] then + return force.technologies[tech].researched + end +end + +function bobmods.logistics.create_gui(player_index) + local player = game.players[player_index] + + if player.gui.top.bob_logistics_inserter_gui then + player.gui.top.bob_logistics_inserter_gui.destroy() + end + + local gui = player.gui.top.add({type = "frame", name = "bob_logistics_inserter_gui", direction = "vertical"}) + global.bobmods.logistics[player_index].gui = gui + gui.add({type = "checkbox", name = "bob_logistics_inserter_button", state = global.bobmods.logistics[player_index].show, style = "bob-logistics-inserter-button"}) + + bobmods.logistics.show_gui_options(gui, player_index) +end + +function bobmods.logistics.show_gui_options(gui, player_index) + local long_unlocked = tech_unlocked(game.players[player_index].force, bobmods.logistics.long_technology) + local more_unlocked = tech_unlocked(game.players[player_index].force, bobmods.logistics.more_technology) + local near_unlocked = tech_unlocked(game.players[player_index].force, bobmods.logistics.near_technology) + + if gui.table then + gui.table.destroy() + end + + if global.bobmods.logistics[player_index].show then + gui.add({type = "table", name = "table", colspan = 1, style = "bob-table"}) + if long_unlocked or near_unlocked then + gui.table.add({type = "checkbox", name = "bob_logistics_inserter_enabled", state = global.bobmods.logistics[player_index].enabled, style = "bob-logistics-checkbox", caption = {"gui.bob-logistics-enabled"}}) + end + if long_unlocked then + if more_unlocked then + gui.table.add({type = "checkbox", name = "bob_logistics_inserter_long_in", state = global.bobmods.logistics[player_index].long_in, style = "bob-logistics-checkbox", caption = {"gui.bob-logistics-pickup"}}) + gui.table.add({type = "checkbox", name = "bob_logistics_inserter_long_out", state = global.bobmods.logistics[player_index].long_out, style = "bob-logistics-checkbox", caption = {"gui.bob-logistics-drop"}}) + else + gui.table.add({type = "checkbox", name = "bob_logistics_inserter_long_in", state = global.bobmods.logistics[player_index].long_in, style = "bob-logistics-checkbox", caption = {"gui.bob-logistics-long"}}) + end + end + if near_unlocked then + gui.table.add({type = "checkbox", name = "bob_logistics_inserter_near", state = global.bobmods.logistics[player_index].near, style = "bob-logistics-checkbox", caption = {"gui.bob-logistics-near"}}) + end + end +end + + +function bobmods.logistics.set_positions(entity, player_index) + local enabled = global.bobmods.logistics[player_index].enabled + if enabled then + local force = game.players[player_index].force + local direction = (entity.direction / 2) + 1 + + local long_unlocked = tech_unlocked(force, bobmods.logistics.long_technology) + local more_unlocked = tech_unlocked(force, bobmods.logistics.more_technology) + local near_unlocked = tech_unlocked(force, bobmods.logistics.near_technology) + + local long_in = global.bobmods.logistics[player_index].long_in + local long_out = global.bobmods.logistics[player_index].long_out + local near = global.bobmods.logistics[player_index].near + + local pickup_position = {x = entity.pickup_position.x - entity.position.x, y = entity.pickup_position.y - entity.position.y} + local drop_full_position = {x = entity.drop_position.x - entity.position.x, y = entity.drop_position.y - entity.position.y} + local drop_position = {x = bobmods.math.round(drop_full_position.x), y = bobmods.math.round(drop_full_position.y)} + local drop_offset = bobmods.logistics.normalise_tile_offset({x = bobmods.math.offset(drop_full_position.x), y = bobmods.math.offset(drop_full_position.y)}) + + if long_unlocked then + if more_unlocked then + if long_in then + pickup_position = bobmods.logistics.set_range(pickup_position, 2) + else + pickup_position = bobmods.logistics.set_range(pickup_position, 1) + end + if long_out then + drop_position = bobmods.logistics.set_range(drop_position, 2) + else + drop_position = bobmods.logistics.set_range(drop_position, 1) + end + else + if long_in then + pickup_position = bobmods.logistics.set_range(pickup_position, 2) + drop_position = bobmods.logistics.set_range(drop_position, 2) + else + pickup_position = bobmods.logistics.set_range(pickup_position, 1) + drop_position = bobmods.logistics.set_range(drop_position, 1) + end + end + end + + if near_unlocked then + if near then + drop_offset = bobmods.logistics.set_range(drop_position, -bobmods.logistics.offset) + else + drop_offset = bobmods.logistics.set_range(drop_position, bobmods.logistics.offset) + end + end + + + entity.drop_position = {entity.position.x + drop_position.x + drop_offset.x, entity.position.y + drop_position.y + drop_offset.y} + entity.pickup_position = {entity.position.x + pickup_position.x, entity.position.y + pickup_position.y} + end +end + + +script.on_configuration_changed(function(event) + for i, player in pairs(game.players) do + bobmods.logistics.player_setup(player.index) + end +end) + +script.on_init(function(event) + for i, player in pairs(game.players) do + bobmods.logistics.player_setup(player.index) + end +end) + +script.on_event(defines.events.on_player_created, function(event) + bobmods.logistics.player_setup(event.player_index) +end) + +script.on_event(defines.events.on_player_joined_game, function(event) + bobmods.logistics.player_setup(event.player_index) +end) + +script.on_event(defines.events.on_gui_checked_state_changed, function(event) + if event.element.name == "bob_logistics_inserter_button" then + global.bobmods.logistics[event.player_index].show = event.element.state + bobmods.logistics.show_gui_options(event.element.parent, event.player_index) + elseif event.element.name == "bob_logistics_inserter_enabled" then + global.bobmods.logistics[event.player_index].enabled = event.element.state + elseif event.element.name == "bob_logistics_inserter_long_in" then + global.bobmods.logistics[event.player_index].long_in = event.element.state + elseif event.element.name == "bob_logistics_inserter_long_out" then + global.bobmods.logistics[event.player_index].long_out = event.element.state + elseif event.element.name == "bob_logistics_inserter_near" then + global.bobmods.logistics[event.player_index].near = event.element.state + end +end) + +script.on_event(defines.events.on_research_finished, function(event) + if event.research.name == bobmods.logistics.long_technology or + event.research.name == bobmods.logistics.near_technology or + event.research.name == bobmods.logistics.more_technology then + for i, player in pairs(event.research.force.players) do + bobmods.logistics.show_gui_options(global.bobmods.logistics[player.index].gui, player.index) + end + end +end) + +script.on_event(defines.events.on_built_entity, function(event) + local player = game.players[event.player_index] + if event.created_entity.name == "valve" then + player.rotate_for_build() + player.rotate_for_build() + end + + local entity = event.created_entity + if + entity.type == "inserter" + or (entity.type == "entity-ghost" and entity.ghost_type == "inserter" and not (player.cursor_stack and (player.cursor_stack.type == "blueprint" or player.cursor_stack.type == "blueprint-book"))) + then + bobmods.logistics.set_positions(entity, event.player_index) + end +end) + + + diff --git a/boblogistics_0.14.0/data-updates.lua b/boblogistics_0.14.2/data-updates.lua similarity index 74% rename from boblogistics_0.14.0/data-updates.lua rename to boblogistics_0.14.2/data-updates.lua index 54673c6..915b938 100644 --- a/boblogistics_0.14.0/data-updates.lua +++ b/boblogistics_0.14.2/data-updates.lua @@ -1,59 +1,59 @@ -require("prototypes.recipe.roboport-recipe-updates") -require("prototypes.recipe.robots-recipe-updates") -require("prototypes.recipe.inserter-recipe-updates") -require("prototypes.recipe.belt-recipe-updates") -require("prototypes.recipe.storage-tank-recipe-updates") -require("prototypes.recipe.train-recipe-updates") -require("prototypes.recipe.pump-recipe-updates") - -require("prototypes.technology-updates") -require("prototypes.productivity-limitations") - - -for i, pipe in pairs(data.raw["pipe-to-ground"]) do - table.insert(pipe.flags,"fast-replaceable-no-build-while-moving") -end - -if bobmods.config and bobmods.config.logistics then - if bobmods.config.logistics.logisticrobot1 then - bobmods.lib.table_merge(data.raw["logistic-robot"]["logistic-robot"], bobmods.config.logistics.logisticrobot1) - end - if bobmods.config.logistics.logisticrobot2 then - bobmods.lib.table_merge(data.raw["logistic-robot"]["bob-logistic-robot-2"], bobmods.config.logistics.logisticrobot2) - end - if bobmods.config.logistics.logisticrobot3 then - bobmods.lib.table_merge(data.raw["logistic-robot"]["bob-logistic-robot-3"], bobmods.config.logistics.logisticrobot3) - end - if bobmods.config.logistics.logisticrobot4 then - bobmods.lib.table_merge(data.raw["logistic-robot"]["bob-logistic-robot-4"], bobmods.config.logistics.logisticrobot4) - end - - if bobmods.config.logistics.constructionrobot1 then - bobmods.lib.table_merge(data.raw["construction-robot"]["construction-robot"], bobmods.config.logistics.constructionrobot1) - end - if bobmods.config.logistics.constructionrobot2 then - bobmods.lib.table_merge(data.raw["construction-robot"]["bob-construction-robot-2"], bobmods.config.logistics.constructionrobot2) - end - if bobmods.config.logistics.constructionrobot3 then - bobmods.lib.table_merge(data.raw["construction-robot"]["bob-construction-robot-3"], bobmods.config.logistics.constructionrobot3) - end - if bobmods.config.logistics.constructionrobot4 then - bobmods.lib.table_merge(data.raw["construction-robot"]["bob-construction-robot-4"], bobmods.config.logistics.constructionrobot4) - end -end - - -if data.raw["damage-type"]["bob-pierce"] then - table.insert(data.raw.locomotive["diesel-locomotive"].resistances, {type = "bob-pierce", decrease = 5, percent = 25}) - table.insert(data.raw["cargo-wagon"]["cargo-wagon"].resistances, {type = "bob-pierce", decrease = 5, percent = 25}) - - table.insert(data.raw.locomotive["diesel-locomotive-2"].resistances, {type = "bob-pierce", decrease = 5, percent = 25}) - table.insert(data.raw["cargo-wagon"]["cargo-wagon-2"].resistances, {type = "bob-pierce", decrease = 5, percent = 25}) - - table.insert(data.raw.locomotive["diesel-locomotive-3"].resistances, {type = "bob-pierce", decrease = 5, percent = 25}) - table.insert(data.raw["cargo-wagon"]["cargo-wagon-3"].resistances, {type = "bob-pierce", decrease = 5, percent = 25}) - - table.insert(data.raw.locomotive["armoured-diesel-locomotive"].resistances, {type = "bob-pierce", decrease = 15, percent = 90}) - table.insert(data.raw["cargo-wagon"]["armoured-cargo-wagon"].resistances, {type = "bob-pierce", decrease = 15, percent = 90}) -end - +require("prototypes.recipe.roboport-recipe-updates") +require("prototypes.recipe.robots-recipe-updates") +require("prototypes.recipe.inserter-recipe-updates") +require("prototypes.recipe.belt-recipe-updates") +require("prototypes.recipe.storage-tank-recipe-updates") +require("prototypes.recipe.train-recipe-updates") +require("prototypes.recipe.pump-recipe-updates") + +require("prototypes.technology-updates") +require("prototypes.productivity-limitations") + + +for i, pipe in pairs(data.raw["pipe-to-ground"]) do + table.insert(pipe.flags,"fast-replaceable-no-build-while-moving") +end + +if bobmods.config and bobmods.config.logistics then + if bobmods.config.logistics.logisticrobot1 then + bobmods.lib.table_merge(data.raw["logistic-robot"]["logistic-robot"], bobmods.config.logistics.logisticrobot1) + end + if bobmods.config.logistics.logisticrobot2 then + bobmods.lib.table_merge(data.raw["logistic-robot"]["bob-logistic-robot-2"], bobmods.config.logistics.logisticrobot2) + end + if bobmods.config.logistics.logisticrobot3 then + bobmods.lib.table_merge(data.raw["logistic-robot"]["bob-logistic-robot-3"], bobmods.config.logistics.logisticrobot3) + end + if bobmods.config.logistics.logisticrobot4 then + bobmods.lib.table_merge(data.raw["logistic-robot"]["bob-logistic-robot-4"], bobmods.config.logistics.logisticrobot4) + end + + if bobmods.config.logistics.constructionrobot1 then + bobmods.lib.table_merge(data.raw["construction-robot"]["construction-robot"], bobmods.config.logistics.constructionrobot1) + end + if bobmods.config.logistics.constructionrobot2 then + bobmods.lib.table_merge(data.raw["construction-robot"]["bob-construction-robot-2"], bobmods.config.logistics.constructionrobot2) + end + if bobmods.config.logistics.constructionrobot3 then + bobmods.lib.table_merge(data.raw["construction-robot"]["bob-construction-robot-3"], bobmods.config.logistics.constructionrobot3) + end + if bobmods.config.logistics.constructionrobot4 then + bobmods.lib.table_merge(data.raw["construction-robot"]["bob-construction-robot-4"], bobmods.config.logistics.constructionrobot4) + end +end + + +if data.raw["damage-type"]["bob-pierce"] then + table.insert(data.raw.locomotive["diesel-locomotive"].resistances, {type = "bob-pierce", decrease = 5, percent = 25}) + table.insert(data.raw["cargo-wagon"]["cargo-wagon"].resistances, {type = "bob-pierce", decrease = 5, percent = 25}) + + table.insert(data.raw.locomotive["bob-diesel-locomotive-2"].resistances, {type = "bob-pierce", decrease = 5, percent = 25}) + table.insert(data.raw["cargo-wagon"]["bob-cargo-wagon-2"].resistances, {type = "bob-pierce", decrease = 5, percent = 25}) + + table.insert(data.raw.locomotive["bob-diesel-locomotive-3"].resistances, {type = "bob-pierce", decrease = 5, percent = 25}) + table.insert(data.raw["cargo-wagon"]["bob-cargo-wagon-3"].resistances, {type = "bob-pierce", decrease = 5, percent = 25}) + + table.insert(data.raw.locomotive["bob-armoured-diesel-locomotive"].resistances, {type = "bob-pierce", decrease = 15, percent = 90}) + table.insert(data.raw["cargo-wagon"]["bob-armoured-cargo-wagon"].resistances, {type = "bob-pierce", decrease = 15, percent = 90}) +end + diff --git a/boblogistics_0.14.0/data.lua b/boblogistics_0.14.2/data.lua similarity index 97% rename from boblogistics_0.14.0/data.lua rename to boblogistics_0.14.2/data.lua index 5348b98..af1dede 100644 --- a/boblogistics_0.14.0/data.lua +++ b/boblogistics_0.14.2/data.lua @@ -1,95 +1,95 @@ -if not bobmods then bobmods = {} end -if not bobmods.logistics then bobmods.logistics = {} end - -bobmods.logistics.ExtremelyFastBelt = true -bobmods.logistics.RoboportRecipeUpdate = true -bobmods.logistics.FlyingRobotFrames = true -bobmods.logistics.RobotParts = true -bobmods.logistics.RobotRequirePrevious = true - -bobmods.logistics.EnableVehicleGrids = true - -if bobmods and bobmods.config and bobmods.config.logistics then - if bobmods.config.logistics.ExtremelyFastBelt ~= nil then - bobmods.logistics.ExtremelyFastBelt = bobmods.config.logistics.ExtremelyFastBelt - end - if bobmods.config.logistics.RoboportRecipeUpdate ~= nil then - bobmods.logistics.RoboportRecipeUpdate = bobmods.config.logistics.RoboportRecipeUpdate - end - if bobmods.config.logistics.FlyingRobotFrames ~= nil then - bobmods.logistics.FlyingRobotFrames = bobmods.config.logistics.FlyingRobotFrames - end - if bobmods.config.logistics.RobotParts ~= nil then - bobmods.logistics.RobotParts = bobmods.config.logistics.RobotParts - end - if bobmods.config.logistics.RobotRequirePrevious ~= nil then - bobmods.logistics.RobotRequirePrevious = bobmods.config.logistics.RobotRequirePrevious - end -end - -if bobmods.config then - if bobmods.config.EnableVehicleGrids ~= nil then - bobmods.logistics.EnableVehicleGrids = bobmods.config.EnableVehicleGrids - end -end - - -require("prototypes.category") -require("prototypes.styles") - - -require("prototypes.green-transport-belt") -if bobmods.logistics.ExtremelyFastBelt == true then - require("prototypes.purple-transport-belt") -end - -require("prototypes.inserter") - -if bobmods.logistics.FlyingRobotFrames == true then - require("prototypes.robot-frames") -end - -if bobmods.logistics.RobotParts == true then - require("prototypes.robot-parts") -end - -require("prototypes.item.train") -require("prototypes.item.robots") -require("prototypes.item.roboport") -require("prototypes.item.roboport-parts") -require("prototypes.item.pipes") -require("prototypes.item.storage-tank") -require("prototypes.item.logistic-container") -require("prototypes.item.pump") - -require("prototypes.entity.train") -require("prototypes.entity.robots") -require("prototypes.entity.roboport") -require("prototypes.entity.pipes") -require("prototypes.entity.storage-tank") -require("prototypes.entity.logistic-container") -require("prototypes.entity.pump") - -require("prototypes.recipe.train-recipe") -require("prototypes.recipe.robots-recipe") -require("prototypes.recipe.roboport-recipe") -require("prototypes.recipe.roboport-parts-recipe") -require("prototypes.recipe.pipes-recipe") -require("prototypes.recipe.storage-tank-recipe") -require("prototypes.recipe.logistic-container-recipe") -require("prototypes.recipe.pump-recipe") - - -require("prototypes.technology") -require("prototypes.technology-logistics") -require("prototypes.technology-inserter") - -require("prototypes.valves") - -require("prototypes.equipment-grid") - -if bobmods.logistics.EnableVehicleGrids then - data.raw["locomotive"]["diesel-locomotive"].equipment_grid = "bob-diesel-locomotive" - data.raw["cargo-wagon"]["cargo-wagon"].equipment_grid = "bob-cargo-wagon" -end - +if not bobmods then bobmods = {} end +if not bobmods.logistics then bobmods.logistics = {} end + +bobmods.logistics.ExtremelyFastBelt = true +bobmods.logistics.RoboportRecipeUpdate = true +bobmods.logistics.FlyingRobotFrames = true +bobmods.logistics.RobotParts = true +bobmods.logistics.RobotRequirePrevious = true + +bobmods.logistics.EnableVehicleGrids = true + +if bobmods and bobmods.config and bobmods.config.logistics then + if bobmods.config.logistics.ExtremelyFastBelt ~= nil then + bobmods.logistics.ExtremelyFastBelt = bobmods.config.logistics.ExtremelyFastBelt + end + if bobmods.config.logistics.RoboportRecipeUpdate ~= nil then + bobmods.logistics.RoboportRecipeUpdate = bobmods.config.logistics.RoboportRecipeUpdate + end + if bobmods.config.logistics.FlyingRobotFrames ~= nil then + bobmods.logistics.FlyingRobotFrames = bobmods.config.logistics.FlyingRobotFrames + end + if bobmods.config.logistics.RobotParts ~= nil then + bobmods.logistics.RobotParts = bobmods.config.logistics.RobotParts + end + if bobmods.config.logistics.RobotRequirePrevious ~= nil then + bobmods.logistics.RobotRequirePrevious = bobmods.config.logistics.RobotRequirePrevious + end +end + +if bobmods.config then + if bobmods.config.EnableVehicleGrids ~= nil then + bobmods.logistics.EnableVehicleGrids = bobmods.config.EnableVehicleGrids + end +end + + +require("prototypes.category") +require("prototypes.styles") + + +require("prototypes.green-transport-belt") +if bobmods.logistics.ExtremelyFastBelt == true then + require("prototypes.purple-transport-belt") +end + +require("prototypes.inserter") + +if bobmods.logistics.FlyingRobotFrames == true then + require("prototypes.robot-frames") +end + +if bobmods.logistics.RobotParts == true then + require("prototypes.robot-parts") +end + +require("prototypes.item.train") +require("prototypes.item.robots") +require("prototypes.item.roboport") +require("prototypes.item.roboport-parts") +require("prototypes.item.pipes") +require("prototypes.item.storage-tank") +require("prototypes.item.logistic-container") +require("prototypes.item.pump") + +require("prototypes.entity.train") +require("prototypes.entity.robots") +require("prototypes.entity.roboport") +require("prototypes.entity.pipes") +require("prototypes.entity.storage-tank") +require("prototypes.entity.logistic-container") +require("prototypes.entity.pump") + +require("prototypes.recipe.train-recipe") +require("prototypes.recipe.robots-recipe") +require("prototypes.recipe.roboport-recipe") +require("prototypes.recipe.roboport-parts-recipe") +require("prototypes.recipe.pipes-recipe") +require("prototypes.recipe.storage-tank-recipe") +require("prototypes.recipe.logistic-container-recipe") +require("prototypes.recipe.pump-recipe") + + +require("prototypes.technology") +require("prototypes.technology-logistics") +require("prototypes.technology-inserter") + +require("prototypes.valves") + +require("prototypes.equipment-grid") + +if bobmods.logistics.EnableVehicleGrids then + data.raw["locomotive"]["diesel-locomotive"].equipment_grid = "bob-diesel-locomotive" + data.raw["cargo-wagon"]["cargo-wagon"].equipment_grid = "bob-cargo-wagon" +end + diff --git a/boblogistics_0.14.0/graphics/entity/inserter/burner-inserter-hand-base-shadow.png b/boblogistics_0.14.2/graphics/entity/inserter/burner-inserter-hand-base-shadow.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/inserter/burner-inserter-hand-base-shadow.png rename to boblogistics_0.14.2/graphics/entity/inserter/burner-inserter-hand-base-shadow.png diff --git a/boblogistics_0.14.0/graphics/entity/inserter/burner-inserter-hand-closed-shadow.png b/boblogistics_0.14.2/graphics/entity/inserter/burner-inserter-hand-closed-shadow.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/inserter/burner-inserter-hand-closed-shadow.png rename to boblogistics_0.14.2/graphics/entity/inserter/burner-inserter-hand-closed-shadow.png diff --git a/boblogistics_0.14.0/graphics/entity/inserter/burner-inserter-hand-open-shadow.png b/boblogistics_0.14.2/graphics/entity/inserter/burner-inserter-hand-open-shadow.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/inserter/burner-inserter-hand-open-shadow.png rename to boblogistics_0.14.2/graphics/entity/inserter/burner-inserter-hand-open-shadow.png diff --git a/boblogistics_0.14.0/graphics/entity/inserter/cyan-inserter-hand-base.png b/boblogistics_0.14.2/graphics/entity/inserter/cyan-inserter-hand-base.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/inserter/cyan-inserter-hand-base.png rename to boblogistics_0.14.2/graphics/entity/inserter/cyan-inserter-hand-base.png diff --git a/boblogistics_0.14.0/graphics/entity/inserter/cyan-inserter-hand-closed.png b/boblogistics_0.14.2/graphics/entity/inserter/cyan-inserter-hand-closed.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/inserter/cyan-inserter-hand-closed.png rename to boblogistics_0.14.2/graphics/entity/inserter/cyan-inserter-hand-closed.png diff --git a/boblogistics_0.14.0/graphics/entity/inserter/cyan-inserter-hand-open.png b/boblogistics_0.14.2/graphics/entity/inserter/cyan-inserter-hand-open.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/inserter/cyan-inserter-hand-open.png rename to boblogistics_0.14.2/graphics/entity/inserter/cyan-inserter-hand-open.png diff --git a/boblogistics_0.14.0/graphics/entity/inserter/cyan-inserter-platform.png b/boblogistics_0.14.2/graphics/entity/inserter/cyan-inserter-platform.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/inserter/cyan-inserter-platform.png rename to boblogistics_0.14.2/graphics/entity/inserter/cyan-inserter-platform.png diff --git a/boblogistics_0.14.0/graphics/entity/inserter/dark-green-big-inserter-hand-closed.png b/boblogistics_0.14.2/graphics/entity/inserter/dark-green-big-inserter-hand-closed.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/inserter/dark-green-big-inserter-hand-closed.png rename to boblogistics_0.14.2/graphics/entity/inserter/dark-green-big-inserter-hand-closed.png diff --git a/boblogistics_0.14.0/graphics/entity/inserter/dark-green-big-inserter-hand-open.png b/boblogistics_0.14.2/graphics/entity/inserter/dark-green-big-inserter-hand-open.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/inserter/dark-green-big-inserter-hand-open.png rename to boblogistics_0.14.2/graphics/entity/inserter/dark-green-big-inserter-hand-open.png diff --git a/boblogistics_0.14.0/graphics/entity/inserter/dark-green-inserter-hand-base.png b/boblogistics_0.14.2/graphics/entity/inserter/dark-green-inserter-hand-base.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/inserter/dark-green-inserter-hand-base.png rename to boblogistics_0.14.2/graphics/entity/inserter/dark-green-inserter-hand-base.png diff --git a/boblogistics_0.14.0/graphics/entity/inserter/dark-green-inserter-hand-closed.png b/boblogistics_0.14.2/graphics/entity/inserter/dark-green-inserter-hand-closed.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/inserter/dark-green-inserter-hand-closed.png rename to boblogistics_0.14.2/graphics/entity/inserter/dark-green-inserter-hand-closed.png diff --git a/boblogistics_0.14.0/graphics/entity/inserter/dark-green-inserter-hand-open.png b/boblogistics_0.14.2/graphics/entity/inserter/dark-green-inserter-hand-open.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/inserter/dark-green-inserter-hand-open.png rename to boblogistics_0.14.2/graphics/entity/inserter/dark-green-inserter-hand-open.png diff --git a/boblogistics_0.14.0/graphics/entity/inserter/dark-green-inserter-platform.png b/boblogistics_0.14.2/graphics/entity/inserter/dark-green-inserter-platform.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/inserter/dark-green-inserter-platform.png rename to boblogistics_0.14.2/graphics/entity/inserter/dark-green-inserter-platform.png diff --git a/boblogistics_0.14.0/graphics/entity/inserter/magenta-inserter-hand-base.png b/boblogistics_0.14.2/graphics/entity/inserter/magenta-inserter-hand-base.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/inserter/magenta-inserter-hand-base.png rename to boblogistics_0.14.2/graphics/entity/inserter/magenta-inserter-hand-base.png diff --git a/boblogistics_0.14.0/graphics/entity/inserter/magenta-inserter-hand-closed.png b/boblogistics_0.14.2/graphics/entity/inserter/magenta-inserter-hand-closed.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/inserter/magenta-inserter-hand-closed.png rename to boblogistics_0.14.2/graphics/entity/inserter/magenta-inserter-hand-closed.png diff --git a/boblogistics_0.14.0/graphics/entity/inserter/magenta-inserter-hand-open.png b/boblogistics_0.14.2/graphics/entity/inserter/magenta-inserter-hand-open.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/inserter/magenta-inserter-hand-open.png rename to boblogistics_0.14.2/graphics/entity/inserter/magenta-inserter-hand-open.png diff --git a/boblogistics_0.14.0/graphics/entity/inserter/magenta-inserter-platform.png b/boblogistics_0.14.2/graphics/entity/inserter/magenta-inserter-platform.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/inserter/magenta-inserter-platform.png rename to boblogistics_0.14.2/graphics/entity/inserter/magenta-inserter-platform.png diff --git a/boblogistics_0.14.0/graphics/entity/inserter/stripe-inserter-hand-base.png b/boblogistics_0.14.2/graphics/entity/inserter/stripe-inserter-hand-base.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/inserter/stripe-inserter-hand-base.png rename to boblogistics_0.14.2/graphics/entity/inserter/stripe-inserter-hand-base.png diff --git a/boblogistics_0.14.0/graphics/entity/inserter/stripe-inserter-hand-closed.png b/boblogistics_0.14.2/graphics/entity/inserter/stripe-inserter-hand-closed.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/inserter/stripe-inserter-hand-closed.png rename to boblogistics_0.14.2/graphics/entity/inserter/stripe-inserter-hand-closed.png diff --git a/boblogistics_0.14.0/graphics/entity/inserter/stripe-inserter-hand-open.png b/boblogistics_0.14.2/graphics/entity/inserter/stripe-inserter-hand-open.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/inserter/stripe-inserter-hand-open.png rename to boblogistics_0.14.2/graphics/entity/inserter/stripe-inserter-hand-open.png diff --git a/boblogistics_0.14.0/graphics/entity/inserter/stripe-inserter-platform.png b/boblogistics_0.14.2/graphics/entity/inserter/stripe-inserter-platform.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/inserter/stripe-inserter-platform.png rename to boblogistics_0.14.2/graphics/entity/inserter/stripe-inserter-platform.png diff --git a/boblogistics_0.14.0/graphics/entity/logistic-chest/logistic-chest-2.png b/boblogistics_0.14.2/graphics/entity/logistic-chest/logistic-chest-2.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/logistic-chest/logistic-chest-2.png rename to boblogistics_0.14.2/graphics/entity/logistic-chest/logistic-chest-2.png diff --git a/boblogistics_0.14.0/graphics/entity/logistic-chest/logistic-chest-mask.png b/boblogistics_0.14.2/graphics/entity/logistic-chest/logistic-chest-mask.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/logistic-chest/logistic-chest-mask.png rename to boblogistics_0.14.2/graphics/entity/logistic-chest/logistic-chest-mask.png diff --git a/boblogistics_0.14.0/graphics/entity/logistic-chest/logistic-chest.png b/boblogistics_0.14.2/graphics/entity/logistic-chest/logistic-chest.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/logistic-chest/logistic-chest.png rename to boblogistics_0.14.2/graphics/entity/logistic-chest/logistic-chest.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/brass/fluid-background.png b/boblogistics_0.14.2/graphics/entity/pipe/brass/fluid-background.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/brass/fluid-background.png rename to boblogistics_0.14.2/graphics/entity/pipe/brass/fluid-background.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/brass/fluid-flow-high-temperature.png b/boblogistics_0.14.2/graphics/entity/pipe/brass/fluid-flow-high-temperature.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/brass/fluid-flow-high-temperature.png rename to boblogistics_0.14.2/graphics/entity/pipe/brass/fluid-flow-high-temperature.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/brass/fluid-flow-low-temperature.png b/boblogistics_0.14.2/graphics/entity/pipe/brass/fluid-flow-low-temperature.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/brass/fluid-flow-low-temperature.png rename to boblogistics_0.14.2/graphics/entity/pipe/brass/fluid-flow-low-temperature.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/brass/fluid-flow-medium-temperature.png b/boblogistics_0.14.2/graphics/entity/pipe/brass/fluid-flow-medium-temperature.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/brass/fluid-flow-medium-temperature.png rename to boblogistics_0.14.2/graphics/entity/pipe/brass/fluid-flow-medium-temperature.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/brass/fluid-flow.png b/boblogistics_0.14.2/graphics/entity/pipe/brass/fluid-flow.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/brass/fluid-flow.png rename to boblogistics_0.14.2/graphics/entity/pipe/brass/fluid-flow.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/brass/pipe-corner-down-left.png b/boblogistics_0.14.2/graphics/entity/pipe/brass/pipe-corner-down-left.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/brass/pipe-corner-down-left.png rename to boblogistics_0.14.2/graphics/entity/pipe/brass/pipe-corner-down-left.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/brass/pipe-corner-down-right.png b/boblogistics_0.14.2/graphics/entity/pipe/brass/pipe-corner-down-right.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/brass/pipe-corner-down-right.png rename to boblogistics_0.14.2/graphics/entity/pipe/brass/pipe-corner-down-right.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/brass/pipe-corner-up-left.png b/boblogistics_0.14.2/graphics/entity/pipe/brass/pipe-corner-up-left.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/brass/pipe-corner-up-left.png rename to boblogistics_0.14.2/graphics/entity/pipe/brass/pipe-corner-up-left.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/brass/pipe-corner-up-right.png b/boblogistics_0.14.2/graphics/entity/pipe/brass/pipe-corner-up-right.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/brass/pipe-corner-up-right.png rename to boblogistics_0.14.2/graphics/entity/pipe/brass/pipe-corner-up-right.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/brass/pipe-cross.png b/boblogistics_0.14.2/graphics/entity/pipe/brass/pipe-cross.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/brass/pipe-cross.png rename to boblogistics_0.14.2/graphics/entity/pipe/brass/pipe-cross.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/brass/pipe-ending-down.png b/boblogistics_0.14.2/graphics/entity/pipe/brass/pipe-ending-down.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/brass/pipe-ending-down.png rename to boblogistics_0.14.2/graphics/entity/pipe/brass/pipe-ending-down.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/brass/pipe-ending-left.png b/boblogistics_0.14.2/graphics/entity/pipe/brass/pipe-ending-left.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/brass/pipe-ending-left.png rename to boblogistics_0.14.2/graphics/entity/pipe/brass/pipe-ending-left.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/brass/pipe-ending-right.png b/boblogistics_0.14.2/graphics/entity/pipe/brass/pipe-ending-right.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/brass/pipe-ending-right.png rename to boblogistics_0.14.2/graphics/entity/pipe/brass/pipe-ending-right.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/brass/pipe-ending-up.png b/boblogistics_0.14.2/graphics/entity/pipe/brass/pipe-ending-up.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/brass/pipe-ending-up.png rename to boblogistics_0.14.2/graphics/entity/pipe/brass/pipe-ending-up.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/brass/pipe-horizontal-window-background.png b/boblogistics_0.14.2/graphics/entity/pipe/brass/pipe-horizontal-window-background.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/brass/pipe-horizontal-window-background.png rename to boblogistics_0.14.2/graphics/entity/pipe/brass/pipe-horizontal-window-background.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/brass/pipe-straight-horizontal-single.png b/boblogistics_0.14.2/graphics/entity/pipe/brass/pipe-straight-horizontal-single.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/brass/pipe-straight-horizontal-single.png rename to boblogistics_0.14.2/graphics/entity/pipe/brass/pipe-straight-horizontal-single.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/brass/pipe-straight-horizontal-window.png b/boblogistics_0.14.2/graphics/entity/pipe/brass/pipe-straight-horizontal-window.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/brass/pipe-straight-horizontal-window.png rename to boblogistics_0.14.2/graphics/entity/pipe/brass/pipe-straight-horizontal-window.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/brass/pipe-straight-horizontal.png b/boblogistics_0.14.2/graphics/entity/pipe/brass/pipe-straight-horizontal.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/brass/pipe-straight-horizontal.png rename to boblogistics_0.14.2/graphics/entity/pipe/brass/pipe-straight-horizontal.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/brass/pipe-straight-vertical-single.png b/boblogistics_0.14.2/graphics/entity/pipe/brass/pipe-straight-vertical-single.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/brass/pipe-straight-vertical-single.png rename to boblogistics_0.14.2/graphics/entity/pipe/brass/pipe-straight-vertical-single.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/brass/pipe-straight-vertical-window.png b/boblogistics_0.14.2/graphics/entity/pipe/brass/pipe-straight-vertical-window.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/brass/pipe-straight-vertical-window.png rename to boblogistics_0.14.2/graphics/entity/pipe/brass/pipe-straight-vertical-window.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/brass/pipe-straight-vertical.png b/boblogistics_0.14.2/graphics/entity/pipe/brass/pipe-straight-vertical.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/brass/pipe-straight-vertical.png rename to boblogistics_0.14.2/graphics/entity/pipe/brass/pipe-straight-vertical.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/brass/pipe-t-down.png b/boblogistics_0.14.2/graphics/entity/pipe/brass/pipe-t-down.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/brass/pipe-t-down.png rename to boblogistics_0.14.2/graphics/entity/pipe/brass/pipe-t-down.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/brass/pipe-t-left.png b/boblogistics_0.14.2/graphics/entity/pipe/brass/pipe-t-left.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/brass/pipe-t-left.png rename to boblogistics_0.14.2/graphics/entity/pipe/brass/pipe-t-left.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/brass/pipe-t-right.png b/boblogistics_0.14.2/graphics/entity/pipe/brass/pipe-t-right.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/brass/pipe-t-right.png rename to boblogistics_0.14.2/graphics/entity/pipe/brass/pipe-t-right.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/brass/pipe-t-up.png b/boblogistics_0.14.2/graphics/entity/pipe/brass/pipe-t-up.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/brass/pipe-t-up.png rename to boblogistics_0.14.2/graphics/entity/pipe/brass/pipe-t-up.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/brass/pipe-to-ground-down.png b/boblogistics_0.14.2/graphics/entity/pipe/brass/pipe-to-ground-down.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/brass/pipe-to-ground-down.png rename to boblogistics_0.14.2/graphics/entity/pipe/brass/pipe-to-ground-down.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/brass/pipe-to-ground-left.png b/boblogistics_0.14.2/graphics/entity/pipe/brass/pipe-to-ground-left.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/brass/pipe-to-ground-left.png rename to boblogistics_0.14.2/graphics/entity/pipe/brass/pipe-to-ground-left.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/brass/pipe-to-ground-right.png b/boblogistics_0.14.2/graphics/entity/pipe/brass/pipe-to-ground-right.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/brass/pipe-to-ground-right.png rename to boblogistics_0.14.2/graphics/entity/pipe/brass/pipe-to-ground-right.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/brass/pipe-to-ground-up.png b/boblogistics_0.14.2/graphics/entity/pipe/brass/pipe-to-ground-up.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/brass/pipe-to-ground-up.png rename to boblogistics_0.14.2/graphics/entity/pipe/brass/pipe-to-ground-up.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/brass/pipe-vertical-window-background.png b/boblogistics_0.14.2/graphics/entity/pipe/brass/pipe-vertical-window-background.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/brass/pipe-vertical-window-background.png rename to boblogistics_0.14.2/graphics/entity/pipe/brass/pipe-vertical-window-background.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/brass/pipe.png b/boblogistics_0.14.2/graphics/entity/pipe/brass/pipe.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/brass/pipe.png rename to boblogistics_0.14.2/graphics/entity/pipe/brass/pipe.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/bronze/fluid-background.png b/boblogistics_0.14.2/graphics/entity/pipe/bronze/fluid-background.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/bronze/fluid-background.png rename to boblogistics_0.14.2/graphics/entity/pipe/bronze/fluid-background.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/bronze/fluid-flow-high-temperature.png b/boblogistics_0.14.2/graphics/entity/pipe/bronze/fluid-flow-high-temperature.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/bronze/fluid-flow-high-temperature.png rename to boblogistics_0.14.2/graphics/entity/pipe/bronze/fluid-flow-high-temperature.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/bronze/fluid-flow-low-temperature.png b/boblogistics_0.14.2/graphics/entity/pipe/bronze/fluid-flow-low-temperature.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/bronze/fluid-flow-low-temperature.png rename to boblogistics_0.14.2/graphics/entity/pipe/bronze/fluid-flow-low-temperature.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/bronze/fluid-flow-medium-temperature.png b/boblogistics_0.14.2/graphics/entity/pipe/bronze/fluid-flow-medium-temperature.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/bronze/fluid-flow-medium-temperature.png rename to boblogistics_0.14.2/graphics/entity/pipe/bronze/fluid-flow-medium-temperature.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/bronze/fluid-flow.png b/boblogistics_0.14.2/graphics/entity/pipe/bronze/fluid-flow.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/bronze/fluid-flow.png rename to boblogistics_0.14.2/graphics/entity/pipe/bronze/fluid-flow.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/bronze/pipe-corner-down-left.png b/boblogistics_0.14.2/graphics/entity/pipe/bronze/pipe-corner-down-left.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/bronze/pipe-corner-down-left.png rename to boblogistics_0.14.2/graphics/entity/pipe/bronze/pipe-corner-down-left.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/bronze/pipe-corner-down-right.png b/boblogistics_0.14.2/graphics/entity/pipe/bronze/pipe-corner-down-right.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/bronze/pipe-corner-down-right.png rename to boblogistics_0.14.2/graphics/entity/pipe/bronze/pipe-corner-down-right.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/bronze/pipe-corner-up-left.png b/boblogistics_0.14.2/graphics/entity/pipe/bronze/pipe-corner-up-left.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/bronze/pipe-corner-up-left.png rename to boblogistics_0.14.2/graphics/entity/pipe/bronze/pipe-corner-up-left.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/bronze/pipe-corner-up-right.png b/boblogistics_0.14.2/graphics/entity/pipe/bronze/pipe-corner-up-right.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/bronze/pipe-corner-up-right.png rename to boblogistics_0.14.2/graphics/entity/pipe/bronze/pipe-corner-up-right.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/bronze/pipe-cross.png b/boblogistics_0.14.2/graphics/entity/pipe/bronze/pipe-cross.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/bronze/pipe-cross.png rename to boblogistics_0.14.2/graphics/entity/pipe/bronze/pipe-cross.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/bronze/pipe-ending-down.png b/boblogistics_0.14.2/graphics/entity/pipe/bronze/pipe-ending-down.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/bronze/pipe-ending-down.png rename to boblogistics_0.14.2/graphics/entity/pipe/bronze/pipe-ending-down.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/bronze/pipe-ending-left.png b/boblogistics_0.14.2/graphics/entity/pipe/bronze/pipe-ending-left.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/bronze/pipe-ending-left.png rename to boblogistics_0.14.2/graphics/entity/pipe/bronze/pipe-ending-left.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/bronze/pipe-ending-right.png b/boblogistics_0.14.2/graphics/entity/pipe/bronze/pipe-ending-right.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/bronze/pipe-ending-right.png rename to boblogistics_0.14.2/graphics/entity/pipe/bronze/pipe-ending-right.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/bronze/pipe-ending-up.png b/boblogistics_0.14.2/graphics/entity/pipe/bronze/pipe-ending-up.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/bronze/pipe-ending-up.png rename to boblogistics_0.14.2/graphics/entity/pipe/bronze/pipe-ending-up.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/bronze/pipe-horizontal-window-background.png b/boblogistics_0.14.2/graphics/entity/pipe/bronze/pipe-horizontal-window-background.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/bronze/pipe-horizontal-window-background.png rename to boblogistics_0.14.2/graphics/entity/pipe/bronze/pipe-horizontal-window-background.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/bronze/pipe-straight-horizontal-single.png b/boblogistics_0.14.2/graphics/entity/pipe/bronze/pipe-straight-horizontal-single.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/bronze/pipe-straight-horizontal-single.png rename to boblogistics_0.14.2/graphics/entity/pipe/bronze/pipe-straight-horizontal-single.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/bronze/pipe-straight-horizontal-window.png b/boblogistics_0.14.2/graphics/entity/pipe/bronze/pipe-straight-horizontal-window.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/bronze/pipe-straight-horizontal-window.png rename to boblogistics_0.14.2/graphics/entity/pipe/bronze/pipe-straight-horizontal-window.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/bronze/pipe-straight-horizontal.png b/boblogistics_0.14.2/graphics/entity/pipe/bronze/pipe-straight-horizontal.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/bronze/pipe-straight-horizontal.png rename to boblogistics_0.14.2/graphics/entity/pipe/bronze/pipe-straight-horizontal.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/bronze/pipe-straight-vertical-single.png b/boblogistics_0.14.2/graphics/entity/pipe/bronze/pipe-straight-vertical-single.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/bronze/pipe-straight-vertical-single.png rename to boblogistics_0.14.2/graphics/entity/pipe/bronze/pipe-straight-vertical-single.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/bronze/pipe-straight-vertical-window.png b/boblogistics_0.14.2/graphics/entity/pipe/bronze/pipe-straight-vertical-window.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/bronze/pipe-straight-vertical-window.png rename to boblogistics_0.14.2/graphics/entity/pipe/bronze/pipe-straight-vertical-window.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/bronze/pipe-straight-vertical.png b/boblogistics_0.14.2/graphics/entity/pipe/bronze/pipe-straight-vertical.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/bronze/pipe-straight-vertical.png rename to boblogistics_0.14.2/graphics/entity/pipe/bronze/pipe-straight-vertical.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/bronze/pipe-t-down.png b/boblogistics_0.14.2/graphics/entity/pipe/bronze/pipe-t-down.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/bronze/pipe-t-down.png rename to boblogistics_0.14.2/graphics/entity/pipe/bronze/pipe-t-down.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/bronze/pipe-t-left.png b/boblogistics_0.14.2/graphics/entity/pipe/bronze/pipe-t-left.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/bronze/pipe-t-left.png rename to boblogistics_0.14.2/graphics/entity/pipe/bronze/pipe-t-left.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/bronze/pipe-t-right.png b/boblogistics_0.14.2/graphics/entity/pipe/bronze/pipe-t-right.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/bronze/pipe-t-right.png rename to boblogistics_0.14.2/graphics/entity/pipe/bronze/pipe-t-right.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/bronze/pipe-t-up.png b/boblogistics_0.14.2/graphics/entity/pipe/bronze/pipe-t-up.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/bronze/pipe-t-up.png rename to boblogistics_0.14.2/graphics/entity/pipe/bronze/pipe-t-up.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/bronze/pipe-to-ground-down.png b/boblogistics_0.14.2/graphics/entity/pipe/bronze/pipe-to-ground-down.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/bronze/pipe-to-ground-down.png rename to boblogistics_0.14.2/graphics/entity/pipe/bronze/pipe-to-ground-down.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/bronze/pipe-to-ground-left.png b/boblogistics_0.14.2/graphics/entity/pipe/bronze/pipe-to-ground-left.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/bronze/pipe-to-ground-left.png rename to boblogistics_0.14.2/graphics/entity/pipe/bronze/pipe-to-ground-left.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/bronze/pipe-to-ground-right.png b/boblogistics_0.14.2/graphics/entity/pipe/bronze/pipe-to-ground-right.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/bronze/pipe-to-ground-right.png rename to boblogistics_0.14.2/graphics/entity/pipe/bronze/pipe-to-ground-right.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/bronze/pipe-to-ground-up.png b/boblogistics_0.14.2/graphics/entity/pipe/bronze/pipe-to-ground-up.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/bronze/pipe-to-ground-up.png rename to boblogistics_0.14.2/graphics/entity/pipe/bronze/pipe-to-ground-up.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/bronze/pipe-vertical-window-background.png b/boblogistics_0.14.2/graphics/entity/pipe/bronze/pipe-vertical-window-background.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/bronze/pipe-vertical-window-background.png rename to boblogistics_0.14.2/graphics/entity/pipe/bronze/pipe-vertical-window-background.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/bronze/pipe.png b/boblogistics_0.14.2/graphics/entity/pipe/bronze/pipe.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/bronze/pipe.png rename to boblogistics_0.14.2/graphics/entity/pipe/bronze/pipe.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/ceramic/fluid-background.png b/boblogistics_0.14.2/graphics/entity/pipe/ceramic/fluid-background.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/ceramic/fluid-background.png rename to boblogistics_0.14.2/graphics/entity/pipe/ceramic/fluid-background.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/ceramic/fluid-flow-high-temperature.png b/boblogistics_0.14.2/graphics/entity/pipe/ceramic/fluid-flow-high-temperature.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/ceramic/fluid-flow-high-temperature.png rename to boblogistics_0.14.2/graphics/entity/pipe/ceramic/fluid-flow-high-temperature.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/ceramic/fluid-flow-low-temperature.png b/boblogistics_0.14.2/graphics/entity/pipe/ceramic/fluid-flow-low-temperature.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/ceramic/fluid-flow-low-temperature.png rename to boblogistics_0.14.2/graphics/entity/pipe/ceramic/fluid-flow-low-temperature.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/ceramic/fluid-flow-medium-temperature.png b/boblogistics_0.14.2/graphics/entity/pipe/ceramic/fluid-flow-medium-temperature.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/ceramic/fluid-flow-medium-temperature.png rename to boblogistics_0.14.2/graphics/entity/pipe/ceramic/fluid-flow-medium-temperature.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/ceramic/fluid-flow.png b/boblogistics_0.14.2/graphics/entity/pipe/ceramic/fluid-flow.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/ceramic/fluid-flow.png rename to boblogistics_0.14.2/graphics/entity/pipe/ceramic/fluid-flow.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/ceramic/pipe-corner-down-left.png b/boblogistics_0.14.2/graphics/entity/pipe/ceramic/pipe-corner-down-left.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/ceramic/pipe-corner-down-left.png rename to boblogistics_0.14.2/graphics/entity/pipe/ceramic/pipe-corner-down-left.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/ceramic/pipe-corner-down-right.png b/boblogistics_0.14.2/graphics/entity/pipe/ceramic/pipe-corner-down-right.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/ceramic/pipe-corner-down-right.png rename to boblogistics_0.14.2/graphics/entity/pipe/ceramic/pipe-corner-down-right.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/ceramic/pipe-corner-up-left.png b/boblogistics_0.14.2/graphics/entity/pipe/ceramic/pipe-corner-up-left.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/ceramic/pipe-corner-up-left.png rename to boblogistics_0.14.2/graphics/entity/pipe/ceramic/pipe-corner-up-left.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/ceramic/pipe-corner-up-right.png b/boblogistics_0.14.2/graphics/entity/pipe/ceramic/pipe-corner-up-right.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/ceramic/pipe-corner-up-right.png rename to boblogistics_0.14.2/graphics/entity/pipe/ceramic/pipe-corner-up-right.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/ceramic/pipe-cross.png b/boblogistics_0.14.2/graphics/entity/pipe/ceramic/pipe-cross.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/ceramic/pipe-cross.png rename to boblogistics_0.14.2/graphics/entity/pipe/ceramic/pipe-cross.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/ceramic/pipe-ending-down.png b/boblogistics_0.14.2/graphics/entity/pipe/ceramic/pipe-ending-down.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/ceramic/pipe-ending-down.png rename to boblogistics_0.14.2/graphics/entity/pipe/ceramic/pipe-ending-down.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/ceramic/pipe-ending-left.png b/boblogistics_0.14.2/graphics/entity/pipe/ceramic/pipe-ending-left.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/ceramic/pipe-ending-left.png rename to boblogistics_0.14.2/graphics/entity/pipe/ceramic/pipe-ending-left.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/ceramic/pipe-ending-right.png b/boblogistics_0.14.2/graphics/entity/pipe/ceramic/pipe-ending-right.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/ceramic/pipe-ending-right.png rename to boblogistics_0.14.2/graphics/entity/pipe/ceramic/pipe-ending-right.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/ceramic/pipe-ending-up.png b/boblogistics_0.14.2/graphics/entity/pipe/ceramic/pipe-ending-up.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/ceramic/pipe-ending-up.png rename to boblogistics_0.14.2/graphics/entity/pipe/ceramic/pipe-ending-up.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/ceramic/pipe-horizontal-window-background.png b/boblogistics_0.14.2/graphics/entity/pipe/ceramic/pipe-horizontal-window-background.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/ceramic/pipe-horizontal-window-background.png rename to boblogistics_0.14.2/graphics/entity/pipe/ceramic/pipe-horizontal-window-background.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/ceramic/pipe-straight-horizontal-single.png b/boblogistics_0.14.2/graphics/entity/pipe/ceramic/pipe-straight-horizontal-single.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/ceramic/pipe-straight-horizontal-single.png rename to boblogistics_0.14.2/graphics/entity/pipe/ceramic/pipe-straight-horizontal-single.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/ceramic/pipe-straight-horizontal-window.png b/boblogistics_0.14.2/graphics/entity/pipe/ceramic/pipe-straight-horizontal-window.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/ceramic/pipe-straight-horizontal-window.png rename to boblogistics_0.14.2/graphics/entity/pipe/ceramic/pipe-straight-horizontal-window.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/ceramic/pipe-straight-horizontal.png b/boblogistics_0.14.2/graphics/entity/pipe/ceramic/pipe-straight-horizontal.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/ceramic/pipe-straight-horizontal.png rename to boblogistics_0.14.2/graphics/entity/pipe/ceramic/pipe-straight-horizontal.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/ceramic/pipe-straight-vertical-single.png b/boblogistics_0.14.2/graphics/entity/pipe/ceramic/pipe-straight-vertical-single.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/ceramic/pipe-straight-vertical-single.png rename to boblogistics_0.14.2/graphics/entity/pipe/ceramic/pipe-straight-vertical-single.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/ceramic/pipe-straight-vertical-window.png b/boblogistics_0.14.2/graphics/entity/pipe/ceramic/pipe-straight-vertical-window.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/ceramic/pipe-straight-vertical-window.png rename to boblogistics_0.14.2/graphics/entity/pipe/ceramic/pipe-straight-vertical-window.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/ceramic/pipe-straight-vertical.png b/boblogistics_0.14.2/graphics/entity/pipe/ceramic/pipe-straight-vertical.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/ceramic/pipe-straight-vertical.png rename to boblogistics_0.14.2/graphics/entity/pipe/ceramic/pipe-straight-vertical.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/ceramic/pipe-t-down.png b/boblogistics_0.14.2/graphics/entity/pipe/ceramic/pipe-t-down.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/ceramic/pipe-t-down.png rename to boblogistics_0.14.2/graphics/entity/pipe/ceramic/pipe-t-down.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/ceramic/pipe-t-left.png b/boblogistics_0.14.2/graphics/entity/pipe/ceramic/pipe-t-left.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/ceramic/pipe-t-left.png rename to boblogistics_0.14.2/graphics/entity/pipe/ceramic/pipe-t-left.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/ceramic/pipe-t-right.png b/boblogistics_0.14.2/graphics/entity/pipe/ceramic/pipe-t-right.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/ceramic/pipe-t-right.png rename to boblogistics_0.14.2/graphics/entity/pipe/ceramic/pipe-t-right.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/ceramic/pipe-t-up.png b/boblogistics_0.14.2/graphics/entity/pipe/ceramic/pipe-t-up.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/ceramic/pipe-t-up.png rename to boblogistics_0.14.2/graphics/entity/pipe/ceramic/pipe-t-up.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/ceramic/pipe-to-ground-down.png b/boblogistics_0.14.2/graphics/entity/pipe/ceramic/pipe-to-ground-down.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/ceramic/pipe-to-ground-down.png rename to boblogistics_0.14.2/graphics/entity/pipe/ceramic/pipe-to-ground-down.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/ceramic/pipe-to-ground-left.png b/boblogistics_0.14.2/graphics/entity/pipe/ceramic/pipe-to-ground-left.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/ceramic/pipe-to-ground-left.png rename to boblogistics_0.14.2/graphics/entity/pipe/ceramic/pipe-to-ground-left.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/ceramic/pipe-to-ground-right.png b/boblogistics_0.14.2/graphics/entity/pipe/ceramic/pipe-to-ground-right.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/ceramic/pipe-to-ground-right.png rename to boblogistics_0.14.2/graphics/entity/pipe/ceramic/pipe-to-ground-right.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/ceramic/pipe-to-ground-up.png b/boblogistics_0.14.2/graphics/entity/pipe/ceramic/pipe-to-ground-up.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/ceramic/pipe-to-ground-up.png rename to boblogistics_0.14.2/graphics/entity/pipe/ceramic/pipe-to-ground-up.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/ceramic/pipe-vertical-window-background.png b/boblogistics_0.14.2/graphics/entity/pipe/ceramic/pipe-vertical-window-background.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/ceramic/pipe-vertical-window-background.png rename to boblogistics_0.14.2/graphics/entity/pipe/ceramic/pipe-vertical-window-background.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/ceramic/pipe.png b/boblogistics_0.14.2/graphics/entity/pipe/ceramic/pipe.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/ceramic/pipe.png rename to boblogistics_0.14.2/graphics/entity/pipe/ceramic/pipe.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/copper/fluid-background.png b/boblogistics_0.14.2/graphics/entity/pipe/copper/fluid-background.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/copper/fluid-background.png rename to boblogistics_0.14.2/graphics/entity/pipe/copper/fluid-background.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/copper/fluid-flow-high-temperature.png b/boblogistics_0.14.2/graphics/entity/pipe/copper/fluid-flow-high-temperature.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/copper/fluid-flow-high-temperature.png rename to boblogistics_0.14.2/graphics/entity/pipe/copper/fluid-flow-high-temperature.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/copper/fluid-flow-low-temperature.png b/boblogistics_0.14.2/graphics/entity/pipe/copper/fluid-flow-low-temperature.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/copper/fluid-flow-low-temperature.png rename to boblogistics_0.14.2/graphics/entity/pipe/copper/fluid-flow-low-temperature.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/copper/fluid-flow-medium-temperature.png b/boblogistics_0.14.2/graphics/entity/pipe/copper/fluid-flow-medium-temperature.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/copper/fluid-flow-medium-temperature.png rename to boblogistics_0.14.2/graphics/entity/pipe/copper/fluid-flow-medium-temperature.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/copper/fluid-flow.png b/boblogistics_0.14.2/graphics/entity/pipe/copper/fluid-flow.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/copper/fluid-flow.png rename to boblogistics_0.14.2/graphics/entity/pipe/copper/fluid-flow.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/copper/pipe-corner-down-left.png b/boblogistics_0.14.2/graphics/entity/pipe/copper/pipe-corner-down-left.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/copper/pipe-corner-down-left.png rename to boblogistics_0.14.2/graphics/entity/pipe/copper/pipe-corner-down-left.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/copper/pipe-corner-down-right.png b/boblogistics_0.14.2/graphics/entity/pipe/copper/pipe-corner-down-right.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/copper/pipe-corner-down-right.png rename to boblogistics_0.14.2/graphics/entity/pipe/copper/pipe-corner-down-right.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/copper/pipe-corner-up-left.png b/boblogistics_0.14.2/graphics/entity/pipe/copper/pipe-corner-up-left.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/copper/pipe-corner-up-left.png rename to boblogistics_0.14.2/graphics/entity/pipe/copper/pipe-corner-up-left.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/copper/pipe-corner-up-right.png b/boblogistics_0.14.2/graphics/entity/pipe/copper/pipe-corner-up-right.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/copper/pipe-corner-up-right.png rename to boblogistics_0.14.2/graphics/entity/pipe/copper/pipe-corner-up-right.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/copper/pipe-cross.png b/boblogistics_0.14.2/graphics/entity/pipe/copper/pipe-cross.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/copper/pipe-cross.png rename to boblogistics_0.14.2/graphics/entity/pipe/copper/pipe-cross.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/copper/pipe-ending-down.png b/boblogistics_0.14.2/graphics/entity/pipe/copper/pipe-ending-down.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/copper/pipe-ending-down.png rename to boblogistics_0.14.2/graphics/entity/pipe/copper/pipe-ending-down.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/copper/pipe-ending-left.png b/boblogistics_0.14.2/graphics/entity/pipe/copper/pipe-ending-left.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/copper/pipe-ending-left.png rename to boblogistics_0.14.2/graphics/entity/pipe/copper/pipe-ending-left.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/copper/pipe-ending-right.png b/boblogistics_0.14.2/graphics/entity/pipe/copper/pipe-ending-right.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/copper/pipe-ending-right.png rename to boblogistics_0.14.2/graphics/entity/pipe/copper/pipe-ending-right.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/copper/pipe-ending-up.png b/boblogistics_0.14.2/graphics/entity/pipe/copper/pipe-ending-up.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/copper/pipe-ending-up.png rename to boblogistics_0.14.2/graphics/entity/pipe/copper/pipe-ending-up.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/copper/pipe-horizontal-window-background.png b/boblogistics_0.14.2/graphics/entity/pipe/copper/pipe-horizontal-window-background.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/copper/pipe-horizontal-window-background.png rename to boblogistics_0.14.2/graphics/entity/pipe/copper/pipe-horizontal-window-background.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/copper/pipe-straight-horizontal-single.png b/boblogistics_0.14.2/graphics/entity/pipe/copper/pipe-straight-horizontal-single.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/copper/pipe-straight-horizontal-single.png rename to boblogistics_0.14.2/graphics/entity/pipe/copper/pipe-straight-horizontal-single.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/copper/pipe-straight-horizontal-window.png b/boblogistics_0.14.2/graphics/entity/pipe/copper/pipe-straight-horizontal-window.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/copper/pipe-straight-horizontal-window.png rename to boblogistics_0.14.2/graphics/entity/pipe/copper/pipe-straight-horizontal-window.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/copper/pipe-straight-horizontal.png b/boblogistics_0.14.2/graphics/entity/pipe/copper/pipe-straight-horizontal.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/copper/pipe-straight-horizontal.png rename to boblogistics_0.14.2/graphics/entity/pipe/copper/pipe-straight-horizontal.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/copper/pipe-straight-vertical-single.png b/boblogistics_0.14.2/graphics/entity/pipe/copper/pipe-straight-vertical-single.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/copper/pipe-straight-vertical-single.png rename to boblogistics_0.14.2/graphics/entity/pipe/copper/pipe-straight-vertical-single.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/copper/pipe-straight-vertical-window.png b/boblogistics_0.14.2/graphics/entity/pipe/copper/pipe-straight-vertical-window.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/copper/pipe-straight-vertical-window.png rename to boblogistics_0.14.2/graphics/entity/pipe/copper/pipe-straight-vertical-window.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/copper/pipe-straight-vertical.png b/boblogistics_0.14.2/graphics/entity/pipe/copper/pipe-straight-vertical.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/copper/pipe-straight-vertical.png rename to boblogistics_0.14.2/graphics/entity/pipe/copper/pipe-straight-vertical.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/copper/pipe-t-down.png b/boblogistics_0.14.2/graphics/entity/pipe/copper/pipe-t-down.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/copper/pipe-t-down.png rename to boblogistics_0.14.2/graphics/entity/pipe/copper/pipe-t-down.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/copper/pipe-t-left.png b/boblogistics_0.14.2/graphics/entity/pipe/copper/pipe-t-left.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/copper/pipe-t-left.png rename to boblogistics_0.14.2/graphics/entity/pipe/copper/pipe-t-left.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/copper/pipe-t-right.png b/boblogistics_0.14.2/graphics/entity/pipe/copper/pipe-t-right.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/copper/pipe-t-right.png rename to boblogistics_0.14.2/graphics/entity/pipe/copper/pipe-t-right.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/copper/pipe-t-up.png b/boblogistics_0.14.2/graphics/entity/pipe/copper/pipe-t-up.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/copper/pipe-t-up.png rename to boblogistics_0.14.2/graphics/entity/pipe/copper/pipe-t-up.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/copper/pipe-to-ground-down.png b/boblogistics_0.14.2/graphics/entity/pipe/copper/pipe-to-ground-down.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/copper/pipe-to-ground-down.png rename to boblogistics_0.14.2/graphics/entity/pipe/copper/pipe-to-ground-down.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/copper/pipe-to-ground-left.png b/boblogistics_0.14.2/graphics/entity/pipe/copper/pipe-to-ground-left.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/copper/pipe-to-ground-left.png rename to boblogistics_0.14.2/graphics/entity/pipe/copper/pipe-to-ground-left.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/copper/pipe-to-ground-right.png b/boblogistics_0.14.2/graphics/entity/pipe/copper/pipe-to-ground-right.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/copper/pipe-to-ground-right.png rename to boblogistics_0.14.2/graphics/entity/pipe/copper/pipe-to-ground-right.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/copper/pipe-to-ground-up.png b/boblogistics_0.14.2/graphics/entity/pipe/copper/pipe-to-ground-up.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/copper/pipe-to-ground-up.png rename to boblogistics_0.14.2/graphics/entity/pipe/copper/pipe-to-ground-up.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/copper/pipe-vertical-window-background.png b/boblogistics_0.14.2/graphics/entity/pipe/copper/pipe-vertical-window-background.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/copper/pipe-vertical-window-background.png rename to boblogistics_0.14.2/graphics/entity/pipe/copper/pipe-vertical-window-background.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/copper/pipe.png b/boblogistics_0.14.2/graphics/entity/pipe/copper/pipe.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/copper/pipe.png rename to boblogistics_0.14.2/graphics/entity/pipe/copper/pipe.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/plastic/fluid-background.png b/boblogistics_0.14.2/graphics/entity/pipe/plastic/fluid-background.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/plastic/fluid-background.png rename to boblogistics_0.14.2/graphics/entity/pipe/plastic/fluid-background.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/plastic/fluid-flow-high-temperature.png b/boblogistics_0.14.2/graphics/entity/pipe/plastic/fluid-flow-high-temperature.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/plastic/fluid-flow-high-temperature.png rename to boblogistics_0.14.2/graphics/entity/pipe/plastic/fluid-flow-high-temperature.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/plastic/fluid-flow-low-temperature.png b/boblogistics_0.14.2/graphics/entity/pipe/plastic/fluid-flow-low-temperature.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/plastic/fluid-flow-low-temperature.png rename to boblogistics_0.14.2/graphics/entity/pipe/plastic/fluid-flow-low-temperature.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/plastic/fluid-flow-medium-temperature.png b/boblogistics_0.14.2/graphics/entity/pipe/plastic/fluid-flow-medium-temperature.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/plastic/fluid-flow-medium-temperature.png rename to boblogistics_0.14.2/graphics/entity/pipe/plastic/fluid-flow-medium-temperature.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/plastic/fluid-flow.png b/boblogistics_0.14.2/graphics/entity/pipe/plastic/fluid-flow.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/plastic/fluid-flow.png rename to boblogistics_0.14.2/graphics/entity/pipe/plastic/fluid-flow.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/plastic/pipe-corner-down-left.png b/boblogistics_0.14.2/graphics/entity/pipe/plastic/pipe-corner-down-left.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/plastic/pipe-corner-down-left.png rename to boblogistics_0.14.2/graphics/entity/pipe/plastic/pipe-corner-down-left.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/plastic/pipe-corner-down-right.png b/boblogistics_0.14.2/graphics/entity/pipe/plastic/pipe-corner-down-right.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/plastic/pipe-corner-down-right.png rename to boblogistics_0.14.2/graphics/entity/pipe/plastic/pipe-corner-down-right.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/plastic/pipe-corner-up-left.png b/boblogistics_0.14.2/graphics/entity/pipe/plastic/pipe-corner-up-left.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/plastic/pipe-corner-up-left.png rename to boblogistics_0.14.2/graphics/entity/pipe/plastic/pipe-corner-up-left.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/plastic/pipe-corner-up-right.png b/boblogistics_0.14.2/graphics/entity/pipe/plastic/pipe-corner-up-right.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/plastic/pipe-corner-up-right.png rename to boblogistics_0.14.2/graphics/entity/pipe/plastic/pipe-corner-up-right.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/plastic/pipe-cross.png b/boblogistics_0.14.2/graphics/entity/pipe/plastic/pipe-cross.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/plastic/pipe-cross.png rename to boblogistics_0.14.2/graphics/entity/pipe/plastic/pipe-cross.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/plastic/pipe-ending-down.png b/boblogistics_0.14.2/graphics/entity/pipe/plastic/pipe-ending-down.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/plastic/pipe-ending-down.png rename to boblogistics_0.14.2/graphics/entity/pipe/plastic/pipe-ending-down.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/plastic/pipe-ending-left.png b/boblogistics_0.14.2/graphics/entity/pipe/plastic/pipe-ending-left.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/plastic/pipe-ending-left.png rename to boblogistics_0.14.2/graphics/entity/pipe/plastic/pipe-ending-left.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/plastic/pipe-ending-right.png b/boblogistics_0.14.2/graphics/entity/pipe/plastic/pipe-ending-right.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/plastic/pipe-ending-right.png rename to boblogistics_0.14.2/graphics/entity/pipe/plastic/pipe-ending-right.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/plastic/pipe-ending-up.png b/boblogistics_0.14.2/graphics/entity/pipe/plastic/pipe-ending-up.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/plastic/pipe-ending-up.png rename to boblogistics_0.14.2/graphics/entity/pipe/plastic/pipe-ending-up.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/plastic/pipe-horizontal-window-background.png b/boblogistics_0.14.2/graphics/entity/pipe/plastic/pipe-horizontal-window-background.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/plastic/pipe-horizontal-window-background.png rename to boblogistics_0.14.2/graphics/entity/pipe/plastic/pipe-horizontal-window-background.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/plastic/pipe-straight-horizontal-single.png b/boblogistics_0.14.2/graphics/entity/pipe/plastic/pipe-straight-horizontal-single.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/plastic/pipe-straight-horizontal-single.png rename to boblogistics_0.14.2/graphics/entity/pipe/plastic/pipe-straight-horizontal-single.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/plastic/pipe-straight-horizontal-window.png b/boblogistics_0.14.2/graphics/entity/pipe/plastic/pipe-straight-horizontal-window.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/plastic/pipe-straight-horizontal-window.png rename to boblogistics_0.14.2/graphics/entity/pipe/plastic/pipe-straight-horizontal-window.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/plastic/pipe-straight-horizontal.png b/boblogistics_0.14.2/graphics/entity/pipe/plastic/pipe-straight-horizontal.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/plastic/pipe-straight-horizontal.png rename to boblogistics_0.14.2/graphics/entity/pipe/plastic/pipe-straight-horizontal.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/plastic/pipe-straight-vertical-single.png b/boblogistics_0.14.2/graphics/entity/pipe/plastic/pipe-straight-vertical-single.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/plastic/pipe-straight-vertical-single.png rename to boblogistics_0.14.2/graphics/entity/pipe/plastic/pipe-straight-vertical-single.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/plastic/pipe-straight-vertical-window.png b/boblogistics_0.14.2/graphics/entity/pipe/plastic/pipe-straight-vertical-window.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/plastic/pipe-straight-vertical-window.png rename to boblogistics_0.14.2/graphics/entity/pipe/plastic/pipe-straight-vertical-window.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/plastic/pipe-straight-vertical.png b/boblogistics_0.14.2/graphics/entity/pipe/plastic/pipe-straight-vertical.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/plastic/pipe-straight-vertical.png rename to boblogistics_0.14.2/graphics/entity/pipe/plastic/pipe-straight-vertical.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/plastic/pipe-t-down.png b/boblogistics_0.14.2/graphics/entity/pipe/plastic/pipe-t-down.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/plastic/pipe-t-down.png rename to boblogistics_0.14.2/graphics/entity/pipe/plastic/pipe-t-down.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/plastic/pipe-t-left.png b/boblogistics_0.14.2/graphics/entity/pipe/plastic/pipe-t-left.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/plastic/pipe-t-left.png rename to boblogistics_0.14.2/graphics/entity/pipe/plastic/pipe-t-left.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/plastic/pipe-t-right.png b/boblogistics_0.14.2/graphics/entity/pipe/plastic/pipe-t-right.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/plastic/pipe-t-right.png rename to boblogistics_0.14.2/graphics/entity/pipe/plastic/pipe-t-right.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/plastic/pipe-t-up.png b/boblogistics_0.14.2/graphics/entity/pipe/plastic/pipe-t-up.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/plastic/pipe-t-up.png rename to boblogistics_0.14.2/graphics/entity/pipe/plastic/pipe-t-up.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/plastic/pipe-to-ground-down.png b/boblogistics_0.14.2/graphics/entity/pipe/plastic/pipe-to-ground-down.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/plastic/pipe-to-ground-down.png rename to boblogistics_0.14.2/graphics/entity/pipe/plastic/pipe-to-ground-down.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/plastic/pipe-to-ground-left.png b/boblogistics_0.14.2/graphics/entity/pipe/plastic/pipe-to-ground-left.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/plastic/pipe-to-ground-left.png rename to boblogistics_0.14.2/graphics/entity/pipe/plastic/pipe-to-ground-left.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/plastic/pipe-to-ground-right.png b/boblogistics_0.14.2/graphics/entity/pipe/plastic/pipe-to-ground-right.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/plastic/pipe-to-ground-right.png rename to boblogistics_0.14.2/graphics/entity/pipe/plastic/pipe-to-ground-right.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/plastic/pipe-to-ground-up.png b/boblogistics_0.14.2/graphics/entity/pipe/plastic/pipe-to-ground-up.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/plastic/pipe-to-ground-up.png rename to boblogistics_0.14.2/graphics/entity/pipe/plastic/pipe-to-ground-up.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/plastic/pipe-vertical-window-background.png b/boblogistics_0.14.2/graphics/entity/pipe/plastic/pipe-vertical-window-background.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/plastic/pipe-vertical-window-background.png rename to boblogistics_0.14.2/graphics/entity/pipe/plastic/pipe-vertical-window-background.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/plastic/pipe.png b/boblogistics_0.14.2/graphics/entity/pipe/plastic/pipe.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/plastic/pipe.png rename to boblogistics_0.14.2/graphics/entity/pipe/plastic/pipe.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/steel/fluid-background.png b/boblogistics_0.14.2/graphics/entity/pipe/steel/fluid-background.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/steel/fluid-background.png rename to boblogistics_0.14.2/graphics/entity/pipe/steel/fluid-background.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/steel/fluid-flow-high-temperature.png b/boblogistics_0.14.2/graphics/entity/pipe/steel/fluid-flow-high-temperature.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/steel/fluid-flow-high-temperature.png rename to boblogistics_0.14.2/graphics/entity/pipe/steel/fluid-flow-high-temperature.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/steel/fluid-flow-low-temperature.png b/boblogistics_0.14.2/graphics/entity/pipe/steel/fluid-flow-low-temperature.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/steel/fluid-flow-low-temperature.png rename to boblogistics_0.14.2/graphics/entity/pipe/steel/fluid-flow-low-temperature.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/steel/fluid-flow-medium-temperature.png b/boblogistics_0.14.2/graphics/entity/pipe/steel/fluid-flow-medium-temperature.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/steel/fluid-flow-medium-temperature.png rename to boblogistics_0.14.2/graphics/entity/pipe/steel/fluid-flow-medium-temperature.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/steel/fluid-flow.png b/boblogistics_0.14.2/graphics/entity/pipe/steel/fluid-flow.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/steel/fluid-flow.png rename to boblogistics_0.14.2/graphics/entity/pipe/steel/fluid-flow.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/steel/pipe-corner-down-left.png b/boblogistics_0.14.2/graphics/entity/pipe/steel/pipe-corner-down-left.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/steel/pipe-corner-down-left.png rename to boblogistics_0.14.2/graphics/entity/pipe/steel/pipe-corner-down-left.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/steel/pipe-corner-down-right.png b/boblogistics_0.14.2/graphics/entity/pipe/steel/pipe-corner-down-right.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/steel/pipe-corner-down-right.png rename to boblogistics_0.14.2/graphics/entity/pipe/steel/pipe-corner-down-right.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/steel/pipe-corner-up-left.png b/boblogistics_0.14.2/graphics/entity/pipe/steel/pipe-corner-up-left.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/steel/pipe-corner-up-left.png rename to boblogistics_0.14.2/graphics/entity/pipe/steel/pipe-corner-up-left.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/steel/pipe-corner-up-right.png b/boblogistics_0.14.2/graphics/entity/pipe/steel/pipe-corner-up-right.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/steel/pipe-corner-up-right.png rename to boblogistics_0.14.2/graphics/entity/pipe/steel/pipe-corner-up-right.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/steel/pipe-cross.png b/boblogistics_0.14.2/graphics/entity/pipe/steel/pipe-cross.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/steel/pipe-cross.png rename to boblogistics_0.14.2/graphics/entity/pipe/steel/pipe-cross.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/steel/pipe-ending-down.png b/boblogistics_0.14.2/graphics/entity/pipe/steel/pipe-ending-down.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/steel/pipe-ending-down.png rename to boblogistics_0.14.2/graphics/entity/pipe/steel/pipe-ending-down.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/steel/pipe-ending-left.png b/boblogistics_0.14.2/graphics/entity/pipe/steel/pipe-ending-left.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/steel/pipe-ending-left.png rename to boblogistics_0.14.2/graphics/entity/pipe/steel/pipe-ending-left.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/steel/pipe-ending-right.png b/boblogistics_0.14.2/graphics/entity/pipe/steel/pipe-ending-right.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/steel/pipe-ending-right.png rename to boblogistics_0.14.2/graphics/entity/pipe/steel/pipe-ending-right.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/steel/pipe-ending-up.png b/boblogistics_0.14.2/graphics/entity/pipe/steel/pipe-ending-up.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/steel/pipe-ending-up.png rename to boblogistics_0.14.2/graphics/entity/pipe/steel/pipe-ending-up.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/steel/pipe-horizontal-window-background.png b/boblogistics_0.14.2/graphics/entity/pipe/steel/pipe-horizontal-window-background.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/steel/pipe-horizontal-window-background.png rename to boblogistics_0.14.2/graphics/entity/pipe/steel/pipe-horizontal-window-background.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/steel/pipe-straight-horizontal-single.png b/boblogistics_0.14.2/graphics/entity/pipe/steel/pipe-straight-horizontal-single.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/steel/pipe-straight-horizontal-single.png rename to boblogistics_0.14.2/graphics/entity/pipe/steel/pipe-straight-horizontal-single.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/steel/pipe-straight-horizontal-window.png b/boblogistics_0.14.2/graphics/entity/pipe/steel/pipe-straight-horizontal-window.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/steel/pipe-straight-horizontal-window.png rename to boblogistics_0.14.2/graphics/entity/pipe/steel/pipe-straight-horizontal-window.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/steel/pipe-straight-horizontal.png b/boblogistics_0.14.2/graphics/entity/pipe/steel/pipe-straight-horizontal.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/steel/pipe-straight-horizontal.png rename to boblogistics_0.14.2/graphics/entity/pipe/steel/pipe-straight-horizontal.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/steel/pipe-straight-vertical-single.png b/boblogistics_0.14.2/graphics/entity/pipe/steel/pipe-straight-vertical-single.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/steel/pipe-straight-vertical-single.png rename to boblogistics_0.14.2/graphics/entity/pipe/steel/pipe-straight-vertical-single.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/steel/pipe-straight-vertical-window.png b/boblogistics_0.14.2/graphics/entity/pipe/steel/pipe-straight-vertical-window.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/steel/pipe-straight-vertical-window.png rename to boblogistics_0.14.2/graphics/entity/pipe/steel/pipe-straight-vertical-window.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/steel/pipe-straight-vertical.png b/boblogistics_0.14.2/graphics/entity/pipe/steel/pipe-straight-vertical.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/steel/pipe-straight-vertical.png rename to boblogistics_0.14.2/graphics/entity/pipe/steel/pipe-straight-vertical.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/steel/pipe-t-down.png b/boblogistics_0.14.2/graphics/entity/pipe/steel/pipe-t-down.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/steel/pipe-t-down.png rename to boblogistics_0.14.2/graphics/entity/pipe/steel/pipe-t-down.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/steel/pipe-t-left.png b/boblogistics_0.14.2/graphics/entity/pipe/steel/pipe-t-left.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/steel/pipe-t-left.png rename to boblogistics_0.14.2/graphics/entity/pipe/steel/pipe-t-left.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/steel/pipe-t-right.png b/boblogistics_0.14.2/graphics/entity/pipe/steel/pipe-t-right.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/steel/pipe-t-right.png rename to boblogistics_0.14.2/graphics/entity/pipe/steel/pipe-t-right.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/steel/pipe-t-up.png b/boblogistics_0.14.2/graphics/entity/pipe/steel/pipe-t-up.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/steel/pipe-t-up.png rename to boblogistics_0.14.2/graphics/entity/pipe/steel/pipe-t-up.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/steel/pipe-to-ground-down.png b/boblogistics_0.14.2/graphics/entity/pipe/steel/pipe-to-ground-down.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/steel/pipe-to-ground-down.png rename to boblogistics_0.14.2/graphics/entity/pipe/steel/pipe-to-ground-down.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/steel/pipe-to-ground-left.png b/boblogistics_0.14.2/graphics/entity/pipe/steel/pipe-to-ground-left.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/steel/pipe-to-ground-left.png rename to boblogistics_0.14.2/graphics/entity/pipe/steel/pipe-to-ground-left.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/steel/pipe-to-ground-right.png b/boblogistics_0.14.2/graphics/entity/pipe/steel/pipe-to-ground-right.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/steel/pipe-to-ground-right.png rename to boblogistics_0.14.2/graphics/entity/pipe/steel/pipe-to-ground-right.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/steel/pipe-to-ground-up.png b/boblogistics_0.14.2/graphics/entity/pipe/steel/pipe-to-ground-up.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/steel/pipe-to-ground-up.png rename to boblogistics_0.14.2/graphics/entity/pipe/steel/pipe-to-ground-up.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/steel/pipe-vertical-window-background.png b/boblogistics_0.14.2/graphics/entity/pipe/steel/pipe-vertical-window-background.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/steel/pipe-vertical-window-background.png rename to boblogistics_0.14.2/graphics/entity/pipe/steel/pipe-vertical-window-background.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/steel/pipe.png b/boblogistics_0.14.2/graphics/entity/pipe/steel/pipe.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/steel/pipe.png rename to boblogistics_0.14.2/graphics/entity/pipe/steel/pipe.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/stone/fluid-background.png b/boblogistics_0.14.2/graphics/entity/pipe/stone/fluid-background.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/stone/fluid-background.png rename to boblogistics_0.14.2/graphics/entity/pipe/stone/fluid-background.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/stone/fluid-flow-high-temperature.png b/boblogistics_0.14.2/graphics/entity/pipe/stone/fluid-flow-high-temperature.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/stone/fluid-flow-high-temperature.png rename to boblogistics_0.14.2/graphics/entity/pipe/stone/fluid-flow-high-temperature.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/stone/fluid-flow-low-temperature.png b/boblogistics_0.14.2/graphics/entity/pipe/stone/fluid-flow-low-temperature.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/stone/fluid-flow-low-temperature.png rename to boblogistics_0.14.2/graphics/entity/pipe/stone/fluid-flow-low-temperature.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/stone/fluid-flow-medium-temperature.png b/boblogistics_0.14.2/graphics/entity/pipe/stone/fluid-flow-medium-temperature.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/stone/fluid-flow-medium-temperature.png rename to boblogistics_0.14.2/graphics/entity/pipe/stone/fluid-flow-medium-temperature.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/stone/fluid-flow.png b/boblogistics_0.14.2/graphics/entity/pipe/stone/fluid-flow.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/stone/fluid-flow.png rename to boblogistics_0.14.2/graphics/entity/pipe/stone/fluid-flow.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/stone/pipe-corner-down-left.png b/boblogistics_0.14.2/graphics/entity/pipe/stone/pipe-corner-down-left.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/stone/pipe-corner-down-left.png rename to boblogistics_0.14.2/graphics/entity/pipe/stone/pipe-corner-down-left.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/stone/pipe-corner-down-right.png b/boblogistics_0.14.2/graphics/entity/pipe/stone/pipe-corner-down-right.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/stone/pipe-corner-down-right.png rename to boblogistics_0.14.2/graphics/entity/pipe/stone/pipe-corner-down-right.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/stone/pipe-corner-up-left.png b/boblogistics_0.14.2/graphics/entity/pipe/stone/pipe-corner-up-left.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/stone/pipe-corner-up-left.png rename to boblogistics_0.14.2/graphics/entity/pipe/stone/pipe-corner-up-left.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/stone/pipe-corner-up-right.png b/boblogistics_0.14.2/graphics/entity/pipe/stone/pipe-corner-up-right.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/stone/pipe-corner-up-right.png rename to boblogistics_0.14.2/graphics/entity/pipe/stone/pipe-corner-up-right.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/stone/pipe-cross.png b/boblogistics_0.14.2/graphics/entity/pipe/stone/pipe-cross.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/stone/pipe-cross.png rename to boblogistics_0.14.2/graphics/entity/pipe/stone/pipe-cross.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/stone/pipe-ending-down.png b/boblogistics_0.14.2/graphics/entity/pipe/stone/pipe-ending-down.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/stone/pipe-ending-down.png rename to boblogistics_0.14.2/graphics/entity/pipe/stone/pipe-ending-down.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/stone/pipe-ending-left.png b/boblogistics_0.14.2/graphics/entity/pipe/stone/pipe-ending-left.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/stone/pipe-ending-left.png rename to boblogistics_0.14.2/graphics/entity/pipe/stone/pipe-ending-left.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/stone/pipe-ending-right.png b/boblogistics_0.14.2/graphics/entity/pipe/stone/pipe-ending-right.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/stone/pipe-ending-right.png rename to boblogistics_0.14.2/graphics/entity/pipe/stone/pipe-ending-right.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/stone/pipe-ending-up.png b/boblogistics_0.14.2/graphics/entity/pipe/stone/pipe-ending-up.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/stone/pipe-ending-up.png rename to boblogistics_0.14.2/graphics/entity/pipe/stone/pipe-ending-up.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/stone/pipe-horizontal-window-background.png b/boblogistics_0.14.2/graphics/entity/pipe/stone/pipe-horizontal-window-background.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/stone/pipe-horizontal-window-background.png rename to boblogistics_0.14.2/graphics/entity/pipe/stone/pipe-horizontal-window-background.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/stone/pipe-straight-horizontal-single.png b/boblogistics_0.14.2/graphics/entity/pipe/stone/pipe-straight-horizontal-single.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/stone/pipe-straight-horizontal-single.png rename to boblogistics_0.14.2/graphics/entity/pipe/stone/pipe-straight-horizontal-single.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/stone/pipe-straight-horizontal-window.png b/boblogistics_0.14.2/graphics/entity/pipe/stone/pipe-straight-horizontal-window.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/stone/pipe-straight-horizontal-window.png rename to boblogistics_0.14.2/graphics/entity/pipe/stone/pipe-straight-horizontal-window.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/stone/pipe-straight-horizontal.png b/boblogistics_0.14.2/graphics/entity/pipe/stone/pipe-straight-horizontal.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/stone/pipe-straight-horizontal.png rename to boblogistics_0.14.2/graphics/entity/pipe/stone/pipe-straight-horizontal.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/stone/pipe-straight-vertical-single.png b/boblogistics_0.14.2/graphics/entity/pipe/stone/pipe-straight-vertical-single.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/stone/pipe-straight-vertical-single.png rename to boblogistics_0.14.2/graphics/entity/pipe/stone/pipe-straight-vertical-single.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/stone/pipe-straight-vertical-window.png b/boblogistics_0.14.2/graphics/entity/pipe/stone/pipe-straight-vertical-window.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/stone/pipe-straight-vertical-window.png rename to boblogistics_0.14.2/graphics/entity/pipe/stone/pipe-straight-vertical-window.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/stone/pipe-straight-vertical.png b/boblogistics_0.14.2/graphics/entity/pipe/stone/pipe-straight-vertical.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/stone/pipe-straight-vertical.png rename to boblogistics_0.14.2/graphics/entity/pipe/stone/pipe-straight-vertical.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/stone/pipe-t-down.png b/boblogistics_0.14.2/graphics/entity/pipe/stone/pipe-t-down.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/stone/pipe-t-down.png rename to boblogistics_0.14.2/graphics/entity/pipe/stone/pipe-t-down.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/stone/pipe-t-left.png b/boblogistics_0.14.2/graphics/entity/pipe/stone/pipe-t-left.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/stone/pipe-t-left.png rename to boblogistics_0.14.2/graphics/entity/pipe/stone/pipe-t-left.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/stone/pipe-t-right.png b/boblogistics_0.14.2/graphics/entity/pipe/stone/pipe-t-right.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/stone/pipe-t-right.png rename to boblogistics_0.14.2/graphics/entity/pipe/stone/pipe-t-right.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/stone/pipe-t-up.png b/boblogistics_0.14.2/graphics/entity/pipe/stone/pipe-t-up.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/stone/pipe-t-up.png rename to boblogistics_0.14.2/graphics/entity/pipe/stone/pipe-t-up.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/stone/pipe-to-ground-down.png b/boblogistics_0.14.2/graphics/entity/pipe/stone/pipe-to-ground-down.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/stone/pipe-to-ground-down.png rename to boblogistics_0.14.2/graphics/entity/pipe/stone/pipe-to-ground-down.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/stone/pipe-to-ground-left.png b/boblogistics_0.14.2/graphics/entity/pipe/stone/pipe-to-ground-left.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/stone/pipe-to-ground-left.png rename to boblogistics_0.14.2/graphics/entity/pipe/stone/pipe-to-ground-left.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/stone/pipe-to-ground-right.png b/boblogistics_0.14.2/graphics/entity/pipe/stone/pipe-to-ground-right.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/stone/pipe-to-ground-right.png rename to boblogistics_0.14.2/graphics/entity/pipe/stone/pipe-to-ground-right.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/stone/pipe-to-ground-up.png b/boblogistics_0.14.2/graphics/entity/pipe/stone/pipe-to-ground-up.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/stone/pipe-to-ground-up.png rename to boblogistics_0.14.2/graphics/entity/pipe/stone/pipe-to-ground-up.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/stone/pipe-vertical-window-background.png b/boblogistics_0.14.2/graphics/entity/pipe/stone/pipe-vertical-window-background.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/stone/pipe-vertical-window-background.png rename to boblogistics_0.14.2/graphics/entity/pipe/stone/pipe-vertical-window-background.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/stone/pipe.png b/boblogistics_0.14.2/graphics/entity/pipe/stone/pipe.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/stone/pipe.png rename to boblogistics_0.14.2/graphics/entity/pipe/stone/pipe.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/titanium/fluid-background.png b/boblogistics_0.14.2/graphics/entity/pipe/titanium/fluid-background.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/titanium/fluid-background.png rename to boblogistics_0.14.2/graphics/entity/pipe/titanium/fluid-background.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/titanium/fluid-flow-high-temperature.png b/boblogistics_0.14.2/graphics/entity/pipe/titanium/fluid-flow-high-temperature.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/titanium/fluid-flow-high-temperature.png rename to boblogistics_0.14.2/graphics/entity/pipe/titanium/fluid-flow-high-temperature.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/titanium/fluid-flow-low-temperature.png b/boblogistics_0.14.2/graphics/entity/pipe/titanium/fluid-flow-low-temperature.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/titanium/fluid-flow-low-temperature.png rename to boblogistics_0.14.2/graphics/entity/pipe/titanium/fluid-flow-low-temperature.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/titanium/fluid-flow-medium-temperature.png b/boblogistics_0.14.2/graphics/entity/pipe/titanium/fluid-flow-medium-temperature.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/titanium/fluid-flow-medium-temperature.png rename to boblogistics_0.14.2/graphics/entity/pipe/titanium/fluid-flow-medium-temperature.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/titanium/fluid-flow.png b/boblogistics_0.14.2/graphics/entity/pipe/titanium/fluid-flow.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/titanium/fluid-flow.png rename to boblogistics_0.14.2/graphics/entity/pipe/titanium/fluid-flow.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/titanium/pipe-corner-down-left.png b/boblogistics_0.14.2/graphics/entity/pipe/titanium/pipe-corner-down-left.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/titanium/pipe-corner-down-left.png rename to boblogistics_0.14.2/graphics/entity/pipe/titanium/pipe-corner-down-left.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/titanium/pipe-corner-down-right.png b/boblogistics_0.14.2/graphics/entity/pipe/titanium/pipe-corner-down-right.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/titanium/pipe-corner-down-right.png rename to boblogistics_0.14.2/graphics/entity/pipe/titanium/pipe-corner-down-right.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/titanium/pipe-corner-up-left.png b/boblogistics_0.14.2/graphics/entity/pipe/titanium/pipe-corner-up-left.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/titanium/pipe-corner-up-left.png rename to boblogistics_0.14.2/graphics/entity/pipe/titanium/pipe-corner-up-left.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/titanium/pipe-corner-up-right.png b/boblogistics_0.14.2/graphics/entity/pipe/titanium/pipe-corner-up-right.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/titanium/pipe-corner-up-right.png rename to boblogistics_0.14.2/graphics/entity/pipe/titanium/pipe-corner-up-right.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/titanium/pipe-cross.png b/boblogistics_0.14.2/graphics/entity/pipe/titanium/pipe-cross.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/titanium/pipe-cross.png rename to boblogistics_0.14.2/graphics/entity/pipe/titanium/pipe-cross.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/titanium/pipe-ending-down.png b/boblogistics_0.14.2/graphics/entity/pipe/titanium/pipe-ending-down.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/titanium/pipe-ending-down.png rename to boblogistics_0.14.2/graphics/entity/pipe/titanium/pipe-ending-down.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/titanium/pipe-ending-left.png b/boblogistics_0.14.2/graphics/entity/pipe/titanium/pipe-ending-left.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/titanium/pipe-ending-left.png rename to boblogistics_0.14.2/graphics/entity/pipe/titanium/pipe-ending-left.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/titanium/pipe-ending-right.png b/boblogistics_0.14.2/graphics/entity/pipe/titanium/pipe-ending-right.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/titanium/pipe-ending-right.png rename to boblogistics_0.14.2/graphics/entity/pipe/titanium/pipe-ending-right.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/titanium/pipe-ending-up.png b/boblogistics_0.14.2/graphics/entity/pipe/titanium/pipe-ending-up.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/titanium/pipe-ending-up.png rename to boblogistics_0.14.2/graphics/entity/pipe/titanium/pipe-ending-up.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/titanium/pipe-horizontal-window-background.png b/boblogistics_0.14.2/graphics/entity/pipe/titanium/pipe-horizontal-window-background.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/titanium/pipe-horizontal-window-background.png rename to boblogistics_0.14.2/graphics/entity/pipe/titanium/pipe-horizontal-window-background.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/titanium/pipe-straight-horizontal-single.png b/boblogistics_0.14.2/graphics/entity/pipe/titanium/pipe-straight-horizontal-single.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/titanium/pipe-straight-horizontal-single.png rename to boblogistics_0.14.2/graphics/entity/pipe/titanium/pipe-straight-horizontal-single.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/titanium/pipe-straight-horizontal-window.png b/boblogistics_0.14.2/graphics/entity/pipe/titanium/pipe-straight-horizontal-window.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/titanium/pipe-straight-horizontal-window.png rename to boblogistics_0.14.2/graphics/entity/pipe/titanium/pipe-straight-horizontal-window.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/titanium/pipe-straight-horizontal.png b/boblogistics_0.14.2/graphics/entity/pipe/titanium/pipe-straight-horizontal.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/titanium/pipe-straight-horizontal.png rename to boblogistics_0.14.2/graphics/entity/pipe/titanium/pipe-straight-horizontal.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/titanium/pipe-straight-vertical-single.png b/boblogistics_0.14.2/graphics/entity/pipe/titanium/pipe-straight-vertical-single.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/titanium/pipe-straight-vertical-single.png rename to boblogistics_0.14.2/graphics/entity/pipe/titanium/pipe-straight-vertical-single.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/titanium/pipe-straight-vertical-window.png b/boblogistics_0.14.2/graphics/entity/pipe/titanium/pipe-straight-vertical-window.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/titanium/pipe-straight-vertical-window.png rename to boblogistics_0.14.2/graphics/entity/pipe/titanium/pipe-straight-vertical-window.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/titanium/pipe-straight-vertical.png b/boblogistics_0.14.2/graphics/entity/pipe/titanium/pipe-straight-vertical.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/titanium/pipe-straight-vertical.png rename to boblogistics_0.14.2/graphics/entity/pipe/titanium/pipe-straight-vertical.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/titanium/pipe-t-down.png b/boblogistics_0.14.2/graphics/entity/pipe/titanium/pipe-t-down.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/titanium/pipe-t-down.png rename to boblogistics_0.14.2/graphics/entity/pipe/titanium/pipe-t-down.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/titanium/pipe-t-left.png b/boblogistics_0.14.2/graphics/entity/pipe/titanium/pipe-t-left.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/titanium/pipe-t-left.png rename to boblogistics_0.14.2/graphics/entity/pipe/titanium/pipe-t-left.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/titanium/pipe-t-right.png b/boblogistics_0.14.2/graphics/entity/pipe/titanium/pipe-t-right.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/titanium/pipe-t-right.png rename to boblogistics_0.14.2/graphics/entity/pipe/titanium/pipe-t-right.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/titanium/pipe-t-up.png b/boblogistics_0.14.2/graphics/entity/pipe/titanium/pipe-t-up.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/titanium/pipe-t-up.png rename to boblogistics_0.14.2/graphics/entity/pipe/titanium/pipe-t-up.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/titanium/pipe-to-ground-down.png b/boblogistics_0.14.2/graphics/entity/pipe/titanium/pipe-to-ground-down.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/titanium/pipe-to-ground-down.png rename to boblogistics_0.14.2/graphics/entity/pipe/titanium/pipe-to-ground-down.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/titanium/pipe-to-ground-left.png b/boblogistics_0.14.2/graphics/entity/pipe/titanium/pipe-to-ground-left.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/titanium/pipe-to-ground-left.png rename to boblogistics_0.14.2/graphics/entity/pipe/titanium/pipe-to-ground-left.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/titanium/pipe-to-ground-right.png b/boblogistics_0.14.2/graphics/entity/pipe/titanium/pipe-to-ground-right.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/titanium/pipe-to-ground-right.png rename to boblogistics_0.14.2/graphics/entity/pipe/titanium/pipe-to-ground-right.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/titanium/pipe-to-ground-up.png b/boblogistics_0.14.2/graphics/entity/pipe/titanium/pipe-to-ground-up.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/titanium/pipe-to-ground-up.png rename to boblogistics_0.14.2/graphics/entity/pipe/titanium/pipe-to-ground-up.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/titanium/pipe-vertical-window-background.png b/boblogistics_0.14.2/graphics/entity/pipe/titanium/pipe-vertical-window-background.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/titanium/pipe-vertical-window-background.png rename to boblogistics_0.14.2/graphics/entity/pipe/titanium/pipe-vertical-window-background.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/titanium/pipe.png b/boblogistics_0.14.2/graphics/entity/pipe/titanium/pipe.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/titanium/pipe.png rename to boblogistics_0.14.2/graphics/entity/pipe/titanium/pipe.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/tungsten/fluid-background.png b/boblogistics_0.14.2/graphics/entity/pipe/tungsten/fluid-background.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/tungsten/fluid-background.png rename to boblogistics_0.14.2/graphics/entity/pipe/tungsten/fluid-background.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/tungsten/fluid-flow-high-temperature.png b/boblogistics_0.14.2/graphics/entity/pipe/tungsten/fluid-flow-high-temperature.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/tungsten/fluid-flow-high-temperature.png rename to boblogistics_0.14.2/graphics/entity/pipe/tungsten/fluid-flow-high-temperature.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/tungsten/fluid-flow-low-temperature.png b/boblogistics_0.14.2/graphics/entity/pipe/tungsten/fluid-flow-low-temperature.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/tungsten/fluid-flow-low-temperature.png rename to boblogistics_0.14.2/graphics/entity/pipe/tungsten/fluid-flow-low-temperature.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/tungsten/fluid-flow-medium-temperature.png b/boblogistics_0.14.2/graphics/entity/pipe/tungsten/fluid-flow-medium-temperature.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/tungsten/fluid-flow-medium-temperature.png rename to boblogistics_0.14.2/graphics/entity/pipe/tungsten/fluid-flow-medium-temperature.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/tungsten/fluid-flow.png b/boblogistics_0.14.2/graphics/entity/pipe/tungsten/fluid-flow.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/tungsten/fluid-flow.png rename to boblogistics_0.14.2/graphics/entity/pipe/tungsten/fluid-flow.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/tungsten/pipe-corner-down-left.png b/boblogistics_0.14.2/graphics/entity/pipe/tungsten/pipe-corner-down-left.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/tungsten/pipe-corner-down-left.png rename to boblogistics_0.14.2/graphics/entity/pipe/tungsten/pipe-corner-down-left.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/tungsten/pipe-corner-down-right.png b/boblogistics_0.14.2/graphics/entity/pipe/tungsten/pipe-corner-down-right.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/tungsten/pipe-corner-down-right.png rename to boblogistics_0.14.2/graphics/entity/pipe/tungsten/pipe-corner-down-right.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/tungsten/pipe-corner-up-left.png b/boblogistics_0.14.2/graphics/entity/pipe/tungsten/pipe-corner-up-left.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/tungsten/pipe-corner-up-left.png rename to boblogistics_0.14.2/graphics/entity/pipe/tungsten/pipe-corner-up-left.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/tungsten/pipe-corner-up-right.png b/boblogistics_0.14.2/graphics/entity/pipe/tungsten/pipe-corner-up-right.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/tungsten/pipe-corner-up-right.png rename to boblogistics_0.14.2/graphics/entity/pipe/tungsten/pipe-corner-up-right.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/tungsten/pipe-cross.png b/boblogistics_0.14.2/graphics/entity/pipe/tungsten/pipe-cross.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/tungsten/pipe-cross.png rename to boblogistics_0.14.2/graphics/entity/pipe/tungsten/pipe-cross.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/tungsten/pipe-ending-down.png b/boblogistics_0.14.2/graphics/entity/pipe/tungsten/pipe-ending-down.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/tungsten/pipe-ending-down.png rename to boblogistics_0.14.2/graphics/entity/pipe/tungsten/pipe-ending-down.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/tungsten/pipe-ending-left.png b/boblogistics_0.14.2/graphics/entity/pipe/tungsten/pipe-ending-left.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/tungsten/pipe-ending-left.png rename to boblogistics_0.14.2/graphics/entity/pipe/tungsten/pipe-ending-left.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/tungsten/pipe-ending-right.png b/boblogistics_0.14.2/graphics/entity/pipe/tungsten/pipe-ending-right.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/tungsten/pipe-ending-right.png rename to boblogistics_0.14.2/graphics/entity/pipe/tungsten/pipe-ending-right.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/tungsten/pipe-ending-up.png b/boblogistics_0.14.2/graphics/entity/pipe/tungsten/pipe-ending-up.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/tungsten/pipe-ending-up.png rename to boblogistics_0.14.2/graphics/entity/pipe/tungsten/pipe-ending-up.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/tungsten/pipe-horizontal-window-background.png b/boblogistics_0.14.2/graphics/entity/pipe/tungsten/pipe-horizontal-window-background.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/tungsten/pipe-horizontal-window-background.png rename to boblogistics_0.14.2/graphics/entity/pipe/tungsten/pipe-horizontal-window-background.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/tungsten/pipe-straight-horizontal-single.png b/boblogistics_0.14.2/graphics/entity/pipe/tungsten/pipe-straight-horizontal-single.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/tungsten/pipe-straight-horizontal-single.png rename to boblogistics_0.14.2/graphics/entity/pipe/tungsten/pipe-straight-horizontal-single.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/tungsten/pipe-straight-horizontal-window.png b/boblogistics_0.14.2/graphics/entity/pipe/tungsten/pipe-straight-horizontal-window.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/tungsten/pipe-straight-horizontal-window.png rename to boblogistics_0.14.2/graphics/entity/pipe/tungsten/pipe-straight-horizontal-window.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/tungsten/pipe-straight-horizontal.png b/boblogistics_0.14.2/graphics/entity/pipe/tungsten/pipe-straight-horizontal.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/tungsten/pipe-straight-horizontal.png rename to boblogistics_0.14.2/graphics/entity/pipe/tungsten/pipe-straight-horizontal.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/tungsten/pipe-straight-vertical-single.png b/boblogistics_0.14.2/graphics/entity/pipe/tungsten/pipe-straight-vertical-single.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/tungsten/pipe-straight-vertical-single.png rename to boblogistics_0.14.2/graphics/entity/pipe/tungsten/pipe-straight-vertical-single.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/tungsten/pipe-straight-vertical-window.png b/boblogistics_0.14.2/graphics/entity/pipe/tungsten/pipe-straight-vertical-window.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/tungsten/pipe-straight-vertical-window.png rename to boblogistics_0.14.2/graphics/entity/pipe/tungsten/pipe-straight-vertical-window.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/tungsten/pipe-straight-vertical.png b/boblogistics_0.14.2/graphics/entity/pipe/tungsten/pipe-straight-vertical.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/tungsten/pipe-straight-vertical.png rename to boblogistics_0.14.2/graphics/entity/pipe/tungsten/pipe-straight-vertical.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/tungsten/pipe-t-down.png b/boblogistics_0.14.2/graphics/entity/pipe/tungsten/pipe-t-down.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/tungsten/pipe-t-down.png rename to boblogistics_0.14.2/graphics/entity/pipe/tungsten/pipe-t-down.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/tungsten/pipe-t-left.png b/boblogistics_0.14.2/graphics/entity/pipe/tungsten/pipe-t-left.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/tungsten/pipe-t-left.png rename to boblogistics_0.14.2/graphics/entity/pipe/tungsten/pipe-t-left.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/tungsten/pipe-t-right.png b/boblogistics_0.14.2/graphics/entity/pipe/tungsten/pipe-t-right.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/tungsten/pipe-t-right.png rename to boblogistics_0.14.2/graphics/entity/pipe/tungsten/pipe-t-right.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/tungsten/pipe-t-up.png b/boblogistics_0.14.2/graphics/entity/pipe/tungsten/pipe-t-up.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/tungsten/pipe-t-up.png rename to boblogistics_0.14.2/graphics/entity/pipe/tungsten/pipe-t-up.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/tungsten/pipe-to-ground-down.png b/boblogistics_0.14.2/graphics/entity/pipe/tungsten/pipe-to-ground-down.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/tungsten/pipe-to-ground-down.png rename to boblogistics_0.14.2/graphics/entity/pipe/tungsten/pipe-to-ground-down.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/tungsten/pipe-to-ground-left.png b/boblogistics_0.14.2/graphics/entity/pipe/tungsten/pipe-to-ground-left.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/tungsten/pipe-to-ground-left.png rename to boblogistics_0.14.2/graphics/entity/pipe/tungsten/pipe-to-ground-left.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/tungsten/pipe-to-ground-right.png b/boblogistics_0.14.2/graphics/entity/pipe/tungsten/pipe-to-ground-right.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/tungsten/pipe-to-ground-right.png rename to boblogistics_0.14.2/graphics/entity/pipe/tungsten/pipe-to-ground-right.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/tungsten/pipe-to-ground-up.png b/boblogistics_0.14.2/graphics/entity/pipe/tungsten/pipe-to-ground-up.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/tungsten/pipe-to-ground-up.png rename to boblogistics_0.14.2/graphics/entity/pipe/tungsten/pipe-to-ground-up.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/tungsten/pipe-vertical-window-background.png b/boblogistics_0.14.2/graphics/entity/pipe/tungsten/pipe-vertical-window-background.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/tungsten/pipe-vertical-window-background.png rename to boblogistics_0.14.2/graphics/entity/pipe/tungsten/pipe-vertical-window-background.png diff --git a/boblogistics_0.14.0/graphics/entity/pipe/tungsten/pipe.png b/boblogistics_0.14.2/graphics/entity/pipe/tungsten/pipe.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/pipe/tungsten/pipe.png rename to boblogistics_0.14.2/graphics/entity/pipe/tungsten/pipe.png diff --git a/boblogistics_0.14.0/graphics/entity/roboport/blank.png b/boblogistics_0.14.2/graphics/entity/roboport/blank.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/roboport/blank.png rename to boblogistics_0.14.2/graphics/entity/roboport/blank.png diff --git a/boblogistics_0.14.0/graphics/entity/roboport/logistic-zone-expander-2.png b/boblogistics_0.14.2/graphics/entity/roboport/logistic-zone-expander-2.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/roboport/logistic-zone-expander-2.png rename to boblogistics_0.14.2/graphics/entity/roboport/logistic-zone-expander-2.png diff --git a/boblogistics_0.14.0/graphics/entity/roboport/logistic-zone-expander-3.png b/boblogistics_0.14.2/graphics/entity/roboport/logistic-zone-expander-3.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/roboport/logistic-zone-expander-3.png rename to boblogistics_0.14.2/graphics/entity/roboport/logistic-zone-expander-3.png diff --git a/boblogistics_0.14.0/graphics/entity/roboport/logistic-zone-expander-4.png b/boblogistics_0.14.2/graphics/entity/roboport/logistic-zone-expander-4.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/roboport/logistic-zone-expander-4.png rename to boblogistics_0.14.2/graphics/entity/roboport/logistic-zone-expander-4.png diff --git a/boblogistics_0.14.0/graphics/entity/roboport/logistic-zone-expander.png b/boblogistics_0.14.2/graphics/entity/roboport/logistic-zone-expander.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/roboport/logistic-zone-expander.png rename to boblogistics_0.14.2/graphics/entity/roboport/logistic-zone-expander.png diff --git a/boblogistics_0.14.0/graphics/entity/roboport/logistic-zone-interface.png b/boblogistics_0.14.2/graphics/entity/roboport/logistic-zone-interface.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/roboport/logistic-zone-interface.png rename to boblogistics_0.14.2/graphics/entity/roboport/logistic-zone-interface.png diff --git a/boblogistics_0.14.0/graphics/entity/roboport/robochest-2.png b/boblogistics_0.14.2/graphics/entity/roboport/robochest-2.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/roboport/robochest-2.png rename to boblogistics_0.14.2/graphics/entity/roboport/robochest-2.png diff --git a/boblogistics_0.14.0/graphics/entity/roboport/robochest-3.png b/boblogistics_0.14.2/graphics/entity/roboport/robochest-3.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/roboport/robochest-3.png rename to boblogistics_0.14.2/graphics/entity/roboport/robochest-3.png diff --git a/boblogistics_0.14.0/graphics/entity/roboport/robochest-4.png b/boblogistics_0.14.2/graphics/entity/roboport/robochest-4.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/roboport/robochest-4.png rename to boblogistics_0.14.2/graphics/entity/roboport/robochest-4.png diff --git a/boblogistics_0.14.0/graphics/entity/roboport/robochest.png b/boblogistics_0.14.2/graphics/entity/roboport/robochest.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/roboport/robochest.png rename to boblogistics_0.14.2/graphics/entity/roboport/robochest.png diff --git a/boblogistics_0.14.0/graphics/entity/roboport/roboport-base-2.png b/boblogistics_0.14.2/graphics/entity/roboport/roboport-base-2.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/roboport/roboport-base-2.png rename to boblogistics_0.14.2/graphics/entity/roboport/roboport-base-2.png diff --git a/boblogistics_0.14.0/graphics/entity/roboport/roboport-base-3.png b/boblogistics_0.14.2/graphics/entity/roboport/roboport-base-3.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/roboport/roboport-base-3.png rename to boblogistics_0.14.2/graphics/entity/roboport/roboport-base-3.png diff --git a/boblogistics_0.14.0/graphics/entity/roboport/roboport-base-4.png b/boblogistics_0.14.2/graphics/entity/roboport/roboport-base-4.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/roboport/roboport-base-4.png rename to boblogistics_0.14.2/graphics/entity/roboport/roboport-base-4.png diff --git a/boblogistics_0.14.0/graphics/entity/roboport/roboport-base-animation-2.png b/boblogistics_0.14.2/graphics/entity/roboport/roboport-base-animation-2.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/roboport/roboport-base-animation-2.png rename to boblogistics_0.14.2/graphics/entity/roboport/roboport-base-animation-2.png diff --git a/boblogistics_0.14.0/graphics/entity/roboport/roboport-base-animation-3.png b/boblogistics_0.14.2/graphics/entity/roboport/roboport-base-animation-3.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/roboport/roboport-base-animation-3.png rename to boblogistics_0.14.2/graphics/entity/roboport/roboport-base-animation-3.png diff --git a/boblogistics_0.14.0/graphics/entity/roboport/roboport-base-animation-4.png b/boblogistics_0.14.2/graphics/entity/roboport/roboport-base-animation-4.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/roboport/roboport-base-animation-4.png rename to boblogistics_0.14.2/graphics/entity/roboport/roboport-base-animation-4.png diff --git a/boblogistics_0.14.0/graphics/entity/roboport/roboport-base-animation.png b/boblogistics_0.14.2/graphics/entity/roboport/roboport-base-animation.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/roboport/roboport-base-animation.png rename to boblogistics_0.14.2/graphics/entity/roboport/roboport-base-animation.png diff --git a/boblogistics_0.14.0/graphics/entity/roboport/roboport-base-patch-2.png b/boblogistics_0.14.2/graphics/entity/roboport/roboport-base-patch-2.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/roboport/roboport-base-patch-2.png rename to boblogistics_0.14.2/graphics/entity/roboport/roboport-base-patch-2.png diff --git a/boblogistics_0.14.0/graphics/entity/roboport/roboport-base-patch-3.png b/boblogistics_0.14.2/graphics/entity/roboport/roboport-base-patch-3.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/roboport/roboport-base-patch-3.png rename to boblogistics_0.14.2/graphics/entity/roboport/roboport-base-patch-3.png diff --git a/boblogistics_0.14.0/graphics/entity/roboport/roboport-base-patch-4.png b/boblogistics_0.14.2/graphics/entity/roboport/roboport-base-patch-4.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/roboport/roboport-base-patch-4.png rename to boblogistics_0.14.2/graphics/entity/roboport/roboport-base-patch-4.png diff --git a/boblogistics_0.14.0/graphics/entity/roboport/roboport-chargepad-2.png b/boblogistics_0.14.2/graphics/entity/roboport/roboport-chargepad-2.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/roboport/roboport-chargepad-2.png rename to boblogistics_0.14.2/graphics/entity/roboport/roboport-chargepad-2.png diff --git a/boblogistics_0.14.0/graphics/entity/roboport/roboport-chargepad-3.png b/boblogistics_0.14.2/graphics/entity/roboport/roboport-chargepad-3.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/roboport/roboport-chargepad-3.png rename to boblogistics_0.14.2/graphics/entity/roboport/roboport-chargepad-3.png diff --git a/boblogistics_0.14.0/graphics/entity/roboport/roboport-chargepad-4.png b/boblogistics_0.14.2/graphics/entity/roboport/roboport-chargepad-4.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/roboport/roboport-chargepad-4.png rename to boblogistics_0.14.2/graphics/entity/roboport/roboport-chargepad-4.png diff --git a/boblogistics_0.14.0/graphics/entity/roboport/roboport-chargepad.png b/boblogistics_0.14.2/graphics/entity/roboport/roboport-chargepad.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/roboport/roboport-chargepad.png rename to boblogistics_0.14.2/graphics/entity/roboport/roboport-chargepad.png diff --git a/boblogistics_0.14.0/graphics/entity/roboport/roboport-construction-radius-visualization.png b/boblogistics_0.14.2/graphics/entity/roboport/roboport-construction-radius-visualization.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/roboport/roboport-construction-radius-visualization.png rename to boblogistics_0.14.2/graphics/entity/roboport/roboport-construction-radius-visualization.png diff --git a/boblogistics_0.14.0/graphics/entity/roboport/roboport-door-2.png b/boblogistics_0.14.2/graphics/entity/roboport/roboport-door-2.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/roboport/roboport-door-2.png rename to boblogistics_0.14.2/graphics/entity/roboport/roboport-door-2.png diff --git a/boblogistics_0.14.0/graphics/entity/roboport/roboport-door-3.png b/boblogistics_0.14.2/graphics/entity/roboport/roboport-door-3.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/roboport/roboport-door-3.png rename to boblogistics_0.14.2/graphics/entity/roboport/roboport-door-3.png diff --git a/boblogistics_0.14.0/graphics/entity/roboport/roboport-door-4.png b/boblogistics_0.14.2/graphics/entity/roboport/roboport-door-4.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/roboport/roboport-door-4.png rename to boblogistics_0.14.2/graphics/entity/roboport/roboport-door-4.png diff --git a/boblogistics_0.14.0/graphics/entity/roboport/roboport-door-down-2.png b/boblogistics_0.14.2/graphics/entity/roboport/roboport-door-down-2.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/roboport/roboport-door-down-2.png rename to boblogistics_0.14.2/graphics/entity/roboport/roboport-door-down-2.png diff --git a/boblogistics_0.14.0/graphics/entity/roboport/roboport-door-down-3.png b/boblogistics_0.14.2/graphics/entity/roboport/roboport-door-down-3.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/roboport/roboport-door-down-3.png rename to boblogistics_0.14.2/graphics/entity/roboport/roboport-door-down-3.png diff --git a/boblogistics_0.14.0/graphics/entity/roboport/roboport-door-down-4.png b/boblogistics_0.14.2/graphics/entity/roboport/roboport-door-down-4.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/roboport/roboport-door-down-4.png rename to boblogistics_0.14.2/graphics/entity/roboport/roboport-door-down-4.png diff --git a/boblogistics_0.14.0/graphics/entity/roboport/roboport-door-down.png b/boblogistics_0.14.2/graphics/entity/roboport/roboport-door-down.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/roboport/roboport-door-down.png rename to boblogistics_0.14.2/graphics/entity/roboport/roboport-door-down.png diff --git a/boblogistics_0.14.0/graphics/entity/roboport/roboport-door-up-2.png b/boblogistics_0.14.2/graphics/entity/roboport/roboport-door-up-2.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/roboport/roboport-door-up-2.png rename to boblogistics_0.14.2/graphics/entity/roboport/roboport-door-up-2.png diff --git a/boblogistics_0.14.0/graphics/entity/roboport/roboport-door-up-3.png b/boblogistics_0.14.2/graphics/entity/roboport/roboport-door-up-3.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/roboport/roboport-door-up-3.png rename to boblogistics_0.14.2/graphics/entity/roboport/roboport-door-up-3.png diff --git a/boblogistics_0.14.0/graphics/entity/roboport/roboport-door-up-4.png b/boblogistics_0.14.2/graphics/entity/roboport/roboport-door-up-4.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/roboport/roboport-door-up-4.png rename to boblogistics_0.14.2/graphics/entity/roboport/roboport-door-up-4.png diff --git a/boblogistics_0.14.0/graphics/entity/roboport/roboport-door-up.png b/boblogistics_0.14.2/graphics/entity/roboport/roboport-door-up.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/roboport/roboport-door-up.png rename to boblogistics_0.14.2/graphics/entity/roboport/roboport-door-up.png diff --git a/boblogistics_0.14.0/graphics/entity/roboport/roboport-door.png b/boblogistics_0.14.2/graphics/entity/roboport/roboport-door.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/roboport/roboport-door.png rename to boblogistics_0.14.2/graphics/entity/roboport/roboport-door.png diff --git a/boblogistics_0.14.0/graphics/entity/roboport/roboport-radius-visualization.png b/boblogistics_0.14.2/graphics/entity/roboport/roboport-radius-visualization.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/roboport/roboport-radius-visualization.png rename to boblogistics_0.14.2/graphics/entity/roboport/roboport-radius-visualization.png diff --git a/boblogistics_0.14.0/graphics/entity/roboport/roboport-recharging.png b/boblogistics_0.14.2/graphics/entity/roboport/roboport-recharging.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/roboport/roboport-recharging.png rename to boblogistics_0.14.2/graphics/entity/roboport/roboport-recharging.png diff --git a/boblogistics_0.14.0/graphics/entity/robots/construction-robot-2.png b/boblogistics_0.14.2/graphics/entity/robots/construction-robot-2.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/robots/construction-robot-2.png rename to boblogistics_0.14.2/graphics/entity/robots/construction-robot-2.png diff --git a/boblogistics_0.14.0/graphics/entity/robots/construction-robot-3.png b/boblogistics_0.14.2/graphics/entity/robots/construction-robot-3.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/robots/construction-robot-3.png rename to boblogistics_0.14.2/graphics/entity/robots/construction-robot-3.png diff --git a/boblogistics_0.14.0/graphics/entity/robots/construction-robot-4.png b/boblogistics_0.14.2/graphics/entity/robots/construction-robot-4.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/robots/construction-robot-4.png rename to boblogistics_0.14.2/graphics/entity/robots/construction-robot-4.png diff --git a/boblogistics_0.14.0/graphics/entity/robots/construction-robot.png b/boblogistics_0.14.2/graphics/entity/robots/construction-robot.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/robots/construction-robot.png rename to boblogistics_0.14.2/graphics/entity/robots/construction-robot.png diff --git a/boblogistics_0.14.0/graphics/entity/robots/logistic-robot-2.png b/boblogistics_0.14.2/graphics/entity/robots/logistic-robot-2.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/robots/logistic-robot-2.png rename to boblogistics_0.14.2/graphics/entity/robots/logistic-robot-2.png diff --git a/boblogistics_0.14.0/graphics/entity/robots/logistic-robot-3.png b/boblogistics_0.14.2/graphics/entity/robots/logistic-robot-3.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/robots/logistic-robot-3.png rename to boblogistics_0.14.2/graphics/entity/robots/logistic-robot-3.png diff --git a/boblogistics_0.14.0/graphics/entity/robots/logistic-robot-4.png b/boblogistics_0.14.2/graphics/entity/robots/logistic-robot-4.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/robots/logistic-robot-4.png rename to boblogistics_0.14.2/graphics/entity/robots/logistic-robot-4.png diff --git a/boblogistics_0.14.0/graphics/entity/robots/logistic-robot.png b/boblogistics_0.14.2/graphics/entity/robots/logistic-robot.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/robots/logistic-robot.png rename to boblogistics_0.14.2/graphics/entity/robots/logistic-robot.png diff --git a/boblogistics_0.14.0/graphics/entity/robots/robot-shadow.png b/boblogistics_0.14.2/graphics/entity/robots/robot-shadow.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/robots/robot-shadow.png rename to boblogistics_0.14.2/graphics/entity/robots/robot-shadow.png diff --git a/boblogistics_0.14.0/graphics/entity/small-pump/pipe-arrow-down-mask.png b/boblogistics_0.14.2/graphics/entity/small-pump/pipe-arrow-down-mask.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/small-pump/pipe-arrow-down-mask.png rename to boblogistics_0.14.2/graphics/entity/small-pump/pipe-arrow-down-mask.png diff --git a/boblogistics_0.14.0/graphics/entity/small-pump/pipe-arrow-down.png b/boblogistics_0.14.2/graphics/entity/small-pump/pipe-arrow-down.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/small-pump/pipe-arrow-down.png rename to boblogistics_0.14.2/graphics/entity/small-pump/pipe-arrow-down.png diff --git a/boblogistics_0.14.0/graphics/entity/small-pump/pipe-arrow-left-mask.png b/boblogistics_0.14.2/graphics/entity/small-pump/pipe-arrow-left-mask.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/small-pump/pipe-arrow-left-mask.png rename to boblogistics_0.14.2/graphics/entity/small-pump/pipe-arrow-left-mask.png diff --git a/boblogistics_0.14.0/graphics/entity/small-pump/pipe-arrow-left.png b/boblogistics_0.14.2/graphics/entity/small-pump/pipe-arrow-left.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/small-pump/pipe-arrow-left.png rename to boblogistics_0.14.2/graphics/entity/small-pump/pipe-arrow-left.png diff --git a/boblogistics_0.14.0/graphics/entity/small-pump/pipe-arrow-right-mask.png b/boblogistics_0.14.2/graphics/entity/small-pump/pipe-arrow-right-mask.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/small-pump/pipe-arrow-right-mask.png rename to boblogistics_0.14.2/graphics/entity/small-pump/pipe-arrow-right-mask.png diff --git a/boblogistics_0.14.0/graphics/entity/small-pump/pipe-arrow-right.png b/boblogistics_0.14.2/graphics/entity/small-pump/pipe-arrow-right.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/small-pump/pipe-arrow-right.png rename to boblogistics_0.14.2/graphics/entity/small-pump/pipe-arrow-right.png diff --git a/boblogistics_0.14.0/graphics/entity/small-pump/pipe-arrow-up-mask.png b/boblogistics_0.14.2/graphics/entity/small-pump/pipe-arrow-up-mask.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/small-pump/pipe-arrow-up-mask.png rename to boblogistics_0.14.2/graphics/entity/small-pump/pipe-arrow-up-mask.png diff --git a/boblogistics_0.14.0/graphics/entity/small-pump/pipe-arrow-up.png b/boblogistics_0.14.2/graphics/entity/small-pump/pipe-arrow-up.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/small-pump/pipe-arrow-up.png rename to boblogistics_0.14.2/graphics/entity/small-pump/pipe-arrow-up.png diff --git a/boblogistics_0.14.0/graphics/entity/small-pump/small-pump-down-mask.png b/boblogistics_0.14.2/graphics/entity/small-pump/small-pump-down-mask.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/small-pump/small-pump-down-mask.png rename to boblogistics_0.14.2/graphics/entity/small-pump/small-pump-down-mask.png diff --git a/boblogistics_0.14.0/graphics/entity/small-pump/small-pump-down.png b/boblogistics_0.14.2/graphics/entity/small-pump/small-pump-down.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/small-pump/small-pump-down.png rename to boblogistics_0.14.2/graphics/entity/small-pump/small-pump-down.png diff --git a/boblogistics_0.14.0/graphics/entity/small-pump/small-pump-left-mask.png b/boblogistics_0.14.2/graphics/entity/small-pump/small-pump-left-mask.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/small-pump/small-pump-left-mask.png rename to boblogistics_0.14.2/graphics/entity/small-pump/small-pump-left-mask.png diff --git a/boblogistics_0.14.0/graphics/entity/small-pump/small-pump-left.png b/boblogistics_0.14.2/graphics/entity/small-pump/small-pump-left.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/small-pump/small-pump-left.png rename to boblogistics_0.14.2/graphics/entity/small-pump/small-pump-left.png diff --git a/boblogistics_0.14.0/graphics/entity/small-pump/small-pump-right-mask.png b/boblogistics_0.14.2/graphics/entity/small-pump/small-pump-right-mask.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/small-pump/small-pump-right-mask.png rename to boblogistics_0.14.2/graphics/entity/small-pump/small-pump-right-mask.png diff --git a/boblogistics_0.14.0/graphics/entity/small-pump/small-pump-right.png b/boblogistics_0.14.2/graphics/entity/small-pump/small-pump-right.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/small-pump/small-pump-right.png rename to boblogistics_0.14.2/graphics/entity/small-pump/small-pump-right.png diff --git a/boblogistics_0.14.0/graphics/entity/small-pump/small-pump-up-mask.png b/boblogistics_0.14.2/graphics/entity/small-pump/small-pump-up-mask.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/small-pump/small-pump-up-mask.png rename to boblogistics_0.14.2/graphics/entity/small-pump/small-pump-up-mask.png diff --git a/boblogistics_0.14.0/graphics/entity/small-pump/small-pump-up.png b/boblogistics_0.14.2/graphics/entity/small-pump/small-pump-up.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/small-pump/small-pump-up.png rename to boblogistics_0.14.2/graphics/entity/small-pump/small-pump-up.png diff --git a/boblogistics_0.14.0/graphics/entity/transport-belt/green-splitter-east.png b/boblogistics_0.14.2/graphics/entity/transport-belt/green-splitter-east.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/transport-belt/green-splitter-east.png rename to boblogistics_0.14.2/graphics/entity/transport-belt/green-splitter-east.png diff --git a/boblogistics_0.14.0/graphics/entity/transport-belt/green-splitter-north.png b/boblogistics_0.14.2/graphics/entity/transport-belt/green-splitter-north.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/transport-belt/green-splitter-north.png rename to boblogistics_0.14.2/graphics/entity/transport-belt/green-splitter-north.png diff --git a/boblogistics_0.14.0/graphics/entity/transport-belt/green-splitter-south.png b/boblogistics_0.14.2/graphics/entity/transport-belt/green-splitter-south.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/transport-belt/green-splitter-south.png rename to boblogistics_0.14.2/graphics/entity/transport-belt/green-splitter-south.png diff --git a/boblogistics_0.14.0/graphics/entity/transport-belt/green-splitter-west.png b/boblogistics_0.14.2/graphics/entity/transport-belt/green-splitter-west.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/transport-belt/green-splitter-west.png rename to boblogistics_0.14.2/graphics/entity/transport-belt/green-splitter-west.png diff --git a/boblogistics_0.14.0/graphics/entity/transport-belt/green-transport-belt-to-ground-structure.png b/boblogistics_0.14.2/graphics/entity/transport-belt/green-transport-belt-to-ground-structure.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/transport-belt/green-transport-belt-to-ground-structure.png rename to boblogistics_0.14.2/graphics/entity/transport-belt/green-transport-belt-to-ground-structure.png diff --git a/boblogistics_0.14.0/graphics/entity/transport-belt/green-transport-belt.png b/boblogistics_0.14.2/graphics/entity/transport-belt/green-transport-belt.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/transport-belt/green-transport-belt.png rename to boblogistics_0.14.2/graphics/entity/transport-belt/green-transport-belt.png diff --git a/boblogistics_0.14.0/graphics/entity/transport-belt/purple-splitter-east.png b/boblogistics_0.14.2/graphics/entity/transport-belt/purple-splitter-east.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/transport-belt/purple-splitter-east.png rename to boblogistics_0.14.2/graphics/entity/transport-belt/purple-splitter-east.png diff --git a/boblogistics_0.14.0/graphics/entity/transport-belt/purple-splitter-north.png b/boblogistics_0.14.2/graphics/entity/transport-belt/purple-splitter-north.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/transport-belt/purple-splitter-north.png rename to boblogistics_0.14.2/graphics/entity/transport-belt/purple-splitter-north.png diff --git a/boblogistics_0.14.0/graphics/entity/transport-belt/purple-splitter-south.png b/boblogistics_0.14.2/graphics/entity/transport-belt/purple-splitter-south.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/transport-belt/purple-splitter-south.png rename to boblogistics_0.14.2/graphics/entity/transport-belt/purple-splitter-south.png diff --git a/boblogistics_0.14.0/graphics/entity/transport-belt/purple-splitter-west.png b/boblogistics_0.14.2/graphics/entity/transport-belt/purple-splitter-west.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/transport-belt/purple-splitter-west.png rename to boblogistics_0.14.2/graphics/entity/transport-belt/purple-splitter-west.png diff --git a/boblogistics_0.14.0/graphics/entity/transport-belt/purple-transport-belt-to-ground-structure.png b/boblogistics_0.14.2/graphics/entity/transport-belt/purple-transport-belt-to-ground-structure.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/transport-belt/purple-transport-belt-to-ground-structure.png rename to boblogistics_0.14.2/graphics/entity/transport-belt/purple-transport-belt-to-ground-structure.png diff --git a/boblogistics_0.14.0/graphics/entity/transport-belt/purple-transport-belt.png b/boblogistics_0.14.2/graphics/entity/transport-belt/purple-transport-belt.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/transport-belt/purple-transport-belt.png rename to boblogistics_0.14.2/graphics/entity/transport-belt/purple-transport-belt.png diff --git a/boblogistics_0.14.0/graphics/entity/transport-belt/start-end-integration-patches.png b/boblogistics_0.14.2/graphics/entity/transport-belt/start-end-integration-patches.png similarity index 100% rename from boblogistics_0.14.0/graphics/entity/transport-belt/start-end-integration-patches.png rename to boblogistics_0.14.2/graphics/entity/transport-belt/start-end-integration-patches.png diff --git a/boblogistics_0.14.0/graphics/gui/checkbox.png b/boblogistics_0.14.2/graphics/gui/checkbox.png similarity index 100% rename from boblogistics_0.14.0/graphics/gui/checkbox.png rename to boblogistics_0.14.2/graphics/gui/checkbox.png diff --git a/boblogistics_0.14.0/graphics/gui/inserter-button.png b/boblogistics_0.14.2/graphics/gui/inserter-button.png similarity index 100% rename from boblogistics_0.14.0/graphics/gui/inserter-button.png rename to boblogistics_0.14.2/graphics/gui/inserter-button.png diff --git a/boblogistics_0.14.0/graphics/icons/construction-robot-2.png b/boblogistics_0.14.2/graphics/icons/construction-robot-2.png similarity index 100% rename from boblogistics_0.14.0/graphics/icons/construction-robot-2.png rename to boblogistics_0.14.2/graphics/icons/construction-robot-2.png diff --git a/boblogistics_0.14.0/graphics/icons/construction-robot-3.png b/boblogistics_0.14.2/graphics/icons/construction-robot-3.png similarity index 100% rename from boblogistics_0.14.0/graphics/icons/construction-robot-3.png rename to boblogistics_0.14.2/graphics/icons/construction-robot-3.png diff --git a/boblogistics_0.14.0/graphics/icons/construction-robot-4.png b/boblogistics_0.14.2/graphics/icons/construction-robot-4.png similarity index 100% rename from boblogistics_0.14.0/graphics/icons/construction-robot-4.png rename to boblogistics_0.14.2/graphics/icons/construction-robot-4.png diff --git a/boblogistics_0.14.0/graphics/icons/construction-robot.png b/boblogistics_0.14.2/graphics/icons/construction-robot.png similarity index 100% rename from boblogistics_0.14.0/graphics/icons/construction-robot.png rename to boblogistics_0.14.2/graphics/icons/construction-robot.png diff --git a/boblogistics_0.14.0/graphics/icons/flying-robot-frame-2.png b/boblogistics_0.14.2/graphics/icons/flying-robot-frame-2.png similarity index 100% rename from boblogistics_0.14.0/graphics/icons/flying-robot-frame-2.png rename to boblogistics_0.14.2/graphics/icons/flying-robot-frame-2.png diff --git a/boblogistics_0.14.0/graphics/icons/flying-robot-frame-3.png b/boblogistics_0.14.2/graphics/icons/flying-robot-frame-3.png similarity index 100% rename from boblogistics_0.14.0/graphics/icons/flying-robot-frame-3.png rename to boblogistics_0.14.2/graphics/icons/flying-robot-frame-3.png diff --git a/boblogistics_0.14.0/graphics/icons/flying-robot-frame-4.png b/boblogistics_0.14.2/graphics/icons/flying-robot-frame-4.png similarity index 100% rename from boblogistics_0.14.0/graphics/icons/flying-robot-frame-4.png rename to boblogistics_0.14.2/graphics/icons/flying-robot-frame-4.png diff --git a/boblogistics_0.14.0/graphics/icons/flying-robot-frame.png b/boblogistics_0.14.2/graphics/icons/flying-robot-frame.png similarity index 100% rename from boblogistics_0.14.0/graphics/icons/flying-robot-frame.png rename to boblogistics_0.14.2/graphics/icons/flying-robot-frame.png diff --git a/boblogistics_0.14.0/graphics/icons/green-splitter.png b/boblogistics_0.14.2/graphics/icons/green-splitter.png similarity index 100% rename from boblogistics_0.14.0/graphics/icons/green-splitter.png rename to boblogistics_0.14.2/graphics/icons/green-splitter.png diff --git a/boblogistics_0.14.0/graphics/icons/green-transport-belt-to-ground.png b/boblogistics_0.14.2/graphics/icons/green-transport-belt-to-ground.png similarity index 100% rename from boblogistics_0.14.0/graphics/icons/green-transport-belt-to-ground.png rename to boblogistics_0.14.2/graphics/icons/green-transport-belt-to-ground.png diff --git a/boblogistics_0.14.0/graphics/icons/green-transport-belt.png b/boblogistics_0.14.2/graphics/icons/green-transport-belt.png similarity index 100% rename from boblogistics_0.14.0/graphics/icons/green-transport-belt.png rename to boblogistics_0.14.2/graphics/icons/green-transport-belt.png diff --git a/boblogistics_0.14.0/graphics/icons/inserter/cyan-inserter.png b/boblogistics_0.14.2/graphics/icons/inserter/cyan-inserter.png similarity index 100% rename from boblogistics_0.14.0/graphics/icons/inserter/cyan-inserter.png rename to boblogistics_0.14.2/graphics/icons/inserter/cyan-inserter.png diff --git a/boblogistics_0.14.0/graphics/icons/inserter/dark-green-inserter.png b/boblogistics_0.14.2/graphics/icons/inserter/dark-green-inserter.png similarity index 100% rename from boblogistics_0.14.0/graphics/icons/inserter/dark-green-inserter.png rename to boblogistics_0.14.2/graphics/icons/inserter/dark-green-inserter.png diff --git a/boblogistics_0.14.0/graphics/icons/inserter/magenta-inserter.png b/boblogistics_0.14.2/graphics/icons/inserter/magenta-inserter.png similarity index 100% rename from boblogistics_0.14.0/graphics/icons/inserter/magenta-inserter.png rename to boblogistics_0.14.2/graphics/icons/inserter/magenta-inserter.png diff --git a/boblogistics_0.14.0/graphics/icons/inserter/stripe-inserter.png b/boblogistics_0.14.2/graphics/icons/inserter/stripe-inserter.png similarity index 100% rename from boblogistics_0.14.0/graphics/icons/inserter/stripe-inserter.png rename to boblogistics_0.14.2/graphics/icons/inserter/stripe-inserter.png diff --git a/boblogistics_0.14.0/graphics/icons/logistic-chest-active-provider-2.png b/boblogistics_0.14.2/graphics/icons/logistic-chest-active-provider-2.png similarity index 100% rename from boblogistics_0.14.0/graphics/icons/logistic-chest-active-provider-2.png rename to boblogistics_0.14.2/graphics/icons/logistic-chest-active-provider-2.png diff --git a/boblogistics_0.14.0/graphics/icons/logistic-chest-passive-provider-2.png b/boblogistics_0.14.2/graphics/icons/logistic-chest-passive-provider-2.png similarity index 100% rename from boblogistics_0.14.0/graphics/icons/logistic-chest-passive-provider-2.png rename to boblogistics_0.14.2/graphics/icons/logistic-chest-passive-provider-2.png diff --git a/boblogistics_0.14.0/graphics/icons/logistic-chest-requester-2.png b/boblogistics_0.14.2/graphics/icons/logistic-chest-requester-2.png similarity index 100% rename from boblogistics_0.14.0/graphics/icons/logistic-chest-requester-2.png rename to boblogistics_0.14.2/graphics/icons/logistic-chest-requester-2.png diff --git a/boblogistics_0.14.0/graphics/icons/logistic-chest-storage-2.png b/boblogistics_0.14.2/graphics/icons/logistic-chest-storage-2.png similarity index 100% rename from boblogistics_0.14.0/graphics/icons/logistic-chest-storage-2.png rename to boblogistics_0.14.2/graphics/icons/logistic-chest-storage-2.png diff --git a/boblogistics_0.14.0/graphics/icons/logistic-robot-2.png b/boblogistics_0.14.2/graphics/icons/logistic-robot-2.png similarity index 100% rename from boblogistics_0.14.0/graphics/icons/logistic-robot-2.png rename to boblogistics_0.14.2/graphics/icons/logistic-robot-2.png diff --git a/boblogistics_0.14.0/graphics/icons/logistic-robot-3.png b/boblogistics_0.14.2/graphics/icons/logistic-robot-3.png similarity index 100% rename from boblogistics_0.14.0/graphics/icons/logistic-robot-3.png rename to boblogistics_0.14.2/graphics/icons/logistic-robot-3.png diff --git a/boblogistics_0.14.0/graphics/icons/logistic-robot-4.png b/boblogistics_0.14.2/graphics/icons/logistic-robot-4.png similarity index 100% rename from boblogistics_0.14.0/graphics/icons/logistic-robot-4.png rename to boblogistics_0.14.2/graphics/icons/logistic-robot-4.png diff --git a/boblogistics_0.14.0/graphics/icons/logistic-robot.png b/boblogistics_0.14.2/graphics/icons/logistic-robot.png similarity index 100% rename from boblogistics_0.14.0/graphics/icons/logistic-robot.png rename to boblogistics_0.14.2/graphics/icons/logistic-robot.png diff --git a/boblogistics_0.14.0/graphics/icons/logistic-zone-expander-2.png b/boblogistics_0.14.2/graphics/icons/logistic-zone-expander-2.png similarity index 100% rename from boblogistics_0.14.0/graphics/icons/logistic-zone-expander-2.png rename to boblogistics_0.14.2/graphics/icons/logistic-zone-expander-2.png diff --git a/boblogistics_0.14.0/graphics/icons/logistic-zone-expander-3.png b/boblogistics_0.14.2/graphics/icons/logistic-zone-expander-3.png similarity index 100% rename from boblogistics_0.14.0/graphics/icons/logistic-zone-expander-3.png rename to boblogistics_0.14.2/graphics/icons/logistic-zone-expander-3.png diff --git a/boblogistics_0.14.0/graphics/icons/logistic-zone-expander-4.png b/boblogistics_0.14.2/graphics/icons/logistic-zone-expander-4.png similarity index 100% rename from boblogistics_0.14.0/graphics/icons/logistic-zone-expander-4.png rename to boblogistics_0.14.2/graphics/icons/logistic-zone-expander-4.png diff --git a/boblogistics_0.14.0/graphics/icons/logistic-zone-expander.png b/boblogistics_0.14.2/graphics/icons/logistic-zone-expander.png similarity index 100% rename from boblogistics_0.14.0/graphics/icons/logistic-zone-expander.png rename to boblogistics_0.14.2/graphics/icons/logistic-zone-expander.png diff --git a/boblogistics_0.14.0/graphics/icons/logistic-zone-interface.png b/boblogistics_0.14.2/graphics/icons/logistic-zone-interface.png similarity index 100% rename from boblogistics_0.14.0/graphics/icons/logistic-zone-interface.png rename to boblogistics_0.14.2/graphics/icons/logistic-zone-interface.png diff --git a/boblogistics_0.14.0/graphics/icons/pipe/brass-pipe-to-ground.png b/boblogistics_0.14.2/graphics/icons/pipe/brass-pipe-to-ground.png similarity index 100% rename from boblogistics_0.14.0/graphics/icons/pipe/brass-pipe-to-ground.png rename to boblogistics_0.14.2/graphics/icons/pipe/brass-pipe-to-ground.png diff --git a/boblogistics_0.14.0/graphics/icons/pipe/brass-pipe.png b/boblogistics_0.14.2/graphics/icons/pipe/brass-pipe.png similarity index 100% rename from boblogistics_0.14.0/graphics/icons/pipe/brass-pipe.png rename to boblogistics_0.14.2/graphics/icons/pipe/brass-pipe.png diff --git a/boblogistics_0.14.0/graphics/icons/pipe/bronze-pipe-to-ground.png b/boblogistics_0.14.2/graphics/icons/pipe/bronze-pipe-to-ground.png similarity index 100% rename from boblogistics_0.14.0/graphics/icons/pipe/bronze-pipe-to-ground.png rename to boblogistics_0.14.2/graphics/icons/pipe/bronze-pipe-to-ground.png diff --git a/boblogistics_0.14.0/graphics/icons/pipe/bronze-pipe.png b/boblogistics_0.14.2/graphics/icons/pipe/bronze-pipe.png similarity index 100% rename from boblogistics_0.14.0/graphics/icons/pipe/bronze-pipe.png rename to boblogistics_0.14.2/graphics/icons/pipe/bronze-pipe.png diff --git a/boblogistics_0.14.0/graphics/icons/pipe/ceramic-pipe-to-ground.png b/boblogistics_0.14.2/graphics/icons/pipe/ceramic-pipe-to-ground.png similarity index 100% rename from boblogistics_0.14.0/graphics/icons/pipe/ceramic-pipe-to-ground.png rename to boblogistics_0.14.2/graphics/icons/pipe/ceramic-pipe-to-ground.png diff --git a/boblogistics_0.14.0/graphics/icons/pipe/ceramic-pipe.png b/boblogistics_0.14.2/graphics/icons/pipe/ceramic-pipe.png similarity index 100% rename from boblogistics_0.14.0/graphics/icons/pipe/ceramic-pipe.png rename to boblogistics_0.14.2/graphics/icons/pipe/ceramic-pipe.png diff --git a/boblogistics_0.14.0/graphics/icons/pipe/copper-pipe-to-ground.png b/boblogistics_0.14.2/graphics/icons/pipe/copper-pipe-to-ground.png similarity index 100% rename from boblogistics_0.14.0/graphics/icons/pipe/copper-pipe-to-ground.png rename to boblogistics_0.14.2/graphics/icons/pipe/copper-pipe-to-ground.png diff --git a/boblogistics_0.14.0/graphics/icons/pipe/copper-pipe.png b/boblogistics_0.14.2/graphics/icons/pipe/copper-pipe.png similarity index 100% rename from boblogistics_0.14.0/graphics/icons/pipe/copper-pipe.png rename to boblogistics_0.14.2/graphics/icons/pipe/copper-pipe.png diff --git a/boblogistics_0.14.0/graphics/icons/pipe/plastic-pipe-to-ground.png b/boblogistics_0.14.2/graphics/icons/pipe/plastic-pipe-to-ground.png similarity index 100% rename from boblogistics_0.14.0/graphics/icons/pipe/plastic-pipe-to-ground.png rename to boblogistics_0.14.2/graphics/icons/pipe/plastic-pipe-to-ground.png diff --git a/boblogistics_0.14.0/graphics/icons/pipe/plastic-pipe.png b/boblogistics_0.14.2/graphics/icons/pipe/plastic-pipe.png similarity index 100% rename from boblogistics_0.14.0/graphics/icons/pipe/plastic-pipe.png rename to boblogistics_0.14.2/graphics/icons/pipe/plastic-pipe.png diff --git a/boblogistics_0.14.0/graphics/icons/pipe/steel-pipe-to-ground.png b/boblogistics_0.14.2/graphics/icons/pipe/steel-pipe-to-ground.png similarity index 100% rename from boblogistics_0.14.0/graphics/icons/pipe/steel-pipe-to-ground.png rename to boblogistics_0.14.2/graphics/icons/pipe/steel-pipe-to-ground.png diff --git a/boblogistics_0.14.0/graphics/icons/pipe/steel-pipe.png b/boblogistics_0.14.2/graphics/icons/pipe/steel-pipe.png similarity index 100% rename from boblogistics_0.14.0/graphics/icons/pipe/steel-pipe.png rename to boblogistics_0.14.2/graphics/icons/pipe/steel-pipe.png diff --git a/boblogistics_0.14.0/graphics/icons/pipe/stone-pipe-to-ground.png b/boblogistics_0.14.2/graphics/icons/pipe/stone-pipe-to-ground.png similarity index 100% rename from boblogistics_0.14.0/graphics/icons/pipe/stone-pipe-to-ground.png rename to boblogistics_0.14.2/graphics/icons/pipe/stone-pipe-to-ground.png diff --git a/boblogistics_0.14.0/graphics/icons/pipe/stone-pipe.png b/boblogistics_0.14.2/graphics/icons/pipe/stone-pipe.png similarity index 100% rename from boblogistics_0.14.0/graphics/icons/pipe/stone-pipe.png rename to boblogistics_0.14.2/graphics/icons/pipe/stone-pipe.png diff --git a/boblogistics_0.14.0/graphics/icons/pipe/titanium-pipe-to-ground.png b/boblogistics_0.14.2/graphics/icons/pipe/titanium-pipe-to-ground.png similarity index 100% rename from boblogistics_0.14.0/graphics/icons/pipe/titanium-pipe-to-ground.png rename to boblogistics_0.14.2/graphics/icons/pipe/titanium-pipe-to-ground.png diff --git a/boblogistics_0.14.0/graphics/icons/pipe/titanium-pipe.png b/boblogistics_0.14.2/graphics/icons/pipe/titanium-pipe.png similarity index 100% rename from boblogistics_0.14.0/graphics/icons/pipe/titanium-pipe.png rename to boblogistics_0.14.2/graphics/icons/pipe/titanium-pipe.png diff --git a/boblogistics_0.14.0/graphics/icons/pipe/tungsten-pipe-to-ground.png b/boblogistics_0.14.2/graphics/icons/pipe/tungsten-pipe-to-ground.png similarity index 100% rename from boblogistics_0.14.0/graphics/icons/pipe/tungsten-pipe-to-ground.png rename to boblogistics_0.14.2/graphics/icons/pipe/tungsten-pipe-to-ground.png diff --git a/boblogistics_0.14.0/graphics/icons/pipe/tungsten-pipe.png b/boblogistics_0.14.2/graphics/icons/pipe/tungsten-pipe.png similarity index 100% rename from boblogistics_0.14.0/graphics/icons/pipe/tungsten-pipe.png rename to boblogistics_0.14.2/graphics/icons/pipe/tungsten-pipe.png diff --git a/boblogistics_0.14.0/graphics/icons/pipe/valve.png b/boblogistics_0.14.2/graphics/icons/pipe/valve.png similarity index 100% rename from boblogistics_0.14.0/graphics/icons/pipe/valve.png rename to boblogistics_0.14.2/graphics/icons/pipe/valve.png diff --git a/boblogistics_0.14.0/graphics/icons/purple-splitter.png b/boblogistics_0.14.2/graphics/icons/purple-splitter.png similarity index 100% rename from boblogistics_0.14.0/graphics/icons/purple-splitter.png rename to boblogistics_0.14.2/graphics/icons/purple-splitter.png diff --git a/boblogistics_0.14.0/graphics/icons/purple-transport-belt-to-ground.png b/boblogistics_0.14.2/graphics/icons/purple-transport-belt-to-ground.png similarity index 100% rename from boblogistics_0.14.0/graphics/icons/purple-transport-belt-to-ground.png rename to boblogistics_0.14.2/graphics/icons/purple-transport-belt-to-ground.png diff --git a/boblogistics_0.14.0/graphics/icons/purple-transport-belt.png b/boblogistics_0.14.2/graphics/icons/purple-transport-belt.png similarity index 100% rename from boblogistics_0.14.0/graphics/icons/purple-transport-belt.png rename to boblogistics_0.14.2/graphics/icons/purple-transport-belt.png diff --git a/boblogistics_0.14.0/graphics/icons/robo-charge-port-2.png b/boblogistics_0.14.2/graphics/icons/robo-charge-port-2.png similarity index 100% rename from boblogistics_0.14.0/graphics/icons/robo-charge-port-2.png rename to boblogistics_0.14.2/graphics/icons/robo-charge-port-2.png diff --git a/boblogistics_0.14.0/graphics/icons/robo-charge-port-3.png b/boblogistics_0.14.2/graphics/icons/robo-charge-port-3.png similarity index 100% rename from boblogistics_0.14.0/graphics/icons/robo-charge-port-3.png rename to boblogistics_0.14.2/graphics/icons/robo-charge-port-3.png diff --git a/boblogistics_0.14.0/graphics/icons/robo-charge-port-4.png b/boblogistics_0.14.2/graphics/icons/robo-charge-port-4.png similarity index 100% rename from boblogistics_0.14.0/graphics/icons/robo-charge-port-4.png rename to boblogistics_0.14.2/graphics/icons/robo-charge-port-4.png diff --git a/boblogistics_0.14.0/graphics/icons/robo-charge-port-large-2.png b/boblogistics_0.14.2/graphics/icons/robo-charge-port-large-2.png similarity index 100% rename from boblogistics_0.14.0/graphics/icons/robo-charge-port-large-2.png rename to boblogistics_0.14.2/graphics/icons/robo-charge-port-large-2.png diff --git a/boblogistics_0.14.0/graphics/icons/robo-charge-port-large-3.png b/boblogistics_0.14.2/graphics/icons/robo-charge-port-large-3.png similarity index 100% rename from boblogistics_0.14.0/graphics/icons/robo-charge-port-large-3.png rename to boblogistics_0.14.2/graphics/icons/robo-charge-port-large-3.png diff --git a/boblogistics_0.14.0/graphics/icons/robo-charge-port-large-4.png b/boblogistics_0.14.2/graphics/icons/robo-charge-port-large-4.png similarity index 100% rename from boblogistics_0.14.0/graphics/icons/robo-charge-port-large-4.png rename to boblogistics_0.14.2/graphics/icons/robo-charge-port-large-4.png diff --git a/boblogistics_0.14.0/graphics/icons/robo-charge-port-large.png b/boblogistics_0.14.2/graphics/icons/robo-charge-port-large.png similarity index 100% rename from boblogistics_0.14.0/graphics/icons/robo-charge-port-large.png rename to boblogistics_0.14.2/graphics/icons/robo-charge-port-large.png diff --git a/boblogistics_0.14.0/graphics/icons/robo-charge-port.png b/boblogistics_0.14.2/graphics/icons/robo-charge-port.png similarity index 100% rename from boblogistics_0.14.0/graphics/icons/robo-charge-port.png rename to boblogistics_0.14.2/graphics/icons/robo-charge-port.png diff --git a/boblogistics_0.14.0/graphics/icons/robochest-2.png b/boblogistics_0.14.2/graphics/icons/robochest-2.png similarity index 100% rename from boblogistics_0.14.0/graphics/icons/robochest-2.png rename to boblogistics_0.14.2/graphics/icons/robochest-2.png diff --git a/boblogistics_0.14.0/graphics/icons/robochest-3.png b/boblogistics_0.14.2/graphics/icons/robochest-3.png similarity index 100% rename from boblogistics_0.14.0/graphics/icons/robochest-3.png rename to boblogistics_0.14.2/graphics/icons/robochest-3.png diff --git a/boblogistics_0.14.0/graphics/icons/robochest-4.png b/boblogistics_0.14.2/graphics/icons/robochest-4.png similarity index 100% rename from boblogistics_0.14.0/graphics/icons/robochest-4.png rename to boblogistics_0.14.2/graphics/icons/robochest-4.png diff --git a/boblogistics_0.14.0/graphics/icons/robochest.png b/boblogistics_0.14.2/graphics/icons/robochest.png similarity index 100% rename from boblogistics_0.14.0/graphics/icons/robochest.png rename to boblogistics_0.14.2/graphics/icons/robochest.png diff --git a/boblogistics_0.14.0/graphics/icons/roboport-2.png b/boblogistics_0.14.2/graphics/icons/roboport-2.png similarity index 100% rename from boblogistics_0.14.0/graphics/icons/roboport-2.png rename to boblogistics_0.14.2/graphics/icons/roboport-2.png diff --git a/boblogistics_0.14.0/graphics/icons/roboport-3.png b/boblogistics_0.14.2/graphics/icons/roboport-3.png similarity index 100% rename from boblogistics_0.14.0/graphics/icons/roboport-3.png rename to boblogistics_0.14.2/graphics/icons/roboport-3.png diff --git a/boblogistics_0.14.0/graphics/icons/roboport-4.png b/boblogistics_0.14.2/graphics/icons/roboport-4.png similarity index 100% rename from boblogistics_0.14.0/graphics/icons/roboport-4.png rename to boblogistics_0.14.2/graphics/icons/roboport-4.png diff --git a/boblogistics_0.14.0/graphics/icons/roboport-antenna-2.png b/boblogistics_0.14.2/graphics/icons/roboport-antenna-2.png similarity index 100% rename from boblogistics_0.14.0/graphics/icons/roboport-antenna-2.png rename to boblogistics_0.14.2/graphics/icons/roboport-antenna-2.png diff --git a/boblogistics_0.14.0/graphics/icons/roboport-antenna-3.png b/boblogistics_0.14.2/graphics/icons/roboport-antenna-3.png similarity index 100% rename from boblogistics_0.14.0/graphics/icons/roboport-antenna-3.png rename to boblogistics_0.14.2/graphics/icons/roboport-antenna-3.png diff --git a/boblogistics_0.14.0/graphics/icons/roboport-antenna-4.png b/boblogistics_0.14.2/graphics/icons/roboport-antenna-4.png similarity index 100% rename from boblogistics_0.14.0/graphics/icons/roboport-antenna-4.png rename to boblogistics_0.14.2/graphics/icons/roboport-antenna-4.png diff --git a/boblogistics_0.14.0/graphics/icons/roboport-antenna.png b/boblogistics_0.14.2/graphics/icons/roboport-antenna.png similarity index 100% rename from boblogistics_0.14.0/graphics/icons/roboport-antenna.png rename to boblogistics_0.14.2/graphics/icons/roboport-antenna.png diff --git a/boblogistics_0.14.0/graphics/icons/roboport-chargepad-2.png b/boblogistics_0.14.2/graphics/icons/roboport-chargepad-2.png similarity index 100% rename from boblogistics_0.14.0/graphics/icons/roboport-chargepad-2.png rename to boblogistics_0.14.2/graphics/icons/roboport-chargepad-2.png diff --git a/boblogistics_0.14.0/graphics/icons/roboport-chargepad-3.png b/boblogistics_0.14.2/graphics/icons/roboport-chargepad-3.png similarity index 100% rename from boblogistics_0.14.0/graphics/icons/roboport-chargepad-3.png rename to boblogistics_0.14.2/graphics/icons/roboport-chargepad-3.png diff --git a/boblogistics_0.14.0/graphics/icons/roboport-chargepad-4.png b/boblogistics_0.14.2/graphics/icons/roboport-chargepad-4.png similarity index 100% rename from boblogistics_0.14.0/graphics/icons/roboport-chargepad-4.png rename to boblogistics_0.14.2/graphics/icons/roboport-chargepad-4.png diff --git a/boblogistics_0.14.0/graphics/icons/roboport-chargepad.png b/boblogistics_0.14.2/graphics/icons/roboport-chargepad.png similarity index 100% rename from boblogistics_0.14.0/graphics/icons/roboport-chargepad.png rename to boblogistics_0.14.2/graphics/icons/roboport-chargepad.png diff --git a/boblogistics_0.14.0/graphics/icons/roboport-door-2.png b/boblogistics_0.14.2/graphics/icons/roboport-door-2.png similarity index 100% rename from boblogistics_0.14.0/graphics/icons/roboport-door-2.png rename to boblogistics_0.14.2/graphics/icons/roboport-door-2.png diff --git a/boblogistics_0.14.0/graphics/icons/roboport-door-3.png b/boblogistics_0.14.2/graphics/icons/roboport-door-3.png similarity index 100% rename from boblogistics_0.14.0/graphics/icons/roboport-door-3.png rename to boblogistics_0.14.2/graphics/icons/roboport-door-3.png diff --git a/boblogistics_0.14.0/graphics/icons/roboport-door-4.png b/boblogistics_0.14.2/graphics/icons/roboport-door-4.png similarity index 100% rename from boblogistics_0.14.0/graphics/icons/roboport-door-4.png rename to boblogistics_0.14.2/graphics/icons/roboport-door-4.png diff --git a/boblogistics_0.14.0/graphics/icons/roboport-door.png b/boblogistics_0.14.2/graphics/icons/roboport-door.png similarity index 100% rename from boblogistics_0.14.0/graphics/icons/roboport-door.png rename to boblogistics_0.14.2/graphics/icons/roboport-door.png diff --git a/boblogistics_0.14.0/graphics/icons/roboport.png b/boblogistics_0.14.2/graphics/icons/roboport.png similarity index 100% rename from boblogistics_0.14.0/graphics/icons/roboport.png rename to boblogistics_0.14.2/graphics/icons/roboport.png diff --git a/boblogistics_0.14.0/graphics/icons/robot-brain-construction-2.png b/boblogistics_0.14.2/graphics/icons/robot-brain-construction-2.png similarity index 100% rename from boblogistics_0.14.0/graphics/icons/robot-brain-construction-2.png rename to boblogistics_0.14.2/graphics/icons/robot-brain-construction-2.png diff --git a/boblogistics_0.14.0/graphics/icons/robot-brain-construction-3.png b/boblogistics_0.14.2/graphics/icons/robot-brain-construction-3.png similarity index 100% rename from boblogistics_0.14.0/graphics/icons/robot-brain-construction-3.png rename to boblogistics_0.14.2/graphics/icons/robot-brain-construction-3.png diff --git a/boblogistics_0.14.0/graphics/icons/robot-brain-construction-4.png b/boblogistics_0.14.2/graphics/icons/robot-brain-construction-4.png similarity index 100% rename from boblogistics_0.14.0/graphics/icons/robot-brain-construction-4.png rename to boblogistics_0.14.2/graphics/icons/robot-brain-construction-4.png diff --git a/boblogistics_0.14.0/graphics/icons/robot-brain-construction.png b/boblogistics_0.14.2/graphics/icons/robot-brain-construction.png similarity index 100% rename from boblogistics_0.14.0/graphics/icons/robot-brain-construction.png rename to boblogistics_0.14.2/graphics/icons/robot-brain-construction.png diff --git a/boblogistics_0.14.0/graphics/icons/robot-brain-logistic-2.png b/boblogistics_0.14.2/graphics/icons/robot-brain-logistic-2.png similarity index 100% rename from boblogistics_0.14.0/graphics/icons/robot-brain-logistic-2.png rename to boblogistics_0.14.2/graphics/icons/robot-brain-logistic-2.png diff --git a/boblogistics_0.14.0/graphics/icons/robot-brain-logistic-3.png b/boblogistics_0.14.2/graphics/icons/robot-brain-logistic-3.png similarity index 100% rename from boblogistics_0.14.0/graphics/icons/robot-brain-logistic-3.png rename to boblogistics_0.14.2/graphics/icons/robot-brain-logistic-3.png diff --git a/boblogistics_0.14.0/graphics/icons/robot-brain-logistic-4.png b/boblogistics_0.14.2/graphics/icons/robot-brain-logistic-4.png similarity index 100% rename from boblogistics_0.14.0/graphics/icons/robot-brain-logistic-4.png rename to boblogistics_0.14.2/graphics/icons/robot-brain-logistic-4.png diff --git a/boblogistics_0.14.0/graphics/icons/robot-brain-logistic.png b/boblogistics_0.14.2/graphics/icons/robot-brain-logistic.png similarity index 100% rename from boblogistics_0.14.0/graphics/icons/robot-brain-logistic.png rename to boblogistics_0.14.2/graphics/icons/robot-brain-logistic.png diff --git a/boblogistics_0.14.0/graphics/icons/robot-tool-construction.png b/boblogistics_0.14.2/graphics/icons/robot-tool-construction.png similarity index 100% rename from boblogistics_0.14.0/graphics/icons/robot-tool-construction.png rename to boblogistics_0.14.2/graphics/icons/robot-tool-construction.png diff --git a/boblogistics_0.14.0/graphics/icons/robot-tool-logistic.png b/boblogistics_0.14.2/graphics/icons/robot-tool-logistic.png similarity index 100% rename from boblogistics_0.14.0/graphics/icons/robot-tool-logistic.png rename to boblogistics_0.14.2/graphics/icons/robot-tool-logistic.png diff --git a/boblogistics_0.14.0/graphics/icons/technology/character-inventory-slots.png b/boblogistics_0.14.2/graphics/icons/technology/character-inventory-slots.png similarity index 100% rename from boblogistics_0.14.0/graphics/icons/technology/character-inventory-slots.png rename to boblogistics_0.14.2/graphics/icons/technology/character-inventory-slots.png diff --git a/boblogistics_0.14.0/graphics/icons/technology/express-inserter.png b/boblogistics_0.14.2/graphics/icons/technology/express-inserter.png similarity index 100% rename from boblogistics_0.14.0/graphics/icons/technology/express-inserter.png rename to boblogistics_0.14.2/graphics/icons/technology/express-inserter.png diff --git a/boblogistics_0.14.0/graphics/icons/technology/logistics.png b/boblogistics_0.14.2/graphics/icons/technology/logistics.png similarity index 100% rename from boblogistics_0.14.0/graphics/icons/technology/logistics.png rename to boblogistics_0.14.2/graphics/icons/technology/logistics.png diff --git a/boblogistics_0.14.0/graphics/icons/technology/long-inserters.png b/boblogistics_0.14.2/graphics/icons/technology/long-inserters.png similarity index 100% rename from boblogistics_0.14.0/graphics/icons/technology/long-inserters.png rename to boblogistics_0.14.2/graphics/icons/technology/long-inserters.png diff --git a/boblogistics_0.14.0/graphics/icons/technology/magenta-inserters.png b/boblogistics_0.14.2/graphics/icons/technology/magenta-inserters.png similarity index 100% rename from boblogistics_0.14.0/graphics/icons/technology/magenta-inserters.png rename to boblogistics_0.14.2/graphics/icons/technology/magenta-inserters.png diff --git a/boblogistics_0.14.0/graphics/icons/technology/modular-roboport-2.png b/boblogistics_0.14.2/graphics/icons/technology/modular-roboport-2.png similarity index 100% rename from boblogistics_0.14.0/graphics/icons/technology/modular-roboport-2.png rename to boblogistics_0.14.2/graphics/icons/technology/modular-roboport-2.png diff --git a/boblogistics_0.14.0/graphics/icons/technology/modular-roboport-3.png b/boblogistics_0.14.2/graphics/icons/technology/modular-roboport-3.png similarity index 100% rename from boblogistics_0.14.0/graphics/icons/technology/modular-roboport-3.png rename to boblogistics_0.14.2/graphics/icons/technology/modular-roboport-3.png diff --git a/boblogistics_0.14.0/graphics/icons/technology/modular-roboport-4.png b/boblogistics_0.14.2/graphics/icons/technology/modular-roboport-4.png similarity index 100% rename from boblogistics_0.14.0/graphics/icons/technology/modular-roboport-4.png rename to boblogistics_0.14.2/graphics/icons/technology/modular-roboport-4.png diff --git a/boblogistics_0.14.0/graphics/icons/technology/modular-roboport.png b/boblogistics_0.14.2/graphics/icons/technology/modular-roboport.png similarity index 100% rename from boblogistics_0.14.0/graphics/icons/technology/modular-roboport.png rename to boblogistics_0.14.2/graphics/icons/technology/modular-roboport.png diff --git a/boblogistics_0.14.0/graphics/icons/technology/more-inserters.png b/boblogistics_0.14.2/graphics/icons/technology/more-inserters.png similarity index 100% rename from boblogistics_0.14.0/graphics/icons/technology/more-inserters.png rename to boblogistics_0.14.2/graphics/icons/technology/more-inserters.png diff --git a/boblogistics_0.14.0/graphics/icons/technology/near-inserters.png b/boblogistics_0.14.2/graphics/icons/technology/near-inserters.png similarity index 100% rename from boblogistics_0.14.0/graphics/icons/technology/near-inserters.png rename to boblogistics_0.14.2/graphics/icons/technology/near-inserters.png diff --git a/boblogistics_0.14.0/graphics/icons/technology/robotics-2.png b/boblogistics_0.14.2/graphics/icons/technology/robotics-2.png similarity index 100% rename from boblogistics_0.14.0/graphics/icons/technology/robotics-2.png rename to boblogistics_0.14.2/graphics/icons/technology/robotics-2.png diff --git a/boblogistics_0.14.0/graphics/icons/technology/robotics-3.png b/boblogistics_0.14.2/graphics/icons/technology/robotics-3.png similarity index 100% rename from boblogistics_0.14.0/graphics/icons/technology/robotics-3.png rename to boblogistics_0.14.2/graphics/icons/technology/robotics-3.png diff --git a/boblogistics_0.14.0/graphics/icons/technology/robotics-4.png b/boblogistics_0.14.2/graphics/icons/technology/robotics-4.png similarity index 100% rename from boblogistics_0.14.0/graphics/icons/technology/robotics-4.png rename to boblogistics_0.14.2/graphics/icons/technology/robotics-4.png diff --git a/boblogistics_0.14.0/graphics/icons/technology/robotics.png b/boblogistics_0.14.2/graphics/icons/technology/robotics.png similarity index 100% rename from boblogistics_0.14.0/graphics/icons/technology/robotics.png rename to boblogistics_0.14.2/graphics/icons/technology/robotics.png diff --git a/boblogistics_0.14.0/graphics/icons/technology/stack-inserter-capacity.png b/boblogistics_0.14.2/graphics/icons/technology/stack-inserter-capacity.png similarity index 100% rename from boblogistics_0.14.0/graphics/icons/technology/stack-inserter-capacity.png rename to boblogistics_0.14.2/graphics/icons/technology/stack-inserter-capacity.png diff --git a/boblogistics_0.14.0/info.json b/boblogistics_0.14.2/info.json similarity index 91% rename from boblogistics_0.14.0/info.json rename to boblogistics_0.14.2/info.json index b1682de..3069410 100644 --- a/boblogistics_0.14.0/info.json +++ b/boblogistics_0.14.2/info.json @@ -1,11 +1,11 @@ -{ - "name": "boblogistics", - "version": "0.14.0", - "factorio_version": "0.14", - "title": "Bob's Logistics mod", - "author": "Bobingabout", - "contact": "robertagius@hotmail.com", - "homepage": "https://forums.factorio.com/viewforum.php?f=51", - "description": "Adds logistic related things.", - "dependencies": ["base >= 0.14.0", "boblibrary >= 0.14.0", "? bobconfig >= 0.14.0", "? bobplates >= 0.14.0"] -} +{ + "name": "boblogistics", + "version": "0.14.2", + "factorio_version": "0.14", + "title": "Bob's Logistics mod", + "author": "Bobingabout", + "contact": "robertagius@hotmail.com", + "homepage": "https://forums.factorio.com/viewforum.php?f=51", + "description": "Adds logistic related things.", + "dependencies": ["base >= 0.14.0", "boblibrary >= 0.14.0", "? bobconfig >= 0.14.0", "? bobplates >= 0.14.0"] +} diff --git a/boblogistics_0.14.0/locale/en/boblogistics.cfg b/boblogistics_0.14.2/locale/en/boblogistics.cfg similarity index 92% rename from boblogistics_0.14.0/locale/en/boblogistics.cfg rename to boblogistics_0.14.2/locale/en/boblogistics.cfg index f185662..7058cf0 100644 --- a/boblogistics_0.14.0/locale/en/boblogistics.cfg +++ b/boblogistics_0.14.2/locale/en/boblogistics.cfg @@ -1,366 +1,366 @@ -[item-name] -roboport=Roboport MK1 -bob-roboport-2=Roboport MK2 -bob-roboport-3=Roboport MK3 -bob-roboport-4=Roboport MK4 - -bob-robochest=Robochest MK1 -bob-robochest-2=Robochest MK2 -bob-robochest-3=Robochest MK3 -bob-robochest-4=Robochest MK4 - -bob-logistic-zone-expander=Logistic zone expander MK1 -bob-logistic-zone-expander-2=Logistic zone expander MK2 -bob-logistic-zone-expander-3=Logistic zone expander MK3 -bob-logistic-zone-expander-4=Logistic zone expander MK4 - -bob-logistic-zone-interface=Logistic zone interface - -bob-robo-charge-port=Robot charging point MK1 -bob-robo-charge-port-2=Robot charging point MK2 -bob-robo-charge-port-3=Robot charging point MK3 -bob-robo-charge-port-4=Robot charging point MK4 - -bob-robo-charge-port-large=Large robot charging point MK1 -bob-robo-charge-port-large-2=Large robot charging point MK2 -bob-robo-charge-port-large-3=Large robot charging point MK3 -bob-robo-charge-port-large-4=Large robot charging point MK4 - - -flying-robot-frame-2=Flying robot frame MK2 -flying-robot-frame-3=Flying robot frame MK3 -flying-robot-frame-4=Flying robot frame MK4 - - -robot-brain-logistic=Logistic robot brain MK1 -robot-brain-logistic-2=Logistic robot brain MK2 -robot-brain-logistic-3=Logistic robot brain MK3 -robot-brain-logistic-4=Logistic robot brain MK4 - -robot-brain-construction=Construction robot brain MK1 -robot-brain-construction-2=Construction robot brain MK2 -robot-brain-construction-3=Construction robot brain MK3 -robot-brain-construction-4=Construction robot brain MK4 - - -robot-tool-logistic=Logistic robot tool MK1 -robot-tool-logistic-2=Logistic robot tool MK2 -robot-tool-logistic-3=Logistic robot tool MK3 -robot-tool-logistic-4=Logistic robot tool MK4 - -robot-tool-construction=Construction robot tool MK1 -robot-tool-construction-2=Construction robot tool MK2 -robot-tool-construction-3=Construction robot tool MK3 -robot-tool-construction-4=Construction robot tool MK4 - - -bob-construction-robot-2=Construction robot MK2 -bob-construction-robot-3=Construction robot MK3 -bob-construction-robot-4=Construction robot MK4 - -bob-logistic-robot-2=Logistic robot MK2 -bob-logistic-robot-3=Logistic robot MK3 -bob-logistic-robot-4=Logistic robot MK4 - - -roboport-door-1=Roboport hatch door MK1 -roboport-door-2=Roboport hatch door MK2 -roboport-door-3=Roboport hatch door MK3 -roboport-door-4=Roboport hatch door MK4 - -roboport-antenna-1=Roboport antenna array MK1 -roboport-antenna-2=Roboport antenna array MK2 -roboport-antenna-3=Roboport antenna array MK3 -roboport-antenna-4=Roboport antenna array MK4 - -roboport-chargepad-1=Roboport charging pad MK1 -roboport-chargepad-2=Roboport charging pad MK2 -roboport-chargepad-3=Roboport charging pad MK3 -roboport-chargepad-4=Roboport charging pad MK4 - - -logistic-chest-active-provider-2=Active provider chest MK2 -logistic-chest-passive-provider-2=Passive provider chest MK2 -logistic-chest-storage-2=Storage chest MK2 -logistic-chest-requester-2=Requester chest MK2 - - -long-handed-burner-inserter=Long handed burner inserter - -fast-near-inserter=Fast near handed inserter -fast-far-inserter=Fast far handed inserter -fast-long-inserter=Fast long handed inserter - -filter-near-inserter=Filter near inserter -filter-short-far-inserter=Filter standard in far inserter -filter-short-long-inserter=Filter standard in long inserter -filter-long-near-inserter=Filter long in near inserter -filter-long-short-inserter=Filter long in standard inserter -filter-far-inserter=Filter far inserter -filter-long-inserter=Filter long inserter - -express-near-inserter=Express near inserter -express-inserter=Express inserter -express-short-far-inserter=Express standard in far inserter -express-short-long-inserter=Express standard in long inserter -express-long-near-inserter=Express long in near inserter -express-long-short-inserter=Express long in standard inserter -express-far-inserter=Express far inserter -express-long-inserter=Express long inserter - -express-filter-inserter=Express filter inserter -express-stack-inserter=Express stack inserter -express-stack-filter-inserter=Express stack filter inserter - - -green-transport-belt=Faster transport belt -green-underground-belt=Faster underground belt -green-splitter=Faster splitter - -purple-transport-belt=Extremely fast transport belt -purple-underground-belt=Extremely fast underground belt -purple-splitter=Extremely fast splitter - -storage-tank-2=Storage Tank MK2 -storage-tank-3=Storage Tank MK3 -storage-tank-4=Storage Tank MK4 - -diesel-locomotive-2=Diesel Locomotive MK2 -diesel-locomotive-3=Diesel Locomotive MK3 -armoured-diesel-locomotive=Armoured Diesel Locomotive - -cargo-wagon-2=Cargo wagon MK2 -cargo-wagon-3=Cargo wagon MK3 -armoured-cargo-wagon=Armoured Cargo wagon - - -copper-pipe=Copper pipe -pipe=Iron pipe -stone-pipe=Stone pipe -bronze-pipe=Bronze pipe -steel-pipe=Steel pipe -plastic-pipe=Plastic pipe -brass-pipe=Brass pipe -titanium-pipe=Titanium pipe -ceramic-pipe=Ceramic pipe -tungsten-pipe=Tungsten pipe - - -copper-pipe-to-ground=Copper pipe-to-ground -pipe-to-ground=Iron pipe-to-ground -stone-pipe-to-ground=Stone pipe-to-ground -bronze-pipe-to-ground=Bronze pipe-to-ground -steel-pipe-to-ground=Steel pipe-to-ground -plastic-pipe-to-ground=Plastic pipe-to-ground -brass-pipe-to-ground=Brass pipe-to-ground -titanium-pipe-to-ground=Titanium pipe-to-ground -ceramic-pipe-to-ground=Ceramic pipe-to-ground -tungsten-pipe-to-ground=Tungsten pipe-to-ground - - -small-pump-2=Small pump MK2 -small-pump-3=Small pump MK3 -small-pump-4=Small pump MK4 - -valve=Valve - - -[fluid-name] - - -[entity-name] -roboport=Roboport MK1 -bob-roboport-2=Roboport MK2 -bob-roboport-3=Roboport MK3 -bob-roboport-4=Roboport MK4 - -bob-robochest=Robochest MK1 -bob-robochest-2=Robochest MK2 -bob-robochest-3=Robochest MK3 -bob-robochest-4=Robochest MK4 - -bob-logistic-zone-expander=Logistic zone expander MK1 -bob-logistic-zone-expander-2=Logistic zone expander MK2 -bob-logistic-zone-expander-3=Logistic zone expander MK3 -bob-logistic-zone-expander-4=Logistic zone expander MK4 - -bob-logistic-zone-interface=Logistic zone interface - -bob-robo-charge-port=Robot charging point MK1 -bob-robo-charge-port-2=Robot charging point MK2 -bob-robo-charge-port-3=Robot charging point MK3 -bob-robo-charge-port-4=Robot charging point MK4 - -bob-robo-charge-port-large=Large robot charging point MK1 -bob-robo-charge-port-large-2=Large robot charging point MK2 -bob-robo-charge-port-large-3=Large robot charging point MK3 -bob-robo-charge-port-large-4=Large robot charging point MK4 - - -bob-construction-robot-2=Construction robot MK2 -bob-construction-robot-3=Construction robot MK3 -bob-construction-robot-4=Construction robot MK4 - -bob-logistic-robot-2=Logistic robot MK2 -bob-logistic-robot-3=Logistic robot MK3 -bob-logistic-robot-4=Logistic robot MK4 - -logistic-chest-active-provider-2=Active provider chest MK2 -logistic-chest-passive-provider-2=Passive provider chest MK2 -logistic-chest-storage-2=Storage chest MK2 -logistic-chest-requester-2=Requester chest MK2 - - -long-handed-burner-inserter=Long handed burner inserter - -fast-near-inserter=Fast near handed inserter -fast-far-inserter=Fast far handed inserter -fast-long-inserter=Fast long handed inserter - -filter-near-inserter=Filter near inserter -filter-short-far-inserter=Filter standard in far inserter -filter-short-long-inserter=Filter standard in long inserter -filter-long-near-inserter=Filter long in near inserter -filter-long-short-inserter=Filter long in standard inserter -filter-far-inserter=Filter far inserter -filter-long-inserter=Filter long inserter - -express-near-inserter=Express near inserter -express-inserter=Express inserter -express-short-far-inserter=Express standard in far inserter -express-short-long-inserter=Express standard in long inserter -express-long-near-inserter=Express long in near inserter -express-long-short-inserter=Express long in standard inserter -express-far-inserter=Express far inserter -express-long-inserter=Express long inserter - -express-filter-inserter=Express filter inserter -express-stack-inserter=Express stack inserter -express-stack-filter-inserter=Express stack filter inserter - - -green-transport-belt=Faster transport belt -green-underground-belt=Faster underground belt -green-splitter=Faster splitter - -purple-transport-belt=Extremely fast transport belt -purple-underground-belt=Extremely fast underground belt -purple-splitter=Extremely fast splitter - -storage-tank-2=Storage Tank MK2 -storage-tank-3=Storage Tank MK3 -storage-tank-4=Storage Tank MK4 - - -diesel-locomotive-2=Diesel Locomotive MK2 -diesel-locomotive-3=Diesel Locomotive MK3 -armoured-diesel-locomotive=Armoured Diesel Locomotive - -cargo-wagon-2=Cargo wagon MK2 -cargo-wagon-3=Cargo wagon MK3 -armoured-cargo-wagon=Armoured Cargo wagon - - -copper-pipe=Copper pipe -pipe=Iron pipe -stone-pipe=Stone pipe -bronze-pipe=Bronze pipe -steel-pipe=Steel pipe -plastic-pipe=Plastic pipe -brass-pipe=Brass pipe -titanium-pipe=Titanium pipe -ceramic-pipe=Ceramic pipe -tungsten-pipe=Tungsten pipe - - -copper-pipe-to-ground=Copper pipe-to-ground -pipe-to-ground=Iron pipe-to-ground -stone-pipe-to-ground=Stone pipe-to-ground -bronze-pipe-to-ground=Bronze pipe-to-ground -steel-pipe-to-ground=Steel pipe-to-ground -plastic-pipe-to-ground=Plastic pipe-to-ground -brass-pipe-to-ground=Brass pipe-to-ground -titanium-pipe-to-ground=Titanium pipe-to-ground -ceramic-pipe-to-ground=Ceramic pipe-to-ground -tungsten-pipe-to-ground=Tungsten pipe-to-ground - - -small-pump-2=Small pump MK2 -small-pump-3=Small pump MK3 -small-pump-4=Small pump MK4 - -valve=Valve - - -[recipe-name] - - -[technology-name] -bob-robotics=Robotics -bob-robots=Advanced logistic and construction robotics -bob-robo-modular=Modular Roboports -express-inserters=Express Inserters - -long-burner-inserter=Long handed burner inserter -long-inserters=Long inserters -near-inserters=Near inserters -more-inserters=More inserters - - -bob-logistics=Logistics - -bob-fluid-handling=Fluid handling -bob-railway=Railway -railway=Railway -bob-armoured-railway=Armoured Railway - -character-inventory-slots=Character inventory slots -inserter-capacity-bonus=Stack inserter capacity bonus -inserter-stack-size-bonus=Inserter capacity bonus - - -[technology-description] -bob-robots=Logistic robots are a flexible alternative to conveyor belts. -bob-robo-modular=Research into building Roboports in modules. -express-inserters=Inserters that are faster than fast inserters! - -bob-logistics=Faster and more flexible ways of transportation. - -inserter-stack-size-bonus=Non-stack inserters can move more items at the same time. -stack-inserter=Stack inserters can move more items at the same time depending on their upgrade. - - -[item-description] -copper-pipe=Size: 5 -copper-pipe-to-ground=Size: 5 Underground distance: 10 -pipe=Size: 10 -pipe-to-ground=Size: 10 Underground distance: 10 -stone-pipe=Size: 20 -stone-pipe-to-ground=Size: 20 Underground distance: 10 -bronze-pipe=Size: 5 -bronze-pipe-to-ground=Size: 5 Underground distance: 15 -steel-pipe=Size: 10 -steel-pipe-to-ground=Size: 10 Underground distance: 15 -plastic-pipe=Size: 20 -plastic-pipe-to-ground=Size: 20 Underground distance: 15 -brass-pipe=Size: 5 -brass-pipe-to-ground=Size: 5 Underground distance: 20 -titanium-pipe=Size: 10 -titanium-pipe-to-ground=Size: 10 Underground distance: 20 -ceramic-pipe=Size: 20 -ceramic-pipe-to-ground=Size: 20 Underground distance: 20 -tungsten-pipe=Size: 10 -tungsten-pipe-to-ground=Size: 10 Underground distance: 30 - -valve=A pipe that allows fluid to flow in only one direction - -[item-group-name] -bob-logistics=Bob's Logistics - - -[gui] -bob-logistics-enabled=Enable position overides -bob-logistics-long=Long handed inserter -bob-logistics-pickup=Long handed pickup -bob-logistics-drop=Long handed drop -bob-logistics-near=Near side of belt +[item-name] +roboport=Roboport MK1 +bob-roboport-2=Roboport MK2 +bob-roboport-3=Roboport MK3 +bob-roboport-4=Roboport MK4 + +bob-robochest=Robochest MK1 +bob-robochest-2=Robochest MK2 +bob-robochest-3=Robochest MK3 +bob-robochest-4=Robochest MK4 + +bob-logistic-zone-expander=Logistic zone expander MK1 +bob-logistic-zone-expander-2=Logistic zone expander MK2 +bob-logistic-zone-expander-3=Logistic zone expander MK3 +bob-logistic-zone-expander-4=Logistic zone expander MK4 + +bob-logistic-zone-interface=Logistic zone interface + +bob-robo-charge-port=Robot charging point MK1 +bob-robo-charge-port-2=Robot charging point MK2 +bob-robo-charge-port-3=Robot charging point MK3 +bob-robo-charge-port-4=Robot charging point MK4 + +bob-robo-charge-port-large=Large robot charging point MK1 +bob-robo-charge-port-large-2=Large robot charging point MK2 +bob-robo-charge-port-large-3=Large robot charging point MK3 +bob-robo-charge-port-large-4=Large robot charging point MK4 + + +flying-robot-frame-2=Flying robot frame MK2 +flying-robot-frame-3=Flying robot frame MK3 +flying-robot-frame-4=Flying robot frame MK4 + + +robot-brain-logistic=Logistic robot brain MK1 +robot-brain-logistic-2=Logistic robot brain MK2 +robot-brain-logistic-3=Logistic robot brain MK3 +robot-brain-logistic-4=Logistic robot brain MK4 + +robot-brain-construction=Construction robot brain MK1 +robot-brain-construction-2=Construction robot brain MK2 +robot-brain-construction-3=Construction robot brain MK3 +robot-brain-construction-4=Construction robot brain MK4 + + +robot-tool-logistic=Logistic robot tool MK1 +robot-tool-logistic-2=Logistic robot tool MK2 +robot-tool-logistic-3=Logistic robot tool MK3 +robot-tool-logistic-4=Logistic robot tool MK4 + +robot-tool-construction=Construction robot tool MK1 +robot-tool-construction-2=Construction robot tool MK2 +robot-tool-construction-3=Construction robot tool MK3 +robot-tool-construction-4=Construction robot tool MK4 + + +bob-construction-robot-2=Construction robot MK2 +bob-construction-robot-3=Construction robot MK3 +bob-construction-robot-4=Construction robot MK4 + +bob-logistic-robot-2=Logistic robot MK2 +bob-logistic-robot-3=Logistic robot MK3 +bob-logistic-robot-4=Logistic robot MK4 + + +roboport-door-1=Roboport hatch door MK1 +roboport-door-2=Roboport hatch door MK2 +roboport-door-3=Roboport hatch door MK3 +roboport-door-4=Roboport hatch door MK4 + +roboport-antenna-1=Roboport antenna array MK1 +roboport-antenna-2=Roboport antenna array MK2 +roboport-antenna-3=Roboport antenna array MK3 +roboport-antenna-4=Roboport antenna array MK4 + +roboport-chargepad-1=Roboport charging pad MK1 +roboport-chargepad-2=Roboport charging pad MK2 +roboport-chargepad-3=Roboport charging pad MK3 +roboport-chargepad-4=Roboport charging pad MK4 + + +logistic-chest-active-provider-2=Active provider chest MK2 +logistic-chest-passive-provider-2=Passive provider chest MK2 +logistic-chest-storage-2=Storage chest MK2 +logistic-chest-requester-2=Requester chest MK2 + + +long-handed-burner-inserter=Long handed burner inserter + +fast-near-inserter=Fast near handed inserter +fast-far-inserter=Fast far handed inserter +fast-long-inserter=Fast long handed inserter + +filter-near-inserter=Filter near inserter +filter-short-far-inserter=Filter standard in far inserter +filter-short-long-inserter=Filter standard in long inserter +filter-long-near-inserter=Filter long in near inserter +filter-long-short-inserter=Filter long in standard inserter +filter-far-inserter=Filter far inserter +filter-long-inserter=Filter long inserter + +express-near-inserter=Express near inserter +express-inserter=Express inserter +express-short-far-inserter=Express standard in far inserter +express-short-long-inserter=Express standard in long inserter +express-long-near-inserter=Express long in near inserter +express-long-short-inserter=Express long in standard inserter +express-far-inserter=Express far inserter +express-long-inserter=Express long inserter + +express-filter-inserter=Express filter inserter +express-stack-inserter=Express stack inserter +express-stack-filter-inserter=Express stack filter inserter + + +green-transport-belt=Faster transport belt +green-underground-belt=Faster underground belt +green-splitter=Faster splitter + +purple-transport-belt=Extremely fast transport belt +purple-underground-belt=Extremely fast underground belt +purple-splitter=Extremely fast splitter + +storage-tank-2=Storage Tank MK2 +storage-tank-3=Storage Tank MK3 +storage-tank-4=Storage Tank MK4 + +bob-diesel-locomotive-2=Diesel Locomotive MK2 +bob-diesel-locomotive-3=Diesel Locomotive MK3 +bob-armoured-diesel-locomotive=Armoured Diesel Locomotive + +bob-cargo-wagon-2=Cargo wagon MK2 +bob-cargo-wagon-3=Cargo wagon MK3 +bob-armoured-cargo-wagon=Armoured Cargo wagon + + +copper-pipe=Copper pipe +pipe=Iron pipe +stone-pipe=Stone pipe +bronze-pipe=Bronze pipe +steel-pipe=Steel pipe +plastic-pipe=Plastic pipe +brass-pipe=Brass pipe +titanium-pipe=Titanium pipe +ceramic-pipe=Ceramic pipe +tungsten-pipe=Tungsten pipe + + +copper-pipe-to-ground=Copper pipe-to-ground +pipe-to-ground=Iron pipe-to-ground +stone-pipe-to-ground=Stone pipe-to-ground +bronze-pipe-to-ground=Bronze pipe-to-ground +steel-pipe-to-ground=Steel pipe-to-ground +plastic-pipe-to-ground=Plastic pipe-to-ground +brass-pipe-to-ground=Brass pipe-to-ground +titanium-pipe-to-ground=Titanium pipe-to-ground +ceramic-pipe-to-ground=Ceramic pipe-to-ground +tungsten-pipe-to-ground=Tungsten pipe-to-ground + + +small-pump-2=Small pump MK2 +small-pump-3=Small pump MK3 +small-pump-4=Small pump MK4 + +valve=Valve + + +[fluid-name] + + +[entity-name] +roboport=Roboport MK1 +bob-roboport-2=Roboport MK2 +bob-roboport-3=Roboport MK3 +bob-roboport-4=Roboport MK4 + +bob-robochest=Robochest MK1 +bob-robochest-2=Robochest MK2 +bob-robochest-3=Robochest MK3 +bob-robochest-4=Robochest MK4 + +bob-logistic-zone-expander=Logistic zone expander MK1 +bob-logistic-zone-expander-2=Logistic zone expander MK2 +bob-logistic-zone-expander-3=Logistic zone expander MK3 +bob-logistic-zone-expander-4=Logistic zone expander MK4 + +bob-logistic-zone-interface=Logistic zone interface + +bob-robo-charge-port=Robot charging point MK1 +bob-robo-charge-port-2=Robot charging point MK2 +bob-robo-charge-port-3=Robot charging point MK3 +bob-robo-charge-port-4=Robot charging point MK4 + +bob-robo-charge-port-large=Large robot charging point MK1 +bob-robo-charge-port-large-2=Large robot charging point MK2 +bob-robo-charge-port-large-3=Large robot charging point MK3 +bob-robo-charge-port-large-4=Large robot charging point MK4 + + +bob-construction-robot-2=Construction robot MK2 +bob-construction-robot-3=Construction robot MK3 +bob-construction-robot-4=Construction robot MK4 + +bob-logistic-robot-2=Logistic robot MK2 +bob-logistic-robot-3=Logistic robot MK3 +bob-logistic-robot-4=Logistic robot MK4 + +logistic-chest-active-provider-2=Active provider chest MK2 +logistic-chest-passive-provider-2=Passive provider chest MK2 +logistic-chest-storage-2=Storage chest MK2 +logistic-chest-requester-2=Requester chest MK2 + + +long-handed-burner-inserter=Long handed burner inserter + +fast-near-inserter=Fast near handed inserter +fast-far-inserter=Fast far handed inserter +fast-long-inserter=Fast long handed inserter + +filter-near-inserter=Filter near inserter +filter-short-far-inserter=Filter standard in far inserter +filter-short-long-inserter=Filter standard in long inserter +filter-long-near-inserter=Filter long in near inserter +filter-long-short-inserter=Filter long in standard inserter +filter-far-inserter=Filter far inserter +filter-long-inserter=Filter long inserter + +express-near-inserter=Express near inserter +express-inserter=Express inserter +express-short-far-inserter=Express standard in far inserter +express-short-long-inserter=Express standard in long inserter +express-long-near-inserter=Express long in near inserter +express-long-short-inserter=Express long in standard inserter +express-far-inserter=Express far inserter +express-long-inserter=Express long inserter + +express-filter-inserter=Express filter inserter +express-stack-inserter=Express stack inserter +express-stack-filter-inserter=Express stack filter inserter + + +green-transport-belt=Faster transport belt +green-underground-belt=Faster underground belt +green-splitter=Faster splitter + +purple-transport-belt=Extremely fast transport belt +purple-underground-belt=Extremely fast underground belt +purple-splitter=Extremely fast splitter + +storage-tank-2=Storage Tank MK2 +storage-tank-3=Storage Tank MK3 +storage-tank-4=Storage Tank MK4 + + +bob-diesel-locomotive-2=Diesel Locomotive MK2 +bob-diesel-locomotive-3=Diesel Locomotive MK3 +bob-armoured-diesel-locomotive=Armoured Diesel Locomotive + +bob-cargo-wagon-2=Cargo wagon MK2 +bob-cargo-wagon-3=Cargo wagon MK3 +bob-armoured-cargo-wagon=Armoured Cargo wagon + + +copper-pipe=Copper pipe +pipe=Iron pipe +stone-pipe=Stone pipe +bronze-pipe=Bronze pipe +steel-pipe=Steel pipe +plastic-pipe=Plastic pipe +brass-pipe=Brass pipe +titanium-pipe=Titanium pipe +ceramic-pipe=Ceramic pipe +tungsten-pipe=Tungsten pipe + + +copper-pipe-to-ground=Copper pipe-to-ground +pipe-to-ground=Iron pipe-to-ground +stone-pipe-to-ground=Stone pipe-to-ground +bronze-pipe-to-ground=Bronze pipe-to-ground +steel-pipe-to-ground=Steel pipe-to-ground +plastic-pipe-to-ground=Plastic pipe-to-ground +brass-pipe-to-ground=Brass pipe-to-ground +titanium-pipe-to-ground=Titanium pipe-to-ground +ceramic-pipe-to-ground=Ceramic pipe-to-ground +tungsten-pipe-to-ground=Tungsten pipe-to-ground + + +small-pump-2=Small pump MK2 +small-pump-3=Small pump MK3 +small-pump-4=Small pump MK4 + +valve=Valve + + +[recipe-name] + + +[technology-name] +bob-robotics=Robotics +bob-robots=Advanced logistic and construction robotics +bob-robo-modular=Modular Roboports +express-inserters=Express Inserters + +long-burner-inserter=Long handed burner inserter +long-inserters=Long inserters +near-inserters=Near inserters +more-inserters=More inserters + + +bob-logistics=Logistics + +bob-fluid-handling=Fluid handling +bob-railway=Railway +railway=Railway +bob-armoured-railway=Armoured Railway + +character-inventory-slots=Character inventory slots +inserter-capacity-bonus=Stack inserter capacity bonus +inserter-stack-size-bonus=Inserter capacity bonus + + +[technology-description] +bob-robots=Logistic robots are a flexible alternative to conveyor belts. +bob-robo-modular=Research into building Roboports in modules. +express-inserters=Inserters that are faster than fast inserters! + +bob-logistics=Faster and more flexible ways of transportation. + +inserter-stack-size-bonus=Non-stack inserters can move more items at the same time. +stack-inserter=Stack inserters can move more items at the same time depending on their upgrade. + + +[item-description] +copper-pipe=Size: 5 +copper-pipe-to-ground=Size: 5 Underground distance: 10 +pipe=Size: 10 +pipe-to-ground=Size: 10 Underground distance: 10 +stone-pipe=Size: 20 +stone-pipe-to-ground=Size: 20 Underground distance: 10 +bronze-pipe=Size: 5 +bronze-pipe-to-ground=Size: 5 Underground distance: 15 +steel-pipe=Size: 10 +steel-pipe-to-ground=Size: 10 Underground distance: 15 +plastic-pipe=Size: 20 +plastic-pipe-to-ground=Size: 20 Underground distance: 15 +brass-pipe=Size: 5 +brass-pipe-to-ground=Size: 5 Underground distance: 20 +titanium-pipe=Size: 10 +titanium-pipe-to-ground=Size: 10 Underground distance: 20 +ceramic-pipe=Size: 20 +ceramic-pipe-to-ground=Size: 20 Underground distance: 20 +tungsten-pipe=Size: 10 +tungsten-pipe-to-ground=Size: 10 Underground distance: 30 + +valve=A pipe that allows fluid to flow in only one direction + +[item-group-name] +bob-logistics=Bob's Logistics + + +[gui] +bob-logistics-enabled=Enable position overides +bob-logistics-long=Long handed inserter +bob-logistics-pickup=Long handed pickup +bob-logistics-drop=Long handed drop +bob-logistics-near=Near side of belt diff --git a/boblogistics_0.14.0/migrations/boblogistics_0.12.0.lua b/boblogistics_0.14.2/migrations/boblogistics_0.12.0.lua similarity index 96% rename from boblogistics_0.14.0/migrations/boblogistics_0.12.0.lua rename to boblogistics_0.14.2/migrations/boblogistics_0.12.0.lua index 22754c2..4ba72e5 100644 --- a/boblogistics_0.14.0/migrations/boblogistics_0.12.0.lua +++ b/boblogistics_0.14.2/migrations/boblogistics_0.12.0.lua @@ -1,54 +1,54 @@ -game.reload_script() - -for index, force in pairs(game.forces) do - force.reset_recipes() - force.reset_technologies() - - if force.technologies["steel-processing"].researched then - force.recipes["steel-pipe"].enabled = true - force.recipes["steel-pipe-to-ground"].enabled = true - end - - if force.technologies["plastics"].researched then - force.recipes["plastic-pipe"].enabled = true - force.recipes["plastic-pipe-to-ground"].enabled = true - end - - - if force.technologies["titanium-processing"] then - if force.technologies["titanium-processing"].researched then - force.recipes["titanium-pipe"].enabled = true - force.recipes["titanium-pipe-to-ground"].enabled = true - end - end - - if force.technologies["tungsten-processing"] then - if force.technologies["tungsten-processing"].researched then - force.recipes["tungsten-pipe"].enabled = true - force.recipes["tungsten-pipe-to-ground"].enabled = true - end - end - - if force.technologies["alloy-processing-1"] then - if force.technologies["alloy-processing-1"].researched then - force.recipes["bronze-pipe"].enabled = true - force.recipes["bronze-pipe-to-ground"].enabled = true - end - end - - if force.technologies["zinc-processing"] then - if force.technologies["zinc-processing"].researched then - force.recipes["brass-pipe"].enabled = true - force.recipes["brass-pipe-to-ground"].enabled = true - end - end - - if force.technologies["ceramics"] then - if force.technologies["ceramics"].researched then - force.recipes["ceramic-pipe"].enabled = true - force.recipes["ceramic-pipe-to-ground"].enabled = true - end - end -end - - +game.reload_script() + +for index, force in pairs(game.forces) do + force.reset_recipes() + force.reset_technologies() + + if force.technologies["steel-processing"].researched then + force.recipes["steel-pipe"].enabled = true + force.recipes["steel-pipe-to-ground"].enabled = true + end + + if force.technologies["plastics"].researched then + force.recipes["plastic-pipe"].enabled = true + force.recipes["plastic-pipe-to-ground"].enabled = true + end + + + if force.technologies["titanium-processing"] then + if force.technologies["titanium-processing"].researched then + force.recipes["titanium-pipe"].enabled = true + force.recipes["titanium-pipe-to-ground"].enabled = true + end + end + + if force.technologies["tungsten-processing"] then + if force.technologies["tungsten-processing"].researched then + force.recipes["tungsten-pipe"].enabled = true + force.recipes["tungsten-pipe-to-ground"].enabled = true + end + end + + if force.technologies["alloy-processing-1"] then + if force.technologies["alloy-processing-1"].researched then + force.recipes["bronze-pipe"].enabled = true + force.recipes["bronze-pipe-to-ground"].enabled = true + end + end + + if force.technologies["zinc-processing"] then + if force.technologies["zinc-processing"].researched then + force.recipes["brass-pipe"].enabled = true + force.recipes["brass-pipe-to-ground"].enabled = true + end + end + + if force.technologies["ceramics"] then + if force.technologies["ceramics"].researched then + force.recipes["ceramic-pipe"].enabled = true + force.recipes["ceramic-pipe-to-ground"].enabled = true + end + end +end + + diff --git a/boblogistics_0.14.0/migrations/boblogistics_0.12.6.lua b/boblogistics_0.14.2/migrations/boblogistics_0.12.6.lua similarity index 96% rename from boblogistics_0.14.0/migrations/boblogistics_0.12.6.lua rename to boblogistics_0.14.2/migrations/boblogistics_0.12.6.lua index b57cfed..6d579f5 100644 --- a/boblogistics_0.14.0/migrations/boblogistics_0.12.6.lua +++ b/boblogistics_0.14.2/migrations/boblogistics_0.12.6.lua @@ -1,24 +1,24 @@ -game.reload_script() - -for index, force in pairs(game.forces) do - force.reset_recipes() - force.reset_technologies() - - if force.technologies["bob-robo-modular-1"].researched then - force.recipes["roboport"].enabled = true - end - - if force.technologies["bob-robo-modular-2"].researched then - force.recipes["bob-roboport-2"].enabled = true - end - - if force.technologies["bob-robo-modular-3"].researched then - force.recipes["bob-roboport-3"].enabled = true - end - - if force.technologies["bob-robo-modular-4"].researched then - force.recipes["bob-roboport-4"].enabled = true - end -end - - +game.reload_script() + +for index, force in pairs(game.forces) do + force.reset_recipes() + force.reset_technologies() + + if force.technologies["bob-robo-modular-1"].researched then + force.recipes["roboport"].enabled = true + end + + if force.technologies["bob-robo-modular-2"].researched then + force.recipes["bob-roboport-2"].enabled = true + end + + if force.technologies["bob-robo-modular-3"].researched then + force.recipes["bob-roboport-3"].enabled = true + end + + if force.technologies["bob-robo-modular-4"].researched then + force.recipes["bob-roboport-4"].enabled = true + end +end + + diff --git a/boblogistics_0.14.0/migrations/boblogistics_0.12.8.lua b/boblogistics_0.14.2/migrations/boblogistics_0.12.8.lua similarity index 97% rename from boblogistics_0.14.0/migrations/boblogistics_0.12.8.lua rename to boblogistics_0.14.2/migrations/boblogistics_0.12.8.lua index a485fd3..67c5626 100644 --- a/boblogistics_0.14.0/migrations/boblogistics_0.12.8.lua +++ b/boblogistics_0.14.2/migrations/boblogistics_0.12.8.lua @@ -1,31 +1,31 @@ -game.reload_script() - -for index, force in pairs(game.forces) do - force.reset_recipes() - force.reset_technologies() - - if force.technologies["logistic-robotics"].researched then - if force.recipes["robot-brain-logistic"] then force.recipes["robot-brain-logistic"].enabled = true end - if force.recipes["robot-tool-logistic"] then force.recipes["robot-tool-logistic"].enabled = true end - end - - if force.technologies["construction-robotics"].researched then - if force.recipes["robot-brain-construction"] then force.recipes["robot-brain-construction"].enabled = true end - if force.recipes["robot-tool-construction"] then force.recipes["robot-tool-construction"].enabled = true end - end - - - if force.technologies["bob-fluid-handling-2"].researched then - force.recipes["small-pump-2"].enabled = true - end - - if force.technologies["bob-fluid-handling-3"].researched then - force.recipes["small-pump-3"].enabled = true - end - - if force.technologies["bob-fluid-handling-4"].researched then - force.recipes["small-pump-4"].enabled = true - end -end - - +game.reload_script() + +for index, force in pairs(game.forces) do + force.reset_recipes() + force.reset_technologies() + + if force.technologies["logistic-robotics"].researched then + if force.recipes["robot-brain-logistic"] then force.recipes["robot-brain-logistic"].enabled = true end + if force.recipes["robot-tool-logistic"] then force.recipes["robot-tool-logistic"].enabled = true end + end + + if force.technologies["construction-robotics"].researched then + if force.recipes["robot-brain-construction"] then force.recipes["robot-brain-construction"].enabled = true end + if force.recipes["robot-tool-construction"] then force.recipes["robot-tool-construction"].enabled = true end + end + + + if force.technologies["bob-fluid-handling-2"].researched then + force.recipes["small-pump-2"].enabled = true + end + + if force.technologies["bob-fluid-handling-3"].researched then + force.recipes["small-pump-3"].enabled = true + end + + if force.technologies["bob-fluid-handling-4"].researched then + force.recipes["small-pump-4"].enabled = true + end +end + + diff --git a/boblogistics_0.14.0/migrations/boblogistics_0.13.0.json b/boblogistics_0.14.2/migrations/boblogistics_0.13.0.json similarity index 97% rename from boblogistics_0.14.0/migrations/boblogistics_0.13.0.json rename to boblogistics_0.14.2/migrations/boblogistics_0.13.0.json index ddf756a..2496891 100644 --- a/boblogistics_0.14.0/migrations/boblogistics_0.13.0.json +++ b/boblogistics_0.14.2/migrations/boblogistics_0.13.0.json @@ -1,38 +1,38 @@ -{ - "item": - [ - ["smart-long-inserter", "filter-inserter"], - ["smart-near-inserter", "filter-inserter"], - ["smart-far-inserter", "filter-inserter"], - ["smart-short-far-inserter", "filter-inserter"], - ["smart-short-long-inserter", "filter-inserter"], - ["smart-long-near-inserter", "filter-inserter"], - ["smart-long-short-inserter", "filter-inserter"], - ["green-transport-belt-to-ground", "green-underground-belt"], - ["purple-transport-belt-to-ground", "purple-underground-belt"] - ], - "entity": - [ - ["smart-long-inserter", "filter-inserter"], - ["smart-near-inserter", "filter-inserter"], - ["smart-far-inserter", "filter-inserter"], - ["smart-short-far-inserter", "filter-inserter"], - ["smart-short-long-inserter", "filter-inserter"], - ["smart-long-near-inserter", "filter-inserter"], - ["smart-long-short-inserter", "filter-inserter"], - ["green-transport-belt-to-ground", "green-underground-belt"], - ["purple-transport-belt-to-ground", "purple-underground-belt"] - ], - "recipe": - [ - ["smart-long-inserter", "filter-inserter"], - ["smart-near-inserter", "filter-inserter"], - ["smart-far-inserter", "filter-inserter"], - ["smart-short-far-inserter", "filter-inserter"], - ["smart-short-long-inserter", "filter-inserter"], - ["smart-long-near-inserter", "filter-inserter"], - ["smart-long-short-inserter", "filter-inserter"], - ["green-transport-belt-to-ground", "green-underground-belt"], - ["purple-transport-belt-to-ground", "purple-underground-belt"] - ] -} +{ + "item": + [ + ["smart-long-inserter", "filter-inserter"], + ["smart-near-inserter", "filter-inserter"], + ["smart-far-inserter", "filter-inserter"], + ["smart-short-far-inserter", "filter-inserter"], + ["smart-short-long-inserter", "filter-inserter"], + ["smart-long-near-inserter", "filter-inserter"], + ["smart-long-short-inserter", "filter-inserter"], + ["green-transport-belt-to-ground", "green-underground-belt"], + ["purple-transport-belt-to-ground", "purple-underground-belt"] + ], + "entity": + [ + ["smart-long-inserter", "filter-inserter"], + ["smart-near-inserter", "filter-inserter"], + ["smart-far-inserter", "filter-inserter"], + ["smart-short-far-inserter", "filter-inserter"], + ["smart-short-long-inserter", "filter-inserter"], + ["smart-long-near-inserter", "filter-inserter"], + ["smart-long-short-inserter", "filter-inserter"], + ["green-transport-belt-to-ground", "green-underground-belt"], + ["purple-transport-belt-to-ground", "purple-underground-belt"] + ], + "recipe": + [ + ["smart-long-inserter", "filter-inserter"], + ["smart-near-inserter", "filter-inserter"], + ["smart-far-inserter", "filter-inserter"], + ["smart-short-far-inserter", "filter-inserter"], + ["smart-short-long-inserter", "filter-inserter"], + ["smart-long-near-inserter", "filter-inserter"], + ["smart-long-short-inserter", "filter-inserter"], + ["green-transport-belt-to-ground", "green-underground-belt"], + ["purple-transport-belt-to-ground", "purple-underground-belt"] + ] +} diff --git a/boblogistics_0.14.0/migrations/boblogistics_0.13.4.json b/boblogistics_0.14.2/migrations/boblogistics_0.13.4.json similarity index 97% rename from boblogistics_0.14.0/migrations/boblogistics_0.13.4.json rename to boblogistics_0.14.2/migrations/boblogistics_0.13.4.json index cb3469d..2702064 100644 --- a/boblogistics_0.14.0/migrations/boblogistics_0.13.4.json +++ b/boblogistics_0.14.2/migrations/boblogistics_0.13.4.json @@ -1,39 +1,39 @@ -{ - "item": - [ - ["purple-inserter", "express-inserter"], - ["purple-long-inserter", "express-inserter"], - ["purple-near-inserter", "express-inserter"], - ["purple-far-inserter", "express-inserter"], - ["purple-short-far-inserter", "express-inserter"], - ["purple-short-long-inserter", "express-inserter"], - ["purple-long-near-inserter", "express-inserter"], - ["purple-long-short-inserter", "express-inserter"] - ], - "entity": - [ - ["purple-inserter", "express-inserter"], - ["purple-long-inserter", "express-inserter"], - ["purple-near-inserter", "express-inserter"], - ["purple-far-inserter", "express-inserter"], - ["purple-short-far-inserter", "express-inserter"], - ["purple-short-long-inserter", "express-inserter"], - ["purple-long-near-inserter", "express-inserter"], - ["purple-long-short-inserter", "express-inserter"] - ], - "recipe": - [ - ["purple-inserter", "express-inserter"], - ["purple-long-inserter", "express-inserter"], - ["purple-near-inserter", "express-inserter"], - ["purple-far-inserter", "express-inserter"], - ["purple-short-far-inserter", "express-inserter"], - ["purple-short-long-inserter", "express-inserter"], - ["purple-long-near-inserter", "express-inserter"], - ["purple-long-short-inserter", "express-inserter"] - ], - "technology": - [ - ["purple-inserters", "express-inserters"] - ] -} +{ + "item": + [ + ["purple-inserter", "express-inserter"], + ["purple-long-inserter", "express-inserter"], + ["purple-near-inserter", "express-inserter"], + ["purple-far-inserter", "express-inserter"], + ["purple-short-far-inserter", "express-inserter"], + ["purple-short-long-inserter", "express-inserter"], + ["purple-long-near-inserter", "express-inserter"], + ["purple-long-short-inserter", "express-inserter"] + ], + "entity": + [ + ["purple-inserter", "express-inserter"], + ["purple-long-inserter", "express-inserter"], + ["purple-near-inserter", "express-inserter"], + ["purple-far-inserter", "express-inserter"], + ["purple-short-far-inserter", "express-inserter"], + ["purple-short-long-inserter", "express-inserter"], + ["purple-long-near-inserter", "express-inserter"], + ["purple-long-short-inserter", "express-inserter"] + ], + "recipe": + [ + ["purple-inserter", "express-inserter"], + ["purple-long-inserter", "express-inserter"], + ["purple-near-inserter", "express-inserter"], + ["purple-far-inserter", "express-inserter"], + ["purple-short-far-inserter", "express-inserter"], + ["purple-short-long-inserter", "express-inserter"], + ["purple-long-near-inserter", "express-inserter"], + ["purple-long-short-inserter", "express-inserter"] + ], + "technology": + [ + ["purple-inserters", "express-inserters"] + ] +} diff --git a/boblogistics_0.14.0/migrations/boblogistics_0.13.4.lua b/boblogistics_0.14.2/migrations/boblogistics_0.13.4.lua similarity index 95% rename from boblogistics_0.14.0/migrations/boblogistics_0.13.4.lua rename to boblogistics_0.14.2/migrations/boblogistics_0.13.4.lua index fedc736..2abfbee 100644 --- a/boblogistics_0.14.0/migrations/boblogistics_0.13.4.lua +++ b/boblogistics_0.14.2/migrations/boblogistics_0.13.4.lua @@ -1,13 +1,13 @@ -game.reload_script() - -for index, force in pairs(game.forces) do - force.reset_recipes() - force.reset_technologies() - - if force.technologies["express-inserters"].researched then - force.recipes["express-inserter"].enabled = true - force.recipes["express-filter-inserter"].enabled = true - end -end - - +game.reload_script() + +for index, force in pairs(game.forces) do + force.reset_recipes() + force.reset_technologies() + + if force.technologies["express-inserters"].researched then + force.recipes["express-inserter"].enabled = true + force.recipes["express-filter-inserter"].enabled = true + end +end + + diff --git a/boblogistics_0.14.0/migrations/boblogistics_0.13.5.json b/boblogistics_0.14.2/migrations/boblogistics_0.13.5.json similarity index 97% rename from boblogistics_0.14.0/migrations/boblogistics_0.13.5.json rename to boblogistics_0.14.2/migrations/boblogistics_0.13.5.json index 090a781..d2b78f8 100644 --- a/boblogistics_0.14.0/migrations/boblogistics_0.13.5.json +++ b/boblogistics_0.14.2/migrations/boblogistics_0.13.5.json @@ -1,74 +1,74 @@ -{ - "item": - [ - ["long-handed-burner-inserter", "burner-inserter"], - - ["fast-long-inserter", "fast-inserter"], - ["fast-near-inserter", "fast-inserter"], - ["fast-far-inserter", "fast-inserter"], - - ["filter-long-inserter", "filter-inserter"], - ["filter-near-inserter", "filter-inserter"], - ["filter-far-inserter", "filter-inserter"], - ["filter-short-far-inserter", "filter-inserter"], - ["filter-short-long-inserter", "filter-inserter"], - ["filter-long-near-inserter", "filter-inserter"], - ["filter-long-short-inserter", "filter-inserter"], - - ["express-long-inserter", "express-inserter"], - ["express-near-inserter", "express-inserter"], - ["express-far-inserter", "express-inserter"], - ["express-short-far-inserter", "express-inserter"], - ["express-short-long-inserter", "express-inserter"], - ["express-long-near-inserter", "express-inserter"], - ["express-long-short-inserter", "express-inserter"] - ], - "recipe": - [ - ["long-handed-burner-inserter", "burner-inserter"], - - ["fast-long-inserter", "fast-inserter"], - ["fast-near-inserter", "fast-inserter"], - ["fast-far-inserter", "fast-inserter"], - - ["filter-long-inserter", "filter-inserter"], - ["filter-near-inserter", "filter-inserter"], - ["filter-far-inserter", "filter-inserter"], - ["filter-short-far-inserter", "filter-inserter"], - ["filter-short-long-inserter", "filter-inserter"], - ["filter-long-near-inserter", "filter-inserter"], - ["filter-long-short-inserter", "filter-inserter"], - - ["express-long-inserter", "express-inserter"], - ["express-near-inserter", "express-inserter"], - ["express-far-inserter", "express-inserter"], - ["express-short-far-inserter", "express-inserter"], - ["express-short-long-inserter", "express-inserter"], - ["express-long-near-inserter", "express-inserter"], - ["express-long-short-inserter", "express-inserter"] - ], - "entity": - [ - ["long-handed-burner-inserter", "burner-inserter"], - - ["fast-long-inserter", "fast-inserter"], - ["fast-near-inserter", "fast-inserter"], - ["fast-far-inserter", "fast-inserter"], - - ["filter-long-inserter", "filter-inserter"], - ["filter-near-inserter", "filter-inserter"], - ["filter-far-inserter", "filter-inserter"], - ["filter-short-far-inserter", "filter-inserter"], - ["filter-short-long-inserter", "filter-inserter"], - ["filter-long-near-inserter", "filter-inserter"], - ["filter-long-short-inserter", "filter-inserter"], - - ["express-long-inserter", "express-inserter"], - ["express-near-inserter", "express-inserter"], - ["express-far-inserter", "express-inserter"], - ["express-short-far-inserter", "express-inserter"], - ["express-short-long-inserter", "express-inserter"], - ["express-long-near-inserter", "express-inserter"], - ["express-long-short-inserter", "express-inserter"] - ] -} +{ + "item": + [ + ["long-handed-burner-inserter", "burner-inserter"], + + ["fast-long-inserter", "fast-inserter"], + ["fast-near-inserter", "fast-inserter"], + ["fast-far-inserter", "fast-inserter"], + + ["filter-long-inserter", "filter-inserter"], + ["filter-near-inserter", "filter-inserter"], + ["filter-far-inserter", "filter-inserter"], + ["filter-short-far-inserter", "filter-inserter"], + ["filter-short-long-inserter", "filter-inserter"], + ["filter-long-near-inserter", "filter-inserter"], + ["filter-long-short-inserter", "filter-inserter"], + + ["express-long-inserter", "express-inserter"], + ["express-near-inserter", "express-inserter"], + ["express-far-inserter", "express-inserter"], + ["express-short-far-inserter", "express-inserter"], + ["express-short-long-inserter", "express-inserter"], + ["express-long-near-inserter", "express-inserter"], + ["express-long-short-inserter", "express-inserter"] + ], + "recipe": + [ + ["long-handed-burner-inserter", "burner-inserter"], + + ["fast-long-inserter", "fast-inserter"], + ["fast-near-inserter", "fast-inserter"], + ["fast-far-inserter", "fast-inserter"], + + ["filter-long-inserter", "filter-inserter"], + ["filter-near-inserter", "filter-inserter"], + ["filter-far-inserter", "filter-inserter"], + ["filter-short-far-inserter", "filter-inserter"], + ["filter-short-long-inserter", "filter-inserter"], + ["filter-long-near-inserter", "filter-inserter"], + ["filter-long-short-inserter", "filter-inserter"], + + ["express-long-inserter", "express-inserter"], + ["express-near-inserter", "express-inserter"], + ["express-far-inserter", "express-inserter"], + ["express-short-far-inserter", "express-inserter"], + ["express-short-long-inserter", "express-inserter"], + ["express-long-near-inserter", "express-inserter"], + ["express-long-short-inserter", "express-inserter"] + ], + "entity": + [ + ["long-handed-burner-inserter", "burner-inserter"], + + ["fast-long-inserter", "fast-inserter"], + ["fast-near-inserter", "fast-inserter"], + ["fast-far-inserter", "fast-inserter"], + + ["filter-long-inserter", "filter-inserter"], + ["filter-near-inserter", "filter-inserter"], + ["filter-far-inserter", "filter-inserter"], + ["filter-short-far-inserter", "filter-inserter"], + ["filter-short-long-inserter", "filter-inserter"], + ["filter-long-near-inserter", "filter-inserter"], + ["filter-long-short-inserter", "filter-inserter"], + + ["express-long-inserter", "express-inserter"], + ["express-near-inserter", "express-inserter"], + ["express-far-inserter", "express-inserter"], + ["express-short-far-inserter", "express-inserter"], + ["express-short-long-inserter", "express-inserter"], + ["express-long-near-inserter", "express-inserter"], + ["express-long-short-inserter", "express-inserter"] + ] +} diff --git a/boblogistics_0.14.0/migrations/boblogistics_0.13.5.lua b/boblogistics_0.14.2/migrations/boblogistics_0.13.5.lua similarity index 97% rename from boblogistics_0.14.0/migrations/boblogistics_0.13.5.lua rename to boblogistics_0.14.2/migrations/boblogistics_0.13.5.lua index cdf5cdb..0fe0b14 100644 --- a/boblogistics_0.14.0/migrations/boblogistics_0.13.5.lua +++ b/boblogistics_0.14.2/migrations/boblogistics_0.13.5.lua @@ -1,18 +1,18 @@ -for index, force in pairs(game.forces) do - if force.technologies["inserter-stack-size-bonus-4"].researched then - force.inserter_stack_size_bonus = 4 - elseif force.technologies["inserter-stack-size-bonus-3"].researched then - force.inserter_stack_size_bonus = 3 - elseif force.technologies["inserter-stack-size-bonus-2"].researched then - force.inserter_stack_size_bonus = 2 - elseif force.technologies["inserter-stack-size-bonus-1"].researched then - force.inserter_stack_size_bonus = 1 - else - force.inserter_stack_size_bonus = 0 - end - - if force.technologies["bob-robo-modular-1"].researched then - force.recipes["bob-logistic-zone-interface"].enabled = true - end -end - +for index, force in pairs(game.forces) do + if force.technologies["inserter-stack-size-bonus-4"].researched then + force.inserter_stack_size_bonus = 4 + elseif force.technologies["inserter-stack-size-bonus-3"].researched then + force.inserter_stack_size_bonus = 3 + elseif force.technologies["inserter-stack-size-bonus-2"].researched then + force.inserter_stack_size_bonus = 2 + elseif force.technologies["inserter-stack-size-bonus-1"].researched then + force.inserter_stack_size_bonus = 1 + else + force.inserter_stack_size_bonus = 0 + end + + if force.technologies["bob-robo-modular-1"].researched then + force.recipes["bob-logistic-zone-interface"].enabled = true + end +end + diff --git a/boblogistics_0.14.0/migrations/boblogistics_0.13.7.lua b/boblogistics_0.14.2/migrations/boblogistics_0.13.7.lua similarity index 96% rename from boblogistics_0.14.0/migrations/boblogistics_0.13.7.lua rename to boblogistics_0.14.2/migrations/boblogistics_0.13.7.lua index b33443f..083cd35 100644 --- a/boblogistics_0.14.0/migrations/boblogistics_0.13.7.lua +++ b/boblogistics_0.14.2/migrations/boblogistics_0.13.7.lua @@ -1,19 +1,19 @@ -for index, force in pairs(game.forces) do - force.recipes["burner-inserter"].enabled = true - if force.technologies["logistics"].researched then - force.recipes["fast-inserter"].enabled = true - end - if force.technologies["electronics"].researched then - force.recipes["filter-inserter"].enabled = true - end - if force.technologies["express-inserters"].researched then - force.recipes["express-inserter"].enabled = true - end -end - -for index, player in pairs(game.players) do - if player.connected then - player.print("I hope you used the Inserter Migration mod before updating to 0.13.7!") - end -end - +for index, force in pairs(game.forces) do + force.recipes["burner-inserter"].enabled = true + if force.technologies["logistics"].researched then + force.recipes["fast-inserter"].enabled = true + end + if force.technologies["electronics"].researched then + force.recipes["filter-inserter"].enabled = true + end + if force.technologies["express-inserters"].researched then + force.recipes["express-inserter"].enabled = true + end +end + +for index, player in pairs(game.players) do + if player.connected then + player.print("I hope you used the Inserter Migration mod before updating to 0.13.7!") + end +end + diff --git a/boblogistics_0.14.2/migrations/boblogistics_0.14.1.json b/boblogistics_0.14.2/migrations/boblogistics_0.14.1.json new file mode 100644 index 0000000..0287676 --- /dev/null +++ b/boblogistics_0.14.2/migrations/boblogistics_0.14.1.json @@ -0,0 +1,29 @@ +{ + "item": + [ + ["diesel-locomotive-2", "bob-diesel-locomotive-2"], + ["cargo-wagon-2", "bob-cargo-wagon-2"], + ["diesel-locomotive-3", "bob-diesel-locomotive-3"], + ["cargo-wagon-3", "bob-cargo-wagon-3"], + ["armoured-diesel-locomotive", "bob-armoured-diesel-locomotive"], + ["armoured-cargo-wagon", "bob-armoured-cargo-wagon"] + ], + "recipe": + [ + ["diesel-locomotive-2", "bob-diesel-locomotive-2"], + ["cargo-wagon-2", "bob-cargo-wagon-2"], + ["diesel-locomotive-3", "bob-diesel-locomotive-3"], + ["cargo-wagon-3", "bob-cargo-wagon-3"], + ["armoured-diesel-locomotive", "bob-armoured-diesel-locomotive"], + ["armoured-cargo-wagon", "bob-armoured-cargo-wagon"] + ], + "entity": + [ + ["diesel-locomotive-2", "bob-diesel-locomotive-2"], + ["cargo-wagon-2", "bob-cargo-wagon-2"], + ["diesel-locomotive-3", "bob-diesel-locomotive-3"], + ["cargo-wagon-3", "bob-cargo-wagon-3"], + ["armoured-diesel-locomotive", "bob-armoured-diesel-locomotive"], + ["armoured-cargo-wagon", "bob-armoured-cargo-wagon"] + ] +} diff --git a/boblogistics_0.14.2/migrations/boblogistics_0.14.1.lua b/boblogistics_0.14.2/migrations/boblogistics_0.14.1.lua new file mode 100644 index 0000000..78d917c --- /dev/null +++ b/boblogistics_0.14.2/migrations/boblogistics_0.14.1.lua @@ -0,0 +1,15 @@ +for index, force in pairs(game.forces) do + if force.technologies["bob-railway-2"].researched then + force.recipes["bob-diesel-locomotive-2"].enabled = true + force.recipes["bob-cargo-wagon-2"].enabled = true + end + if force.technologies["bob-railway-3"].researched then + force.recipes["bob-diesel-locomotive-3"].enabled = true + force.recipes["bob-cargo-wagon-3"].enabled = true + end + if force.technologies["bob-armoured-railway"].researched then + force.recipes["bob-armoured-diesel-locomotive"].enabled = true + force.recipes["bob-armoured-cargo-wagon"].enabled = true + end +end + diff --git a/boblogistics_0.14.0/prototypes/category.lua b/boblogistics_0.14.2/prototypes/category.lua similarity index 95% rename from boblogistics_0.14.0/prototypes/category.lua rename to boblogistics_0.14.2/prototypes/category.lua index ab7a543..6bb7003 100644 --- a/boblogistics_0.14.0/prototypes/category.lua +++ b/boblogistics_0.14.2/prototypes/category.lua @@ -1,86 +1,86 @@ -data:extend( -{ - { - type = "item-group", - name = "bob-logistics", - order = "aaa-a", - inventory_order = "c-a", - icon = "__boblogistics__/graphics/icons/technology/logistics.png", - }, - - { - type = "item-subgroup", - name = "bob-storage", - group = "bob-logistics", - order = "a-a", - }, - { - type = "item-subgroup", - name = "bob-belt", - group = "bob-logistics", - order = "b-a", - }, - { - type = "item-subgroup", - name = "bob-smart-inserter", - group = "logistics", - order = "c-a", - }, - { - type = "item-subgroup", - name = "bob-purple-inserter", - group = "bob-logistics", - order = "c-c", - }, - { - type = "item-subgroup", - name = "pipe", - group = "bob-logistics", - order = "d-a-1" - }, - { - type = "item-subgroup", - name = "pipe-to-ground", - group = "bob-logistics", - order = "d-a-2" - }, - { - type = "item-subgroup", - name = "bob-transport", - group = "bob-logistics", - order = "e-a", - }, - { - type = "item-subgroup", - name = "bob-logistic-robots", - group = "bob-logistics", - order = "f-a", - }, - { - type = "item-subgroup", - name = "bob-logistic-roboport", - group = "bob-logistics", - order = "f-b", - }, - - { - type = "item-subgroup", - name = "bob-roboport-parts", - group = "intermediate-products", - order = "e-d" - }, - - { - type = "item-subgroup", - name = "bob-robot-parts", - group = "intermediate-products", - order = "e-e" - }, -} -) - -if data.raw["item-group"]["bob-intermediate-products"] then - data.raw["item-subgroup"]["bob-roboport-parts"].group = "bob-intermediate-products" - data.raw["item-subgroup"]["bob-robot-parts"].group = "bob-intermediate-products" -end - +data:extend( +{ + { + type = "item-group", + name = "bob-logistics", + order = "aaa-a", + inventory_order = "c-a", + icon = "__boblogistics__/graphics/icons/technology/logistics.png", + }, + + { + type = "item-subgroup", + name = "bob-storage", + group = "bob-logistics", + order = "a-a", + }, + { + type = "item-subgroup", + name = "bob-belt", + group = "bob-logistics", + order = "b-a", + }, + { + type = "item-subgroup", + name = "bob-smart-inserter", + group = "logistics", + order = "c-a", + }, + { + type = "item-subgroup", + name = "bob-purple-inserter", + group = "bob-logistics", + order = "c-c", + }, + { + type = "item-subgroup", + name = "pipe", + group = "bob-logistics", + order = "d-a-1" + }, + { + type = "item-subgroup", + name = "pipe-to-ground", + group = "bob-logistics", + order = "d-a-2" + }, + { + type = "item-subgroup", + name = "bob-transport", + group = "bob-logistics", + order = "e-a", + }, + { + type = "item-subgroup", + name = "bob-logistic-robots", + group = "bob-logistics", + order = "f-a", + }, + { + type = "item-subgroup", + name = "bob-logistic-roboport", + group = "bob-logistics", + order = "f-b", + }, + + { + type = "item-subgroup", + name = "bob-roboport-parts", + group = "intermediate-products", + order = "e-d" + }, + + { + type = "item-subgroup", + name = "bob-robot-parts", + group = "intermediate-products", + order = "e-e" + }, +} +) + +if data.raw["item-group"]["bob-intermediate-products"] then + data.raw["item-subgroup"]["bob-roboport-parts"].group = "bob-intermediate-products" + data.raw["item-subgroup"]["bob-robot-parts"].group = "bob-intermediate-products" +end + diff --git a/boblogistics_0.14.0/prototypes/entity/logistic-container.lua b/boblogistics_0.14.2/prototypes/entity/logistic-container.lua similarity index 97% rename from boblogistics_0.14.0/prototypes/entity/logistic-container.lua rename to boblogistics_0.14.2/prototypes/entity/logistic-container.lua index f8c2df3..0fdae3c 100644 --- a/boblogistics_0.14.0/prototypes/entity/logistic-container.lua +++ b/boblogistics_0.14.2/prototypes/entity/logistic-container.lua @@ -1,90 +1,90 @@ --- name, icon, max_health, inventory_size, logistic_mode, picture, circuit_wire_max_distance -function bobmods.logistics.logistic_container(inputs) - return { - type = "logistic-container", - name = inputs.name, - icon = inputs.icon, - flags = {"placeable-player", "player-creation"}, - minable = {hardness = 0.2, mining_time = 0.5, result = inputs.name}, - max_health = inputs.max_health or 150, - corpse = "small-remnants", - collision_box = {{-0.35, -0.35}, {0.35, 0.35}}, - selection_box = {{-0.5, -0.5}, {0.5, 0.5}}, - fast_replaceable_group = "container", - inventory_size = inputs.inventory_size or 48, - logistic_mode = inputs.logistic_mode or "passive-provider", - open_sound = { filename = "__base__/sound/metallic-chest-open.ogg", volume=0.65 }, - close_sound = { filename = "__base__/sound/metallic-chest-close.ogg", volume = 0.7 }, - vehicle_impact_sound = { filename = "__base__/sound/car-metal-impact.ogg", volume = 0.65 }, - picture = inputs.picture, - circuit_wire_max_distance = inputs.circuit_wire_max_distance or 7.5 - } -end - -function bobmods.logistics.logistic_container_2_picture(tint) -return { - layers = - { - { - filename = "__boblogistics__/graphics/entity/logistic-chest/logistic-chest-2.png", - width = 38, - height = 32, - frame_count = 1, - shift = {0.1, 0} - }, - { - filename = "__boblogistics__/graphics/entity/logistic-chest/logistic-chest-mask.png", - width = 38, - height = 32, - frame_count = 1, - tint = tint, - shift = {0.1, 0} - } - } -} -end - -data:extend( -{ - bobmods.logistics.logistic_container{ - name = "logistic-chest-passive-provider-2", - icon = "__boblogistics__/graphics/icons/logistic-chest-passive-provider-2.png", - max_health = 250, - inventory_size = 60, - logistic_mode = "passive-provider", - picture = bobmods.logistics.logistic_container_2_picture({r = 1, g = 0.14, b = 0, a = 1}), - circuit_wire_max_distance = 10 - }, - - bobmods.logistics.logistic_container{ - name = "logistic-chest-active-provider-2", - icon = "__boblogistics__/graphics/icons/logistic-chest-active-provider-2.png", - max_health = 250, - inventory_size = 60, - logistic_mode = "active-provider", - picture = bobmods.logistics.logistic_container_2_picture({r = 0.75, g = 0, b = 1, a = 1}), - circuit_wire_max_distance = 10 - }, - - bobmods.logistics.logistic_container{ - name = "logistic-chest-storage-2", - icon = "__boblogistics__/graphics/icons/logistic-chest-storage-2.png", - max_health = 250, - inventory_size = 60, - logistic_mode = "storage", - picture = bobmods.logistics.logistic_container_2_picture({r = 1, g = 0.78, b = 0, a = 1}), - circuit_wire_max_distance = 10 - }, - - bobmods.logistics.logistic_container{ - name = "logistic-chest-requester-2", - icon = "__boblogistics__/graphics/icons/logistic-chest-requester-2.png", - max_health = 250, - inventory_size = 60, - logistic_mode = "requester", - picture = bobmods.logistics.logistic_container_2_picture({r = 0, g = 0.42, b = 1, a = 1}), - circuit_wire_max_distance = 10 - } -} -) - +-- name, icon, max_health, inventory_size, logistic_mode, picture, circuit_wire_max_distance +function bobmods.logistics.logistic_container(inputs) + return { + type = "logistic-container", + name = inputs.name, + icon = inputs.icon, + flags = {"placeable-player", "player-creation"}, + minable = {hardness = 0.2, mining_time = 0.5, result = inputs.name}, + max_health = inputs.max_health or 150, + corpse = "small-remnants", + collision_box = {{-0.35, -0.35}, {0.35, 0.35}}, + selection_box = {{-0.5, -0.5}, {0.5, 0.5}}, + fast_replaceable_group = "container", + inventory_size = inputs.inventory_size or 48, + logistic_mode = inputs.logistic_mode or "passive-provider", + open_sound = { filename = "__base__/sound/metallic-chest-open.ogg", volume=0.65 }, + close_sound = { filename = "__base__/sound/metallic-chest-close.ogg", volume = 0.7 }, + vehicle_impact_sound = { filename = "__base__/sound/car-metal-impact.ogg", volume = 0.65 }, + picture = inputs.picture, + circuit_wire_max_distance = inputs.circuit_wire_max_distance or 7.5 + } +end + +function bobmods.logistics.logistic_container_2_picture(tint) +return { + layers = + { + { + filename = "__boblogistics__/graphics/entity/logistic-chest/logistic-chest-2.png", + width = 38, + height = 32, + frame_count = 1, + shift = {0.1, 0} + }, + { + filename = "__boblogistics__/graphics/entity/logistic-chest/logistic-chest-mask.png", + width = 38, + height = 32, + frame_count = 1, + tint = tint, + shift = {0.1, 0} + } + } +} +end + +data:extend( +{ + bobmods.logistics.logistic_container{ + name = "logistic-chest-passive-provider-2", + icon = "__boblogistics__/graphics/icons/logistic-chest-passive-provider-2.png", + max_health = 250, + inventory_size = 60, + logistic_mode = "passive-provider", + picture = bobmods.logistics.logistic_container_2_picture({r = 1, g = 0.14, b = 0, a = 1}), + circuit_wire_max_distance = 10 + }, + + bobmods.logistics.logistic_container{ + name = "logistic-chest-active-provider-2", + icon = "__boblogistics__/graphics/icons/logistic-chest-active-provider-2.png", + max_health = 250, + inventory_size = 60, + logistic_mode = "active-provider", + picture = bobmods.logistics.logistic_container_2_picture({r = 0.75, g = 0, b = 1, a = 1}), + circuit_wire_max_distance = 10 + }, + + bobmods.logistics.logistic_container{ + name = "logistic-chest-storage-2", + icon = "__boblogistics__/graphics/icons/logistic-chest-storage-2.png", + max_health = 250, + inventory_size = 60, + logistic_mode = "storage", + picture = bobmods.logistics.logistic_container_2_picture({r = 1, g = 0.78, b = 0, a = 1}), + circuit_wire_max_distance = 10 + }, + + bobmods.logistics.logistic_container{ + name = "logistic-chest-requester-2", + icon = "__boblogistics__/graphics/icons/logistic-chest-requester-2.png", + max_health = 250, + inventory_size = 60, + logistic_mode = "requester", + picture = bobmods.logistics.logistic_container_2_picture({r = 0, g = 0.42, b = 1, a = 1}), + circuit_wire_max_distance = 10 + } +} +) + diff --git a/boblogistics_0.14.0/prototypes/entity/pipes.lua b/boblogistics_0.14.2/prototypes/entity/pipes.lua similarity index 96% rename from boblogistics_0.14.0/prototypes/entity/pipes.lua rename to boblogistics_0.14.2/prototypes/entity/pipes.lua index 0799158..bd859a7 100644 --- a/boblogistics_0.14.0/prototypes/entity/pipes.lua +++ b/boblogistics_0.14.2/prototypes/entity/pipes.lua @@ -1,2627 +1,2627 @@ -data.raw["pipe-to-ground"]["pipe-to-ground"].fast_replaceable_group = "pipe-to-ground" - -data:extend( -{ - { - type = "pipe", - name = "stone-pipe", - icon = "__boblogistics__/graphics/icons/pipe/stone-pipe.png", - flags = {"placeable-neutral", "player-creation"}, - minable = {hardness = 0.3, mining_time = 0.5, result = "stone-pipe"}, - max_health = 50, - corpse = "small-remnants", - resistances = - { - { - type = "fire", - percent = 90 - } - }, - 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 = 2, - pipe_connections = - { - { position = {0, -1} }, - { position = {1, 0} }, - { position = {0, 1} }, - { position = {-1, 0} } - }, - }, - pictures = - { - straight_vertical_single = - { - filename = "__boblogistics__/graphics/entity/pipe/stone/pipe-straight-vertical-single.png", - priority = "extra-high", - width = 44, - height = 58 - }, - straight_vertical = - { - filename = "__boblogistics__/graphics/entity/pipe/stone/pipe-straight-vertical.png", - priority = "extra-high", - width = 44, - height = 42 - }, - straight_vertical_window = - { - filename = "__boblogistics__/graphics/entity/pipe/stone/pipe-straight-vertical-window.png", - priority = "extra-high", - width = 44, - height = 32 - }, - straight_horizontal = - { - filename = "__boblogistics__/graphics/entity/pipe/stone/pipe-straight-horizontal.png", - priority = "extra-high", - width = 32, - height = 42 - }, - straight_horizontal_window = - { - filename = "__boblogistics__/graphics/entity/pipe/stone/pipe-straight-horizontal-window.png", - priority = "extra-high", - width = 32, - height = 42 - }, - corner_up_right = - { - filename = "__boblogistics__/graphics/entity/pipe/stone/pipe-corner-up-right.png", - priority = "extra-high", - width = 32, - height = 40 - }, - corner_up_left = - { - filename = "__boblogistics__/graphics/entity/pipe/stone/pipe-corner-up-left.png", - priority = "extra-high", - width = 44, - height = 44 - }, - corner_down_right = - { - filename = "__boblogistics__/graphics/entity/pipe/stone/pipe-corner-down-right.png", - priority = "extra-high", - width = 32, - height = 32 - }, - corner_down_left = - { - filename = "__boblogistics__/graphics/entity/pipe/stone/pipe-corner-down-left.png", - priority = "extra-high", - width = 36, - height = 32 - }, - t_up = - { - filename = "__boblogistics__/graphics/entity/pipe/stone/pipe-t-up.png", - priority = "extra-high", - width = 32, - height = 42 - }, - t_down = - { - filename = "__boblogistics__/graphics/entity/pipe/stone/pipe-t-down.png", - priority = "extra-high", - width = 40, - height = 44 - }, - t_right = - { - filename = "__boblogistics__/graphics/entity/pipe/stone/pipe-t-right.png", - priority = "extra-high", - width = 40, - height = 32 - }, - t_left = - { - filename = "__boblogistics__/graphics/entity/pipe/stone/pipe-t-left.png", - priority = "extra-high", - width = 44, - height = 42 - }, - cross = - { - filename = "__boblogistics__/graphics/entity/pipe/stone/pipe-cross.png", - priority = "extra-high", - width = 40, - height = 40 - }, - ending_up = - { - filename = "__boblogistics__/graphics/entity/pipe/stone/pipe-ending-up.png", - priority = "extra-high", - width = 44, - height = 42 - }, - ending_down = - { - filename = "__boblogistics__/graphics/entity/pipe/stone/pipe-ending-down.png", - priority = "extra-high", - width = 44, - height = 32 - }, - ending_right = - { - filename = "__boblogistics__/graphics/entity/pipe/stone/pipe-ending-right.png", - priority = "extra-high", - width = 32, - height = 44 - }, - ending_left = - { - filename = "__boblogistics__/graphics/entity/pipe/stone/pipe-ending-left.png", - priority = "extra-high", - width = 58, - height = 44 - }, - horizontal_window_background = - { - filename = "__boblogistics__/graphics/entity/pipe/stone/pipe-horizontal-window-background.png", - priority = "extra-high", - width = 32, - height = 42 - }, - vertical_window_background = - { - filename = "__boblogistics__/graphics/entity/pipe/stone/pipe-vertical-window-background.png", - priority = "extra-high", - width = 44, - height = 32 - }, - fluid_background = - { - filename = "__boblogistics__/graphics/entity/pipe/stone/fluid-background.png", - priority = "extra-high", - width = 32, - height = 20 - }, - low_temperature_flow = - { - filename = "__boblogistics__/graphics/entity/pipe/stone/fluid-flow-low-temperature.png", - priority = "extra-high", - width = 160, - height = 18 - }, - middle_temperature_flow = - { - filename = "__boblogistics__/graphics/entity/pipe/stone/fluid-flow-medium-temperature.png", - priority = "extra-high", - width = 160, - height = 18 - }, - high_temperature_flow = - { - filename = "__boblogistics__/graphics/entity/pipe/stone/fluid-flow-high-temperature.png", - priority = "extra-high", - width = 160, - height = 18 - }, - }, - working_sound = - { - sound = { - { - filename = "__base__/sound/pipe.ogg", - volume = 0.65 - }, - }, - match_volume_to_activity = true, - max_sounds_per_type = 3 - }, - horizontal_window_bounding_box = {{-0.25, -0.25}, {0.25, 0.15625}}, - vertical_window_bounding_box = {{-0.28125, -0.40625}, {0.03125, 0.125}}, - }, - - { - type = "pipe-to-ground", - name = "stone-pipe-to-ground", - icon = "__boblogistics__/graphics/icons/pipe/stone-pipe-to-ground.png", - flags = {"placeable-neutral", "player-creation"}, - minable = {hardness = 0.3, mining_time = 0.5, result = "stone-pipe-to-ground"}, - max_health = 50, - corpse = "small-remnants", - resistances = - { - { - type = "fire", - percent = 80 - } - }, - fast_replaceable_group = "pipe-to-ground", - collision_box = {{-0.29, -0.29}, {0.29, 0.2}}, - selection_box = {{-0.5, -0.5}, {0.5, 0.5}}, - fluid_box = - { - base_area = 2, - 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", - width = 64, - height = 64, - scale = 0.5 - }, - pictures = - { - up = - { - filename = "__boblogistics__/graphics/entity/pipe/stone/pipe-to-ground-up.png", - priority = "high", - width = 44, - height = 32 - }, - down = - { - filename = "__boblogistics__/graphics/entity/pipe/stone/pipe-to-ground-down.png", - priority = "high", - width = 40, - height = 32 - }, - left = - { - filename = "__boblogistics__/graphics/entity/pipe/stone/pipe-to-ground-left.png", - priority = "high", - width = 32, - height = 42 - }, - right = - { - filename = "__boblogistics__/graphics/entity/pipe/stone/pipe-to-ground-right.png", - priority = "high", - width = 32, - height = 40 - }, - }, - }, - - - { - type = "pipe", - name = "copper-pipe", - icon = "__boblogistics__/graphics/icons/pipe/copper-pipe.png", - flags = {"placeable-neutral", "player-creation"}, - minable = {hardness = 0.3, mining_time = 0.5, result = "copper-pipe"}, - max_health = 50, - corpse = "small-remnants", - resistances = - { - { - type = "fire", - percent = 90 - } - }, - 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 = 0.5, - pipe_connections = - { - { position = {0, -1} }, - { position = {1, 0} }, - { position = {0, 1} }, - { position = {-1, 0} } - }, - }, - pictures = - { - straight_vertical_single = - { - filename = "__boblogistics__/graphics/entity/pipe/copper/pipe-straight-vertical-single.png", - priority = "extra-high", - width = 44, - height = 58 - }, - straight_vertical = - { - filename = "__boblogistics__/graphics/entity/pipe/copper/pipe-straight-vertical.png", - priority = "extra-high", - width = 44, - height = 42 - }, - straight_vertical_window = - { - filename = "__boblogistics__/graphics/entity/pipe/copper/pipe-straight-vertical-window.png", - priority = "extra-high", - width = 44, - height = 32 - }, - straight_horizontal = - { - filename = "__boblogistics__/graphics/entity/pipe/copper/pipe-straight-horizontal.png", - priority = "extra-high", - width = 32, - height = 42 - }, - straight_horizontal_window = - { - filename = "__boblogistics__/graphics/entity/pipe/copper/pipe-straight-horizontal-window.png", - priority = "extra-high", - width = 32, - height = 42 - }, - corner_up_right = - { - filename = "__boblogistics__/graphics/entity/pipe/copper/pipe-corner-up-right.png", - priority = "extra-high", - width = 32, - height = 40 - }, - corner_up_left = - { - filename = "__boblogistics__/graphics/entity/pipe/copper/pipe-corner-up-left.png", - priority = "extra-high", - width = 44, - height = 44 - }, - corner_down_right = - { - filename = "__boblogistics__/graphics/entity/pipe/copper/pipe-corner-down-right.png", - priority = "extra-high", - width = 32, - height = 32 - }, - corner_down_left = - { - filename = "__boblogistics__/graphics/entity/pipe/copper/pipe-corner-down-left.png", - priority = "extra-high", - width = 36, - height = 32 - }, - t_up = - { - filename = "__boblogistics__/graphics/entity/pipe/copper/pipe-t-up.png", - priority = "extra-high", - width = 32, - height = 42 - }, - t_down = - { - filename = "__boblogistics__/graphics/entity/pipe/copper/pipe-t-down.png", - priority = "extra-high", - width = 40, - height = 44 - }, - t_right = - { - filename = "__boblogistics__/graphics/entity/pipe/copper/pipe-t-right.png", - priority = "extra-high", - width = 40, - height = 32 - }, - t_left = - { - filename = "__boblogistics__/graphics/entity/pipe/copper/pipe-t-left.png", - priority = "extra-high", - width = 44, - height = 42 - }, - cross = - { - filename = "__boblogistics__/graphics/entity/pipe/copper/pipe-cross.png", - priority = "extra-high", - width = 40, - height = 40 - }, - ending_up = - { - filename = "__boblogistics__/graphics/entity/pipe/copper/pipe-ending-up.png", - priority = "extra-high", - width = 44, - height = 42 - }, - ending_down = - { - filename = "__boblogistics__/graphics/entity/pipe/copper/pipe-ending-down.png", - priority = "extra-high", - width = 44, - height = 32 - }, - ending_right = - { - filename = "__boblogistics__/graphics/entity/pipe/copper/pipe-ending-right.png", - priority = "extra-high", - width = 32, - height = 44 - }, - ending_left = - { - filename = "__boblogistics__/graphics/entity/pipe/copper/pipe-ending-left.png", - priority = "extra-high", - width = 58, - height = 44 - }, - horizontal_window_background = - { - filename = "__boblogistics__/graphics/entity/pipe/copper/pipe-horizontal-window-background.png", - priority = "extra-high", - width = 32, - height = 42 - }, - vertical_window_background = - { - filename = "__boblogistics__/graphics/entity/pipe/copper/pipe-vertical-window-background.png", - priority = "extra-high", - width = 44, - height = 32 - }, - fluid_background = - { - filename = "__boblogistics__/graphics/entity/pipe/copper/fluid-background.png", - priority = "extra-high", - width = 32, - height = 20 - }, - low_temperature_flow = - { - filename = "__boblogistics__/graphics/entity/pipe/copper/fluid-flow-low-temperature.png", - priority = "extra-high", - width = 160, - height = 18 - }, - middle_temperature_flow = - { - filename = "__boblogistics__/graphics/entity/pipe/copper/fluid-flow-medium-temperature.png", - priority = "extra-high", - width = 160, - height = 18 - }, - high_temperature_flow = - { - filename = "__boblogistics__/graphics/entity/pipe/copper/fluid-flow-high-temperature.png", - priority = "extra-high", - width = 160, - height = 18 - }, - }, - working_sound = - { - sound = { - { - filename = "__base__/sound/pipe.ogg", - volume = 0.65 - }, - }, - match_volume_to_activity = true, - max_sounds_per_type = 3 - }, - horizontal_window_bounding_box = {{-0.25, -0.25}, {0.25, 0.15625}}, - vertical_window_bounding_box = {{-0.28125, -0.40625}, {0.03125, 0.125}}, - }, - - { - type = "pipe-to-ground", - name = "copper-pipe-to-ground", - icon = "__boblogistics__/graphics/icons/pipe/copper-pipe-to-ground.png", - flags = {"placeable-neutral", "player-creation"}, - minable = {hardness = 0.3, mining_time = 0.5, result = "copper-pipe-to-ground"}, - max_health = 50, - corpse = "small-remnants", - resistances = - { - { - type = "fire", - percent = 80 - } - }, - fast_replaceable_group = "pipe-to-ground", - collision_box = {{-0.29, -0.29}, {0.29, 0.2}}, - selection_box = {{-0.5, -0.5}, {0.5, 0.5}}, - fluid_box = - { - base_area = 0.5, - 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", - width = 64, - height = 64, - scale = 0.5 - }, - pictures = - { - up = - { - filename = "__boblogistics__/graphics/entity/pipe/copper/pipe-to-ground-up.png", - priority = "high", - width = 44, - height = 32 - }, - down = - { - filename = "__boblogistics__/graphics/entity/pipe/copper/pipe-to-ground-down.png", - priority = "high", - width = 40, - height = 32 - }, - left = - { - filename = "__boblogistics__/graphics/entity/pipe/copper/pipe-to-ground-left.png", - priority = "high", - width = 32, - height = 42 - }, - right = - { - filename = "__boblogistics__/graphics/entity/pipe/copper/pipe-to-ground-right.png", - priority = "high", - width = 32, - height = 40 - }, - }, - }, - - - { - type = "pipe", - name = "steel-pipe", - icon = "__boblogistics__/graphics/icons/pipe/steel-pipe.png", - flags = {"placeable-neutral", "player-creation"}, - minable = {hardness = 0.3, mining_time = 0.5, result = "steel-pipe"}, - max_health = 100, - corpse = "small-remnants", - resistances = - { - { - type = "fire", - percent = 90 - } - }, - 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} } - }, - }, - pictures = - { - straight_vertical_single = - { - filename = "__boblogistics__/graphics/entity/pipe/steel/pipe-straight-vertical-single.png", - priority = "extra-high", - width = 44, - height = 58 - }, - straight_vertical = - { - filename = "__boblogistics__/graphics/entity/pipe/steel/pipe-straight-vertical.png", - priority = "extra-high", - width = 44, - height = 42 - }, - straight_vertical_window = - { - filename = "__boblogistics__/graphics/entity/pipe/steel/pipe-straight-vertical-window.png", - priority = "extra-high", - width = 44, - height = 32 - }, - straight_horizontal = - { - filename = "__boblogistics__/graphics/entity/pipe/steel/pipe-straight-horizontal.png", - priority = "extra-high", - width = 32, - height = 42 - }, - straight_horizontal_window = - { - filename = "__boblogistics__/graphics/entity/pipe/steel/pipe-straight-horizontal-window.png", - priority = "extra-high", - width = 32, - height = 42 - }, - corner_up_right = - { - filename = "__boblogistics__/graphics/entity/pipe/steel/pipe-corner-up-right.png", - priority = "extra-high", - width = 32, - height = 40 - }, - corner_up_left = - { - filename = "__boblogistics__/graphics/entity/pipe/steel/pipe-corner-up-left.png", - priority = "extra-high", - width = 44, - height = 44 - }, - corner_down_right = - { - filename = "__boblogistics__/graphics/entity/pipe/steel/pipe-corner-down-right.png", - priority = "extra-high", - width = 32, - height = 32 - }, - corner_down_left = - { - filename = "__boblogistics__/graphics/entity/pipe/steel/pipe-corner-down-left.png", - priority = "extra-high", - width = 36, - height = 32 - }, - t_up = - { - filename = "__boblogistics__/graphics/entity/pipe/steel/pipe-t-up.png", - priority = "extra-high", - width = 32, - height = 42 - }, - t_down = - { - filename = "__boblogistics__/graphics/entity/pipe/steel/pipe-t-down.png", - priority = "extra-high", - width = 40, - height = 44 - }, - t_right = - { - filename = "__boblogistics__/graphics/entity/pipe/steel/pipe-t-right.png", - priority = "extra-high", - width = 40, - height = 32 - }, - t_left = - { - filename = "__boblogistics__/graphics/entity/pipe/steel/pipe-t-left.png", - priority = "extra-high", - width = 44, - height = 42 - }, - cross = - { - filename = "__boblogistics__/graphics/entity/pipe/steel/pipe-cross.png", - priority = "extra-high", - width = 40, - height = 40 - }, - ending_up = - { - filename = "__boblogistics__/graphics/entity/pipe/steel/pipe-ending-up.png", - priority = "extra-high", - width = 44, - height = 42 - }, - ending_down = - { - filename = "__boblogistics__/graphics/entity/pipe/steel/pipe-ending-down.png", - priority = "extra-high", - width = 44, - height = 32 - }, - ending_right = - { - filename = "__boblogistics__/graphics/entity/pipe/steel/pipe-ending-right.png", - priority = "extra-high", - width = 32, - height = 44 - }, - ending_left = - { - filename = "__boblogistics__/graphics/entity/pipe/steel/pipe-ending-left.png", - priority = "extra-high", - width = 58, - height = 44 - }, - horizontal_window_background = - { - filename = "__boblogistics__/graphics/entity/pipe/steel/pipe-horizontal-window-background.png", - priority = "extra-high", - width = 32, - height = 42 - }, - vertical_window_background = - { - filename = "__boblogistics__/graphics/entity/pipe/steel/pipe-vertical-window-background.png", - priority = "extra-high", - width = 44, - height = 32 - }, - fluid_background = - { - filename = "__boblogistics__/graphics/entity/pipe/steel/fluid-background.png", - priority = "extra-high", - width = 32, - height = 20 - }, - low_temperature_flow = - { - filename = "__boblogistics__/graphics/entity/pipe/steel/fluid-flow-low-temperature.png", - priority = "extra-high", - width = 160, - height = 18 - }, - middle_temperature_flow = - { - filename = "__boblogistics__/graphics/entity/pipe/steel/fluid-flow-medium-temperature.png", - priority = "extra-high", - width = 160, - height = 18 - }, - high_temperature_flow = - { - filename = "__boblogistics__/graphics/entity/pipe/steel/fluid-flow-high-temperature.png", - priority = "extra-high", - width = 160, - height = 18 - }, - }, - working_sound = - { - sound = { - { - filename = "__base__/sound/pipe.ogg", - volume = 0.65 - }, - }, - match_volume_to_activity = true, - max_sounds_per_type = 3 - }, - horizontal_window_bounding_box = {{-0.25, -0.25}, {0.25, 0.15625}}, - vertical_window_bounding_box = {{-0.28125, -0.40625}, {0.03125, 0.125}}, - }, - - { - type = "pipe-to-ground", - name = "steel-pipe-to-ground", - icon = "__boblogistics__/graphics/icons/pipe/steel-pipe-to-ground.png", - flags = {"placeable-neutral", "player-creation"}, - minable = {hardness = 0.3, mining_time = 0.5, result = "steel-pipe-to-ground"}, - max_health = 100, - corpse = "small-remnants", - resistances = - { - { - type = "fire", - percent = 80 - } - }, - fast_replaceable_group = "pipe-to-ground", - 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 = 15 - } - }, - }, - underground_sprite = - { - filename = "__core__/graphics/arrows/underground-lines.png", - priority = "extra-high-no-scale", - width = 64, - height = 64, - scale = 0.5 - }, - pictures = - { - up = - { - filename = "__boblogistics__/graphics/entity/pipe/steel/pipe-to-ground-up.png", - priority = "high", - width = 44, - height = 32 - }, - down = - { - filename = "__boblogistics__/graphics/entity/pipe/steel/pipe-to-ground-down.png", - priority = "high", - width = 40, - height = 32 - }, - left = - { - filename = "__boblogistics__/graphics/entity/pipe/steel/pipe-to-ground-left.png", - priority = "high", - width = 32, - height = 42 - }, - right = - { - filename = "__boblogistics__/graphics/entity/pipe/steel/pipe-to-ground-right.png", - priority = "high", - width = 32, - height = 40 - }, - }, - }, - - - { - type = "pipe", - name = "plastic-pipe", - icon = "__boblogistics__/graphics/icons/pipe/plastic-pipe.png", - flags = {"placeable-neutral", "player-creation"}, - minable = {hardness = 0.1, mining_time = 0.5, result = "plastic-pipe"}, - max_health = 100, - corpse = "small-remnants", - resistances = - { - { - type = "fire", - percent = 90 - } - }, - 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 = 2, - pipe_connections = - { - { position = {0, -1} }, - { position = {1, 0} }, - { position = {0, 1} }, - { position = {-1, 0} } - }, - }, - pictures = - { - straight_vertical_single = - { - filename = "__boblogistics__/graphics/entity/pipe/plastic/pipe-straight-vertical-single.png", - priority = "extra-high", - width = 44, - height = 58 - }, - straight_vertical = - { - filename = "__boblogistics__/graphics/entity/pipe/plastic/pipe-straight-vertical.png", - priority = "extra-high", - width = 44, - height = 42 - }, - straight_vertical_window = - { - filename = "__boblogistics__/graphics/entity/pipe/plastic/pipe-straight-vertical-window.png", - priority = "extra-high", - width = 44, - height = 32 - }, - straight_horizontal = - { - filename = "__boblogistics__/graphics/entity/pipe/plastic/pipe-straight-horizontal.png", - priority = "extra-high", - width = 32, - height = 42 - }, - straight_horizontal_window = - { - filename = "__boblogistics__/graphics/entity/pipe/plastic/pipe-straight-horizontal-window.png", - priority = "extra-high", - width = 32, - height = 42 - }, - corner_up_right = - { - filename = "__boblogistics__/graphics/entity/pipe/plastic/pipe-corner-up-right.png", - priority = "extra-high", - width = 32, - height = 40 - }, - corner_up_left = - { - filename = "__boblogistics__/graphics/entity/pipe/plastic/pipe-corner-up-left.png", - priority = "extra-high", - width = 44, - height = 44 - }, - corner_down_right = - { - filename = "__boblogistics__/graphics/entity/pipe/plastic/pipe-corner-down-right.png", - priority = "extra-high", - width = 32, - height = 32 - }, - corner_down_left = - { - filename = "__boblogistics__/graphics/entity/pipe/plastic/pipe-corner-down-left.png", - priority = "extra-high", - width = 36, - height = 32 - }, - t_up = - { - filename = "__boblogistics__/graphics/entity/pipe/plastic/pipe-t-up.png", - priority = "extra-high", - width = 32, - height = 42 - }, - t_down = - { - filename = "__boblogistics__/graphics/entity/pipe/plastic/pipe-t-down.png", - priority = "extra-high", - width = 40, - height = 44 - }, - t_right = - { - filename = "__boblogistics__/graphics/entity/pipe/plastic/pipe-t-right.png", - priority = "extra-high", - width = 40, - height = 32 - }, - t_left = - { - filename = "__boblogistics__/graphics/entity/pipe/plastic/pipe-t-left.png", - priority = "extra-high", - width = 44, - height = 42 - }, - cross = - { - filename = "__boblogistics__/graphics/entity/pipe/plastic/pipe-cross.png", - priority = "extra-high", - width = 40, - height = 40 - }, - ending_up = - { - filename = "__boblogistics__/graphics/entity/pipe/plastic/pipe-ending-up.png", - priority = "extra-high", - width = 44, - height = 42 - }, - ending_down = - { - filename = "__boblogistics__/graphics/entity/pipe/plastic/pipe-ending-down.png", - priority = "extra-high", - width = 44, - height = 32 - }, - ending_right = - { - filename = "__boblogistics__/graphics/entity/pipe/plastic/pipe-ending-right.png", - priority = "extra-high", - width = 32, - height = 44 - }, - ending_left = - { - filename = "__boblogistics__/graphics/entity/pipe/plastic/pipe-ending-left.png", - priority = "extra-high", - width = 58, - height = 44 - }, - horizontal_window_background = - { - filename = "__boblogistics__/graphics/entity/pipe/plastic/pipe-horizontal-window-background.png", - priority = "extra-high", - width = 32, - height = 42 - }, - vertical_window_background = - { - filename = "__boblogistics__/graphics/entity/pipe/plastic/pipe-vertical-window-background.png", - priority = "extra-high", - width = 44, - height = 32 - }, - fluid_background = - { - filename = "__boblogistics__/graphics/entity/pipe/plastic/fluid-background.png", - priority = "extra-high", - width = 32, - height = 20 - }, - low_temperature_flow = - { - filename = "__boblogistics__/graphics/entity/pipe/plastic/fluid-flow-low-temperature.png", - priority = "extra-high", - width = 160, - height = 18 - }, - middle_temperature_flow = - { - filename = "__boblogistics__/graphics/entity/pipe/plastic/fluid-flow-medium-temperature.png", - priority = "extra-high", - width = 160, - height = 18 - }, - high_temperature_flow = - { - filename = "__boblogistics__/graphics/entity/pipe/plastic/fluid-flow-high-temperature.png", - priority = "extra-high", - width = 160, - height = 18 - }, - }, - working_sound = - { - sound = { - { - filename = "__base__/sound/pipe.ogg", - volume = 0.65 - }, - }, - match_volume_to_activity = true, - max_sounds_per_type = 3 - }, - horizontal_window_bounding_box = {{-0.25, -0.25}, {0.25, 0.15625}}, - vertical_window_bounding_box = {{-0.28125, -0.40625}, {0.03125, 0.125}}, - }, - - { - type = "pipe-to-ground", - name = "plastic-pipe-to-ground", - icon = "__boblogistics__/graphics/icons/pipe/plastic-pipe-to-ground.png", - flags = {"placeable-neutral", "player-creation"}, - minable = {hardness = 0.1, mining_time = 0.5, result = "plastic-pipe-to-ground"}, - max_health = 100, - corpse = "small-remnants", - resistances = - { - { - type = "fire", - percent = 80 - } - }, - fast_replaceable_group = "pipe-to-ground", - collision_box = {{-0.29, -0.29}, {0.29, 0.2}}, - selection_box = {{-0.5, -0.5}, {0.5, 0.5}}, - fluid_box = - { - base_area = 2, - pipe_covers = pipecoverspictures(), - pipe_connections = - { - { position = {0, -1} }, - { - position = {0, 1}, - max_underground_distance = 15 - } - }, - }, - underground_sprite = - { - filename = "__core__/graphics/arrows/underground-lines.png", - priority = "extra-high-no-scale", - width = 64, - height = 64, - scale = 0.5 - }, - pictures = - { - up = - { - filename = "__boblogistics__/graphics/entity/pipe/plastic/pipe-to-ground-up.png", - priority = "high", - width = 44, - height = 32 - }, - down = - { - filename = "__boblogistics__/graphics/entity/pipe/plastic/pipe-to-ground-down.png", - priority = "high", - width = 40, - height = 32 - }, - left = - { - filename = "__boblogistics__/graphics/entity/pipe/plastic/pipe-to-ground-left.png", - priority = "high", - width = 32, - height = 42 - }, - right = - { - filename = "__boblogistics__/graphics/entity/pipe/plastic/pipe-to-ground-right.png", - priority = "high", - width = 32, - height = 40 - }, - }, - }, -} -) - - -if data.raw.item["bronze-alloy"] then -data:extend( -{ - { - type = "pipe", - name = "bronze-pipe", - icon = "__boblogistics__/graphics/icons/pipe/bronze-pipe.png", - flags = {"placeable-neutral", "player-creation"}, - minable = {hardness = 0.3, mining_time = 0.5, result = "bronze-pipe"}, - max_health = 100, - corpse = "small-remnants", - resistances = - { - { - type = "fire", - percent = 90 - } - }, - 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 = 0.5, - pipe_connections = - { - { position = {0, -1} }, - { position = {1, 0} }, - { position = {0, 1} }, - { position = {-1, 0} } - }, - }, - pictures = - { - straight_vertical_single = - { - filename = "__boblogistics__/graphics/entity/pipe/bronze/pipe-straight-vertical-single.png", - priority = "extra-high", - width = 44, - height = 58 - }, - straight_vertical = - { - filename = "__boblogistics__/graphics/entity/pipe/bronze/pipe-straight-vertical.png", - priority = "extra-high", - width = 44, - height = 42 - }, - straight_vertical_window = - { - filename = "__boblogistics__/graphics/entity/pipe/bronze/pipe-straight-vertical-window.png", - priority = "extra-high", - width = 44, - height = 32 - }, - straight_horizontal = - { - filename = "__boblogistics__/graphics/entity/pipe/bronze/pipe-straight-horizontal.png", - priority = "extra-high", - width = 32, - height = 42 - }, - straight_horizontal_window = - { - filename = "__boblogistics__/graphics/entity/pipe/bronze/pipe-straight-horizontal-window.png", - priority = "extra-high", - width = 32, - height = 42 - }, - corner_up_right = - { - filename = "__boblogistics__/graphics/entity/pipe/bronze/pipe-corner-up-right.png", - priority = "extra-high", - width = 32, - height = 40 - }, - corner_up_left = - { - filename = "__boblogistics__/graphics/entity/pipe/bronze/pipe-corner-up-left.png", - priority = "extra-high", - width = 44, - height = 44 - }, - corner_down_right = - { - filename = "__boblogistics__/graphics/entity/pipe/bronze/pipe-corner-down-right.png", - priority = "extra-high", - width = 32, - height = 32 - }, - corner_down_left = - { - filename = "__boblogistics__/graphics/entity/pipe/bronze/pipe-corner-down-left.png", - priority = "extra-high", - width = 36, - height = 32 - }, - t_up = - { - filename = "__boblogistics__/graphics/entity/pipe/bronze/pipe-t-up.png", - priority = "extra-high", - width = 32, - height = 42 - }, - t_down = - { - filename = "__boblogistics__/graphics/entity/pipe/bronze/pipe-t-down.png", - priority = "extra-high", - width = 40, - height = 44 - }, - t_right = - { - filename = "__boblogistics__/graphics/entity/pipe/bronze/pipe-t-right.png", - priority = "extra-high", - width = 40, - height = 32 - }, - t_left = - { - filename = "__boblogistics__/graphics/entity/pipe/bronze/pipe-t-left.png", - priority = "extra-high", - width = 44, - height = 42 - }, - cross = - { - filename = "__boblogistics__/graphics/entity/pipe/bronze/pipe-cross.png", - priority = "extra-high", - width = 40, - height = 40 - }, - ending_up = - { - filename = "__boblogistics__/graphics/entity/pipe/bronze/pipe-ending-up.png", - priority = "extra-high", - width = 44, - height = 42 - }, - ending_down = - { - filename = "__boblogistics__/graphics/entity/pipe/bronze/pipe-ending-down.png", - priority = "extra-high", - width = 44, - height = 32 - }, - ending_right = - { - filename = "__boblogistics__/graphics/entity/pipe/bronze/pipe-ending-right.png", - priority = "extra-high", - width = 32, - height = 44 - }, - ending_left = - { - filename = "__boblogistics__/graphics/entity/pipe/bronze/pipe-ending-left.png", - priority = "extra-high", - width = 58, - height = 44 - }, - horizontal_window_background = - { - filename = "__boblogistics__/graphics/entity/pipe/bronze/pipe-horizontal-window-background.png", - priority = "extra-high", - width = 32, - height = 42 - }, - vertical_window_background = - { - filename = "__boblogistics__/graphics/entity/pipe/bronze/pipe-vertical-window-background.png", - priority = "extra-high", - width = 44, - height = 32 - }, - fluid_background = - { - filename = "__boblogistics__/graphics/entity/pipe/bronze/fluid-background.png", - priority = "extra-high", - width = 32, - height = 20 - }, - low_temperature_flow = - { - filename = "__boblogistics__/graphics/entity/pipe/bronze/fluid-flow-low-temperature.png", - priority = "extra-high", - width = 160, - height = 18 - }, - middle_temperature_flow = - { - filename = "__boblogistics__/graphics/entity/pipe/bronze/fluid-flow-medium-temperature.png", - priority = "extra-high", - width = 160, - height = 18 - }, - high_temperature_flow = - { - filename = "__boblogistics__/graphics/entity/pipe/bronze/fluid-flow-high-temperature.png", - priority = "extra-high", - width = 160, - height = 18 - }, - }, - working_sound = - { - sound = { - { - filename = "__base__/sound/pipe.ogg", - volume = 0.65 - }, - }, - match_volume_to_activity = true, - max_sounds_per_type = 3 - }, - horizontal_window_bounding_box = {{-0.25, -0.25}, {0.25, 0.15625}}, - vertical_window_bounding_box = {{-0.28125, -0.40625}, {0.03125, 0.125}}, - }, - - { - type = "pipe-to-ground", - name = "bronze-pipe-to-ground", - icon = "__boblogistics__/graphics/icons/pipe/bronze-pipe-to-ground.png", - flags = {"placeable-neutral", "player-creation"}, - minable = {hardness = 0.3, mining_time = 0.5, result = "bronze-pipe-to-ground"}, - max_health = 100, - corpse = "small-remnants", - resistances = - { - { - type = "fire", - percent = 80 - } - }, - fast_replaceable_group = "pipe-to-ground", - collision_box = {{-0.29, -0.29}, {0.29, 0.2}}, - selection_box = {{-0.5, -0.5}, {0.5, 0.5}}, - fluid_box = - { - base_area = 0.5, - pipe_covers = pipecoverspictures(), - pipe_connections = - { - { position = {0, -1} }, - { - position = {0, 1}, - max_underground_distance = 15 - } - }, - }, - underground_sprite = - { - filename = "__core__/graphics/arrows/underground-lines.png", - priority = "extra-high-no-scale", - width = 64, - height = 64, - scale = 0.5 - }, - pictures = - { - up = - { - filename = "__boblogistics__/graphics/entity/pipe/bronze/pipe-to-ground-up.png", - priority = "high", - width = 44, - height = 32 - }, - down = - { - filename = "__boblogistics__/graphics/entity/pipe/bronze/pipe-to-ground-down.png", - priority = "high", - width = 40, - height = 32 - }, - left = - { - filename = "__boblogistics__/graphics/entity/pipe/bronze/pipe-to-ground-left.png", - priority = "high", - width = 32, - height = 42 - }, - right = - { - filename = "__boblogistics__/graphics/entity/pipe/bronze/pipe-to-ground-right.png", - priority = "high", - width = 32, - height = 40 - }, - }, - }, -} -) -end - - -if data.raw.item["brass-alloy"] then -data:extend( -{ - { - type = "pipe", - name = "brass-pipe", - icon = "__boblogistics__/graphics/icons/pipe/brass-pipe.png", - flags = {"placeable-neutral", "player-creation"}, - minable = {hardness = 0.1, mining_time = 0.5, result = "brass-pipe"}, - max_health = 150, - corpse = "small-remnants", - resistances = - { - { - type = "fire", - percent = 90 - } - }, - 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 = 0.5, - pipe_connections = - { - { position = {0, -1} }, - { position = {1, 0} }, - { position = {0, 1} }, - { position = {-1, 0} } - }, - }, - pictures = - { - straight_vertical_single = - { - filename = "__boblogistics__/graphics/entity/pipe/brass/pipe-straight-vertical-single.png", - priority = "extra-high", - width = 44, - height = 58 - }, - straight_vertical = - { - filename = "__boblogistics__/graphics/entity/pipe/brass/pipe-straight-vertical.png", - priority = "extra-high", - width = 44, - height = 42 - }, - straight_vertical_window = - { - filename = "__boblogistics__/graphics/entity/pipe/brass/pipe-straight-vertical-window.png", - priority = "extra-high", - width = 44, - height = 32 - }, - straight_horizontal = - { - filename = "__boblogistics__/graphics/entity/pipe/brass/pipe-straight-horizontal.png", - priority = "extra-high", - width = 32, - height = 42 - }, - straight_horizontal_window = - { - filename = "__boblogistics__/graphics/entity/pipe/brass/pipe-straight-horizontal-window.png", - priority = "extra-high", - width = 32, - height = 42 - }, - corner_up_right = - { - filename = "__boblogistics__/graphics/entity/pipe/brass/pipe-corner-up-right.png", - priority = "extra-high", - width = 32, - height = 40 - }, - corner_up_left = - { - filename = "__boblogistics__/graphics/entity/pipe/brass/pipe-corner-up-left.png", - priority = "extra-high", - width = 44, - height = 44 - }, - corner_down_right = - { - filename = "__boblogistics__/graphics/entity/pipe/brass/pipe-corner-down-right.png", - priority = "extra-high", - width = 32, - height = 32 - }, - corner_down_left = - { - filename = "__boblogistics__/graphics/entity/pipe/brass/pipe-corner-down-left.png", - priority = "extra-high", - width = 36, - height = 32 - }, - t_up = - { - filename = "__boblogistics__/graphics/entity/pipe/brass/pipe-t-up.png", - priority = "extra-high", - width = 32, - height = 42 - }, - t_down = - { - filename = "__boblogistics__/graphics/entity/pipe/brass/pipe-t-down.png", - priority = "extra-high", - width = 40, - height = 44 - }, - t_right = - { - filename = "__boblogistics__/graphics/entity/pipe/brass/pipe-t-right.png", - priority = "extra-high", - width = 40, - height = 32 - }, - t_left = - { - filename = "__boblogistics__/graphics/entity/pipe/brass/pipe-t-left.png", - priority = "extra-high", - width = 44, - height = 42 - }, - cross = - { - filename = "__boblogistics__/graphics/entity/pipe/brass/pipe-cross.png", - priority = "extra-high", - width = 40, - height = 40 - }, - ending_up = - { - filename = "__boblogistics__/graphics/entity/pipe/brass/pipe-ending-up.png", - priority = "extra-high", - width = 44, - height = 42 - }, - ending_down = - { - filename = "__boblogistics__/graphics/entity/pipe/brass/pipe-ending-down.png", - priority = "extra-high", - width = 44, - height = 32 - }, - ending_right = - { - filename = "__boblogistics__/graphics/entity/pipe/brass/pipe-ending-right.png", - priority = "extra-high", - width = 32, - height = 44 - }, - ending_left = - { - filename = "__boblogistics__/graphics/entity/pipe/brass/pipe-ending-left.png", - priority = "extra-high", - width = 58, - height = 44 - }, - horizontal_window_background = - { - filename = "__boblogistics__/graphics/entity/pipe/brass/pipe-horizontal-window-background.png", - priority = "extra-high", - width = 32, - height = 42 - }, - vertical_window_background = - { - filename = "__boblogistics__/graphics/entity/pipe/brass/pipe-vertical-window-background.png", - priority = "extra-high", - width = 44, - height = 32 - }, - fluid_background = - { - filename = "__boblogistics__/graphics/entity/pipe/brass/fluid-background.png", - priority = "extra-high", - width = 32, - height = 20 - }, - low_temperature_flow = - { - filename = "__boblogistics__/graphics/entity/pipe/brass/fluid-flow-low-temperature.png", - priority = "extra-high", - width = 160, - height = 18 - }, - middle_temperature_flow = - { - filename = "__boblogistics__/graphics/entity/pipe/brass/fluid-flow-medium-temperature.png", - priority = "extra-high", - width = 160, - height = 18 - }, - high_temperature_flow = - { - filename = "__boblogistics__/graphics/entity/pipe/brass/fluid-flow-high-temperature.png", - priority = "extra-high", - width = 160, - height = 18 - }, - }, - working_sound = - { - sound = { - { - filename = "__base__/sound/pipe.ogg", - volume = 0.65 - }, - }, - match_volume_to_activity = true, - max_sounds_per_type = 3 - }, - horizontal_window_bounding_box = {{-0.25, -0.25}, {0.25, 0.15625}}, - vertical_window_bounding_box = {{-0.28125, -0.40625}, {0.03125, 0.125}}, - }, - - { - type = "pipe-to-ground", - name = "brass-pipe-to-ground", - icon = "__boblogistics__/graphics/icons/pipe/brass-pipe-to-ground.png", - flags = {"placeable-neutral", "player-creation"}, - minable = {hardness = 0.1, mining_time = 0.5, result = "brass-pipe-to-ground"}, - max_health = 150, - corpse = "small-remnants", - resistances = - { - { - type = "fire", - percent = 80 - } - }, - fast_replaceable_group = "pipe-to-ground", - collision_box = {{-0.29, -0.29}, {0.29, 0.2}}, - selection_box = {{-0.5, -0.5}, {0.5, 0.5}}, - fluid_box = - { - base_area = 0.5, - pipe_covers = pipecoverspictures(), - pipe_connections = - { - { position = {0, -1} }, - { - position = {0, 1}, - max_underground_distance = 20 - } - }, - }, - underground_sprite = - { - filename = "__core__/graphics/arrows/underground-lines.png", - priority = "extra-high-no-scale", - width = 64, - height = 64, - scale = 0.5 - }, - pictures = - { - up = - { - filename = "__boblogistics__/graphics/entity/pipe/brass/pipe-to-ground-up.png", - priority = "high", - width = 44, - height = 32 - }, - down = - { - filename = "__boblogistics__/graphics/entity/pipe/brass/pipe-to-ground-down.png", - priority = "high", - width = 40, - height = 32 - }, - left = - { - filename = "__boblogistics__/graphics/entity/pipe/brass/pipe-to-ground-left.png", - priority = "high", - width = 32, - height = 42 - }, - right = - { - filename = "__boblogistics__/graphics/entity/pipe/brass/pipe-to-ground-right.png", - priority = "high", - width = 32, - height = 40 - }, - }, - }, -} -) -end - - -if data.raw.item["silicon-nitride"] then -data:extend( -{ - { - type = "pipe", - name = "ceramic-pipe", - icon = "__boblogistics__/graphics/icons/pipe/ceramic-pipe.png", - flags = {"placeable-neutral", "player-creation"}, - minable = {hardness = 0.2, mining_time = 0.5, result = "ceramic-pipe"}, - max_health = 150, - corpse = "small-remnants", - resistances = - { - { - type = "fire", - percent = 90 - } - }, - 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 = 2, - pipe_connections = - { - { position = {0, -1} }, - { position = {1, 0} }, - { position = {0, 1} }, - { position = {-1, 0} } - }, - }, - pictures = - { - straight_vertical_single = - { - filename = "__boblogistics__/graphics/entity/pipe/ceramic/pipe-straight-vertical-single.png", - priority = "extra-high", - width = 44, - height = 58 - }, - straight_vertical = - { - filename = "__boblogistics__/graphics/entity/pipe/ceramic/pipe-straight-vertical.png", - priority = "extra-high", - width = 44, - height = 42 - }, - straight_vertical_window = - { - filename = "__boblogistics__/graphics/entity/pipe/ceramic/pipe-straight-vertical-window.png", - priority = "extra-high", - width = 44, - height = 32 - }, - straight_horizontal = - { - filename = "__boblogistics__/graphics/entity/pipe/ceramic/pipe-straight-horizontal.png", - priority = "extra-high", - width = 32, - height = 42 - }, - straight_horizontal_window = - { - filename = "__boblogistics__/graphics/entity/pipe/ceramic/pipe-straight-horizontal-window.png", - priority = "extra-high", - width = 32, - height = 42 - }, - corner_up_right = - { - filename = "__boblogistics__/graphics/entity/pipe/ceramic/pipe-corner-up-right.png", - priority = "extra-high", - width = 32, - height = 40 - }, - corner_up_left = - { - filename = "__boblogistics__/graphics/entity/pipe/ceramic/pipe-corner-up-left.png", - priority = "extra-high", - width = 44, - height = 44 - }, - corner_down_right = - { - filename = "__boblogistics__/graphics/entity/pipe/ceramic/pipe-corner-down-right.png", - priority = "extra-high", - width = 32, - height = 32 - }, - corner_down_left = - { - filename = "__boblogistics__/graphics/entity/pipe/ceramic/pipe-corner-down-left.png", - priority = "extra-high", - width = 36, - height = 32 - }, - t_up = - { - filename = "__boblogistics__/graphics/entity/pipe/ceramic/pipe-t-up.png", - priority = "extra-high", - width = 32, - height = 42 - }, - t_down = - { - filename = "__boblogistics__/graphics/entity/pipe/ceramic/pipe-t-down.png", - priority = "extra-high", - width = 40, - height = 44 - }, - t_right = - { - filename = "__boblogistics__/graphics/entity/pipe/ceramic/pipe-t-right.png", - priority = "extra-high", - width = 40, - height = 32 - }, - t_left = - { - filename = "__boblogistics__/graphics/entity/pipe/ceramic/pipe-t-left.png", - priority = "extra-high", - width = 44, - height = 42 - }, - cross = - { - filename = "__boblogistics__/graphics/entity/pipe/ceramic/pipe-cross.png", - priority = "extra-high", - width = 40, - height = 40 - }, - ending_up = - { - filename = "__boblogistics__/graphics/entity/pipe/ceramic/pipe-ending-up.png", - priority = "extra-high", - width = 44, - height = 42 - }, - ending_down = - { - filename = "__boblogistics__/graphics/entity/pipe/ceramic/pipe-ending-down.png", - priority = "extra-high", - width = 44, - height = 32 - }, - ending_right = - { - filename = "__boblogistics__/graphics/entity/pipe/ceramic/pipe-ending-right.png", - priority = "extra-high", - width = 32, - height = 44 - }, - ending_left = - { - filename = "__boblogistics__/graphics/entity/pipe/ceramic/pipe-ending-left.png", - priority = "extra-high", - width = 58, - height = 44 - }, - horizontal_window_background = - { - filename = "__boblogistics__/graphics/entity/pipe/ceramic/pipe-horizontal-window-background.png", - priority = "extra-high", - width = 32, - height = 42 - }, - vertical_window_background = - { - filename = "__boblogistics__/graphics/entity/pipe/ceramic/pipe-vertical-window-background.png", - priority = "extra-high", - width = 44, - height = 32 - }, - fluid_background = - { - filename = "__boblogistics__/graphics/entity/pipe/ceramic/fluid-background.png", - priority = "extra-high", - width = 32, - height = 20 - }, - low_temperature_flow = - { - filename = "__boblogistics__/graphics/entity/pipe/ceramic/fluid-flow-low-temperature.png", - priority = "extra-high", - width = 160, - height = 18 - }, - middle_temperature_flow = - { - filename = "__boblogistics__/graphics/entity/pipe/ceramic/fluid-flow-medium-temperature.png", - priority = "extra-high", - width = 160, - height = 18 - }, - high_temperature_flow = - { - filename = "__boblogistics__/graphics/entity/pipe/ceramic/fluid-flow-high-temperature.png", - priority = "extra-high", - width = 160, - height = 18 - }, - }, - working_sound = - { - sound = { - { - filename = "__base__/sound/pipe.ogg", - volume = 0.65 - }, - }, - match_volume_to_activity = true, - max_sounds_per_type = 3 - }, - horizontal_window_bounding_box = {{-0.25, -0.25}, {0.25, 0.15625}}, - vertical_window_bounding_box = {{-0.28125, -0.40625}, {0.03125, 0.125}}, - }, - - { - type = "pipe-to-ground", - name = "ceramic-pipe-to-ground", - icon = "__boblogistics__/graphics/icons/pipe/ceramic-pipe-to-ground.png", - flags = {"placeable-neutral", "player-creation"}, - minable = {hardness = 0.2, mining_time = 0.5, result = "ceramic-pipe-to-ground"}, - max_health = 150, - corpse = "small-remnants", - resistances = - { - { - type = "fire", - percent = 80 - } - }, - fast_replaceable_group = "pipe-to-ground", - collision_box = {{-0.29, -0.29}, {0.29, 0.2}}, - selection_box = {{-0.5, -0.5}, {0.5, 0.5}}, - fluid_box = - { - base_area = 2, - pipe_covers = pipecoverspictures(), - pipe_connections = - { - { position = {0, -1} }, - { - position = {0, 1}, - max_underground_distance = 20 - } - }, - }, - underground_sprite = - { - filename = "__core__/graphics/arrows/underground-lines.png", - priority = "extra-high-no-scale", - width = 64, - height = 64, - scale = 0.5 - }, - pictures = - { - up = - { - filename = "__boblogistics__/graphics/entity/pipe/ceramic/pipe-to-ground-up.png", - priority = "high", - width = 44, - height = 32 - }, - down = - { - filename = "__boblogistics__/graphics/entity/pipe/ceramic/pipe-to-ground-down.png", - priority = "high", - width = 40, - height = 32 - }, - left = - { - filename = "__boblogistics__/graphics/entity/pipe/ceramic/pipe-to-ground-left.png", - priority = "high", - width = 32, - height = 42 - }, - right = - { - filename = "__boblogistics__/graphics/entity/pipe/ceramic/pipe-to-ground-right.png", - priority = "high", - width = 32, - height = 40 - }, - }, - }, -} -) -end - - -if data.raw.item["titanium-plate"] then -data:extend( -{ - { - type = "pipe", - name = "titanium-pipe", - icon = "__boblogistics__/graphics/icons/pipe/titanium-pipe.png", - flags = {"placeable-neutral", "player-creation"}, - minable = {hardness = 0.4, mining_time = 0.5, result = "titanium-pipe"}, - max_health = 150, - corpse = "small-remnants", - resistances = - { - { - type = "fire", - percent = 90 - } - }, - 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} } - }, - }, - pictures = - { - straight_vertical_single = - { - filename = "__boblogistics__/graphics/entity/pipe/titanium/pipe-straight-vertical-single.png", - priority = "extra-high", - width = 44, - height = 58 - }, - straight_vertical = - { - filename = "__boblogistics__/graphics/entity/pipe/titanium/pipe-straight-vertical.png", - priority = "extra-high", - width = 44, - height = 42 - }, - straight_vertical_window = - { - filename = "__boblogistics__/graphics/entity/pipe/titanium/pipe-straight-vertical-window.png", - priority = "extra-high", - width = 44, - height = 32 - }, - straight_horizontal = - { - filename = "__boblogistics__/graphics/entity/pipe/titanium/pipe-straight-horizontal.png", - priority = "extra-high", - width = 32, - height = 42 - }, - straight_horizontal_window = - { - filename = "__boblogistics__/graphics/entity/pipe/titanium/pipe-straight-horizontal-window.png", - priority = "extra-high", - width = 32, - height = 42 - }, - corner_up_right = - { - filename = "__boblogistics__/graphics/entity/pipe/titanium/pipe-corner-up-right.png", - priority = "extra-high", - width = 32, - height = 40 - }, - corner_up_left = - { - filename = "__boblogistics__/graphics/entity/pipe/titanium/pipe-corner-up-left.png", - priority = "extra-high", - width = 44, - height = 44 - }, - corner_down_right = - { - filename = "__boblogistics__/graphics/entity/pipe/titanium/pipe-corner-down-right.png", - priority = "extra-high", - width = 32, - height = 32 - }, - corner_down_left = - { - filename = "__boblogistics__/graphics/entity/pipe/titanium/pipe-corner-down-left.png", - priority = "extra-high", - width = 36, - height = 32 - }, - t_up = - { - filename = "__boblogistics__/graphics/entity/pipe/titanium/pipe-t-up.png", - priority = "extra-high", - width = 32, - height = 42 - }, - t_down = - { - filename = "__boblogistics__/graphics/entity/pipe/titanium/pipe-t-down.png", - priority = "extra-high", - width = 40, - height = 44 - }, - t_right = - { - filename = "__boblogistics__/graphics/entity/pipe/titanium/pipe-t-right.png", - priority = "extra-high", - width = 40, - height = 32 - }, - t_left = - { - filename = "__boblogistics__/graphics/entity/pipe/titanium/pipe-t-left.png", - priority = "extra-high", - width = 44, - height = 42 - }, - cross = - { - filename = "__boblogistics__/graphics/entity/pipe/titanium/pipe-cross.png", - priority = "extra-high", - width = 40, - height = 40 - }, - ending_up = - { - filename = "__boblogistics__/graphics/entity/pipe/titanium/pipe-ending-up.png", - priority = "extra-high", - width = 44, - height = 42 - }, - ending_down = - { - filename = "__boblogistics__/graphics/entity/pipe/titanium/pipe-ending-down.png", - priority = "extra-high", - width = 44, - height = 32 - }, - ending_right = - { - filename = "__boblogistics__/graphics/entity/pipe/titanium/pipe-ending-right.png", - priority = "extra-high", - width = 32, - height = 44 - }, - ending_left = - { - filename = "__boblogistics__/graphics/entity/pipe/titanium/pipe-ending-left.png", - priority = "extra-high", - width = 58, - height = 44 - }, - horizontal_window_background = - { - filename = "__boblogistics__/graphics/entity/pipe/titanium/pipe-horizontal-window-background.png", - priority = "extra-high", - width = 32, - height = 42 - }, - vertical_window_background = - { - filename = "__boblogistics__/graphics/entity/pipe/titanium/pipe-vertical-window-background.png", - priority = "extra-high", - width = 44, - height = 32 - }, - fluid_background = - { - filename = "__boblogistics__/graphics/entity/pipe/titanium/fluid-background.png", - priority = "extra-high", - width = 32, - height = 20 - }, - low_temperature_flow = - { - filename = "__boblogistics__/graphics/entity/pipe/titanium/fluid-flow-low-temperature.png", - priority = "extra-high", - width = 160, - height = 18 - }, - middle_temperature_flow = - { - filename = "__boblogistics__/graphics/entity/pipe/titanium/fluid-flow-medium-temperature.png", - priority = "extra-high", - width = 160, - height = 18 - }, - high_temperature_flow = - { - filename = "__boblogistics__/graphics/entity/pipe/titanium/fluid-flow-high-temperature.png", - priority = "extra-high", - width = 160, - height = 18 - }, - }, - working_sound = - { - sound = { - { - filename = "__base__/sound/pipe.ogg", - volume = 0.65 - }, - }, - match_volume_to_activity = true, - max_sounds_per_type = 3 - }, - horizontal_window_bounding_box = {{-0.25, -0.25}, {0.25, 0.15625}}, - vertical_window_bounding_box = {{-0.28125, -0.40625}, {0.03125, 0.125}}, - }, - - { - type = "pipe-to-ground", - name = "titanium-pipe-to-ground", - icon = "__boblogistics__/graphics/icons/pipe/titanium-pipe-to-ground.png", - flags = {"placeable-neutral", "player-creation"}, - minable = {hardness = 0.4, mining_time = 0.5, result = "titanium-pipe-to-ground"}, - max_health = 150, - corpse = "small-remnants", - resistances = - { - { - type = "fire", - percent = 80 - } - }, - fast_replaceable_group = "pipe-to-ground", - 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 = 20 - } - }, - }, - underground_sprite = - { - filename = "__core__/graphics/arrows/underground-lines.png", - priority = "extra-high-no-scale", - width = 64, - height = 64, - scale = 0.5 - }, - pictures = - { - up = - { - filename = "__boblogistics__/graphics/entity/pipe/titanium/pipe-to-ground-up.png", - priority = "high", - width = 44, - height = 32 - }, - down = - { - filename = "__boblogistics__/graphics/entity/pipe/titanium/pipe-to-ground-down.png", - priority = "high", - width = 40, - height = 32 - }, - left = - { - filename = "__boblogistics__/graphics/entity/pipe/titanium/pipe-to-ground-left.png", - priority = "high", - width = 32, - height = 42 - }, - right = - { - filename = "__boblogistics__/graphics/entity/pipe/titanium/pipe-to-ground-right.png", - priority = "high", - width = 32, - height = 40 - }, - }, - }, -} -) -end - - -if data.raw.item["tungsten-plate"] then -data:extend( -{ - { - type = "pipe", - name = "tungsten-pipe", - icon = "__boblogistics__/graphics/icons/pipe/tungsten-pipe.png", - flags = {"placeable-neutral", "player-creation"}, - minable = {hardness = 0.4, mining_time = 0.5, result = "tungsten-pipe"}, - max_health = 200, - corpse = "small-remnants", - resistances = - { - { - type = "fire", - percent = 90 - } - }, - 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} } - }, - }, - pictures = - { - straight_vertical_single = - { - filename = "__boblogistics__/graphics/entity/pipe/tungsten/pipe-straight-vertical-single.png", - priority = "extra-high", - width = 44, - height = 58 - }, - straight_vertical = - { - filename = "__boblogistics__/graphics/entity/pipe/tungsten/pipe-straight-vertical.png", - priority = "extra-high", - width = 44, - height = 42 - }, - straight_vertical_window = - { - filename = "__boblogistics__/graphics/entity/pipe/tungsten/pipe-straight-vertical-window.png", - priority = "extra-high", - width = 44, - height = 32 - }, - straight_horizontal = - { - filename = "__boblogistics__/graphics/entity/pipe/tungsten/pipe-straight-horizontal.png", - priority = "extra-high", - width = 32, - height = 42 - }, - straight_horizontal_window = - { - filename = "__boblogistics__/graphics/entity/pipe/tungsten/pipe-straight-horizontal-window.png", - priority = "extra-high", - width = 32, - height = 42 - }, - corner_up_right = - { - filename = "__boblogistics__/graphics/entity/pipe/tungsten/pipe-corner-up-right.png", - priority = "extra-high", - width = 32, - height = 40 - }, - corner_up_left = - { - filename = "__boblogistics__/graphics/entity/pipe/tungsten/pipe-corner-up-left.png", - priority = "extra-high", - width = 44, - height = 44 - }, - corner_down_right = - { - filename = "__boblogistics__/graphics/entity/pipe/tungsten/pipe-corner-down-right.png", - priority = "extra-high", - width = 32, - height = 32 - }, - corner_down_left = - { - filename = "__boblogistics__/graphics/entity/pipe/tungsten/pipe-corner-down-left.png", - priority = "extra-high", - width = 36, - height = 32 - }, - t_up = - { - filename = "__boblogistics__/graphics/entity/pipe/tungsten/pipe-t-up.png", - priority = "extra-high", - width = 32, - height = 42 - }, - t_down = - { - filename = "__boblogistics__/graphics/entity/pipe/tungsten/pipe-t-down.png", - priority = "extra-high", - width = 40, - height = 44 - }, - t_right = - { - filename = "__boblogistics__/graphics/entity/pipe/tungsten/pipe-t-right.png", - priority = "extra-high", - width = 40, - height = 32 - }, - t_left = - { - filename = "__boblogistics__/graphics/entity/pipe/tungsten/pipe-t-left.png", - priority = "extra-high", - width = 44, - height = 42 - }, - cross = - { - filename = "__boblogistics__/graphics/entity/pipe/tungsten/pipe-cross.png", - priority = "extra-high", - width = 40, - height = 40 - }, - ending_up = - { - filename = "__boblogistics__/graphics/entity/pipe/tungsten/pipe-ending-up.png", - priority = "extra-high", - width = 44, - height = 42 - }, - ending_down = - { - filename = "__boblogistics__/graphics/entity/pipe/tungsten/pipe-ending-down.png", - priority = "extra-high", - width = 44, - height = 32 - }, - ending_right = - { - filename = "__boblogistics__/graphics/entity/pipe/tungsten/pipe-ending-right.png", - priority = "extra-high", - width = 32, - height = 44 - }, - ending_left = - { - filename = "__boblogistics__/graphics/entity/pipe/tungsten/pipe-ending-left.png", - priority = "extra-high", - width = 58, - height = 44 - }, - horizontal_window_background = - { - filename = "__boblogistics__/graphics/entity/pipe/tungsten/pipe-horizontal-window-background.png", - priority = "extra-high", - width = 32, - height = 42 - }, - vertical_window_background = - { - filename = "__boblogistics__/graphics/entity/pipe/tungsten/pipe-vertical-window-background.png", - priority = "extra-high", - width = 44, - height = 32 - }, - fluid_background = - { - filename = "__boblogistics__/graphics/entity/pipe/tungsten/fluid-background.png", - priority = "extra-high", - width = 32, - height = 20 - }, - low_temperature_flow = - { - filename = "__boblogistics__/graphics/entity/pipe/tungsten/fluid-flow-low-temperature.png", - priority = "extra-high", - width = 160, - height = 18 - }, - middle_temperature_flow = - { - filename = "__boblogistics__/graphics/entity/pipe/tungsten/fluid-flow-medium-temperature.png", - priority = "extra-high", - width = 160, - height = 18 - }, - high_temperature_flow = - { - filename = "__boblogistics__/graphics/entity/pipe/tungsten/fluid-flow-high-temperature.png", - priority = "extra-high", - width = 160, - height = 18 - }, - }, - working_sound = - { - sound = { - { - filename = "__base__/sound/pipe.ogg", - volume = 0.65 - }, - }, - match_volume_to_activity = true, - max_sounds_per_type = 3 - }, - horizontal_window_bounding_box = {{-0.25, -0.25}, {0.25, 0.15625}}, - vertical_window_bounding_box = {{-0.28125, -0.40625}, {0.03125, 0.125}}, - }, - - { - type = "pipe-to-ground", - name = "tungsten-pipe-to-ground", - icon = "__boblogistics__/graphics/icons/pipe/tungsten-pipe-to-ground.png", - flags = {"placeable-neutral", "player-creation"}, - minable = {hardness = 0.4, mining_time = 0.5, result = "tungsten-pipe-to-ground"}, - max_health = 200, - corpse = "small-remnants", - resistances = - { - { - type = "fire", - percent = 80 - } - }, - fast_replaceable_group = "pipe-to-ground", - 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 = 30 - } - }, - }, - underground_sprite = - { - filename = "__core__/graphics/arrows/underground-lines.png", - priority = "extra-high-no-scale", - width = 64, - height = 64, - scale = 0.5 - }, - pictures = - { - up = - { - filename = "__boblogistics__/graphics/entity/pipe/tungsten/pipe-to-ground-up.png", - priority = "high", - width = 44, - height = 32 - }, - down = - { - filename = "__boblogistics__/graphics/entity/pipe/tungsten/pipe-to-ground-down.png", - priority = "high", - width = 40, - height = 32 - }, - left = - { - filename = "__boblogistics__/graphics/entity/pipe/tungsten/pipe-to-ground-left.png", - priority = "high", - width = 32, - height = 42 - }, - right = - { - filename = "__boblogistics__/graphics/entity/pipe/tungsten/pipe-to-ground-right.png", - priority = "high", - width = 32, - height = 40 - }, - }, - }, -} -) -end - +data.raw["pipe-to-ground"]["pipe-to-ground"].fast_replaceable_group = "pipe-to-ground" + +data:extend( +{ + { + type = "pipe", + name = "stone-pipe", + icon = "__boblogistics__/graphics/icons/pipe/stone-pipe.png", + flags = {"placeable-neutral", "player-creation"}, + minable = {hardness = 0.3, mining_time = 0.5, result = "stone-pipe"}, + max_health = 50, + corpse = "small-remnants", + resistances = + { + { + type = "fire", + percent = 90 + } + }, + 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 = 2, + pipe_connections = + { + { position = {0, -1} }, + { position = {1, 0} }, + { position = {0, 1} }, + { position = {-1, 0} } + }, + }, + pictures = + { + straight_vertical_single = + { + filename = "__boblogistics__/graphics/entity/pipe/stone/pipe-straight-vertical-single.png", + priority = "extra-high", + width = 44, + height = 58 + }, + straight_vertical = + { + filename = "__boblogistics__/graphics/entity/pipe/stone/pipe-straight-vertical.png", + priority = "extra-high", + width = 44, + height = 42 + }, + straight_vertical_window = + { + filename = "__boblogistics__/graphics/entity/pipe/stone/pipe-straight-vertical-window.png", + priority = "extra-high", + width = 44, + height = 32 + }, + straight_horizontal = + { + filename = "__boblogistics__/graphics/entity/pipe/stone/pipe-straight-horizontal.png", + priority = "extra-high", + width = 32, + height = 42 + }, + straight_horizontal_window = + { + filename = "__boblogistics__/graphics/entity/pipe/stone/pipe-straight-horizontal-window.png", + priority = "extra-high", + width = 32, + height = 42 + }, + corner_up_right = + { + filename = "__boblogistics__/graphics/entity/pipe/stone/pipe-corner-up-right.png", + priority = "extra-high", + width = 32, + height = 40 + }, + corner_up_left = + { + filename = "__boblogistics__/graphics/entity/pipe/stone/pipe-corner-up-left.png", + priority = "extra-high", + width = 44, + height = 44 + }, + corner_down_right = + { + filename = "__boblogistics__/graphics/entity/pipe/stone/pipe-corner-down-right.png", + priority = "extra-high", + width = 32, + height = 32 + }, + corner_down_left = + { + filename = "__boblogistics__/graphics/entity/pipe/stone/pipe-corner-down-left.png", + priority = "extra-high", + width = 36, + height = 32 + }, + t_up = + { + filename = "__boblogistics__/graphics/entity/pipe/stone/pipe-t-up.png", + priority = "extra-high", + width = 32, + height = 42 + }, + t_down = + { + filename = "__boblogistics__/graphics/entity/pipe/stone/pipe-t-down.png", + priority = "extra-high", + width = 40, + height = 44 + }, + t_right = + { + filename = "__boblogistics__/graphics/entity/pipe/stone/pipe-t-right.png", + priority = "extra-high", + width = 40, + height = 32 + }, + t_left = + { + filename = "__boblogistics__/graphics/entity/pipe/stone/pipe-t-left.png", + priority = "extra-high", + width = 44, + height = 42 + }, + cross = + { + filename = "__boblogistics__/graphics/entity/pipe/stone/pipe-cross.png", + priority = "extra-high", + width = 40, + height = 40 + }, + ending_up = + { + filename = "__boblogistics__/graphics/entity/pipe/stone/pipe-ending-up.png", + priority = "extra-high", + width = 44, + height = 42 + }, + ending_down = + { + filename = "__boblogistics__/graphics/entity/pipe/stone/pipe-ending-down.png", + priority = "extra-high", + width = 44, + height = 32 + }, + ending_right = + { + filename = "__boblogistics__/graphics/entity/pipe/stone/pipe-ending-right.png", + priority = "extra-high", + width = 32, + height = 44 + }, + ending_left = + { + filename = "__boblogistics__/graphics/entity/pipe/stone/pipe-ending-left.png", + priority = "extra-high", + width = 58, + height = 44 + }, + horizontal_window_background = + { + filename = "__boblogistics__/graphics/entity/pipe/stone/pipe-horizontal-window-background.png", + priority = "extra-high", + width = 32, + height = 42 + }, + vertical_window_background = + { + filename = "__boblogistics__/graphics/entity/pipe/stone/pipe-vertical-window-background.png", + priority = "extra-high", + width = 44, + height = 32 + }, + fluid_background = + { + filename = "__boblogistics__/graphics/entity/pipe/stone/fluid-background.png", + priority = "extra-high", + width = 32, + height = 20 + }, + low_temperature_flow = + { + filename = "__boblogistics__/graphics/entity/pipe/stone/fluid-flow-low-temperature.png", + priority = "extra-high", + width = 160, + height = 18 + }, + middle_temperature_flow = + { + filename = "__boblogistics__/graphics/entity/pipe/stone/fluid-flow-medium-temperature.png", + priority = "extra-high", + width = 160, + height = 18 + }, + high_temperature_flow = + { + filename = "__boblogistics__/graphics/entity/pipe/stone/fluid-flow-high-temperature.png", + priority = "extra-high", + width = 160, + height = 18 + }, + }, + working_sound = + { + sound = { + { + filename = "__base__/sound/pipe.ogg", + volume = 0.65 + }, + }, + match_volume_to_activity = true, + max_sounds_per_type = 3 + }, + horizontal_window_bounding_box = {{-0.25, -0.25}, {0.25, 0.15625}}, + vertical_window_bounding_box = {{-0.28125, -0.40625}, {0.03125, 0.125}}, + }, + + { + type = "pipe-to-ground", + name = "stone-pipe-to-ground", + icon = "__boblogistics__/graphics/icons/pipe/stone-pipe-to-ground.png", + flags = {"placeable-neutral", "player-creation"}, + minable = {hardness = 0.3, mining_time = 0.5, result = "stone-pipe-to-ground"}, + max_health = 50, + corpse = "small-remnants", + resistances = + { + { + type = "fire", + percent = 80 + } + }, + fast_replaceable_group = "pipe-to-ground", + collision_box = {{-0.29, -0.29}, {0.29, 0.2}}, + selection_box = {{-0.5, -0.5}, {0.5, 0.5}}, + fluid_box = + { + base_area = 2, + 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", + width = 64, + height = 64, + scale = 0.5 + }, + pictures = + { + up = + { + filename = "__boblogistics__/graphics/entity/pipe/stone/pipe-to-ground-up.png", + priority = "high", + width = 44, + height = 32 + }, + down = + { + filename = "__boblogistics__/graphics/entity/pipe/stone/pipe-to-ground-down.png", + priority = "high", + width = 40, + height = 32 + }, + left = + { + filename = "__boblogistics__/graphics/entity/pipe/stone/pipe-to-ground-left.png", + priority = "high", + width = 32, + height = 42 + }, + right = + { + filename = "__boblogistics__/graphics/entity/pipe/stone/pipe-to-ground-right.png", + priority = "high", + width = 32, + height = 40 + }, + }, + }, + + + { + type = "pipe", + name = "copper-pipe", + icon = "__boblogistics__/graphics/icons/pipe/copper-pipe.png", + flags = {"placeable-neutral", "player-creation"}, + minable = {hardness = 0.3, mining_time = 0.5, result = "copper-pipe"}, + max_health = 50, + corpse = "small-remnants", + resistances = + { + { + type = "fire", + percent = 90 + } + }, + 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 = 0.5, + pipe_connections = + { + { position = {0, -1} }, + { position = {1, 0} }, + { position = {0, 1} }, + { position = {-1, 0} } + }, + }, + pictures = + { + straight_vertical_single = + { + filename = "__boblogistics__/graphics/entity/pipe/copper/pipe-straight-vertical-single.png", + priority = "extra-high", + width = 44, + height = 58 + }, + straight_vertical = + { + filename = "__boblogistics__/graphics/entity/pipe/copper/pipe-straight-vertical.png", + priority = "extra-high", + width = 44, + height = 42 + }, + straight_vertical_window = + { + filename = "__boblogistics__/graphics/entity/pipe/copper/pipe-straight-vertical-window.png", + priority = "extra-high", + width = 44, + height = 32 + }, + straight_horizontal = + { + filename = "__boblogistics__/graphics/entity/pipe/copper/pipe-straight-horizontal.png", + priority = "extra-high", + width = 32, + height = 42 + }, + straight_horizontal_window = + { + filename = "__boblogistics__/graphics/entity/pipe/copper/pipe-straight-horizontal-window.png", + priority = "extra-high", + width = 32, + height = 42 + }, + corner_up_right = + { + filename = "__boblogistics__/graphics/entity/pipe/copper/pipe-corner-up-right.png", + priority = "extra-high", + width = 32, + height = 40 + }, + corner_up_left = + { + filename = "__boblogistics__/graphics/entity/pipe/copper/pipe-corner-up-left.png", + priority = "extra-high", + width = 44, + height = 44 + }, + corner_down_right = + { + filename = "__boblogistics__/graphics/entity/pipe/copper/pipe-corner-down-right.png", + priority = "extra-high", + width = 32, + height = 32 + }, + corner_down_left = + { + filename = "__boblogistics__/graphics/entity/pipe/copper/pipe-corner-down-left.png", + priority = "extra-high", + width = 36, + height = 32 + }, + t_up = + { + filename = "__boblogistics__/graphics/entity/pipe/copper/pipe-t-up.png", + priority = "extra-high", + width = 32, + height = 42 + }, + t_down = + { + filename = "__boblogistics__/graphics/entity/pipe/copper/pipe-t-down.png", + priority = "extra-high", + width = 40, + height = 44 + }, + t_right = + { + filename = "__boblogistics__/graphics/entity/pipe/copper/pipe-t-right.png", + priority = "extra-high", + width = 40, + height = 32 + }, + t_left = + { + filename = "__boblogistics__/graphics/entity/pipe/copper/pipe-t-left.png", + priority = "extra-high", + width = 44, + height = 42 + }, + cross = + { + filename = "__boblogistics__/graphics/entity/pipe/copper/pipe-cross.png", + priority = "extra-high", + width = 40, + height = 40 + }, + ending_up = + { + filename = "__boblogistics__/graphics/entity/pipe/copper/pipe-ending-up.png", + priority = "extra-high", + width = 44, + height = 42 + }, + ending_down = + { + filename = "__boblogistics__/graphics/entity/pipe/copper/pipe-ending-down.png", + priority = "extra-high", + width = 44, + height = 32 + }, + ending_right = + { + filename = "__boblogistics__/graphics/entity/pipe/copper/pipe-ending-right.png", + priority = "extra-high", + width = 32, + height = 44 + }, + ending_left = + { + filename = "__boblogistics__/graphics/entity/pipe/copper/pipe-ending-left.png", + priority = "extra-high", + width = 58, + height = 44 + }, + horizontal_window_background = + { + filename = "__boblogistics__/graphics/entity/pipe/copper/pipe-horizontal-window-background.png", + priority = "extra-high", + width = 32, + height = 42 + }, + vertical_window_background = + { + filename = "__boblogistics__/graphics/entity/pipe/copper/pipe-vertical-window-background.png", + priority = "extra-high", + width = 44, + height = 32 + }, + fluid_background = + { + filename = "__boblogistics__/graphics/entity/pipe/copper/fluid-background.png", + priority = "extra-high", + width = 32, + height = 20 + }, + low_temperature_flow = + { + filename = "__boblogistics__/graphics/entity/pipe/copper/fluid-flow-low-temperature.png", + priority = "extra-high", + width = 160, + height = 18 + }, + middle_temperature_flow = + { + filename = "__boblogistics__/graphics/entity/pipe/copper/fluid-flow-medium-temperature.png", + priority = "extra-high", + width = 160, + height = 18 + }, + high_temperature_flow = + { + filename = "__boblogistics__/graphics/entity/pipe/copper/fluid-flow-high-temperature.png", + priority = "extra-high", + width = 160, + height = 18 + }, + }, + working_sound = + { + sound = { + { + filename = "__base__/sound/pipe.ogg", + volume = 0.65 + }, + }, + match_volume_to_activity = true, + max_sounds_per_type = 3 + }, + horizontal_window_bounding_box = {{-0.25, -0.25}, {0.25, 0.15625}}, + vertical_window_bounding_box = {{-0.28125, -0.40625}, {0.03125, 0.125}}, + }, + + { + type = "pipe-to-ground", + name = "copper-pipe-to-ground", + icon = "__boblogistics__/graphics/icons/pipe/copper-pipe-to-ground.png", + flags = {"placeable-neutral", "player-creation"}, + minable = {hardness = 0.3, mining_time = 0.5, result = "copper-pipe-to-ground"}, + max_health = 50, + corpse = "small-remnants", + resistances = + { + { + type = "fire", + percent = 80 + } + }, + fast_replaceable_group = "pipe-to-ground", + collision_box = {{-0.29, -0.29}, {0.29, 0.2}}, + selection_box = {{-0.5, -0.5}, {0.5, 0.5}}, + fluid_box = + { + base_area = 0.5, + 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", + width = 64, + height = 64, + scale = 0.5 + }, + pictures = + { + up = + { + filename = "__boblogistics__/graphics/entity/pipe/copper/pipe-to-ground-up.png", + priority = "high", + width = 44, + height = 32 + }, + down = + { + filename = "__boblogistics__/graphics/entity/pipe/copper/pipe-to-ground-down.png", + priority = "high", + width = 40, + height = 32 + }, + left = + { + filename = "__boblogistics__/graphics/entity/pipe/copper/pipe-to-ground-left.png", + priority = "high", + width = 32, + height = 42 + }, + right = + { + filename = "__boblogistics__/graphics/entity/pipe/copper/pipe-to-ground-right.png", + priority = "high", + width = 32, + height = 40 + }, + }, + }, + + + { + type = "pipe", + name = "steel-pipe", + icon = "__boblogistics__/graphics/icons/pipe/steel-pipe.png", + flags = {"placeable-neutral", "player-creation"}, + minable = {hardness = 0.3, mining_time = 0.5, result = "steel-pipe"}, + max_health = 100, + corpse = "small-remnants", + resistances = + { + { + type = "fire", + percent = 90 + } + }, + 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} } + }, + }, + pictures = + { + straight_vertical_single = + { + filename = "__boblogistics__/graphics/entity/pipe/steel/pipe-straight-vertical-single.png", + priority = "extra-high", + width = 44, + height = 58 + }, + straight_vertical = + { + filename = "__boblogistics__/graphics/entity/pipe/steel/pipe-straight-vertical.png", + priority = "extra-high", + width = 44, + height = 42 + }, + straight_vertical_window = + { + filename = "__boblogistics__/graphics/entity/pipe/steel/pipe-straight-vertical-window.png", + priority = "extra-high", + width = 44, + height = 32 + }, + straight_horizontal = + { + filename = "__boblogistics__/graphics/entity/pipe/steel/pipe-straight-horizontal.png", + priority = "extra-high", + width = 32, + height = 42 + }, + straight_horizontal_window = + { + filename = "__boblogistics__/graphics/entity/pipe/steel/pipe-straight-horizontal-window.png", + priority = "extra-high", + width = 32, + height = 42 + }, + corner_up_right = + { + filename = "__boblogistics__/graphics/entity/pipe/steel/pipe-corner-up-right.png", + priority = "extra-high", + width = 32, + height = 40 + }, + corner_up_left = + { + filename = "__boblogistics__/graphics/entity/pipe/steel/pipe-corner-up-left.png", + priority = "extra-high", + width = 44, + height = 44 + }, + corner_down_right = + { + filename = "__boblogistics__/graphics/entity/pipe/steel/pipe-corner-down-right.png", + priority = "extra-high", + width = 32, + height = 32 + }, + corner_down_left = + { + filename = "__boblogistics__/graphics/entity/pipe/steel/pipe-corner-down-left.png", + priority = "extra-high", + width = 36, + height = 32 + }, + t_up = + { + filename = "__boblogistics__/graphics/entity/pipe/steel/pipe-t-up.png", + priority = "extra-high", + width = 32, + height = 42 + }, + t_down = + { + filename = "__boblogistics__/graphics/entity/pipe/steel/pipe-t-down.png", + priority = "extra-high", + width = 40, + height = 44 + }, + t_right = + { + filename = "__boblogistics__/graphics/entity/pipe/steel/pipe-t-right.png", + priority = "extra-high", + width = 40, + height = 32 + }, + t_left = + { + filename = "__boblogistics__/graphics/entity/pipe/steel/pipe-t-left.png", + priority = "extra-high", + width = 44, + height = 42 + }, + cross = + { + filename = "__boblogistics__/graphics/entity/pipe/steel/pipe-cross.png", + priority = "extra-high", + width = 40, + height = 40 + }, + ending_up = + { + filename = "__boblogistics__/graphics/entity/pipe/steel/pipe-ending-up.png", + priority = "extra-high", + width = 44, + height = 42 + }, + ending_down = + { + filename = "__boblogistics__/graphics/entity/pipe/steel/pipe-ending-down.png", + priority = "extra-high", + width = 44, + height = 32 + }, + ending_right = + { + filename = "__boblogistics__/graphics/entity/pipe/steel/pipe-ending-right.png", + priority = "extra-high", + width = 32, + height = 44 + }, + ending_left = + { + filename = "__boblogistics__/graphics/entity/pipe/steel/pipe-ending-left.png", + priority = "extra-high", + width = 58, + height = 44 + }, + horizontal_window_background = + { + filename = "__boblogistics__/graphics/entity/pipe/steel/pipe-horizontal-window-background.png", + priority = "extra-high", + width = 32, + height = 42 + }, + vertical_window_background = + { + filename = "__boblogistics__/graphics/entity/pipe/steel/pipe-vertical-window-background.png", + priority = "extra-high", + width = 44, + height = 32 + }, + fluid_background = + { + filename = "__boblogistics__/graphics/entity/pipe/steel/fluid-background.png", + priority = "extra-high", + width = 32, + height = 20 + }, + low_temperature_flow = + { + filename = "__boblogistics__/graphics/entity/pipe/steel/fluid-flow-low-temperature.png", + priority = "extra-high", + width = 160, + height = 18 + }, + middle_temperature_flow = + { + filename = "__boblogistics__/graphics/entity/pipe/steel/fluid-flow-medium-temperature.png", + priority = "extra-high", + width = 160, + height = 18 + }, + high_temperature_flow = + { + filename = "__boblogistics__/graphics/entity/pipe/steel/fluid-flow-high-temperature.png", + priority = "extra-high", + width = 160, + height = 18 + }, + }, + working_sound = + { + sound = { + { + filename = "__base__/sound/pipe.ogg", + volume = 0.65 + }, + }, + match_volume_to_activity = true, + max_sounds_per_type = 3 + }, + horizontal_window_bounding_box = {{-0.25, -0.25}, {0.25, 0.15625}}, + vertical_window_bounding_box = {{-0.28125, -0.40625}, {0.03125, 0.125}}, + }, + + { + type = "pipe-to-ground", + name = "steel-pipe-to-ground", + icon = "__boblogistics__/graphics/icons/pipe/steel-pipe-to-ground.png", + flags = {"placeable-neutral", "player-creation"}, + minable = {hardness = 0.3, mining_time = 0.5, result = "steel-pipe-to-ground"}, + max_health = 100, + corpse = "small-remnants", + resistances = + { + { + type = "fire", + percent = 80 + } + }, + fast_replaceable_group = "pipe-to-ground", + 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 = 15 + } + }, + }, + underground_sprite = + { + filename = "__core__/graphics/arrows/underground-lines.png", + priority = "extra-high-no-scale", + width = 64, + height = 64, + scale = 0.5 + }, + pictures = + { + up = + { + filename = "__boblogistics__/graphics/entity/pipe/steel/pipe-to-ground-up.png", + priority = "high", + width = 44, + height = 32 + }, + down = + { + filename = "__boblogistics__/graphics/entity/pipe/steel/pipe-to-ground-down.png", + priority = "high", + width = 40, + height = 32 + }, + left = + { + filename = "__boblogistics__/graphics/entity/pipe/steel/pipe-to-ground-left.png", + priority = "high", + width = 32, + height = 42 + }, + right = + { + filename = "__boblogistics__/graphics/entity/pipe/steel/pipe-to-ground-right.png", + priority = "high", + width = 32, + height = 40 + }, + }, + }, + + + { + type = "pipe", + name = "plastic-pipe", + icon = "__boblogistics__/graphics/icons/pipe/plastic-pipe.png", + flags = {"placeable-neutral", "player-creation"}, + minable = {hardness = 0.1, mining_time = 0.5, result = "plastic-pipe"}, + max_health = 100, + corpse = "small-remnants", + resistances = + { + { + type = "fire", + percent = 90 + } + }, + 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 = 2, + pipe_connections = + { + { position = {0, -1} }, + { position = {1, 0} }, + { position = {0, 1} }, + { position = {-1, 0} } + }, + }, + pictures = + { + straight_vertical_single = + { + filename = "__boblogistics__/graphics/entity/pipe/plastic/pipe-straight-vertical-single.png", + priority = "extra-high", + width = 44, + height = 58 + }, + straight_vertical = + { + filename = "__boblogistics__/graphics/entity/pipe/plastic/pipe-straight-vertical.png", + priority = "extra-high", + width = 44, + height = 42 + }, + straight_vertical_window = + { + filename = "__boblogistics__/graphics/entity/pipe/plastic/pipe-straight-vertical-window.png", + priority = "extra-high", + width = 44, + height = 32 + }, + straight_horizontal = + { + filename = "__boblogistics__/graphics/entity/pipe/plastic/pipe-straight-horizontal.png", + priority = "extra-high", + width = 32, + height = 42 + }, + straight_horizontal_window = + { + filename = "__boblogistics__/graphics/entity/pipe/plastic/pipe-straight-horizontal-window.png", + priority = "extra-high", + width = 32, + height = 42 + }, + corner_up_right = + { + filename = "__boblogistics__/graphics/entity/pipe/plastic/pipe-corner-up-right.png", + priority = "extra-high", + width = 32, + height = 40 + }, + corner_up_left = + { + filename = "__boblogistics__/graphics/entity/pipe/plastic/pipe-corner-up-left.png", + priority = "extra-high", + width = 44, + height = 44 + }, + corner_down_right = + { + filename = "__boblogistics__/graphics/entity/pipe/plastic/pipe-corner-down-right.png", + priority = "extra-high", + width = 32, + height = 32 + }, + corner_down_left = + { + filename = "__boblogistics__/graphics/entity/pipe/plastic/pipe-corner-down-left.png", + priority = "extra-high", + width = 36, + height = 32 + }, + t_up = + { + filename = "__boblogistics__/graphics/entity/pipe/plastic/pipe-t-up.png", + priority = "extra-high", + width = 32, + height = 42 + }, + t_down = + { + filename = "__boblogistics__/graphics/entity/pipe/plastic/pipe-t-down.png", + priority = "extra-high", + width = 40, + height = 44 + }, + t_right = + { + filename = "__boblogistics__/graphics/entity/pipe/plastic/pipe-t-right.png", + priority = "extra-high", + width = 40, + height = 32 + }, + t_left = + { + filename = "__boblogistics__/graphics/entity/pipe/plastic/pipe-t-left.png", + priority = "extra-high", + width = 44, + height = 42 + }, + cross = + { + filename = "__boblogistics__/graphics/entity/pipe/plastic/pipe-cross.png", + priority = "extra-high", + width = 40, + height = 40 + }, + ending_up = + { + filename = "__boblogistics__/graphics/entity/pipe/plastic/pipe-ending-up.png", + priority = "extra-high", + width = 44, + height = 42 + }, + ending_down = + { + filename = "__boblogistics__/graphics/entity/pipe/plastic/pipe-ending-down.png", + priority = "extra-high", + width = 44, + height = 32 + }, + ending_right = + { + filename = "__boblogistics__/graphics/entity/pipe/plastic/pipe-ending-right.png", + priority = "extra-high", + width = 32, + height = 44 + }, + ending_left = + { + filename = "__boblogistics__/graphics/entity/pipe/plastic/pipe-ending-left.png", + priority = "extra-high", + width = 58, + height = 44 + }, + horizontal_window_background = + { + filename = "__boblogistics__/graphics/entity/pipe/plastic/pipe-horizontal-window-background.png", + priority = "extra-high", + width = 32, + height = 42 + }, + vertical_window_background = + { + filename = "__boblogistics__/graphics/entity/pipe/plastic/pipe-vertical-window-background.png", + priority = "extra-high", + width = 44, + height = 32 + }, + fluid_background = + { + filename = "__boblogistics__/graphics/entity/pipe/plastic/fluid-background.png", + priority = "extra-high", + width = 32, + height = 20 + }, + low_temperature_flow = + { + filename = "__boblogistics__/graphics/entity/pipe/plastic/fluid-flow-low-temperature.png", + priority = "extra-high", + width = 160, + height = 18 + }, + middle_temperature_flow = + { + filename = "__boblogistics__/graphics/entity/pipe/plastic/fluid-flow-medium-temperature.png", + priority = "extra-high", + width = 160, + height = 18 + }, + high_temperature_flow = + { + filename = "__boblogistics__/graphics/entity/pipe/plastic/fluid-flow-high-temperature.png", + priority = "extra-high", + width = 160, + height = 18 + }, + }, + working_sound = + { + sound = { + { + filename = "__base__/sound/pipe.ogg", + volume = 0.65 + }, + }, + match_volume_to_activity = true, + max_sounds_per_type = 3 + }, + horizontal_window_bounding_box = {{-0.25, -0.25}, {0.25, 0.15625}}, + vertical_window_bounding_box = {{-0.28125, -0.40625}, {0.03125, 0.125}}, + }, + + { + type = "pipe-to-ground", + name = "plastic-pipe-to-ground", + icon = "__boblogistics__/graphics/icons/pipe/plastic-pipe-to-ground.png", + flags = {"placeable-neutral", "player-creation"}, + minable = {hardness = 0.1, mining_time = 0.5, result = "plastic-pipe-to-ground"}, + max_health = 100, + corpse = "small-remnants", + resistances = + { + { + type = "fire", + percent = 80 + } + }, + fast_replaceable_group = "pipe-to-ground", + collision_box = {{-0.29, -0.29}, {0.29, 0.2}}, + selection_box = {{-0.5, -0.5}, {0.5, 0.5}}, + fluid_box = + { + base_area = 2, + pipe_covers = pipecoverspictures(), + pipe_connections = + { + { position = {0, -1} }, + { + position = {0, 1}, + max_underground_distance = 15 + } + }, + }, + underground_sprite = + { + filename = "__core__/graphics/arrows/underground-lines.png", + priority = "extra-high-no-scale", + width = 64, + height = 64, + scale = 0.5 + }, + pictures = + { + up = + { + filename = "__boblogistics__/graphics/entity/pipe/plastic/pipe-to-ground-up.png", + priority = "high", + width = 44, + height = 32 + }, + down = + { + filename = "__boblogistics__/graphics/entity/pipe/plastic/pipe-to-ground-down.png", + priority = "high", + width = 40, + height = 32 + }, + left = + { + filename = "__boblogistics__/graphics/entity/pipe/plastic/pipe-to-ground-left.png", + priority = "high", + width = 32, + height = 42 + }, + right = + { + filename = "__boblogistics__/graphics/entity/pipe/plastic/pipe-to-ground-right.png", + priority = "high", + width = 32, + height = 40 + }, + }, + }, +} +) + + +if data.raw.item["bronze-alloy"] then +data:extend( +{ + { + type = "pipe", + name = "bronze-pipe", + icon = "__boblogistics__/graphics/icons/pipe/bronze-pipe.png", + flags = {"placeable-neutral", "player-creation"}, + minable = {hardness = 0.3, mining_time = 0.5, result = "bronze-pipe"}, + max_health = 100, + corpse = "small-remnants", + resistances = + { + { + type = "fire", + percent = 90 + } + }, + 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 = 0.5, + pipe_connections = + { + { position = {0, -1} }, + { position = {1, 0} }, + { position = {0, 1} }, + { position = {-1, 0} } + }, + }, + pictures = + { + straight_vertical_single = + { + filename = "__boblogistics__/graphics/entity/pipe/bronze/pipe-straight-vertical-single.png", + priority = "extra-high", + width = 44, + height = 58 + }, + straight_vertical = + { + filename = "__boblogistics__/graphics/entity/pipe/bronze/pipe-straight-vertical.png", + priority = "extra-high", + width = 44, + height = 42 + }, + straight_vertical_window = + { + filename = "__boblogistics__/graphics/entity/pipe/bronze/pipe-straight-vertical-window.png", + priority = "extra-high", + width = 44, + height = 32 + }, + straight_horizontal = + { + filename = "__boblogistics__/graphics/entity/pipe/bronze/pipe-straight-horizontal.png", + priority = "extra-high", + width = 32, + height = 42 + }, + straight_horizontal_window = + { + filename = "__boblogistics__/graphics/entity/pipe/bronze/pipe-straight-horizontal-window.png", + priority = "extra-high", + width = 32, + height = 42 + }, + corner_up_right = + { + filename = "__boblogistics__/graphics/entity/pipe/bronze/pipe-corner-up-right.png", + priority = "extra-high", + width = 32, + height = 40 + }, + corner_up_left = + { + filename = "__boblogistics__/graphics/entity/pipe/bronze/pipe-corner-up-left.png", + priority = "extra-high", + width = 44, + height = 44 + }, + corner_down_right = + { + filename = "__boblogistics__/graphics/entity/pipe/bronze/pipe-corner-down-right.png", + priority = "extra-high", + width = 32, + height = 32 + }, + corner_down_left = + { + filename = "__boblogistics__/graphics/entity/pipe/bronze/pipe-corner-down-left.png", + priority = "extra-high", + width = 36, + height = 32 + }, + t_up = + { + filename = "__boblogistics__/graphics/entity/pipe/bronze/pipe-t-up.png", + priority = "extra-high", + width = 32, + height = 42 + }, + t_down = + { + filename = "__boblogistics__/graphics/entity/pipe/bronze/pipe-t-down.png", + priority = "extra-high", + width = 40, + height = 44 + }, + t_right = + { + filename = "__boblogistics__/graphics/entity/pipe/bronze/pipe-t-right.png", + priority = "extra-high", + width = 40, + height = 32 + }, + t_left = + { + filename = "__boblogistics__/graphics/entity/pipe/bronze/pipe-t-left.png", + priority = "extra-high", + width = 44, + height = 42 + }, + cross = + { + filename = "__boblogistics__/graphics/entity/pipe/bronze/pipe-cross.png", + priority = "extra-high", + width = 40, + height = 40 + }, + ending_up = + { + filename = "__boblogistics__/graphics/entity/pipe/bronze/pipe-ending-up.png", + priority = "extra-high", + width = 44, + height = 42 + }, + ending_down = + { + filename = "__boblogistics__/graphics/entity/pipe/bronze/pipe-ending-down.png", + priority = "extra-high", + width = 44, + height = 32 + }, + ending_right = + { + filename = "__boblogistics__/graphics/entity/pipe/bronze/pipe-ending-right.png", + priority = "extra-high", + width = 32, + height = 44 + }, + ending_left = + { + filename = "__boblogistics__/graphics/entity/pipe/bronze/pipe-ending-left.png", + priority = "extra-high", + width = 58, + height = 44 + }, + horizontal_window_background = + { + filename = "__boblogistics__/graphics/entity/pipe/bronze/pipe-horizontal-window-background.png", + priority = "extra-high", + width = 32, + height = 42 + }, + vertical_window_background = + { + filename = "__boblogistics__/graphics/entity/pipe/bronze/pipe-vertical-window-background.png", + priority = "extra-high", + width = 44, + height = 32 + }, + fluid_background = + { + filename = "__boblogistics__/graphics/entity/pipe/bronze/fluid-background.png", + priority = "extra-high", + width = 32, + height = 20 + }, + low_temperature_flow = + { + filename = "__boblogistics__/graphics/entity/pipe/bronze/fluid-flow-low-temperature.png", + priority = "extra-high", + width = 160, + height = 18 + }, + middle_temperature_flow = + { + filename = "__boblogistics__/graphics/entity/pipe/bronze/fluid-flow-medium-temperature.png", + priority = "extra-high", + width = 160, + height = 18 + }, + high_temperature_flow = + { + filename = "__boblogistics__/graphics/entity/pipe/bronze/fluid-flow-high-temperature.png", + priority = "extra-high", + width = 160, + height = 18 + }, + }, + working_sound = + { + sound = { + { + filename = "__base__/sound/pipe.ogg", + volume = 0.65 + }, + }, + match_volume_to_activity = true, + max_sounds_per_type = 3 + }, + horizontal_window_bounding_box = {{-0.25, -0.25}, {0.25, 0.15625}}, + vertical_window_bounding_box = {{-0.28125, -0.40625}, {0.03125, 0.125}}, + }, + + { + type = "pipe-to-ground", + name = "bronze-pipe-to-ground", + icon = "__boblogistics__/graphics/icons/pipe/bronze-pipe-to-ground.png", + flags = {"placeable-neutral", "player-creation"}, + minable = {hardness = 0.3, mining_time = 0.5, result = "bronze-pipe-to-ground"}, + max_health = 100, + corpse = "small-remnants", + resistances = + { + { + type = "fire", + percent = 80 + } + }, + fast_replaceable_group = "pipe-to-ground", + collision_box = {{-0.29, -0.29}, {0.29, 0.2}}, + selection_box = {{-0.5, -0.5}, {0.5, 0.5}}, + fluid_box = + { + base_area = 0.5, + pipe_covers = pipecoverspictures(), + pipe_connections = + { + { position = {0, -1} }, + { + position = {0, 1}, + max_underground_distance = 15 + } + }, + }, + underground_sprite = + { + filename = "__core__/graphics/arrows/underground-lines.png", + priority = "extra-high-no-scale", + width = 64, + height = 64, + scale = 0.5 + }, + pictures = + { + up = + { + filename = "__boblogistics__/graphics/entity/pipe/bronze/pipe-to-ground-up.png", + priority = "high", + width = 44, + height = 32 + }, + down = + { + filename = "__boblogistics__/graphics/entity/pipe/bronze/pipe-to-ground-down.png", + priority = "high", + width = 40, + height = 32 + }, + left = + { + filename = "__boblogistics__/graphics/entity/pipe/bronze/pipe-to-ground-left.png", + priority = "high", + width = 32, + height = 42 + }, + right = + { + filename = "__boblogistics__/graphics/entity/pipe/bronze/pipe-to-ground-right.png", + priority = "high", + width = 32, + height = 40 + }, + }, + }, +} +) +end + + +if data.raw.item["brass-alloy"] then +data:extend( +{ + { + type = "pipe", + name = "brass-pipe", + icon = "__boblogistics__/graphics/icons/pipe/brass-pipe.png", + flags = {"placeable-neutral", "player-creation"}, + minable = {hardness = 0.1, mining_time = 0.5, result = "brass-pipe"}, + max_health = 150, + corpse = "small-remnants", + resistances = + { + { + type = "fire", + percent = 90 + } + }, + 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 = 0.5, + pipe_connections = + { + { position = {0, -1} }, + { position = {1, 0} }, + { position = {0, 1} }, + { position = {-1, 0} } + }, + }, + pictures = + { + straight_vertical_single = + { + filename = "__boblogistics__/graphics/entity/pipe/brass/pipe-straight-vertical-single.png", + priority = "extra-high", + width = 44, + height = 58 + }, + straight_vertical = + { + filename = "__boblogistics__/graphics/entity/pipe/brass/pipe-straight-vertical.png", + priority = "extra-high", + width = 44, + height = 42 + }, + straight_vertical_window = + { + filename = "__boblogistics__/graphics/entity/pipe/brass/pipe-straight-vertical-window.png", + priority = "extra-high", + width = 44, + height = 32 + }, + straight_horizontal = + { + filename = "__boblogistics__/graphics/entity/pipe/brass/pipe-straight-horizontal.png", + priority = "extra-high", + width = 32, + height = 42 + }, + straight_horizontal_window = + { + filename = "__boblogistics__/graphics/entity/pipe/brass/pipe-straight-horizontal-window.png", + priority = "extra-high", + width = 32, + height = 42 + }, + corner_up_right = + { + filename = "__boblogistics__/graphics/entity/pipe/brass/pipe-corner-up-right.png", + priority = "extra-high", + width = 32, + height = 40 + }, + corner_up_left = + { + filename = "__boblogistics__/graphics/entity/pipe/brass/pipe-corner-up-left.png", + priority = "extra-high", + width = 44, + height = 44 + }, + corner_down_right = + { + filename = "__boblogistics__/graphics/entity/pipe/brass/pipe-corner-down-right.png", + priority = "extra-high", + width = 32, + height = 32 + }, + corner_down_left = + { + filename = "__boblogistics__/graphics/entity/pipe/brass/pipe-corner-down-left.png", + priority = "extra-high", + width = 36, + height = 32 + }, + t_up = + { + filename = "__boblogistics__/graphics/entity/pipe/brass/pipe-t-up.png", + priority = "extra-high", + width = 32, + height = 42 + }, + t_down = + { + filename = "__boblogistics__/graphics/entity/pipe/brass/pipe-t-down.png", + priority = "extra-high", + width = 40, + height = 44 + }, + t_right = + { + filename = "__boblogistics__/graphics/entity/pipe/brass/pipe-t-right.png", + priority = "extra-high", + width = 40, + height = 32 + }, + t_left = + { + filename = "__boblogistics__/graphics/entity/pipe/brass/pipe-t-left.png", + priority = "extra-high", + width = 44, + height = 42 + }, + cross = + { + filename = "__boblogistics__/graphics/entity/pipe/brass/pipe-cross.png", + priority = "extra-high", + width = 40, + height = 40 + }, + ending_up = + { + filename = "__boblogistics__/graphics/entity/pipe/brass/pipe-ending-up.png", + priority = "extra-high", + width = 44, + height = 42 + }, + ending_down = + { + filename = "__boblogistics__/graphics/entity/pipe/brass/pipe-ending-down.png", + priority = "extra-high", + width = 44, + height = 32 + }, + ending_right = + { + filename = "__boblogistics__/graphics/entity/pipe/brass/pipe-ending-right.png", + priority = "extra-high", + width = 32, + height = 44 + }, + ending_left = + { + filename = "__boblogistics__/graphics/entity/pipe/brass/pipe-ending-left.png", + priority = "extra-high", + width = 58, + height = 44 + }, + horizontal_window_background = + { + filename = "__boblogistics__/graphics/entity/pipe/brass/pipe-horizontal-window-background.png", + priority = "extra-high", + width = 32, + height = 42 + }, + vertical_window_background = + { + filename = "__boblogistics__/graphics/entity/pipe/brass/pipe-vertical-window-background.png", + priority = "extra-high", + width = 44, + height = 32 + }, + fluid_background = + { + filename = "__boblogistics__/graphics/entity/pipe/brass/fluid-background.png", + priority = "extra-high", + width = 32, + height = 20 + }, + low_temperature_flow = + { + filename = "__boblogistics__/graphics/entity/pipe/brass/fluid-flow-low-temperature.png", + priority = "extra-high", + width = 160, + height = 18 + }, + middle_temperature_flow = + { + filename = "__boblogistics__/graphics/entity/pipe/brass/fluid-flow-medium-temperature.png", + priority = "extra-high", + width = 160, + height = 18 + }, + high_temperature_flow = + { + filename = "__boblogistics__/graphics/entity/pipe/brass/fluid-flow-high-temperature.png", + priority = "extra-high", + width = 160, + height = 18 + }, + }, + working_sound = + { + sound = { + { + filename = "__base__/sound/pipe.ogg", + volume = 0.65 + }, + }, + match_volume_to_activity = true, + max_sounds_per_type = 3 + }, + horizontal_window_bounding_box = {{-0.25, -0.25}, {0.25, 0.15625}}, + vertical_window_bounding_box = {{-0.28125, -0.40625}, {0.03125, 0.125}}, + }, + + { + type = "pipe-to-ground", + name = "brass-pipe-to-ground", + icon = "__boblogistics__/graphics/icons/pipe/brass-pipe-to-ground.png", + flags = {"placeable-neutral", "player-creation"}, + minable = {hardness = 0.1, mining_time = 0.5, result = "brass-pipe-to-ground"}, + max_health = 150, + corpse = "small-remnants", + resistances = + { + { + type = "fire", + percent = 80 + } + }, + fast_replaceable_group = "pipe-to-ground", + collision_box = {{-0.29, -0.29}, {0.29, 0.2}}, + selection_box = {{-0.5, -0.5}, {0.5, 0.5}}, + fluid_box = + { + base_area = 0.5, + pipe_covers = pipecoverspictures(), + pipe_connections = + { + { position = {0, -1} }, + { + position = {0, 1}, + max_underground_distance = 20 + } + }, + }, + underground_sprite = + { + filename = "__core__/graphics/arrows/underground-lines.png", + priority = "extra-high-no-scale", + width = 64, + height = 64, + scale = 0.5 + }, + pictures = + { + up = + { + filename = "__boblogistics__/graphics/entity/pipe/brass/pipe-to-ground-up.png", + priority = "high", + width = 44, + height = 32 + }, + down = + { + filename = "__boblogistics__/graphics/entity/pipe/brass/pipe-to-ground-down.png", + priority = "high", + width = 40, + height = 32 + }, + left = + { + filename = "__boblogistics__/graphics/entity/pipe/brass/pipe-to-ground-left.png", + priority = "high", + width = 32, + height = 42 + }, + right = + { + filename = "__boblogistics__/graphics/entity/pipe/brass/pipe-to-ground-right.png", + priority = "high", + width = 32, + height = 40 + }, + }, + }, +} +) +end + + +if data.raw.item["silicon-nitride"] then +data:extend( +{ + { + type = "pipe", + name = "ceramic-pipe", + icon = "__boblogistics__/graphics/icons/pipe/ceramic-pipe.png", + flags = {"placeable-neutral", "player-creation"}, + minable = {hardness = 0.2, mining_time = 0.5, result = "ceramic-pipe"}, + max_health = 150, + corpse = "small-remnants", + resistances = + { + { + type = "fire", + percent = 90 + } + }, + 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 = 2, + pipe_connections = + { + { position = {0, -1} }, + { position = {1, 0} }, + { position = {0, 1} }, + { position = {-1, 0} } + }, + }, + pictures = + { + straight_vertical_single = + { + filename = "__boblogistics__/graphics/entity/pipe/ceramic/pipe-straight-vertical-single.png", + priority = "extra-high", + width = 44, + height = 58 + }, + straight_vertical = + { + filename = "__boblogistics__/graphics/entity/pipe/ceramic/pipe-straight-vertical.png", + priority = "extra-high", + width = 44, + height = 42 + }, + straight_vertical_window = + { + filename = "__boblogistics__/graphics/entity/pipe/ceramic/pipe-straight-vertical-window.png", + priority = "extra-high", + width = 44, + height = 32 + }, + straight_horizontal = + { + filename = "__boblogistics__/graphics/entity/pipe/ceramic/pipe-straight-horizontal.png", + priority = "extra-high", + width = 32, + height = 42 + }, + straight_horizontal_window = + { + filename = "__boblogistics__/graphics/entity/pipe/ceramic/pipe-straight-horizontal-window.png", + priority = "extra-high", + width = 32, + height = 42 + }, + corner_up_right = + { + filename = "__boblogistics__/graphics/entity/pipe/ceramic/pipe-corner-up-right.png", + priority = "extra-high", + width = 32, + height = 40 + }, + corner_up_left = + { + filename = "__boblogistics__/graphics/entity/pipe/ceramic/pipe-corner-up-left.png", + priority = "extra-high", + width = 44, + height = 44 + }, + corner_down_right = + { + filename = "__boblogistics__/graphics/entity/pipe/ceramic/pipe-corner-down-right.png", + priority = "extra-high", + width = 32, + height = 32 + }, + corner_down_left = + { + filename = "__boblogistics__/graphics/entity/pipe/ceramic/pipe-corner-down-left.png", + priority = "extra-high", + width = 36, + height = 32 + }, + t_up = + { + filename = "__boblogistics__/graphics/entity/pipe/ceramic/pipe-t-up.png", + priority = "extra-high", + width = 32, + height = 42 + }, + t_down = + { + filename = "__boblogistics__/graphics/entity/pipe/ceramic/pipe-t-down.png", + priority = "extra-high", + width = 40, + height = 44 + }, + t_right = + { + filename = "__boblogistics__/graphics/entity/pipe/ceramic/pipe-t-right.png", + priority = "extra-high", + width = 40, + height = 32 + }, + t_left = + { + filename = "__boblogistics__/graphics/entity/pipe/ceramic/pipe-t-left.png", + priority = "extra-high", + width = 44, + height = 42 + }, + cross = + { + filename = "__boblogistics__/graphics/entity/pipe/ceramic/pipe-cross.png", + priority = "extra-high", + width = 40, + height = 40 + }, + ending_up = + { + filename = "__boblogistics__/graphics/entity/pipe/ceramic/pipe-ending-up.png", + priority = "extra-high", + width = 44, + height = 42 + }, + ending_down = + { + filename = "__boblogistics__/graphics/entity/pipe/ceramic/pipe-ending-down.png", + priority = "extra-high", + width = 44, + height = 32 + }, + ending_right = + { + filename = "__boblogistics__/graphics/entity/pipe/ceramic/pipe-ending-right.png", + priority = "extra-high", + width = 32, + height = 44 + }, + ending_left = + { + filename = "__boblogistics__/graphics/entity/pipe/ceramic/pipe-ending-left.png", + priority = "extra-high", + width = 58, + height = 44 + }, + horizontal_window_background = + { + filename = "__boblogistics__/graphics/entity/pipe/ceramic/pipe-horizontal-window-background.png", + priority = "extra-high", + width = 32, + height = 42 + }, + vertical_window_background = + { + filename = "__boblogistics__/graphics/entity/pipe/ceramic/pipe-vertical-window-background.png", + priority = "extra-high", + width = 44, + height = 32 + }, + fluid_background = + { + filename = "__boblogistics__/graphics/entity/pipe/ceramic/fluid-background.png", + priority = "extra-high", + width = 32, + height = 20 + }, + low_temperature_flow = + { + filename = "__boblogistics__/graphics/entity/pipe/ceramic/fluid-flow-low-temperature.png", + priority = "extra-high", + width = 160, + height = 18 + }, + middle_temperature_flow = + { + filename = "__boblogistics__/graphics/entity/pipe/ceramic/fluid-flow-medium-temperature.png", + priority = "extra-high", + width = 160, + height = 18 + }, + high_temperature_flow = + { + filename = "__boblogistics__/graphics/entity/pipe/ceramic/fluid-flow-high-temperature.png", + priority = "extra-high", + width = 160, + height = 18 + }, + }, + working_sound = + { + sound = { + { + filename = "__base__/sound/pipe.ogg", + volume = 0.65 + }, + }, + match_volume_to_activity = true, + max_sounds_per_type = 3 + }, + horizontal_window_bounding_box = {{-0.25, -0.25}, {0.25, 0.15625}}, + vertical_window_bounding_box = {{-0.28125, -0.40625}, {0.03125, 0.125}}, + }, + + { + type = "pipe-to-ground", + name = "ceramic-pipe-to-ground", + icon = "__boblogistics__/graphics/icons/pipe/ceramic-pipe-to-ground.png", + flags = {"placeable-neutral", "player-creation"}, + minable = {hardness = 0.2, mining_time = 0.5, result = "ceramic-pipe-to-ground"}, + max_health = 150, + corpse = "small-remnants", + resistances = + { + { + type = "fire", + percent = 80 + } + }, + fast_replaceable_group = "pipe-to-ground", + collision_box = {{-0.29, -0.29}, {0.29, 0.2}}, + selection_box = {{-0.5, -0.5}, {0.5, 0.5}}, + fluid_box = + { + base_area = 2, + pipe_covers = pipecoverspictures(), + pipe_connections = + { + { position = {0, -1} }, + { + position = {0, 1}, + max_underground_distance = 20 + } + }, + }, + underground_sprite = + { + filename = "__core__/graphics/arrows/underground-lines.png", + priority = "extra-high-no-scale", + width = 64, + height = 64, + scale = 0.5 + }, + pictures = + { + up = + { + filename = "__boblogistics__/graphics/entity/pipe/ceramic/pipe-to-ground-up.png", + priority = "high", + width = 44, + height = 32 + }, + down = + { + filename = "__boblogistics__/graphics/entity/pipe/ceramic/pipe-to-ground-down.png", + priority = "high", + width = 40, + height = 32 + }, + left = + { + filename = "__boblogistics__/graphics/entity/pipe/ceramic/pipe-to-ground-left.png", + priority = "high", + width = 32, + height = 42 + }, + right = + { + filename = "__boblogistics__/graphics/entity/pipe/ceramic/pipe-to-ground-right.png", + priority = "high", + width = 32, + height = 40 + }, + }, + }, +} +) +end + + +if data.raw.item["titanium-plate"] then +data:extend( +{ + { + type = "pipe", + name = "titanium-pipe", + icon = "__boblogistics__/graphics/icons/pipe/titanium-pipe.png", + flags = {"placeable-neutral", "player-creation"}, + minable = {hardness = 0.4, mining_time = 0.5, result = "titanium-pipe"}, + max_health = 150, + corpse = "small-remnants", + resistances = + { + { + type = "fire", + percent = 90 + } + }, + 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} } + }, + }, + pictures = + { + straight_vertical_single = + { + filename = "__boblogistics__/graphics/entity/pipe/titanium/pipe-straight-vertical-single.png", + priority = "extra-high", + width = 44, + height = 58 + }, + straight_vertical = + { + filename = "__boblogistics__/graphics/entity/pipe/titanium/pipe-straight-vertical.png", + priority = "extra-high", + width = 44, + height = 42 + }, + straight_vertical_window = + { + filename = "__boblogistics__/graphics/entity/pipe/titanium/pipe-straight-vertical-window.png", + priority = "extra-high", + width = 44, + height = 32 + }, + straight_horizontal = + { + filename = "__boblogistics__/graphics/entity/pipe/titanium/pipe-straight-horizontal.png", + priority = "extra-high", + width = 32, + height = 42 + }, + straight_horizontal_window = + { + filename = "__boblogistics__/graphics/entity/pipe/titanium/pipe-straight-horizontal-window.png", + priority = "extra-high", + width = 32, + height = 42 + }, + corner_up_right = + { + filename = "__boblogistics__/graphics/entity/pipe/titanium/pipe-corner-up-right.png", + priority = "extra-high", + width = 32, + height = 40 + }, + corner_up_left = + { + filename = "__boblogistics__/graphics/entity/pipe/titanium/pipe-corner-up-left.png", + priority = "extra-high", + width = 44, + height = 44 + }, + corner_down_right = + { + filename = "__boblogistics__/graphics/entity/pipe/titanium/pipe-corner-down-right.png", + priority = "extra-high", + width = 32, + height = 32 + }, + corner_down_left = + { + filename = "__boblogistics__/graphics/entity/pipe/titanium/pipe-corner-down-left.png", + priority = "extra-high", + width = 36, + height = 32 + }, + t_up = + { + filename = "__boblogistics__/graphics/entity/pipe/titanium/pipe-t-up.png", + priority = "extra-high", + width = 32, + height = 42 + }, + t_down = + { + filename = "__boblogistics__/graphics/entity/pipe/titanium/pipe-t-down.png", + priority = "extra-high", + width = 40, + height = 44 + }, + t_right = + { + filename = "__boblogistics__/graphics/entity/pipe/titanium/pipe-t-right.png", + priority = "extra-high", + width = 40, + height = 32 + }, + t_left = + { + filename = "__boblogistics__/graphics/entity/pipe/titanium/pipe-t-left.png", + priority = "extra-high", + width = 44, + height = 42 + }, + cross = + { + filename = "__boblogistics__/graphics/entity/pipe/titanium/pipe-cross.png", + priority = "extra-high", + width = 40, + height = 40 + }, + ending_up = + { + filename = "__boblogistics__/graphics/entity/pipe/titanium/pipe-ending-up.png", + priority = "extra-high", + width = 44, + height = 42 + }, + ending_down = + { + filename = "__boblogistics__/graphics/entity/pipe/titanium/pipe-ending-down.png", + priority = "extra-high", + width = 44, + height = 32 + }, + ending_right = + { + filename = "__boblogistics__/graphics/entity/pipe/titanium/pipe-ending-right.png", + priority = "extra-high", + width = 32, + height = 44 + }, + ending_left = + { + filename = "__boblogistics__/graphics/entity/pipe/titanium/pipe-ending-left.png", + priority = "extra-high", + width = 58, + height = 44 + }, + horizontal_window_background = + { + filename = "__boblogistics__/graphics/entity/pipe/titanium/pipe-horizontal-window-background.png", + priority = "extra-high", + width = 32, + height = 42 + }, + vertical_window_background = + { + filename = "__boblogistics__/graphics/entity/pipe/titanium/pipe-vertical-window-background.png", + priority = "extra-high", + width = 44, + height = 32 + }, + fluid_background = + { + filename = "__boblogistics__/graphics/entity/pipe/titanium/fluid-background.png", + priority = "extra-high", + width = 32, + height = 20 + }, + low_temperature_flow = + { + filename = "__boblogistics__/graphics/entity/pipe/titanium/fluid-flow-low-temperature.png", + priority = "extra-high", + width = 160, + height = 18 + }, + middle_temperature_flow = + { + filename = "__boblogistics__/graphics/entity/pipe/titanium/fluid-flow-medium-temperature.png", + priority = "extra-high", + width = 160, + height = 18 + }, + high_temperature_flow = + { + filename = "__boblogistics__/graphics/entity/pipe/titanium/fluid-flow-high-temperature.png", + priority = "extra-high", + width = 160, + height = 18 + }, + }, + working_sound = + { + sound = { + { + filename = "__base__/sound/pipe.ogg", + volume = 0.65 + }, + }, + match_volume_to_activity = true, + max_sounds_per_type = 3 + }, + horizontal_window_bounding_box = {{-0.25, -0.25}, {0.25, 0.15625}}, + vertical_window_bounding_box = {{-0.28125, -0.40625}, {0.03125, 0.125}}, + }, + + { + type = "pipe-to-ground", + name = "titanium-pipe-to-ground", + icon = "__boblogistics__/graphics/icons/pipe/titanium-pipe-to-ground.png", + flags = {"placeable-neutral", "player-creation"}, + minable = {hardness = 0.4, mining_time = 0.5, result = "titanium-pipe-to-ground"}, + max_health = 150, + corpse = "small-remnants", + resistances = + { + { + type = "fire", + percent = 80 + } + }, + fast_replaceable_group = "pipe-to-ground", + 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 = 20 + } + }, + }, + underground_sprite = + { + filename = "__core__/graphics/arrows/underground-lines.png", + priority = "extra-high-no-scale", + width = 64, + height = 64, + scale = 0.5 + }, + pictures = + { + up = + { + filename = "__boblogistics__/graphics/entity/pipe/titanium/pipe-to-ground-up.png", + priority = "high", + width = 44, + height = 32 + }, + down = + { + filename = "__boblogistics__/graphics/entity/pipe/titanium/pipe-to-ground-down.png", + priority = "high", + width = 40, + height = 32 + }, + left = + { + filename = "__boblogistics__/graphics/entity/pipe/titanium/pipe-to-ground-left.png", + priority = "high", + width = 32, + height = 42 + }, + right = + { + filename = "__boblogistics__/graphics/entity/pipe/titanium/pipe-to-ground-right.png", + priority = "high", + width = 32, + height = 40 + }, + }, + }, +} +) +end + + +if data.raw.item["tungsten-plate"] then +data:extend( +{ + { + type = "pipe", + name = "tungsten-pipe", + icon = "__boblogistics__/graphics/icons/pipe/tungsten-pipe.png", + flags = {"placeable-neutral", "player-creation"}, + minable = {hardness = 0.4, mining_time = 0.5, result = "tungsten-pipe"}, + max_health = 200, + corpse = "small-remnants", + resistances = + { + { + type = "fire", + percent = 90 + } + }, + 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} } + }, + }, + pictures = + { + straight_vertical_single = + { + filename = "__boblogistics__/graphics/entity/pipe/tungsten/pipe-straight-vertical-single.png", + priority = "extra-high", + width = 44, + height = 58 + }, + straight_vertical = + { + filename = "__boblogistics__/graphics/entity/pipe/tungsten/pipe-straight-vertical.png", + priority = "extra-high", + width = 44, + height = 42 + }, + straight_vertical_window = + { + filename = "__boblogistics__/graphics/entity/pipe/tungsten/pipe-straight-vertical-window.png", + priority = "extra-high", + width = 44, + height = 32 + }, + straight_horizontal = + { + filename = "__boblogistics__/graphics/entity/pipe/tungsten/pipe-straight-horizontal.png", + priority = "extra-high", + width = 32, + height = 42 + }, + straight_horizontal_window = + { + filename = "__boblogistics__/graphics/entity/pipe/tungsten/pipe-straight-horizontal-window.png", + priority = "extra-high", + width = 32, + height = 42 + }, + corner_up_right = + { + filename = "__boblogistics__/graphics/entity/pipe/tungsten/pipe-corner-up-right.png", + priority = "extra-high", + width = 32, + height = 40 + }, + corner_up_left = + { + filename = "__boblogistics__/graphics/entity/pipe/tungsten/pipe-corner-up-left.png", + priority = "extra-high", + width = 44, + height = 44 + }, + corner_down_right = + { + filename = "__boblogistics__/graphics/entity/pipe/tungsten/pipe-corner-down-right.png", + priority = "extra-high", + width = 32, + height = 32 + }, + corner_down_left = + { + filename = "__boblogistics__/graphics/entity/pipe/tungsten/pipe-corner-down-left.png", + priority = "extra-high", + width = 36, + height = 32 + }, + t_up = + { + filename = "__boblogistics__/graphics/entity/pipe/tungsten/pipe-t-up.png", + priority = "extra-high", + width = 32, + height = 42 + }, + t_down = + { + filename = "__boblogistics__/graphics/entity/pipe/tungsten/pipe-t-down.png", + priority = "extra-high", + width = 40, + height = 44 + }, + t_right = + { + filename = "__boblogistics__/graphics/entity/pipe/tungsten/pipe-t-right.png", + priority = "extra-high", + width = 40, + height = 32 + }, + t_left = + { + filename = "__boblogistics__/graphics/entity/pipe/tungsten/pipe-t-left.png", + priority = "extra-high", + width = 44, + height = 42 + }, + cross = + { + filename = "__boblogistics__/graphics/entity/pipe/tungsten/pipe-cross.png", + priority = "extra-high", + width = 40, + height = 40 + }, + ending_up = + { + filename = "__boblogistics__/graphics/entity/pipe/tungsten/pipe-ending-up.png", + priority = "extra-high", + width = 44, + height = 42 + }, + ending_down = + { + filename = "__boblogistics__/graphics/entity/pipe/tungsten/pipe-ending-down.png", + priority = "extra-high", + width = 44, + height = 32 + }, + ending_right = + { + filename = "__boblogistics__/graphics/entity/pipe/tungsten/pipe-ending-right.png", + priority = "extra-high", + width = 32, + height = 44 + }, + ending_left = + { + filename = "__boblogistics__/graphics/entity/pipe/tungsten/pipe-ending-left.png", + priority = "extra-high", + width = 58, + height = 44 + }, + horizontal_window_background = + { + filename = "__boblogistics__/graphics/entity/pipe/tungsten/pipe-horizontal-window-background.png", + priority = "extra-high", + width = 32, + height = 42 + }, + vertical_window_background = + { + filename = "__boblogistics__/graphics/entity/pipe/tungsten/pipe-vertical-window-background.png", + priority = "extra-high", + width = 44, + height = 32 + }, + fluid_background = + { + filename = "__boblogistics__/graphics/entity/pipe/tungsten/fluid-background.png", + priority = "extra-high", + width = 32, + height = 20 + }, + low_temperature_flow = + { + filename = "__boblogistics__/graphics/entity/pipe/tungsten/fluid-flow-low-temperature.png", + priority = "extra-high", + width = 160, + height = 18 + }, + middle_temperature_flow = + { + filename = "__boblogistics__/graphics/entity/pipe/tungsten/fluid-flow-medium-temperature.png", + priority = "extra-high", + width = 160, + height = 18 + }, + high_temperature_flow = + { + filename = "__boblogistics__/graphics/entity/pipe/tungsten/fluid-flow-high-temperature.png", + priority = "extra-high", + width = 160, + height = 18 + }, + }, + working_sound = + { + sound = { + { + filename = "__base__/sound/pipe.ogg", + volume = 0.65 + }, + }, + match_volume_to_activity = true, + max_sounds_per_type = 3 + }, + horizontal_window_bounding_box = {{-0.25, -0.25}, {0.25, 0.15625}}, + vertical_window_bounding_box = {{-0.28125, -0.40625}, {0.03125, 0.125}}, + }, + + { + type = "pipe-to-ground", + name = "tungsten-pipe-to-ground", + icon = "__boblogistics__/graphics/icons/pipe/tungsten-pipe-to-ground.png", + flags = {"placeable-neutral", "player-creation"}, + minable = {hardness = 0.4, mining_time = 0.5, result = "tungsten-pipe-to-ground"}, + max_health = 200, + corpse = "small-remnants", + resistances = + { + { + type = "fire", + percent = 80 + } + }, + fast_replaceable_group = "pipe-to-ground", + 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 = 30 + } + }, + }, + underground_sprite = + { + filename = "__core__/graphics/arrows/underground-lines.png", + priority = "extra-high-no-scale", + width = 64, + height = 64, + scale = 0.5 + }, + pictures = + { + up = + { + filename = "__boblogistics__/graphics/entity/pipe/tungsten/pipe-to-ground-up.png", + priority = "high", + width = 44, + height = 32 + }, + down = + { + filename = "__boblogistics__/graphics/entity/pipe/tungsten/pipe-to-ground-down.png", + priority = "high", + width = 40, + height = 32 + }, + left = + { + filename = "__boblogistics__/graphics/entity/pipe/tungsten/pipe-to-ground-left.png", + priority = "high", + width = 32, + height = 42 + }, + right = + { + filename = "__boblogistics__/graphics/entity/pipe/tungsten/pipe-to-ground-right.png", + priority = "high", + width = 32, + height = 40 + }, + }, + }, +} +) +end + diff --git a/boblogistics_0.14.0/prototypes/entity/pump.lua b/boblogistics_0.14.2/prototypes/entity/pump.lua similarity index 96% rename from boblogistics_0.14.0/prototypes/entity/pump.lua rename to boblogistics_0.14.2/prototypes/entity/pump.lua index 04ea9f9..f7be51e 100644 --- a/boblogistics_0.14.0/prototypes/entity/pump.lua +++ b/boblogistics_0.14.2/prototypes/entity/pump.lua @@ -1,294 +1,294 @@ -function bobmods.logistics.small_pump_animations(tint) - return { - north = { - layers = { - { - filename = "__boblogistics__/graphics/entity/small-pump/small-pump-up.png", - width = 46, - height = 56, - frame_count = 8, - shift = {0.09375, 0.03125}, - animation_speed = 0.5 - }, - { - filename = "__boblogistics__/graphics/entity/small-pump/small-pump-up-mask.png", - width = 46, - height = 56, - frame_count = 8, - shift = {0.09375, 0.03125}, - tint = tint, - animation_speed = 0.5 - } - } - }, - east = { - layers = { - { - filename = "__boblogistics__/graphics/entity/small-pump/small-pump-right.png", - width = 51, - height = 56, - frame_count = 8, - shift = {0.265625, -0.21875}, - animation_speed = 0.5 - }, - { - filename = "__boblogistics__/graphics/entity/small-pump/small-pump-right-mask.png", - width = 51, - height = 56, - frame_count = 8, - shift = {0.265625, -0.21875}, - tint = tint, - animation_speed = 0.5 - } - } - }, - south = { - layers = { - { - filename = "__boblogistics__/graphics/entity/small-pump/small-pump-down.png", - width = 61, - height = 58, - frame_count = 8, - shift = {0.421875, -0.125}, - animation_speed = 0.5 - }, - { - filename = "__boblogistics__/graphics/entity/small-pump/small-pump-down-mask.png", - width = 61, - height = 58, - frame_count = 8, - shift = {0.421875, -0.125}, - tint = tint, - animation_speed = 0.5 - } - } - }, - west = { - layers = { - { - filename = "__boblogistics__/graphics/entity/small-pump/small-pump-left.png", - width = 56, - height = 44, - frame_count = 8, - shift = {0.3125, 0.0625}, - animation_speed = 0.5 - }, - { - filename = "__boblogistics__/graphics/entity/small-pump/small-pump-left-mask.png", - width = 56, - height = 44, - frame_count = 8, - shift = {0.3125, 0.0625}, - tint = tint, - animation_speed = 0.5 - } - } - } - } -end - -local circuit_wire_connection_points = { - { - shadow = - { - red = {0.65625, 0.03125}, - green = {0.65625, 0.03125}, - }, - wire = - { - red = {0.34375, -0.375}, - green = {0.34375, -0.375}, - } - }, - { - shadow = - { - red = {0.625, 0.46875}, - green = {0.625, 0.46875}, - }, - wire = - { - red = {0.1875, -0.03125}, - green = {0.1875, -0.03125}, - } - }, - { - shadow = - { - red = {0.1875, 0.1875}, - green = {0.1875, 0.1875}, - }, - wire = - { - red = {-0.375, -0.15625}, - green = {-0.375, -0.15625}, - } - }, - { - shadow = - { - red = {0.3125, -0.03125}, - green = {0.3125, -0.03125}, - }, - wire = - { - red = {-0.15625, -0.5}, - green = {-0.15625, -0.5}, - } - } - } - - -data:extend( -{ - { - type = "pump", - name = "small-pump-2", - icon = "__base__/graphics/icons/small-pump.png", - flags = {"placeable-neutral", "player-creation"}, - minable = {mining_time = 1, result = "small-pump-2"}, - max_health = 100, - fast_replaceable_group = "pipe", - corpse = "small-remnants", - resistances = - { - { - type = "fire", - percent = 70 - } - }, - 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_covers = pipecoverspictures(), - pipe_connections = - { - { position = {0, -1}, type="output" }, - { position = {0, 1}, type="input" }, - }, - }, - energy_source = - { - type = "electric", - usage_priority = "secondary-input", - emissions = 0.01 / 2.5 - }, - energy_usage = "82.5kW", - pumping_speed = 1.5, - vehicle_impact_sound = { filename = "__base__/sound/car-metal-impact.ogg", volume = 0.65 }, - animations = bobmods.logistics.small_pump_animations({r = 0.8, g = 0.8, b = 0.2, a = 1}), - circuit_wire_connection_points = circuit_wire_connection_points, - circuit_connector_sprites = - { - get_circuit_connector_sprites({-0.40625, -0.3125}, nil, 24), - get_circuit_connector_sprites({0.125, 0.21875}, {0.34375, 0.40625}, 18), - get_circuit_connector_sprites({-0.40625, -0.25}, nil, 24), - get_circuit_connector_sprites({0.203125, 0.203125}, {0.25, 0.40625}, 18), - }, - circuit_wire_max_distance = 10 - }, - - { - type = "pump", - name = "small-pump-3", - icon = "__base__/graphics/icons/small-pump.png", - flags = {"placeable-neutral", "player-creation"}, - minable = {mining_time = 1, result = "small-pump-3"}, - max_health = 120, - fast_replaceable_group = "pipe", - corpse = "small-remnants", - resistances = - { - { - type = "fire", - percent = 70 - } - }, - 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_covers = pipecoverspictures(), - pipe_connections = - { - { position = {0, -1}, type="output" }, - { position = {0, 1}, type="input" }, - }, - }, - energy_source = - { - type = "electric", - usage_priority = "secondary-input", - emissions = 0.01 / 2.5 - }, - energy_usage = "125kW", - pumping_speed = 2.5, - vehicle_impact_sound = { filename = "__base__/sound/car-metal-impact.ogg", volume = 0.65 }, - animations = bobmods.logistics.small_pump_animations({r = 0.6, g = 0.2, b = 0.8, a = 1}), - circuit_wire_connection_points = circuit_wire_connection_points, - circuit_connector_sprites = - { - get_circuit_connector_sprites({-0.40625, -0.3125}, nil, 24), - get_circuit_connector_sprites({0.125, 0.21875}, {0.34375, 0.40625}, 18), - get_circuit_connector_sprites({-0.40625, -0.25}, nil, 24), - get_circuit_connector_sprites({0.203125, 0.203125}, {0.25, 0.40625}, 18), - }, - circuit_wire_max_distance = 12.5 - }, - - { - type = "pump", - name = "small-pump-4", - icon = "__base__/graphics/icons/small-pump.png", - flags = {"placeable-neutral", "player-creation"}, - minable = {mining_time = 1, result = "small-pump-4"}, - max_health = 150, - fast_replaceable_group = "pipe", - corpse = "small-remnants", - resistances = - { - { - type = "fire", - percent = 70 - } - }, - 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_covers = pipecoverspictures(), - pipe_connections = - { - { position = {0, -1}, type="output" }, - { position = {0, 1}, type="input" }, - }, - }, - energy_source = - { - type = "electric", - usage_priority = "secondary-input", - emissions = 0.01 / 2.5 - }, - energy_usage = "157.5kW", - pumping_speed = 3.5, - vehicle_impact_sound = { filename = "__base__/sound/car-metal-impact.ogg", volume = 0.65 }, - animations = bobmods.logistics.small_pump_animations({r = 0.2, g = 0.8, b = 0.3, a = 1}), - circuit_wire_connection_points = circuit_wire_connection_points, - circuit_connector_sprites = - { - get_circuit_connector_sprites({-0.40625, -0.3125}, nil, 24), - get_circuit_connector_sprites({0.125, 0.21875}, {0.34375, 0.40625}, 18), - get_circuit_connector_sprites({-0.40625, -0.25}, nil, 24), - get_circuit_connector_sprites({0.203125, 0.203125}, {0.25, 0.40625}, 18), - }, - circuit_wire_max_distance = 15 - }, -} -) - - - +function bobmods.logistics.small_pump_animations(tint) + return { + north = { + layers = { + { + filename = "__boblogistics__/graphics/entity/small-pump/small-pump-up.png", + width = 46, + height = 56, + frame_count = 8, + shift = {0.09375, 0.03125}, + animation_speed = 0.5 + }, + { + filename = "__boblogistics__/graphics/entity/small-pump/small-pump-up-mask.png", + width = 46, + height = 56, + frame_count = 8, + shift = {0.09375, 0.03125}, + tint = tint, + animation_speed = 0.5 + } + } + }, + east = { + layers = { + { + filename = "__boblogistics__/graphics/entity/small-pump/small-pump-right.png", + width = 51, + height = 56, + frame_count = 8, + shift = {0.265625, -0.21875}, + animation_speed = 0.5 + }, + { + filename = "__boblogistics__/graphics/entity/small-pump/small-pump-right-mask.png", + width = 51, + height = 56, + frame_count = 8, + shift = {0.265625, -0.21875}, + tint = tint, + animation_speed = 0.5 + } + } + }, + south = { + layers = { + { + filename = "__boblogistics__/graphics/entity/small-pump/small-pump-down.png", + width = 61, + height = 58, + frame_count = 8, + shift = {0.421875, -0.125}, + animation_speed = 0.5 + }, + { + filename = "__boblogistics__/graphics/entity/small-pump/small-pump-down-mask.png", + width = 61, + height = 58, + frame_count = 8, + shift = {0.421875, -0.125}, + tint = tint, + animation_speed = 0.5 + } + } + }, + west = { + layers = { + { + filename = "__boblogistics__/graphics/entity/small-pump/small-pump-left.png", + width = 56, + height = 44, + frame_count = 8, + shift = {0.3125, 0.0625}, + animation_speed = 0.5 + }, + { + filename = "__boblogistics__/graphics/entity/small-pump/small-pump-left-mask.png", + width = 56, + height = 44, + frame_count = 8, + shift = {0.3125, 0.0625}, + tint = tint, + animation_speed = 0.5 + } + } + } + } +end + +local circuit_wire_connection_points = { + { + shadow = + { + red = {0.65625, 0.03125}, + green = {0.65625, 0.03125}, + }, + wire = + { + red = {0.34375, -0.375}, + green = {0.34375, -0.375}, + } + }, + { + shadow = + { + red = {0.625, 0.46875}, + green = {0.625, 0.46875}, + }, + wire = + { + red = {0.1875, -0.03125}, + green = {0.1875, -0.03125}, + } + }, + { + shadow = + { + red = {0.1875, 0.1875}, + green = {0.1875, 0.1875}, + }, + wire = + { + red = {-0.375, -0.15625}, + green = {-0.375, -0.15625}, + } + }, + { + shadow = + { + red = {0.3125, -0.03125}, + green = {0.3125, -0.03125}, + }, + wire = + { + red = {-0.15625, -0.5}, + green = {-0.15625, -0.5}, + } + } + } + + +data:extend( +{ + { + type = "pump", + name = "small-pump-2", + icon = "__base__/graphics/icons/small-pump.png", + flags = {"placeable-neutral", "player-creation"}, + minable = {mining_time = 1, result = "small-pump-2"}, + max_health = 100, + fast_replaceable_group = "pipe", + corpse = "small-remnants", + resistances = + { + { + type = "fire", + percent = 70 + } + }, + 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_covers = pipecoverspictures(), + pipe_connections = + { + { position = {0, -1}, type="output" }, + { position = {0, 1}, type="input" }, + }, + }, + energy_source = + { + type = "electric", + usage_priority = "secondary-input", + emissions = 0.01 / 2.5 + }, + energy_usage = "82.5kW", + pumping_speed = 1.5, + vehicle_impact_sound = { filename = "__base__/sound/car-metal-impact.ogg", volume = 0.65 }, + animations = bobmods.logistics.small_pump_animations({r = 0.8, g = 0.8, b = 0.2, a = 1}), + circuit_wire_connection_points = circuit_wire_connection_points, + circuit_connector_sprites = + { + get_circuit_connector_sprites({-0.40625, -0.3125}, nil, 24), + get_circuit_connector_sprites({0.125, 0.21875}, {0.34375, 0.40625}, 18), + get_circuit_connector_sprites({-0.40625, -0.25}, nil, 24), + get_circuit_connector_sprites({0.203125, 0.203125}, {0.25, 0.40625}, 18), + }, + circuit_wire_max_distance = 10 + }, + + { + type = "pump", + name = "small-pump-3", + icon = "__base__/graphics/icons/small-pump.png", + flags = {"placeable-neutral", "player-creation"}, + minable = {mining_time = 1, result = "small-pump-3"}, + max_health = 120, + fast_replaceable_group = "pipe", + corpse = "small-remnants", + resistances = + { + { + type = "fire", + percent = 70 + } + }, + 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_covers = pipecoverspictures(), + pipe_connections = + { + { position = {0, -1}, type="output" }, + { position = {0, 1}, type="input" }, + }, + }, + energy_source = + { + type = "electric", + usage_priority = "secondary-input", + emissions = 0.01 / 2.5 + }, + energy_usage = "125kW", + pumping_speed = 2.5, + vehicle_impact_sound = { filename = "__base__/sound/car-metal-impact.ogg", volume = 0.65 }, + animations = bobmods.logistics.small_pump_animations({r = 0.6, g = 0.2, b = 0.8, a = 1}), + circuit_wire_connection_points = circuit_wire_connection_points, + circuit_connector_sprites = + { + get_circuit_connector_sprites({-0.40625, -0.3125}, nil, 24), + get_circuit_connector_sprites({0.125, 0.21875}, {0.34375, 0.40625}, 18), + get_circuit_connector_sprites({-0.40625, -0.25}, nil, 24), + get_circuit_connector_sprites({0.203125, 0.203125}, {0.25, 0.40625}, 18), + }, + circuit_wire_max_distance = 12.5 + }, + + { + type = "pump", + name = "small-pump-4", + icon = "__base__/graphics/icons/small-pump.png", + flags = {"placeable-neutral", "player-creation"}, + minable = {mining_time = 1, result = "small-pump-4"}, + max_health = 150, + fast_replaceable_group = "pipe", + corpse = "small-remnants", + resistances = + { + { + type = "fire", + percent = 70 + } + }, + 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_covers = pipecoverspictures(), + pipe_connections = + { + { position = {0, -1}, type="output" }, + { position = {0, 1}, type="input" }, + }, + }, + energy_source = + { + type = "electric", + usage_priority = "secondary-input", + emissions = 0.01 / 2.5 + }, + energy_usage = "157.5kW", + pumping_speed = 3.5, + vehicle_impact_sound = { filename = "__base__/sound/car-metal-impact.ogg", volume = 0.65 }, + animations = bobmods.logistics.small_pump_animations({r = 0.2, g = 0.8, b = 0.3, a = 1}), + circuit_wire_connection_points = circuit_wire_connection_points, + circuit_connector_sprites = + { + get_circuit_connector_sprites({-0.40625, -0.3125}, nil, 24), + get_circuit_connector_sprites({0.125, 0.21875}, {0.34375, 0.40625}, 18), + get_circuit_connector_sprites({-0.40625, -0.25}, nil, 24), + get_circuit_connector_sprites({0.203125, 0.203125}, {0.25, 0.40625}, 18), + }, + circuit_wire_max_distance = 15 + }, +} +) + + + diff --git a/boblogistics_0.14.0/prototypes/entity/roboport.lua b/boblogistics_0.14.2/prototypes/entity/roboport.lua similarity index 96% rename from boblogistics_0.14.0/prototypes/entity/roboport.lua rename to boblogistics_0.14.2/prototypes/entity/roboport.lua index 8a18b5d..d0599da 100644 --- a/boblogistics_0.14.0/prototypes/entity/roboport.lua +++ b/boblogistics_0.14.2/prototypes/entity/roboport.lua @@ -1,2647 +1,2647 @@ -data.raw.roboport["roboport"].fast_replaceable_group = "roboport" -if data.raw.roboport["roboport"].door_animation_up then - data.raw.roboport["roboport"].door_animation_up.shift = {0.015625, -0.875} -end -if data.raw.roboport["roboport"].door_animation_down then - data.raw.roboport["roboport"].door_animation_down.shift = {0.015625, -0.21875} -end - -data:extend( -{ - { - type = "roboport", - name = "bob-roboport-2", - icon = "__boblogistics__/graphics/icons/roboport-2.png", - flags = {"placeable-player", "player-creation"}, - minable = {hardness = 0.2, mining_time = 0.5, result = "bob-roboport-2"}, - fast_replaceable_group = "roboport", - max_health = 750, - corpse = "big-remnants", - collision_box = {{-1.7, -1.7}, {1.7, 1.7}}, - selection_box = {{-2, -2}, {2, 2}}, - dying_explosion = "medium-explosion", - energy_source = - { - type = "electric", - usage_priority = "secondary-input", - input_flow_limit = "10MW", - buffer_capacity = "200MJ" - }, - recharge_minimum = "40MJ", - energy_usage = "100kW", - -- per one charge slot - charging_energy = "2500kW", - logistics_radius = 50, - construction_radius = 100, - charge_approach_distance = 5, - robot_slots_count = 10, - material_slots_count = 10, - stationing_offset = {0, 0}, - charging_offsets = - { - {-1.5, -0.5}, {1.5, -0.5}, {1.5, 1.5}, {-1.5, 1.5}, - }, - base = - { - filename = "__boblogistics__/graphics/entity/roboport/roboport-base-2.png", - width = 143, - height = 135, - shift = {0.5, 0.25} - }, - base_animation = - { - filename = "__boblogistics__/graphics/entity/roboport/roboport-base-animation-2.png", - priority = "medium", - width = 42, - height = 31, - frame_count = 8, - animation_speed = 0.5, - shift = {-0.5315, -1.9375} - }, - base_patch = - { - filename = "__boblogistics__/graphics/entity/roboport/roboport-base-patch-2.png", - priority = "medium", - width = 69, - height = 50, - frame_count = 1, - shift = {0.03125, 0.203125} - }, - door_animation_up = - { - filename = "__boblogistics__/graphics/entity/roboport/roboport-door-up-2.png", - priority = "medium", - width = 52, - height = 20, - frame_count = 16, - shift = {0.015625, -0.875} - }, - door_animation_down = - { - filename = "__boblogistics__/graphics/entity/roboport/roboport-door-down-2.png", - priority = "medium", - width = 52, - height = 22, - frame_count = 16, - shift = {0.015625, -0.21875} - }, - recharging_animation = - { - filename = "__boblogistics__/graphics/entity/roboport/roboport-recharging.png", - priority = "high", - width = 37, - height = 35, - frame_count = 16, - scale = 1.5, - animation_speed = 0.5 - }, - working_sound = - { - sound = { filename = "__base__/sound/roboport-working.ogg", volume = 0.6 }, - max_sounds_per_type = 3 - }, - recharging_light = {intensity = 0.4, size = 5}, - request_to_open_door_timeout = 15, - spawn_and_station_height = 0.33, - radius_visualisation_picture = - { - filename = "__boblogistics__/graphics/entity/roboport/roboport-radius-visualization.png", - width = 12, - height = 12 - }, - construction_radius_visualisation_picture = - { - filename = "__boblogistics__/graphics/entity/roboport/roboport-construction-radius-visualization.png", - width = 12, - height = 12 - }, - open_door_trigger_effect = - { - { - type = "play-sound", - sound = { filename = "__base__/sound/roboport-door.ogg", volume = 1.2 } - }, - }, - close_door_trigger_effect = - { - { - type = "play-sound", - sound = { filename = "__base__/sound/roboport-door.ogg", volume = 0.75 } - }, - }, - circuit_wire_connection_point = - { - shadow = - { - red = {1.17188, 1.98438}, - green = {1.04688, 2.04688} - }, - wire = - { - red = {0.78125, 1.375}, - green = {0.78125, 1.53125} - } - }, - circuit_connector_sprites = get_circuit_connector_sprites({0.59375, 1.3125}, nil, 18), - circuit_wire_max_distance = 10, - default_available_logistic_output_signal = "signal-X", - default_total_logistic_output_signal = "signal-Y", - default_available_construction_output_signal = "signal-Z", - default_total_construction_output_signal = "signal-T", - }, - - { - type = "roboport", - name = "bob-roboport-3", - icon = "__boblogistics__/graphics/icons/roboport-3.png", - flags = {"placeable-player", "player-creation"}, - minable = {hardness = 0.2, mining_time = 0.5, result = "bob-roboport-3"}, - fast_replaceable_group = "roboport", - max_health = 1000, - corpse = "big-remnants", - collision_box = {{-1.7, -1.7}, {1.7, 1.7}}, - selection_box = {{-2, -2}, {2, 2}}, - dying_explosion = "medium-explosion", - energy_source = - { - type = "electric", - usage_priority = "secondary-input", - input_flow_limit = "20MW", - buffer_capacity = "400MJ" - }, - recharge_minimum = "40MJ", - energy_usage = "150kW", - -- per one charge slot - charging_energy = "4000kW", - logistics_radius = 75, - construction_radius = 150, - charge_approach_distance = 5, - robot_slots_count = 15, - material_slots_count = 15, - stationing_offset = {0, 0}, - charging_offsets = - { - {-1.5, -0.5}, {1.5, -0.5}, {1.5, 1.5}, {-1.5, 1.5}, - }, - base = - { - filename = "__boblogistics__/graphics/entity/roboport/roboport-base-3.png", - width = 143, - height = 135, - shift = {0.5, 0.25} - }, - base_animation = - { - filename = "__boblogistics__/graphics/entity/roboport/roboport-base-animation-3.png", - priority = "medium", - width = 42, - height = 31, - frame_count = 8, - animation_speed = 0.5, - shift = {-0.5315, -1.9375} - }, - base_patch = - { - filename = "__boblogistics__/graphics/entity/roboport/roboport-base-patch-3.png", - priority = "medium", - width = 69, - height = 50, - frame_count = 1, - shift = {0.03125, 0.203125} - }, - door_animation_up = - { - filename = "__boblogistics__/graphics/entity/roboport/roboport-door-up-3.png", - priority = "medium", - width = 52, - height = 20, - frame_count = 16, - shift = {0.015625, -0.875} - }, - door_animation_down = - { - filename = "__boblogistics__/graphics/entity/roboport/roboport-door-down-3.png", - priority = "medium", - width = 52, - height = 22, - frame_count = 16, - shift = {0.015625, -0.21875} - }, - recharging_animation = - { - filename = "__boblogistics__/graphics/entity/roboport/roboport-recharging.png", - priority = "high", - width = 37, - height = 35, - frame_count = 16, - scale = 1.5, - animation_speed = 0.5 - }, - working_sound = - { - sound = { filename = "__base__/sound/roboport-working.ogg", volume = 0.6 }, - max_sounds_per_type = 3 - }, - recharging_light = {intensity = 0.4, size = 5}, - request_to_open_door_timeout = 15, - spawn_and_station_height = 0.33, - radius_visualisation_picture = - { - filename = "__boblogistics__/graphics/entity/roboport/roboport-radius-visualization.png", - width = 12, - height = 12 - }, - construction_radius_visualisation_picture = - { - filename = "__boblogistics__/graphics/entity/roboport/roboport-construction-radius-visualization.png", - width = 12, - height = 12 - }, - open_door_trigger_effect = - { - { - type = "play-sound", - sound = { filename = "__base__/sound/roboport-door.ogg", volume = 1.2 } - }, - }, - close_door_trigger_effect = - { - { - type = "play-sound", - sound = { filename = "__base__/sound/roboport-door.ogg", volume = 0.75 } - }, - }, - circuit_wire_connection_point = - { - shadow = - { - red = {1.17188, 1.98438}, - green = {1.04688, 2.04688} - }, - wire = - { - red = {0.78125, 1.375}, - green = {0.78125, 1.53125} - } - }, - circuit_connector_sprites = get_circuit_connector_sprites({0.59375, 1.3125}, nil, 18), - circuit_wire_max_distance = 12.5, - default_available_logistic_output_signal = "signal-X", - default_total_logistic_output_signal = "signal-Y", - default_available_construction_output_signal = "signal-Z", - default_total_construction_output_signal = "signal-T", - }, - - { - type = "roboport", - name = "bob-roboport-4", - icon = "__boblogistics__/graphics/icons/roboport-4.png", - flags = {"placeable-player", "player-creation"}, - minable = {hardness = 0.2, mining_time = 0.5, result = "bob-roboport-4"}, - fast_replaceable_group = "roboport", - max_health = 1250, - corpse = "big-remnants", - collision_box = {{-1.7, -1.7}, {1.7, 1.7}}, - selection_box = {{-2, -2}, {2, 2}}, - dying_explosion = "medium-explosion", - energy_source = - { - type = "electric", - usage_priority = "secondary-input", - input_flow_limit = "40MW", - buffer_capacity = "800MJ" - }, - recharge_minimum = "40MJ", - energy_usage = "200kW", - -- per one charge slot - charging_energy = "6000kW", - logistics_radius = 100, - construction_radius = 200, - charge_approach_distance = 5, - robot_slots_count = 20, - material_slots_count = 20, - stationing_offset = {0, 0}, - charging_offsets = - { - {-1.5, -0.5}, {1.5, -0.5}, {1.5, 1.5}, {-1.5, 1.5}, - }, - base = - { - filename = "__boblogistics__/graphics/entity/roboport/roboport-base-4.png", - width = 143, - height = 135, - shift = {0.5, 0.25} - }, - base_animation = - { - filename = "__boblogistics__/graphics/entity/roboport/roboport-base-animation-4.png", - priority = "medium", - width = 42, - height = 31, - frame_count = 8, - animation_speed = 0.5, - shift = {-0.5315, -1.9375} - }, - base_patch = - { - filename = "__boblogistics__/graphics/entity/roboport/roboport-base-patch-4.png", - priority = "medium", - width = 69, - height = 50, - frame_count = 1, - shift = {0.03125, 0.203125} - }, - door_animation_up = - { - filename = "__boblogistics__/graphics/entity/roboport/roboport-door-up-4.png", - priority = "medium", - width = 52, - height = 20, - frame_count = 16, - shift = {0.015625, -0.875} - }, - door_animation_down = - { - filename = "__boblogistics__/graphics/entity/roboport/roboport-door-down-4.png", - priority = "medium", - width = 52, - height = 22, - frame_count = 16, - shift = {0.015625, -0.21875} - }, - recharging_animation = - { - filename = "__boblogistics__/graphics/entity/roboport/roboport-recharging.png", - priority = "high", - width = 37, - height = 35, - frame_count = 16, - scale = 1.5, - animation_speed = 0.5 - }, - working_sound = - { - sound = { filename = "__base__/sound/roboport-working.ogg", volume = 0.6 }, - max_sounds_per_type = 3 - }, - recharging_light = {intensity = 0.4, size = 5}, - request_to_open_door_timeout = 15, - spawn_and_station_height = 0.33, - radius_visualisation_picture = - { - filename = "__boblogistics__/graphics/entity/roboport/roboport-radius-visualization.png", - width = 12, - height = 12 - }, - construction_radius_visualisation_picture = - { - filename = "__boblogistics__/graphics/entity/roboport/roboport-construction-radius-visualization.png", - width = 12, - height = 12 - }, - open_door_trigger_effect = - { - { - type = "play-sound", - sound = { filename = "__base__/sound/roboport-door.ogg", volume = 1.2 } - }, - }, - close_door_trigger_effect = - { - { - type = "play-sound", - sound = { filename = "__base__/sound/roboport-door.ogg", volume = 0.75 } - }, - }, - circuit_wire_connection_point = - { - shadow = - { - red = {1.17188, 1.98438}, - green = {1.04688, 2.04688} - }, - wire = - { - red = {0.78125, 1.375}, - green = {0.78125, 1.53125} - } - }, - circuit_connector_sprites = get_circuit_connector_sprites({0.59375, 1.3125}, nil, 18), - circuit_wire_max_distance = 15, - default_available_logistic_output_signal = "signal-X", - default_total_logistic_output_signal = "signal-Y", - default_available_construction_output_signal = "signal-Z", - default_total_construction_output_signal = "signal-T", - }, -} -) - - -data:extend( -{ - { - type = "roboport", - name = "bob-robochest", - icon = "__boblogistics__/graphics/icons/robochest.png", - flags = {"placeable-player", "player-creation"}, - minable = {hardness = 0.2, mining_time = 0.5, result = "bob-robochest"}, - fast_replaceable_group = "roboport", - max_health = 500, - corpse = "medium-remnants", - collision_box = {{-0.7, -0.7}, {0.7, 0.7}}, - selection_box = {{-1, -1}, {1, 1}}, - dying_explosion = "medium-explosion", - energy_source = - { - type = "electric", - usage_priority = "secondary-input", - input_flow_limit = "1200kW", - buffer_capacity = "20MJ" - }, - recharge_minimum = "5MJ", - energy_usage = "5kW", - -- per one charge slot - charging_energy = "1000kW", - logistics_radius = 1, - construction_radius = 1, - charge_approach_distance = 5, - robot_slots_count = 10, - material_slots_count = 5, - stationing_offset = {0, 0}, - charging_offsets = - { - {0, 0}, - }, - base = - { - filename = "__boblogistics__/graphics/entity/roboport/robochest.png", - width = 96, - height = 96, - shift = {0, 0} - }, - base_animation = - { - filename = "__boblogistics__/graphics/entity/roboport/blank.png", - priority = "medium", - width = 12, - height = 12, - frame_count = 1, - }, - base_patch = - { - filename = "__boblogistics__/graphics/entity/roboport/blank.png", - width = 1, - height = 1, - frame_count = 1, - }, - door_animation_up = - { - filename = "__boblogistics__/graphics/entity/roboport/roboport-door-up.png", - priority = "medium", - width = 52, - height = 20, - frame_count = 16, - shift = {0.03125, -0.625} - }, - door_animation_down = - { - filename = "__boblogistics__/graphics/entity/roboport/roboport-door-down.png", - priority = "medium", - width = 52, - height = 22, - frame_count = 16, - shift = {0.03125, 0.03125} - }, - recharging_animation = - { - filename = "__boblogistics__/graphics/entity/roboport/roboport-recharging.png", - priority = "high", - width = 37, - height = 35, - frame_count = 16, - scale = 1.5, - animation_speed = 0.5 - }, - recharging_light = {intensity = 0.4, size = 5}, - request_to_open_door_timeout = 15, - spawn_and_station_height = 0.25, - radius_visualisation_picture = - { - filename = "__boblogistics__/graphics/entity/roboport/blank.png", - width = 12, - height = 12 - }, - construction_radius_visualisation_picture = - { - filename = "__boblogistics__/graphics/entity/roboport/blank.png", - width = 12, - height = 12 - }, - open_door_trigger_effect = - { - { - type = "play-sound", - sound = { filename = "__base__/sound/roboport-door.ogg", volume = 1.2 } - }, - }, - close_door_trigger_effect = - { - { - type = "play-sound", - sound = { filename = "__base__/sound/roboport-door.ogg", volume = 0.75 } - }, - }, - }, - - { - type = "roboport", - name = "bob-robochest-2", - icon = "__boblogistics__/graphics/icons/robochest-2.png", - flags = {"placeable-player", "player-creation"}, - minable = {hardness = 0.2, mining_time = 0.5, result = "bob-robochest-2"}, - fast_replaceable_group = "roboport", - max_health = 750, - corpse = "medium-remnants", - collision_box = {{-0.7, -0.7}, {0.7, 0.7}}, - selection_box = {{-1, -1}, {1, 1}}, - dying_explosion = "medium-explosion", - energy_source = - { - type = "electric", - usage_priority = "secondary-input", - input_flow_limit = "3000kW", - buffer_capacity = "40MJ" - }, - recharge_minimum = "10MJ", - energy_usage = "5kW", - -- per one charge slot - charging_energy = "2500kW", - logistics_radius = 1, - construction_radius = 1, - charge_approach_distance = 5, - robot_slots_count = 20, - material_slots_count = 10, - stationing_offset = {0, 0}, - charging_offsets = - { - {0, 0}, - }, - base = - { - filename = "__boblogistics__/graphics/entity/roboport/robochest-2.png", - width = 96, - height = 96, - shift = {0, 0} - }, - base_animation = - { - filename = "__boblogistics__/graphics/entity/roboport/blank.png", - priority = "medium", - width = 12, - height = 12, - frame_count = 1, - }, - base_patch = - { - filename = "__boblogistics__/graphics/entity/roboport/blank.png", - width = 1, - height = 1, - frame_count = 1, - }, - door_animation_up = - { - filename = "__boblogistics__/graphics/entity/roboport/roboport-door-up-2.png", - priority = "medium", - width = 52, - height = 20, - frame_count = 16, - shift = {0.03125, -0.625} - }, - door_animation_down = - { - filename = "__boblogistics__/graphics/entity/roboport/roboport-door-down-2.png", - priority = "medium", - width = 52, - height = 22, - frame_count = 16, - shift = {0.03125, 0.03125} - }, - recharging_animation = - { - filename = "__boblogistics__/graphics/entity/roboport/roboport-recharging.png", - priority = "high", - width = 37, - height = 35, - frame_count = 16, - scale = 1.5, - animation_speed = 0.5 - }, - recharging_light = {intensity = 0.4, size = 5}, - request_to_open_door_timeout = 15, - spawn_and_station_height = 0.25, - radius_visualisation_picture = - { - filename = "__boblogistics__/graphics/entity/roboport/blank.png", - width = 12, - height = 12 - }, - construction_radius_visualisation_picture = - { - filename = "__boblogistics__/graphics/entity/roboport/blank.png", - width = 12, - height = 12 - }, - open_door_trigger_effect = - { - { - type = "play-sound", - sound = { filename = "__base__/sound/roboport-door.ogg", volume = 1.2 } - }, - }, - close_door_trigger_effect = - { - { - type = "play-sound", - sound = { filename = "__base__/sound/roboport-door.ogg", volume = 0.75 } - }, - }, - }, - { - type = "roboport", - name = "bob-robochest-3", - icon = "__boblogistics__/graphics/icons/robochest-3.png", - flags = {"placeable-player", "player-creation"}, - minable = {hardness = 0.2, mining_time = 0.5, result = "bob-robochest-3"}, - fast_replaceable_group = "roboport", - max_health = 1000, - corpse = "medium-remnants", - collision_box = {{-0.7, -0.7}, {0.7, 0.7}}, - selection_box = {{-1, -1}, {1, 1}}, - dying_explosion = "medium-explosion", - energy_source = - { - type = "electric", - usage_priority = "secondary-input", - input_flow_limit = "5000kW", - buffer_capacity = "60MJ" - }, - recharge_minimum = "15MJ", - energy_usage = "5kW", - -- per one charge slot - charging_energy = "4000kW", - logistics_radius = 1, - construction_radius = 1, - charge_approach_distance = 5, - robot_slots_count = 30, - material_slots_count = 15, - stationing_offset = {0, 0}, - charging_offsets = - { - {0, 0}, - }, - base = - { - filename = "__boblogistics__/graphics/entity/roboport/robochest-3.png", - width = 96, - height = 96, - shift = {0, 0} - }, - base_animation = - { - filename = "__boblogistics__/graphics/entity/roboport/blank.png", - priority = "medium", - width = 12, - height = 12, - frame_count = 1, - }, - base_patch = - { - filename = "__boblogistics__/graphics/entity/roboport/blank.png", - width = 1, - height = 1, - frame_count = 1, - }, - door_animation_up = - { - filename = "__boblogistics__/graphics/entity/roboport/roboport-door-up-3.png", - priority = "medium", - width = 52, - height = 20, - frame_count = 16, - shift = {0.03125, -0.625} - }, - door_animation_down = - { - filename = "__boblogistics__/graphics/entity/roboport/roboport-door-down-3.png", - priority = "medium", - width = 52, - height = 22, - frame_count = 16, - shift = {0.03125, 0.03125} - }, - recharging_animation = - { - filename = "__boblogistics__/graphics/entity/roboport/roboport-recharging.png", - priority = "high", - width = 37, - height = 35, - frame_count = 16, - scale = 1.5, - animation_speed = 0.5 - }, - recharging_light = {intensity = 0.4, size = 5}, - request_to_open_door_timeout = 15, - spawn_and_station_height = 0.25, - radius_visualisation_picture = - { - filename = "__boblogistics__/graphics/entity/roboport/blank.png", - width = 12, - height = 12 - }, - construction_radius_visualisation_picture = - { - filename = "__boblogistics__/graphics/entity/roboport/blank.png", - width = 12, - height = 12 - }, - open_door_trigger_effect = - { - { - type = "play-sound", - sound = { filename = "__base__/sound/roboport-door.ogg", volume = 1.2 } - }, - }, - close_door_trigger_effect = - { - { - type = "play-sound", - sound = { filename = "__base__/sound/roboport-door.ogg", volume = 0.75 } - }, - }, - }, - { - type = "roboport", - name = "bob-robochest-4", - icon = "__boblogistics__/graphics/icons/robochest-4.png", - flags = {"placeable-player", "player-creation"}, - minable = {hardness = 0.2, mining_time = 0.5, result = "bob-robochest-4"}, - fast_replaceable_group = "roboport", - max_health = 1250, - corpse = "medium-remnants", - collision_box = {{-0.7, -0.7}, {0.7, 0.7}}, - selection_box = {{-1, -1}, {1, 1}}, - dying_explosion = "medium-explosion", - energy_source = - { - type = "electric", - usage_priority = "secondary-input", - input_flow_limit = "7200kW", - buffer_capacity = "80MJ" - }, - recharge_minimum = "20MJ", - energy_usage = "5kW", - -- per one charge slot - charging_energy = "6000kW", - logistics_radius = 1, - construction_radius = 1, - charge_approach_distance = 5, - robot_slots_count = 40, - material_slots_count = 20, - stationing_offset = {0, 0}, - charging_offsets = - { - {0, 0}, - }, - base = - { - filename = "__boblogistics__/graphics/entity/roboport/robochest-4.png", - width = 96, - height = 96, - shift = {0, 0} - }, - base_animation = - { - filename = "__boblogistics__/graphics/entity/roboport/blank.png", - priority = "medium", - width = 12, - height = 12, - frame_count = 1, - }, - base_patch = - { - filename = "__boblogistics__/graphics/entity/roboport/blank.png", - width = 1, - height = 1, - frame_count = 1, - }, - door_animation_up = - { - filename = "__boblogistics__/graphics/entity/roboport/roboport-door-up-4.png", - priority = "medium", - width = 52, - height = 20, - frame_count = 16, - shift = {0.03125, -0.625} - }, - door_animation_down = - { - filename = "__boblogistics__/graphics/entity/roboport/roboport-door-down-4.png", - priority = "medium", - width = 52, - height = 22, - frame_count = 16, - shift = {0.03125, 0.03125} - }, - recharging_animation = - { - filename = "__boblogistics__/graphics/entity/roboport/roboport-recharging.png", - priority = "high", - width = 37, - height = 35, - frame_count = 16, - scale = 1.5, - animation_speed = 0.5 - }, - recharging_light = {intensity = 0.4, size = 5}, - request_to_open_door_timeout = 15, - spawn_and_station_height = 0.25, - radius_visualisation_picture = - { - filename = "__boblogistics__/graphics/entity/roboport/blank.png", - width = 12, - height = 12 - }, - construction_radius_visualisation_picture = - { - filename = "__boblogistics__/graphics/entity/roboport/blank.png", - width = 12, - height = 12 - }, - open_door_trigger_effect = - { - { - type = "play-sound", - sound = { filename = "__base__/sound/roboport-door.ogg", volume = 1.2 } - }, - }, - close_door_trigger_effect = - { - { - type = "play-sound", - sound = { filename = "__base__/sound/roboport-door.ogg", volume = 0.75 } - }, - }, - }, -} -) - - - -data:extend( -{ - { - type = "roboport", - name = "bob-logistic-zone-expander", - icon = "__boblogistics__/graphics/icons/logistic-zone-expander.png", - flags = {"placeable-player", "player-creation"}, - minable = {hardness = 0.2, mining_time = 0.5, result = "bob-logistic-zone-expander"}, - fast_replaceable_group = "roboport", - max_health = 500, - corpse = "small-remnants", - collision_box = {{-0.7, -0.7}, {0.7, 0.7}}, - selection_box = {{-1, -1}, {1, 1}}, - dying_explosion = "medium-explosion", - energy_source = - { - type = "electric", - usage_priority = "secondary-input", - input_flow_limit = "50kW", - buffer_capacity = "100MJ" - }, - recharge_minimum = "5MJ", - energy_usage = "25kW", - -- per one charge slot - charging_energy = "1000kW", - logistics_radius = 15, - construction_radius = 30, - charge_approach_distance = 5, - robot_slots_count = 0, - material_slots_count = 0, --- stationing_offset = {0, 0}, --- charging_offsets = {{0, -1.7}}, - base = - { - filename = "__boblogistics__/graphics/entity/roboport/logistic-zone-expander.png", - width = 136, - height = 132, - shift = {1, -0.75} - }, - base_animation = - { - filename = "__boblogistics__/graphics/entity/roboport/roboport-chargepad.png", - priority = "medium", - width = 32, - height = 32, - frame_count = 6, - shift = {0, -2.28125}, - animation_speed = 0.1, - }, - base_patch = - { - filename = "__boblogistics__/graphics/entity/roboport/blank.png", - width = 1, - height = 1, - frame_count = 1, - }, - door_animation_up = - { - filename = "__boblogistics__/graphics/entity/roboport/blank.png", - width = 1, - height = 1, - frame_count = 1, - }, - door_animation_down = - { - filename = "__boblogistics__/graphics/entity/roboport/blank.png", - width = 1, - height = 1, - frame_count = 1, - }, - recharging_animation = - { - filename = "__boblogistics__/graphics/entity/roboport/roboport-recharging.png", - priority = "high", - width = 37, - height = 35, - frame_count = 16, - scale = 1.5, - animation_speed = 0.5 - }, - recharging_light = {intensity = 0.4, size = 5}, - request_to_open_door_timeout = 15, - spawn_and_station_height = 1.75, - radius_visualisation_picture = - { - filename = "__boblogistics__/graphics/entity/roboport/roboport-radius-visualization.png", - width = 12, - height = 12 - }, - construction_radius_visualisation_picture = - { - filename = "__boblogistics__/graphics/entity/roboport/roboport-construction-radius-visualization.png", - width = 12, - height = 12 - }, - }, - - { - type = "roboport", - name = "bob-logistic-zone-expander-2", - icon = "__boblogistics__/graphics/icons/logistic-zone-expander-2.png", - flags = {"placeable-player", "player-creation"}, - minable = {hardness = 0.2, mining_time = 0.5, result = "bob-logistic-zone-expander-2"}, - fast_replaceable_group = "roboport", - max_health = 500, - corpse = "small-remnants", - collision_box = {{-0.7, -0.7}, {0.7, 0.7}}, - selection_box = {{-1, -1}, {1, 1}}, - dying_explosion = "medium-explosion", - energy_source = - { - type = "electric", - usage_priority = "secondary-input", - input_flow_limit = "100kW", - buffer_capacity = "200MJ" - }, - recharge_minimum = "10MJ", - energy_usage = "50kW", - -- per one charge slot - charging_energy = "2500kW", - logistics_radius = 30, - construction_radius = 60, - charge_approach_distance = 5, - robot_slots_count = 0, - material_slots_count = 0, --- stationing_offset = {0, 0}, --- charging_offsets = {{0, -1.7}}, - base = - { - filename = "__boblogistics__/graphics/entity/roboport/logistic-zone-expander-2.png", - width = 136, - height = 132, - shift = {1, -0.75} - }, - base_animation = - { - filename = "__boblogistics__/graphics/entity/roboport/roboport-chargepad-2.png", - priority = "medium", - width = 32, - height = 32, - frame_count = 6, - shift = {0, -2.28125}, - animation_speed = 0.2, - }, - base_patch = - { - filename = "__boblogistics__/graphics/entity/roboport/blank.png", - width = 1, - height = 1, - frame_count = 1, - }, - door_animation_up = - { - filename = "__boblogistics__/graphics/entity/roboport/blank.png", - width = 1, - height = 1, - frame_count = 1, - }, - door_animation_down = - { - filename = "__boblogistics__/graphics/entity/roboport/blank.png", - width = 1, - height = 1, - frame_count = 1, - }, - recharging_animation = - { - filename = "__boblogistics__/graphics/entity/roboport/roboport-recharging.png", - priority = "high", - width = 37, - height = 35, - frame_count = 16, - scale = 1.5, - animation_speed = 0.5 - }, - recharging_light = {intensity = 0.4, size = 5}, - request_to_open_door_timeout = 15, - spawn_and_station_height = 1.75, - radius_visualisation_picture = - { - filename = "__boblogistics__/graphics/entity/roboport/roboport-radius-visualization.png", - width = 12, - height = 12 - }, - construction_radius_visualisation_picture = - { - filename = "__boblogistics__/graphics/entity/roboport/roboport-construction-radius-visualization.png", - width = 12, - height = 12 - }, - }, - - { - type = "roboport", - name = "bob-logistic-zone-expander-3", - icon = "__boblogistics__/graphics/icons/logistic-zone-expander-3.png", - flags = {"placeable-player", "player-creation"}, - minable = {hardness = 0.2, mining_time = 0.5, result = "bob-logistic-zone-expander-3"}, - fast_replaceable_group = "roboport", - max_health = 500, - corpse = "small-remnants", - collision_box = {{-0.7, -0.7}, {0.7, 0.7}}, - selection_box = {{-1, -1}, {1, 1}}, - dying_explosion = "medium-explosion", - energy_source = - { - type = "electric", - usage_priority = "secondary-input", - input_flow_limit = "150kW", - buffer_capacity = "300MJ" - }, - recharge_minimum = "15MJ", - energy_usage = "75kW", - -- per one charge slot - charging_energy = "4000kW", - logistics_radius = 45, - construction_radius = 90, - charge_approach_distance = 5, - robot_slots_count = 0, - material_slots_count = 0, --- stationing_offset = {0, 0}, --- charging_offsets = {{0, -1.7}}, - base = - { - filename = "__boblogistics__/graphics/entity/roboport/logistic-zone-expander-3.png", - width = 136, - height = 132, - shift = {1, -0.75} - }, - base_animation = - { - filename = "__boblogistics__/graphics/entity/roboport/roboport-chargepad-3.png", - priority = "medium", - width = 32, - height = 32, - frame_count = 6, - shift = {0, -2.28125}, - animation_speed = 0.3, - }, - base_patch = - { - filename = "__boblogistics__/graphics/entity/roboport/blank.png", - width = 1, - height = 1, - frame_count = 1, - }, - door_animation_up = - { - filename = "__boblogistics__/graphics/entity/roboport/blank.png", - width = 1, - height = 1, - frame_count = 1, - }, - door_animation_down = - { - filename = "__boblogistics__/graphics/entity/roboport/blank.png", - width = 1, - height = 1, - frame_count = 1, - }, - recharging_animation = - { - filename = "__boblogistics__/graphics/entity/roboport/roboport-recharging.png", - priority = "high", - width = 37, - height = 35, - frame_count = 16, - scale = 1.5, - animation_speed = 0.5 - }, - recharging_light = {intensity = 0.4, size = 5}, - request_to_open_door_timeout = 15, - spawn_and_station_height = 1.75, - radius_visualisation_picture = - { - filename = "__boblogistics__/graphics/entity/roboport/roboport-radius-visualization.png", - width = 12, - height = 12 - }, - construction_radius_visualisation_picture = - { - filename = "__boblogistics__/graphics/entity/roboport/roboport-construction-radius-visualization.png", - width = 12, - height = 12 - }, - }, - - { - type = "roboport", - name = "bob-logistic-zone-expander-4", - icon = "__boblogistics__/graphics/icons/logistic-zone-expander-4.png", - flags = {"placeable-player", "player-creation"}, - minable = {hardness = 0.2, mining_time = 0.5, result = "bob-logistic-zone-expander-4"}, - fast_replaceable_group = "roboport", - max_health = 500, - corpse = "small-remnants", - collision_box = {{-0.7, -0.7}, {0.7, 0.7}}, - selection_box = {{-1, -1}, {1, 1}}, - dying_explosion = "medium-explosion", - energy_source = - { - type = "electric", - usage_priority = "secondary-input", - input_flow_limit = "200kW", - buffer_capacity = "400MJ" - }, - recharge_minimum = "20MJ", - energy_usage = "100kW", - -- per one charge slot - charging_energy = "6000kW", - logistics_radius = 60, - construction_radius = 120, - charge_approach_distance = 5, - robot_slots_count = 0, - material_slots_count = 0, --- stationing_offset = {0, 0}, --- charging_offsets = {{0, -1.7}}, - base = - { - filename = "__boblogistics__/graphics/entity/roboport/logistic-zone-expander-4.png", - width = 136, - height = 132, - shift = {1, -0.75} - }, - base_animation = - { - filename = "__boblogistics__/graphics/entity/roboport/roboport-chargepad-4.png", - priority = "medium", - width = 32, - height = 32, - frame_count = 6, - shift = {0, -2.28125}, - animation_speed = 0.4, - }, - base_patch = - { - filename = "__boblogistics__/graphics/entity/roboport/blank.png", - width = 1, - height = 1, - frame_count = 1, - }, - door_animation_up = - { - filename = "__boblogistics__/graphics/entity/roboport/blank.png", - width = 1, - height = 1, - frame_count = 1, - }, - door_animation_down = - { - filename = "__boblogistics__/graphics/entity/roboport/blank.png", - width = 1, - height = 1, - frame_count = 1, - }, - recharging_animation = - { - filename = "__boblogistics__/graphics/entity/roboport/roboport-recharging.png", - priority = "high", - width = 37, - height = 35, - frame_count = 16, - scale = 1.5, - animation_speed = 0.5 - }, - recharging_light = {intensity = 0.4, size = 5}, - request_to_open_door_timeout = 15, - spawn_and_station_height = 1.75, - radius_visualisation_picture = - { - filename = "__boblogistics__/graphics/entity/roboport/roboport-radius-visualization.png", - width = 12, - height = 12 - }, - construction_radius_visualisation_picture = - { - filename = "__boblogistics__/graphics/entity/roboport/roboport-construction-radius-visualization.png", - width = 12, - height = 12 - }, - }, -} -) - - -data:extend( -{ - { - type = "roboport", - name = "bob-robo-charge-port", - icon = "__boblogistics__/graphics/icons/robo-charge-port.png", - flags = {"placeable-player", "player-creation"}, - minable = {hardness = 0.2, mining_time = 0.5, result = "bob-robo-charge-port"}, - fast_replaceable_group = "roboport", - max_health = 500, - corpse = "medium-remnants", - collision_box = {{-0.7, -0.7}, {0.7, 0.7}}, - selection_box = {{-1, -1}, {1, 1}}, - dying_explosion = "medium-explosion", - energy_source = - { - type = "electric", - usage_priority = "secondary-input", - input_flow_limit = "6250kW", - buffer_capacity = "100MJ" - }, - recharge_minimum = "20MJ", - energy_usage = "0kW", - -- per one charge slot - charging_energy = "1250kW", - logistics_radius = 1, - construction_radius = 1, - charge_approach_distance = 5, - robot_slots_count = 0, - material_slots_count = 0, - stationing_offset = {0, 0}, - charging_offsets = - { - {-0.5, -0.5}, {0.5, -0.5}, {-0.5, 0.5}, {0.5, 0.5}, - }, - base = - { - filename = "__boblogistics__/graphics/entity/roboport/blank.png", - width = 1, - height = 1, - }, - base_animation = - { - layers = - { - { - filename = "__boblogistics__/graphics/entity/roboport/roboport-chargepad.png", - priority = "medium", - width = 32, - height = 32, - frame_count = 6, - shift = {-0.5, -0.5}, - animation_speed = 0.1, - }, - { - filename = "__boblogistics__/graphics/entity/roboport/roboport-chargepad.png", - priority = "medium", - width = 32, - height = 32, - frame_count = 6, - shift = {0.5, -0.5}, - animation_speed = 0.1, - }, - { - filename = "__boblogistics__/graphics/entity/roboport/roboport-chargepad.png", - priority = "medium", - width = 32, - height = 32, - frame_count = 6, - shift = {-0.5, 0.5}, - animation_speed = 0.1, - }, - { - filename = "__boblogistics__/graphics/entity/roboport/roboport-chargepad.png", - priority = "medium", - width = 32, - height = 32, - frame_count = 6, - shift = {0.5, 0.5}, - animation_speed = 0.1, - }, - } - }, - base_patch = - { - filename = "__boblogistics__/graphics/entity/roboport/blank.png", - width = 1, - height = 1, - frame_count = 1, - }, - door_animation_up = - { - filename = "__boblogistics__/graphics/entity/roboport/blank.png", - width = 1, - height = 1, - frame_count = 1, - }, - door_animation_down = - { - filename = "__boblogistics__/graphics/entity/roboport/blank.png", - width = 1, - height = 1, - frame_count = 1, - }, - recharging_animation = - { - filename = "__boblogistics__/graphics/entity/roboport/roboport-recharging.png", - priority = "high", - width = 37, - height = 35, - frame_count = 16, - scale = 1.5, - animation_speed = 0.5 - }, - recharging_light = {intensity = 0.4, size = 5}, - request_to_open_door_timeout = 15, - spawn_and_station_height = 0.33, - radius_visualisation_picture = - { - filename = "__boblogistics__/graphics/entity/roboport/blank.png", - width = 12, - height = 12 - }, - construction_radius_visualisation_picture = - { - filename = "__boblogistics__/graphics/entity/roboport/blank.png", - width = 12, - height = 12 - }, - }, - - { - type = "roboport", - name = "bob-robo-charge-port-2", - icon = "__boblogistics__/graphics/icons/robo-charge-port-2.png", - flags = {"placeable-player", "player-creation"}, - minable = {hardness = 0.2, mining_time = 0.5, result = "bob-robo-charge-port-2"}, - fast_replaceable_group = "roboport", - max_health = 750, - corpse = "medium-remnants", - collision_box = {{-0.7, -0.7}, {0.7, 0.7}}, - selection_box = {{-1, -1}, {1, 1}}, - dying_explosion = "medium-explosion", - energy_source = - { - type = "electric", - usage_priority = "secondary-input", - input_flow_limit = "15625kW", - buffer_capacity = "200MJ" - }, - recharge_minimum = "40MJ", - energy_usage = "0kW", - -- per one charge slot - charging_energy = "3125kW", - logistics_radius = 1, - construction_radius = 1, - charge_approach_distance = 5, - robot_slots_count = 0, - material_slots_count = 0, - stationing_offset = {0, 0}, - charging_offsets = - { - {-0.5, -0.5}, {0.5, -0.5}, {-0.5, 0.5}, {0.5, 0.5}, - }, - base = - { - filename = "__boblogistics__/graphics/entity/roboport/blank.png", - width = 1, - height = 1, - }, - base_animation = - { - layers = - { - { - filename = "__boblogistics__/graphics/entity/roboport/roboport-chargepad-2.png", - priority = "medium", - width = 32, - height = 32, - frame_count = 6, - shift = {-0.5, -0.5}, - animation_speed = 0.2, - }, - { - filename = "__boblogistics__/graphics/entity/roboport/roboport-chargepad-2.png", - priority = "medium", - width = 32, - height = 32, - frame_count = 6, - shift = {0.5, -0.5}, - animation_speed = 0.2, - }, - { - filename = "__boblogistics__/graphics/entity/roboport/roboport-chargepad-2.png", - priority = "medium", - width = 32, - height = 32, - frame_count = 6, - shift = {-0.5, 0.5}, - animation_speed = 0.2, - }, - { - filename = "__boblogistics__/graphics/entity/roboport/roboport-chargepad-2.png", - priority = "medium", - width = 32, - height = 32, - frame_count = 6, - shift = {0.5, 0.5}, - animation_speed = 0.2, - }, - } - }, - base_patch = - { - filename = "__boblogistics__/graphics/entity/roboport/blank.png", - width = 1, - height = 1, - frame_count = 1, - }, - door_animation_up = - { - filename = "__boblogistics__/graphics/entity/roboport/blank.png", - width = 1, - height = 1, - frame_count = 1, - }, - door_animation_down = - { - filename = "__boblogistics__/graphics/entity/roboport/blank.png", - width = 1, - height = 1, - frame_count = 1, - }, - recharging_animation = - { - filename = "__boblogistics__/graphics/entity/roboport/roboport-recharging.png", - priority = "high", - width = 37, - height = 35, - frame_count = 16, - scale = 1.5, - animation_speed = 0.5 - }, - recharging_light = {intensity = 0.4, size = 5}, - request_to_open_door_timeout = 15, - spawn_and_station_height = 0.33, - radius_visualisation_picture = - { - filename = "__boblogistics__/graphics/entity/roboport/blank.png", - width = 12, - height = 12 - }, - construction_radius_visualisation_picture = - { - filename = "__boblogistics__/graphics/entity/roboport/blank.png", - width = 12, - height = 12 - }, - }, - - { - type = "roboport", - name = "bob-robo-charge-port-3", - icon = "__boblogistics__/graphics/icons/robo-charge-port-3.png", - flags = {"placeable-player", "player-creation"}, - minable = {hardness = 0.2, mining_time = 0.5, result = "bob-robo-charge-port-3"}, - fast_replaceable_group = "roboport", - max_health = 1000, - corpse = "medium-remnants", - collision_box = {{-0.7, -0.7}, {0.7, 0.7}}, - selection_box = {{-1, -1}, {1, 1}}, - dying_explosion = "medium-explosion", - energy_source = - { - type = "electric", - usage_priority = "secondary-input", - input_flow_limit = "25000kW", - buffer_capacity = "300MJ" - }, - recharge_minimum = "60MJ", - energy_usage = "0kW", - -- per one charge slot - charging_energy = "5000kW", - logistics_radius = 1, - construction_radius = 1, - charge_approach_distance = 5, - robot_slots_count = 0, - material_slots_count = 0, - stationing_offset = {0, 0}, - charging_offsets = - { - {-0.5, -0.5}, {0.5, -0.5}, {-0.5, 0.5}, {0.5, 0.5}, - }, - base = - { - filename = "__boblogistics__/graphics/entity/roboport/blank.png", - width = 1, - height = 1, - }, - base_animation = - { - layers = - { - { - filename = "__boblogistics__/graphics/entity/roboport/roboport-chargepad-3.png", - priority = "medium", - width = 32, - height = 32, - frame_count = 6, - shift = {-0.5, -0.5}, - animation_speed = 0.3, - }, - { - filename = "__boblogistics__/graphics/entity/roboport/roboport-chargepad-3.png", - priority = "medium", - width = 32, - height = 32, - frame_count = 6, - shift = {0.5, -0.5}, - animation_speed = 0.3, - }, - { - filename = "__boblogistics__/graphics/entity/roboport/roboport-chargepad-3.png", - priority = "medium", - width = 32, - height = 32, - frame_count = 6, - shift = {-0.5, 0.5}, - animation_speed = 0.3, - }, - { - filename = "__boblogistics__/graphics/entity/roboport/roboport-chargepad-3.png", - priority = "medium", - width = 32, - height = 32, - frame_count = 6, - shift = {0.5, 0.5}, - animation_speed = 0.3, - }, - } - }, - base_patch = - { - filename = "__boblogistics__/graphics/entity/roboport/blank.png", - width = 1, - height = 1, - frame_count = 1, - }, - door_animation_up = - { - filename = "__boblogistics__/graphics/entity/roboport/blank.png", - width = 1, - height = 1, - frame_count = 1, - }, - door_animation_down = - { - filename = "__boblogistics__/graphics/entity/roboport/blank.png", - width = 1, - height = 1, - frame_count = 1, - }, - recharging_animation = - { - filename = "__boblogistics__/graphics/entity/roboport/roboport-recharging.png", - priority = "high", - width = 37, - height = 35, - frame_count = 16, - scale = 1.5, - animation_speed = 0.5 - }, - recharging_light = {intensity = 0.4, size = 5}, - request_to_open_door_timeout = 15, - spawn_and_station_height = 0.33, - radius_visualisation_picture = - { - filename = "__boblogistics__/graphics/entity/roboport/blank.png", - width = 12, - height = 12 - }, - construction_radius_visualisation_picture = - { - filename = "__boblogistics__/graphics/entity/roboport/blank.png", - width = 12, - height = 12 - }, - }, - - { - type = "roboport", - name = "bob-robo-charge-port-4", - icon = "__boblogistics__/graphics/icons/robo-charge-port-4.png", - flags = {"placeable-player", "player-creation"}, - minable = {hardness = 0.2, mining_time = 0.5, result = "bob-robo-charge-port-4"}, - fast_replaceable_group = "roboport", - max_health = 1250, - corpse = "medium-remnants", - collision_box = {{-0.7, -0.7}, {0.7, 0.7}}, - selection_box = {{-1, -1}, {1, 1}}, - dying_explosion = "medium-explosion", - energy_source = - { - type = "electric", - usage_priority = "secondary-input", - input_flow_limit = "37500kW", - buffer_capacity = "400MJ" - }, - recharge_minimum = "80MJ", - energy_usage = "0kW", - -- per one charge slot - charging_energy = "7500kW", - logistics_radius = 1, - construction_radius = 1, - charge_approach_distance = 5, - robot_slots_count = 0, - material_slots_count = 0, - stationing_offset = {0, 0}, - charging_offsets = - { - {-0.5, -0.5}, {0.5, -0.5}, {-0.5, 0.5}, {0.5, 0.5}, - }, - base = - { - filename = "__boblogistics__/graphics/entity/roboport/blank.png", - width = 1, - height = 1, - }, - base_animation = - { - layers = - { - { - filename = "__boblogistics__/graphics/entity/roboport/roboport-chargepad-4.png", - priority = "medium", - width = 32, - height = 32, - frame_count = 6, - shift = {-0.5, -0.5}, - animation_speed = 0.4, - }, - { - filename = "__boblogistics__/graphics/entity/roboport/roboport-chargepad-4.png", - priority = "medium", - width = 32, - height = 32, - frame_count = 6, - shift = {0.5, -0.5}, - animation_speed = 0.4, - }, - { - filename = "__boblogistics__/graphics/entity/roboport/roboport-chargepad-4.png", - priority = "medium", - width = 32, - height = 32, - frame_count = 6, - shift = {-0.5, 0.5}, - animation_speed = 0.4, - }, - { - filename = "__boblogistics__/graphics/entity/roboport/roboport-chargepad-4.png", - priority = "medium", - width = 32, - height = 32, - frame_count = 6, - shift = {0.5, 0.5}, - animation_speed = 0.4, - }, - } - }, - base_patch = - { - filename = "__boblogistics__/graphics/entity/roboport/blank.png", - width = 1, - height = 1, - frame_count = 1, - }, - door_animation_up = - { - filename = "__boblogistics__/graphics/entity/roboport/blank.png", - width = 1, - height = 1, - frame_count = 1, - }, - door_animation_down = - { - filename = "__boblogistics__/graphics/entity/roboport/blank.png", - width = 1, - height = 1, - frame_count = 1, - }, - recharging_animation = - { - filename = "__boblogistics__/graphics/entity/roboport/roboport-recharging.png", - priority = "high", - width = 37, - height = 35, - frame_count = 16, - scale = 1.5, - animation_speed = 0.5 - }, - recharging_light = {intensity = 0.4, size = 5}, - request_to_open_door_timeout = 15, - spawn_and_station_height = 0.33, - radius_visualisation_picture = - { - filename = "__boblogistics__/graphics/entity/roboport/blank.png", - width = 12, - height = 12 - }, - construction_radius_visualisation_picture = - { - filename = "__boblogistics__/graphics/entity/roboport/blank.png", - width = 12, - height = 12 - }, - }, - - - { - type = "roboport", - name = "bob-robo-charge-port-large", - icon = "__boblogistics__/graphics/icons/robo-charge-port-large.png", - flags = {"placeable-player", "player-creation"}, - minable = {hardness = 0.2, mining_time = 0.5, result = "bob-robo-charge-port-large"}, - fast_replaceable_group = "roboport", - max_health = 500, - corpse = "big-remnants", - collision_box = {{-1.2, -1.2}, {1.2, 1.2}}, - selection_box = {{-1.5, -1.5}, {1.5, 1.5}}, - dying_explosion = "medium-explosion", - energy_source = - { - type = "electric", - usage_priority = "secondary-input", - input_flow_limit = "12500kW", - buffer_capacity = "100MJ" - }, - recharge_minimum = "20MJ", - energy_usage = "0kW", - -- per one charge slot - charging_energy = "1250kW", - logistics_radius = 1, - construction_radius = 1, - charge_approach_distance = 5, - robot_slots_count = 0, - material_slots_count = 0, - stationing_offset = {0, 0}, - charging_offsets = - { - {-1, 1}, {0, 1}, {1, 1}, - {-1, 0}, {0, 0}, {1, 0}, - {-1, -1}, {0, -1}, {1, -1}, - }, - base = - { - filename = "__boblogistics__/graphics/entity/roboport/blank.png", - width = 1, - height = 1, - }, - base_animation = - { - layers = - { - { - filename = "__boblogistics__/graphics/entity/roboport/roboport-chargepad.png", - priority = "medium", - width = 32, - height = 32, - frame_count = 6, - animation_speed = 0.1, - shift = {-1, 1}, - }, - { - filename = "__boblogistics__/graphics/entity/roboport/roboport-chargepad.png", - priority = "medium", - width = 32, - height = 32, - frame_count = 6, - animation_speed = 0.1, - shift = {0, 1}, - }, - { - filename = "__boblogistics__/graphics/entity/roboport/roboport-chargepad.png", - priority = "medium", - width = 32, - height = 32, - frame_count = 6, - animation_speed = 0.1, - shift = {1, 1}, - }, - { - filename = "__boblogistics__/graphics/entity/roboport/roboport-chargepad.png", - priority = "medium", - width = 32, - height = 32, - frame_count = 6, - animation_speed = 0.1, - shift = {-1, 0}, - }, - { - filename = "__boblogistics__/graphics/entity/roboport/roboport-chargepad.png", - priority = "medium", - width = 32, - height = 32, - frame_count = 6, - animation_speed = 0.1, - shift = {0, 0}, - }, - { - filename = "__boblogistics__/graphics/entity/roboport/roboport-chargepad.png", - priority = "medium", - width = 32, - height = 32, - frame_count = 6, - animation_speed = 0.1, - shift = {1, 0}, - }, - { - filename = "__boblogistics__/graphics/entity/roboport/roboport-chargepad.png", - priority = "medium", - width = 32, - height = 32, - frame_count = 6, - animation_speed = 0.1, - shift = {-1, -1}, - }, - { - filename = "__boblogistics__/graphics/entity/roboport/roboport-chargepad.png", - priority = "medium", - width = 32, - height = 32, - frame_count = 6, - animation_speed = 0.1, - shift = {0, -1}, - }, - { - filename = "__boblogistics__/graphics/entity/roboport/roboport-chargepad.png", - priority = "medium", - width = 32, - height = 32, - frame_count = 6, - animation_speed = 0.1, - shift = {1, -1}, - }, - } - }, - base_patch = - { - filename = "__boblogistics__/graphics/entity/roboport/blank.png", - width = 1, - height = 1, - frame_count = 1, - }, - door_animation_up = - { - filename = "__boblogistics__/graphics/entity/roboport/blank.png", - width = 1, - height = 1, - frame_count = 1, - }, - door_animation_down = - { - filename = "__boblogistics__/graphics/entity/roboport/blank.png", - width = 1, - height = 1, - frame_count = 1, - }, - recharging_animation = - { - filename = "__boblogistics__/graphics/entity/roboport/roboport-recharging.png", - priority = "high", - width = 37, - height = 35, - frame_count = 16, - scale = 1.5, - animation_speed = 0.5 - }, - recharging_light = {intensity = 0.4, size = 5}, - request_to_open_door_timeout = 15, - spawn_and_station_height = 0.33, - radius_visualisation_picture = - { - filename = "__boblogistics__/graphics/entity/roboport/blank.png", - width = 12, - height = 12 - }, - construction_radius_visualisation_picture = - { - filename = "__boblogistics__/graphics/entity/roboport/blank.png", - width = 12, - height = 12 - }, - }, - - { - type = "roboport", - name = "bob-robo-charge-port-large-2", - icon = "__boblogistics__/graphics/icons/robo-charge-port-large-2.png", - flags = {"placeable-player", "player-creation"}, - minable = {hardness = 0.2, mining_time = 0.5, result = "bob-robo-charge-port-large-2"}, - fast_replaceable_group = "roboport", - max_health = 750, - corpse = "big-remnants", - collision_box = {{-1.2, -1.2}, {1.2, 1.2}}, - selection_box = {{-1.5, -1.5}, {1.5, 1.5}}, - dying_explosion = "medium-explosion", - energy_source = - { - type = "electric", - usage_priority = "secondary-input", - input_flow_limit = "31250kW", - buffer_capacity = "200MJ" - }, - recharge_minimum = "40MJ", - energy_usage = "0kW", - -- per one charge slot - charging_energy = "3125kW", - logistics_radius = 1, - construction_radius = 1, - charge_approach_distance = 5, - robot_slots_count = 0, - material_slots_count = 0, - stationing_offset = {0, 0}, - charging_offsets = - { - {-1, 1}, {0, 1}, {1, 1}, - {-1, 0}, {0, 0}, {1, 0}, - {-1, -1}, {0, -1}, {1, -1}, - }, - base = - { - filename = "__boblogistics__/graphics/entity/roboport/blank.png", - width = 1, - height = 1, - }, - base_animation = - { - layers = - { - { - filename = "__boblogistics__/graphics/entity/roboport/roboport-chargepad-2.png", - priority = "medium", - width = 32, - height = 32, - frame_count = 6, - animation_speed = 0.2, - shift = {-1, 1}, - }, - { - filename = "__boblogistics__/graphics/entity/roboport/roboport-chargepad-2.png", - priority = "medium", - width = 32, - height = 32, - frame_count = 6, - animation_speed = 0.2, - shift = {0, 1}, - }, - { - filename = "__boblogistics__/graphics/entity/roboport/roboport-chargepad-2.png", - priority = "medium", - width = 32, - height = 32, - frame_count = 6, - animation_speed = 0.2, - shift = {1, 1}, - }, - { - filename = "__boblogistics__/graphics/entity/roboport/roboport-chargepad-2.png", - priority = "medium", - width = 32, - height = 32, - frame_count = 6, - animation_speed = 0.2, - shift = {-1, 0}, - }, - { - filename = "__boblogistics__/graphics/entity/roboport/roboport-chargepad-2.png", - priority = "medium", - width = 32, - height = 32, - frame_count = 6, - animation_speed = 0.2, - shift = {0, 0}, - }, - { - filename = "__boblogistics__/graphics/entity/roboport/roboport-chargepad-2.png", - priority = "medium", - width = 32, - height = 32, - frame_count = 6, - animation_speed = 0.2, - shift = {1, 0}, - }, - { - filename = "__boblogistics__/graphics/entity/roboport/roboport-chargepad-2.png", - priority = "medium", - width = 32, - height = 32, - frame_count = 6, - animation_speed = 0.2, - shift = {-1, -1}, - }, - { - filename = "__boblogistics__/graphics/entity/roboport/roboport-chargepad-2.png", - priority = "medium", - width = 32, - height = 32, - frame_count = 6, - animation_speed = 0.2, - shift = {0, -1}, - }, - { - filename = "__boblogistics__/graphics/entity/roboport/roboport-chargepad-2.png", - priority = "medium", - width = 32, - height = 32, - frame_count = 6, - animation_speed = 0.2, - shift = {1, -1}, - }, - } - }, - base_patch = - { - filename = "__boblogistics__/graphics/entity/roboport/blank.png", - width = 1, - height = 1, - frame_count = 1, - }, - door_animation_up = - { - filename = "__boblogistics__/graphics/entity/roboport/blank.png", - width = 1, - height = 1, - frame_count = 1, - }, - door_animation_down = - { - filename = "__boblogistics__/graphics/entity/roboport/blank.png", - width = 1, - height = 1, - frame_count = 1, - }, - recharging_animation = - { - filename = "__boblogistics__/graphics/entity/roboport/roboport-recharging.png", - priority = "high", - width = 37, - height = 35, - frame_count = 16, - scale = 1.5, - animation_speed = 0.5 - }, - recharging_light = {intensity = 0.4, size = 5}, - request_to_open_door_timeout = 15, - spawn_and_station_height = 0.33, - radius_visualisation_picture = - { - filename = "__boblogistics__/graphics/entity/roboport/blank.png", - width = 12, - height = 12 - }, - construction_radius_visualisation_picture = - { - filename = "__boblogistics__/graphics/entity/roboport/blank.png", - width = 12, - height = 12 - }, - }, - - { - type = "roboport", - name = "bob-robo-charge-port-large-3", - icon = "__boblogistics__/graphics/icons/robo-charge-port-large-3.png", - flags = {"placeable-player", "player-creation"}, - minable = {hardness = 0.2, mining_time = 0.5, result = "bob-robo-charge-port-large-3"}, - fast_replaceable_group = "roboport", - max_health = 1000, - corpse = "big-remnants", - collision_box = {{-1.2, -1.2}, {1.2, 1.2}}, - selection_box = {{-1.5, -1.5}, {1.5, 1.5}}, - dying_explosion = "medium-explosion", - energy_source = - { - type = "electric", - usage_priority = "secondary-input", - input_flow_limit = "50000kW", - buffer_capacity = "300MJ" - }, - recharge_minimum = "60MJ", - energy_usage = "0kW", - -- per one charge slot - charging_energy = "5000kW", - logistics_radius = 1, - construction_radius = 1, - charge_approach_distance = 5, - robot_slots_count = 0, - material_slots_count = 0, - stationing_offset = {0, 0}, - charging_offsets = - { - {-1, 1}, {0, 1}, {1, 1}, - {-1, 0}, {0, 0}, {1, 0}, - {-1, -1}, {0, -1}, {1, -1}, - }, - base = - { - filename = "__boblogistics__/graphics/entity/roboport/blank.png", - width = 1, - height = 1, - }, - base_animation = - { - layers = - { - { - filename = "__boblogistics__/graphics/entity/roboport/roboport-chargepad-3.png", - priority = "medium", - width = 32, - height = 32, - frame_count = 6, - animation_speed = 0.3, - shift = {-1, 1}, - }, - { - filename = "__boblogistics__/graphics/entity/roboport/roboport-chargepad-3.png", - priority = "medium", - width = 32, - height = 32, - frame_count = 6, - animation_speed = 0.3, - shift = {0, 1}, - }, - { - filename = "__boblogistics__/graphics/entity/roboport/roboport-chargepad-3.png", - priority = "medium", - width = 32, - height = 32, - frame_count = 6, - animation_speed = 0.3, - shift = {1, 1}, - }, - { - filename = "__boblogistics__/graphics/entity/roboport/roboport-chargepad-3.png", - priority = "medium", - width = 32, - height = 32, - frame_count = 6, - animation_speed = 0.3, - shift = {-1, 0}, - }, - { - filename = "__boblogistics__/graphics/entity/roboport/roboport-chargepad-3.png", - priority = "medium", - width = 32, - height = 32, - frame_count = 6, - animation_speed = 0.3, - shift = {0, 0}, - }, - { - filename = "__boblogistics__/graphics/entity/roboport/roboport-chargepad-3.png", - priority = "medium", - width = 32, - height = 32, - frame_count = 6, - animation_speed = 0.3, - shift = {1, 0}, - }, - { - filename = "__boblogistics__/graphics/entity/roboport/roboport-chargepad-3.png", - priority = "medium", - width = 32, - height = 32, - frame_count = 6, - animation_speed = 0.3, - shift = {-1, -1}, - }, - { - filename = "__boblogistics__/graphics/entity/roboport/roboport-chargepad-3.png", - priority = "medium", - width = 32, - height = 32, - frame_count = 6, - animation_speed = 0.3, - shift = {0, -1}, - }, - { - filename = "__boblogistics__/graphics/entity/roboport/roboport-chargepad-3.png", - priority = "medium", - width = 32, - height = 32, - frame_count = 6, - animation_speed = 0.3, - shift = {1, -1}, - }, - } - }, - base_patch = - { - filename = "__boblogistics__/graphics/entity/roboport/blank.png", - width = 1, - height = 1, - frame_count = 1, - }, - door_animation_up = - { - filename = "__boblogistics__/graphics/entity/roboport/blank.png", - width = 1, - height = 1, - frame_count = 1, - }, - door_animation_down = - { - filename = "__boblogistics__/graphics/entity/roboport/blank.png", - width = 1, - height = 1, - frame_count = 1, - }, - recharging_animation = - { - filename = "__boblogistics__/graphics/entity/roboport/roboport-recharging.png", - priority = "high", - width = 37, - height = 35, - frame_count = 16, - scale = 1.5, - animation_speed = 0.5 - }, - recharging_light = {intensity = 0.4, size = 5}, - request_to_open_door_timeout = 15, - spawn_and_station_height = 0.33, - radius_visualisation_picture = - { - filename = "__boblogistics__/graphics/entity/roboport/blank.png", - width = 12, - height = 12 - }, - construction_radius_visualisation_picture = - { - filename = "__boblogistics__/graphics/entity/roboport/blank.png", - width = 12, - height = 12 - }, - }, - - { - type = "roboport", - name = "bob-robo-charge-port-large-4", - icon = "__boblogistics__/graphics/icons/robo-charge-port-large-4.png", - flags = {"placeable-player", "player-creation"}, - minable = {hardness = 0.2, mining_time = 0.5, result = "bob-robo-charge-port-large-4"}, - fast_replaceable_group = "roboport", - max_health = 1250, - corpse = "big-remnants", - collision_box = {{-1.2, -1.2}, {1.2, 1.2}}, - selection_box = {{-1.5, -1.5}, {1.5, 1.5}}, - dying_explosion = "medium-explosion", - energy_source = - { - type = "electric", - usage_priority = "secondary-input", - input_flow_limit = "75000kW", - buffer_capacity = "400MJ" - }, - recharge_minimum = "80MJ", - energy_usage = "0kW", - -- per one charge slot - charging_energy = "7500kW", - logistics_radius = 1, - construction_radius = 1, - charge_approach_distance = 5, - robot_slots_count = 0, - material_slots_count = 0, - stationing_offset = {0, 0}, - charging_offsets = - { - {-1, 1}, {0, 1}, {1, 1}, - {-1, 0}, {0, 0}, {1, 0}, - {-1, -1}, {0, -1}, {1, -1}, - }, - base = - { - filename = "__boblogistics__/graphics/entity/roboport/blank.png", - width = 1, - height = 1, - }, - base_animation = - { - layers = - { - { - filename = "__boblogistics__/graphics/entity/roboport/roboport-chargepad-4.png", - priority = "medium", - width = 32, - height = 32, - frame_count = 6, - animation_speed = 0.4, - shift = {-1, 1}, - }, - { - filename = "__boblogistics__/graphics/entity/roboport/roboport-chargepad-4.png", - priority = "medium", - width = 32, - height = 32, - frame_count = 6, - animation_speed = 0.4, - shift = {0, 1}, - }, - { - filename = "__boblogistics__/graphics/entity/roboport/roboport-chargepad-4.png", - priority = "medium", - width = 32, - height = 32, - frame_count = 6, - animation_speed = 0.4, - shift = {1, 1}, - }, - { - filename = "__boblogistics__/graphics/entity/roboport/roboport-chargepad-4.png", - priority = "medium", - width = 32, - height = 32, - frame_count = 6, - animation_speed = 0.4, - shift = {-1, 0}, - }, - { - filename = "__boblogistics__/graphics/entity/roboport/roboport-chargepad-4.png", - priority = "medium", - width = 32, - height = 32, - frame_count = 6, - animation_speed = 0.4, - shift = {0, 0}, - }, - { - filename = "__boblogistics__/graphics/entity/roboport/roboport-chargepad-4.png", - priority = "medium", - width = 32, - height = 32, - frame_count = 6, - animation_speed = 0.4, - shift = {1, 0}, - }, - { - filename = "__boblogistics__/graphics/entity/roboport/roboport-chargepad-4.png", - priority = "medium", - width = 32, - height = 32, - frame_count = 6, - animation_speed = 0.4, - shift = {-1, -1}, - }, - { - filename = "__boblogistics__/graphics/entity/roboport/roboport-chargepad-4.png", - priority = "medium", - width = 32, - height = 32, - frame_count = 6, - animation_speed = 0.4, - shift = {0, -1}, - }, - { - filename = "__boblogistics__/graphics/entity/roboport/roboport-chargepad-4.png", - priority = "medium", - width = 32, - height = 32, - frame_count = 6, - animation_speed = 0.4, - shift = {1, -1}, - }, - } - }, - base_patch = - { - filename = "__boblogistics__/graphics/entity/roboport/blank.png", - width = 1, - height = 1, - frame_count = 1, - }, - door_animation_up = - { - filename = "__boblogistics__/graphics/entity/roboport/blank.png", - width = 1, - height = 1, - frame_count = 1, - }, - door_animation_down = - { - filename = "__boblogistics__/graphics/entity/roboport/blank.png", - width = 1, - height = 1, - frame_count = 1, - }, - recharging_animation = - { - filename = "__boblogistics__/graphics/entity/roboport/roboport-recharging.png", - priority = "high", - width = 37, - height = 35, - frame_count = 16, - scale = 1.5, - animation_speed = 0.5 - }, - recharging_light = {intensity = 0.4, size = 5}, - request_to_open_door_timeout = 15, - spawn_and_station_height = 0.33, - radius_visualisation_picture = - { - filename = "__boblogistics__/graphics/entity/roboport/blank.png", - width = 12, - height = 12 - }, - construction_radius_visualisation_picture = - { - filename = "__boblogistics__/graphics/entity/roboport/blank.png", - width = 12, - height = 12 - }, - }, -} -) - - - -data:extend( -{ - { - type = "roboport", - name = "bob-logistic-zone-interface", - icon = "__boblogistics__/graphics/icons/logistic-zone-interface.png", - flags = {"placeable-player", "player-creation"}, - minable = {hardness = 0.2, mining_time = 0.5, result = "bob-logistic-zone-interface"}, - fast_replaceable_group = "roboport", - max_health = 150, - corpse = "big-remnants", - collision_box = {{-0.3, -0.3}, {0.3, 0.3}}, - selection_box = {{-0.5, -0.5}, {0.5, 0.5}}, - dying_explosion = "medium-explosion", - energy_source = - { - type = "electric", - usage_priority = "secondary-input", - input_flow_limit = "1MW", - buffer_capacity = "20MJ" - }, - recharge_minimum = "10MJ", - energy_usage = "10kW", - -- per one charge slot - charging_energy = "2500kW", - logistics_radius = 1, - construction_radius = 1, - charge_approach_distance = 5, - robot_slots_count = 0, - material_slots_count = 0, - stationing_offset = {0, 0}, - base = - { - filename = "__boblogistics__/graphics/entity/roboport/logistic-zone-interface.png", - width = 62, - height = 52, - }, - base_animation = - { - filename = "__boblogistics__/graphics/entity/roboport/roboport-base-animation.png", - priority = "medium", - width = 42, - height = 31, - frame_count = 8, - animation_speed = 0.5, - shift = {0, -1} - }, - base_patch = - { - filename = "__boblogistics__/graphics/entity/roboport/blank.png", - width = 1, - height = 1, - frame_count = 1, - }, - door_animation_up = - { - filename = "__boblogistics__/graphics/entity/roboport/blank.png", - width = 1, - height = 1, - frame_count = 1, - }, - door_animation_down = - { - filename = "__boblogistics__/graphics/entity/roboport/blank.png", - width = 1, - height = 1, - frame_count = 1, - }, - recharging_animation = - { - filename = "__boblogistics__/graphics/entity/roboport/roboport-recharging.png", - priority = "high", - width = 37, - height = 35, - frame_count = 16, - scale = 1.5, - animation_speed = 0.5 - }, - working_sound = - { - sound = { filename = "__base__/sound/roboport-working.ogg", volume = 0.6 }, - max_sounds_per_type = 3 - }, - recharging_light = {intensity = 0.4, size = 5}, - request_to_open_door_timeout = 15, - spawn_and_station_height = 0.33, - radius_visualisation_picture = - { - filename = "__boblogistics__/graphics/entity/roboport/blank.png", - width = 12, - height = 12 - }, - construction_radius_visualisation_picture = - { - filename = "__boblogistics__/graphics/entity/roboport/blank.png", - width = 12, - height = 12 - }, - open_door_trigger_effect = - { - { - type = "play-sound", - sound = { filename = "__base__/sound/roboport-door.ogg", volume = 1.2 } - }, - }, - close_door_trigger_effect = - { - { - type = "play-sound", - sound = { filename = "__base__/sound/roboport-door.ogg", volume = 0.75 } - }, - }, - circuit_wire_connection_point = - { - shadow = - { - red = {0.57813, 0.48438}, - green = {0.45313, 0.54688} - }, - wire = - { - red = {0.1875, -0.125}, - green = {0.1875, 0.03125} - } - }, - circuit_connector_sprites = get_circuit_connector_sprites({0, -0.1875}, nil, 18), - circuit_wire_max_distance = 10, - default_available_logistic_output_signal = "signal-X", - default_total_logistic_output_signal = "signal-Y", - default_available_construction_output_signal = "signal-Z", - default_total_construction_output_signal = "signal-T", - }, -} -) - - +data.raw.roboport["roboport"].fast_replaceable_group = "roboport" +if data.raw.roboport["roboport"].door_animation_up then + data.raw.roboport["roboport"].door_animation_up.shift = {0.015625, -0.875} +end +if data.raw.roboport["roboport"].door_animation_down then + data.raw.roboport["roboport"].door_animation_down.shift = {0.015625, -0.21875} +end + +data:extend( +{ + { + type = "roboport", + name = "bob-roboport-2", + icon = "__boblogistics__/graphics/icons/roboport-2.png", + flags = {"placeable-player", "player-creation"}, + minable = {hardness = 0.2, mining_time = 0.5, result = "bob-roboport-2"}, + fast_replaceable_group = "roboport", + max_health = 750, + corpse = "big-remnants", + collision_box = {{-1.7, -1.7}, {1.7, 1.7}}, + selection_box = {{-2, -2}, {2, 2}}, + dying_explosion = "medium-explosion", + energy_source = + { + type = "electric", + usage_priority = "secondary-input", + input_flow_limit = "10MW", + buffer_capacity = "200MJ" + }, + recharge_minimum = "40MJ", + energy_usage = "100kW", + -- per one charge slot + charging_energy = "2500kW", + logistics_radius = 50, + construction_radius = 100, + charge_approach_distance = 5, + robot_slots_count = 10, + material_slots_count = 10, + stationing_offset = {0, 0}, + charging_offsets = + { + {-1.5, -0.5}, {1.5, -0.5}, {1.5, 1.5}, {-1.5, 1.5}, + }, + base = + { + filename = "__boblogistics__/graphics/entity/roboport/roboport-base-2.png", + width = 143, + height = 135, + shift = {0.5, 0.25} + }, + base_animation = + { + filename = "__boblogistics__/graphics/entity/roboport/roboport-base-animation-2.png", + priority = "medium", + width = 42, + height = 31, + frame_count = 8, + animation_speed = 0.5, + shift = {-0.5315, -1.9375} + }, + base_patch = + { + filename = "__boblogistics__/graphics/entity/roboport/roboport-base-patch-2.png", + priority = "medium", + width = 69, + height = 50, + frame_count = 1, + shift = {0.03125, 0.203125} + }, + door_animation_up = + { + filename = "__boblogistics__/graphics/entity/roboport/roboport-door-up-2.png", + priority = "medium", + width = 52, + height = 20, + frame_count = 16, + shift = {0.015625, -0.875} + }, + door_animation_down = + { + filename = "__boblogistics__/graphics/entity/roboport/roboport-door-down-2.png", + priority = "medium", + width = 52, + height = 22, + frame_count = 16, + shift = {0.015625, -0.21875} + }, + recharging_animation = + { + filename = "__boblogistics__/graphics/entity/roboport/roboport-recharging.png", + priority = "high", + width = 37, + height = 35, + frame_count = 16, + scale = 1.5, + animation_speed = 0.5 + }, + working_sound = + { + sound = { filename = "__base__/sound/roboport-working.ogg", volume = 0.6 }, + max_sounds_per_type = 3 + }, + recharging_light = {intensity = 0.4, size = 5}, + request_to_open_door_timeout = 15, + spawn_and_station_height = 0.33, + radius_visualisation_picture = + { + filename = "__boblogistics__/graphics/entity/roboport/roboport-radius-visualization.png", + width = 12, + height = 12 + }, + construction_radius_visualisation_picture = + { + filename = "__boblogistics__/graphics/entity/roboport/roboport-construction-radius-visualization.png", + width = 12, + height = 12 + }, + open_door_trigger_effect = + { + { + type = "play-sound", + sound = { filename = "__base__/sound/roboport-door.ogg", volume = 1.2 } + }, + }, + close_door_trigger_effect = + { + { + type = "play-sound", + sound = { filename = "__base__/sound/roboport-door.ogg", volume = 0.75 } + }, + }, + circuit_wire_connection_point = + { + shadow = + { + red = {1.17188, 1.98438}, + green = {1.04688, 2.04688} + }, + wire = + { + red = {0.78125, 1.375}, + green = {0.78125, 1.53125} + } + }, + circuit_connector_sprites = get_circuit_connector_sprites({0.59375, 1.3125}, nil, 18), + circuit_wire_max_distance = 10, + default_available_logistic_output_signal = "signal-X", + default_total_logistic_output_signal = "signal-Y", + default_available_construction_output_signal = "signal-Z", + default_total_construction_output_signal = "signal-T", + }, + + { + type = "roboport", + name = "bob-roboport-3", + icon = "__boblogistics__/graphics/icons/roboport-3.png", + flags = {"placeable-player", "player-creation"}, + minable = {hardness = 0.2, mining_time = 0.5, result = "bob-roboport-3"}, + fast_replaceable_group = "roboport", + max_health = 1000, + corpse = "big-remnants", + collision_box = {{-1.7, -1.7}, {1.7, 1.7}}, + selection_box = {{-2, -2}, {2, 2}}, + dying_explosion = "medium-explosion", + energy_source = + { + type = "electric", + usage_priority = "secondary-input", + input_flow_limit = "20MW", + buffer_capacity = "400MJ" + }, + recharge_minimum = "40MJ", + energy_usage = "150kW", + -- per one charge slot + charging_energy = "4000kW", + logistics_radius = 75, + construction_radius = 150, + charge_approach_distance = 5, + robot_slots_count = 15, + material_slots_count = 15, + stationing_offset = {0, 0}, + charging_offsets = + { + {-1.5, -0.5}, {1.5, -0.5}, {1.5, 1.5}, {-1.5, 1.5}, + }, + base = + { + filename = "__boblogistics__/graphics/entity/roboport/roboport-base-3.png", + width = 143, + height = 135, + shift = {0.5, 0.25} + }, + base_animation = + { + filename = "__boblogistics__/graphics/entity/roboport/roboport-base-animation-3.png", + priority = "medium", + width = 42, + height = 31, + frame_count = 8, + animation_speed = 0.5, + shift = {-0.5315, -1.9375} + }, + base_patch = + { + filename = "__boblogistics__/graphics/entity/roboport/roboport-base-patch-3.png", + priority = "medium", + width = 69, + height = 50, + frame_count = 1, + shift = {0.03125, 0.203125} + }, + door_animation_up = + { + filename = "__boblogistics__/graphics/entity/roboport/roboport-door-up-3.png", + priority = "medium", + width = 52, + height = 20, + frame_count = 16, + shift = {0.015625, -0.875} + }, + door_animation_down = + { + filename = "__boblogistics__/graphics/entity/roboport/roboport-door-down-3.png", + priority = "medium", + width = 52, + height = 22, + frame_count = 16, + shift = {0.015625, -0.21875} + }, + recharging_animation = + { + filename = "__boblogistics__/graphics/entity/roboport/roboport-recharging.png", + priority = "high", + width = 37, + height = 35, + frame_count = 16, + scale = 1.5, + animation_speed = 0.5 + }, + working_sound = + { + sound = { filename = "__base__/sound/roboport-working.ogg", volume = 0.6 }, + max_sounds_per_type = 3 + }, + recharging_light = {intensity = 0.4, size = 5}, + request_to_open_door_timeout = 15, + spawn_and_station_height = 0.33, + radius_visualisation_picture = + { + filename = "__boblogistics__/graphics/entity/roboport/roboport-radius-visualization.png", + width = 12, + height = 12 + }, + construction_radius_visualisation_picture = + { + filename = "__boblogistics__/graphics/entity/roboport/roboport-construction-radius-visualization.png", + width = 12, + height = 12 + }, + open_door_trigger_effect = + { + { + type = "play-sound", + sound = { filename = "__base__/sound/roboport-door.ogg", volume = 1.2 } + }, + }, + close_door_trigger_effect = + { + { + type = "play-sound", + sound = { filename = "__base__/sound/roboport-door.ogg", volume = 0.75 } + }, + }, + circuit_wire_connection_point = + { + shadow = + { + red = {1.17188, 1.98438}, + green = {1.04688, 2.04688} + }, + wire = + { + red = {0.78125, 1.375}, + green = {0.78125, 1.53125} + } + }, + circuit_connector_sprites = get_circuit_connector_sprites({0.59375, 1.3125}, nil, 18), + circuit_wire_max_distance = 12.5, + default_available_logistic_output_signal = "signal-X", + default_total_logistic_output_signal = "signal-Y", + default_available_construction_output_signal = "signal-Z", + default_total_construction_output_signal = "signal-T", + }, + + { + type = "roboport", + name = "bob-roboport-4", + icon = "__boblogistics__/graphics/icons/roboport-4.png", + flags = {"placeable-player", "player-creation"}, + minable = {hardness = 0.2, mining_time = 0.5, result = "bob-roboport-4"}, + fast_replaceable_group = "roboport", + max_health = 1250, + corpse = "big-remnants", + collision_box = {{-1.7, -1.7}, {1.7, 1.7}}, + selection_box = {{-2, -2}, {2, 2}}, + dying_explosion = "medium-explosion", + energy_source = + { + type = "electric", + usage_priority = "secondary-input", + input_flow_limit = "40MW", + buffer_capacity = "800MJ" + }, + recharge_minimum = "40MJ", + energy_usage = "200kW", + -- per one charge slot + charging_energy = "6000kW", + logistics_radius = 100, + construction_radius = 200, + charge_approach_distance = 5, + robot_slots_count = 20, + material_slots_count = 20, + stationing_offset = {0, 0}, + charging_offsets = + { + {-1.5, -0.5}, {1.5, -0.5}, {1.5, 1.5}, {-1.5, 1.5}, + }, + base = + { + filename = "__boblogistics__/graphics/entity/roboport/roboport-base-4.png", + width = 143, + height = 135, + shift = {0.5, 0.25} + }, + base_animation = + { + filename = "__boblogistics__/graphics/entity/roboport/roboport-base-animation-4.png", + priority = "medium", + width = 42, + height = 31, + frame_count = 8, + animation_speed = 0.5, + shift = {-0.5315, -1.9375} + }, + base_patch = + { + filename = "__boblogistics__/graphics/entity/roboport/roboport-base-patch-4.png", + priority = "medium", + width = 69, + height = 50, + frame_count = 1, + shift = {0.03125, 0.203125} + }, + door_animation_up = + { + filename = "__boblogistics__/graphics/entity/roboport/roboport-door-up-4.png", + priority = "medium", + width = 52, + height = 20, + frame_count = 16, + shift = {0.015625, -0.875} + }, + door_animation_down = + { + filename = "__boblogistics__/graphics/entity/roboport/roboport-door-down-4.png", + priority = "medium", + width = 52, + height = 22, + frame_count = 16, + shift = {0.015625, -0.21875} + }, + recharging_animation = + { + filename = "__boblogistics__/graphics/entity/roboport/roboport-recharging.png", + priority = "high", + width = 37, + height = 35, + frame_count = 16, + scale = 1.5, + animation_speed = 0.5 + }, + working_sound = + { + sound = { filename = "__base__/sound/roboport-working.ogg", volume = 0.6 }, + max_sounds_per_type = 3 + }, + recharging_light = {intensity = 0.4, size = 5}, + request_to_open_door_timeout = 15, + spawn_and_station_height = 0.33, + radius_visualisation_picture = + { + filename = "__boblogistics__/graphics/entity/roboport/roboport-radius-visualization.png", + width = 12, + height = 12 + }, + construction_radius_visualisation_picture = + { + filename = "__boblogistics__/graphics/entity/roboport/roboport-construction-radius-visualization.png", + width = 12, + height = 12 + }, + open_door_trigger_effect = + { + { + type = "play-sound", + sound = { filename = "__base__/sound/roboport-door.ogg", volume = 1.2 } + }, + }, + close_door_trigger_effect = + { + { + type = "play-sound", + sound = { filename = "__base__/sound/roboport-door.ogg", volume = 0.75 } + }, + }, + circuit_wire_connection_point = + { + shadow = + { + red = {1.17188, 1.98438}, + green = {1.04688, 2.04688} + }, + wire = + { + red = {0.78125, 1.375}, + green = {0.78125, 1.53125} + } + }, + circuit_connector_sprites = get_circuit_connector_sprites({0.59375, 1.3125}, nil, 18), + circuit_wire_max_distance = 15, + default_available_logistic_output_signal = "signal-X", + default_total_logistic_output_signal = "signal-Y", + default_available_construction_output_signal = "signal-Z", + default_total_construction_output_signal = "signal-T", + }, +} +) + + +data:extend( +{ + { + type = "roboport", + name = "bob-robochest", + icon = "__boblogistics__/graphics/icons/robochest.png", + flags = {"placeable-player", "player-creation"}, + minable = {hardness = 0.2, mining_time = 0.5, result = "bob-robochest"}, + fast_replaceable_group = "roboport", + max_health = 500, + corpse = "medium-remnants", + collision_box = {{-0.7, -0.7}, {0.7, 0.7}}, + selection_box = {{-1, -1}, {1, 1}}, + dying_explosion = "medium-explosion", + energy_source = + { + type = "electric", + usage_priority = "secondary-input", + input_flow_limit = "1200kW", + buffer_capacity = "20MJ" + }, + recharge_minimum = "5MJ", + energy_usage = "5kW", + -- per one charge slot + charging_energy = "1000kW", + logistics_radius = 1, + construction_radius = 1, + charge_approach_distance = 5, + robot_slots_count = 10, + material_slots_count = 5, + stationing_offset = {0, 0}, + charging_offsets = + { + {0, 0}, + }, + base = + { + filename = "__boblogistics__/graphics/entity/roboport/robochest.png", + width = 96, + height = 96, + shift = {0, 0} + }, + base_animation = + { + filename = "__boblogistics__/graphics/entity/roboport/blank.png", + priority = "medium", + width = 12, + height = 12, + frame_count = 1, + }, + base_patch = + { + filename = "__boblogistics__/graphics/entity/roboport/blank.png", + width = 1, + height = 1, + frame_count = 1, + }, + door_animation_up = + { + filename = "__boblogistics__/graphics/entity/roboport/roboport-door-up.png", + priority = "medium", + width = 52, + height = 20, + frame_count = 16, + shift = {0.03125, -0.625} + }, + door_animation_down = + { + filename = "__boblogistics__/graphics/entity/roboport/roboport-door-down.png", + priority = "medium", + width = 52, + height = 22, + frame_count = 16, + shift = {0.03125, 0.03125} + }, + recharging_animation = + { + filename = "__boblogistics__/graphics/entity/roboport/roboport-recharging.png", + priority = "high", + width = 37, + height = 35, + frame_count = 16, + scale = 1.5, + animation_speed = 0.5 + }, + recharging_light = {intensity = 0.4, size = 5}, + request_to_open_door_timeout = 15, + spawn_and_station_height = 0.25, + radius_visualisation_picture = + { + filename = "__boblogistics__/graphics/entity/roboport/blank.png", + width = 12, + height = 12 + }, + construction_radius_visualisation_picture = + { + filename = "__boblogistics__/graphics/entity/roboport/blank.png", + width = 12, + height = 12 + }, + open_door_trigger_effect = + { + { + type = "play-sound", + sound = { filename = "__base__/sound/roboport-door.ogg", volume = 1.2 } + }, + }, + close_door_trigger_effect = + { + { + type = "play-sound", + sound = { filename = "__base__/sound/roboport-door.ogg", volume = 0.75 } + }, + }, + }, + + { + type = "roboport", + name = "bob-robochest-2", + icon = "__boblogistics__/graphics/icons/robochest-2.png", + flags = {"placeable-player", "player-creation"}, + minable = {hardness = 0.2, mining_time = 0.5, result = "bob-robochest-2"}, + fast_replaceable_group = "roboport", + max_health = 750, + corpse = "medium-remnants", + collision_box = {{-0.7, -0.7}, {0.7, 0.7}}, + selection_box = {{-1, -1}, {1, 1}}, + dying_explosion = "medium-explosion", + energy_source = + { + type = "electric", + usage_priority = "secondary-input", + input_flow_limit = "3000kW", + buffer_capacity = "40MJ" + }, + recharge_minimum = "10MJ", + energy_usage = "5kW", + -- per one charge slot + charging_energy = "2500kW", + logistics_radius = 1, + construction_radius = 1, + charge_approach_distance = 5, + robot_slots_count = 20, + material_slots_count = 10, + stationing_offset = {0, 0}, + charging_offsets = + { + {0, 0}, + }, + base = + { + filename = "__boblogistics__/graphics/entity/roboport/robochest-2.png", + width = 96, + height = 96, + shift = {0, 0} + }, + base_animation = + { + filename = "__boblogistics__/graphics/entity/roboport/blank.png", + priority = "medium", + width = 12, + height = 12, + frame_count = 1, + }, + base_patch = + { + filename = "__boblogistics__/graphics/entity/roboport/blank.png", + width = 1, + height = 1, + frame_count = 1, + }, + door_animation_up = + { + filename = "__boblogistics__/graphics/entity/roboport/roboport-door-up-2.png", + priority = "medium", + width = 52, + height = 20, + frame_count = 16, + shift = {0.03125, -0.625} + }, + door_animation_down = + { + filename = "__boblogistics__/graphics/entity/roboport/roboport-door-down-2.png", + priority = "medium", + width = 52, + height = 22, + frame_count = 16, + shift = {0.03125, 0.03125} + }, + recharging_animation = + { + filename = "__boblogistics__/graphics/entity/roboport/roboport-recharging.png", + priority = "high", + width = 37, + height = 35, + frame_count = 16, + scale = 1.5, + animation_speed = 0.5 + }, + recharging_light = {intensity = 0.4, size = 5}, + request_to_open_door_timeout = 15, + spawn_and_station_height = 0.25, + radius_visualisation_picture = + { + filename = "__boblogistics__/graphics/entity/roboport/blank.png", + width = 12, + height = 12 + }, + construction_radius_visualisation_picture = + { + filename = "__boblogistics__/graphics/entity/roboport/blank.png", + width = 12, + height = 12 + }, + open_door_trigger_effect = + { + { + type = "play-sound", + sound = { filename = "__base__/sound/roboport-door.ogg", volume = 1.2 } + }, + }, + close_door_trigger_effect = + { + { + type = "play-sound", + sound = { filename = "__base__/sound/roboport-door.ogg", volume = 0.75 } + }, + }, + }, + { + type = "roboport", + name = "bob-robochest-3", + icon = "__boblogistics__/graphics/icons/robochest-3.png", + flags = {"placeable-player", "player-creation"}, + minable = {hardness = 0.2, mining_time = 0.5, result = "bob-robochest-3"}, + fast_replaceable_group = "roboport", + max_health = 1000, + corpse = "medium-remnants", + collision_box = {{-0.7, -0.7}, {0.7, 0.7}}, + selection_box = {{-1, -1}, {1, 1}}, + dying_explosion = "medium-explosion", + energy_source = + { + type = "electric", + usage_priority = "secondary-input", + input_flow_limit = "5000kW", + buffer_capacity = "60MJ" + }, + recharge_minimum = "15MJ", + energy_usage = "5kW", + -- per one charge slot + charging_energy = "4000kW", + logistics_radius = 1, + construction_radius = 1, + charge_approach_distance = 5, + robot_slots_count = 30, + material_slots_count = 15, + stationing_offset = {0, 0}, + charging_offsets = + { + {0, 0}, + }, + base = + { + filename = "__boblogistics__/graphics/entity/roboport/robochest-3.png", + width = 96, + height = 96, + shift = {0, 0} + }, + base_animation = + { + filename = "__boblogistics__/graphics/entity/roboport/blank.png", + priority = "medium", + width = 12, + height = 12, + frame_count = 1, + }, + base_patch = + { + filename = "__boblogistics__/graphics/entity/roboport/blank.png", + width = 1, + height = 1, + frame_count = 1, + }, + door_animation_up = + { + filename = "__boblogistics__/graphics/entity/roboport/roboport-door-up-3.png", + priority = "medium", + width = 52, + height = 20, + frame_count = 16, + shift = {0.03125, -0.625} + }, + door_animation_down = + { + filename = "__boblogistics__/graphics/entity/roboport/roboport-door-down-3.png", + priority = "medium", + width = 52, + height = 22, + frame_count = 16, + shift = {0.03125, 0.03125} + }, + recharging_animation = + { + filename = "__boblogistics__/graphics/entity/roboport/roboport-recharging.png", + priority = "high", + width = 37, + height = 35, + frame_count = 16, + scale = 1.5, + animation_speed = 0.5 + }, + recharging_light = {intensity = 0.4, size = 5}, + request_to_open_door_timeout = 15, + spawn_and_station_height = 0.25, + radius_visualisation_picture = + { + filename = "__boblogistics__/graphics/entity/roboport/blank.png", + width = 12, + height = 12 + }, + construction_radius_visualisation_picture = + { + filename = "__boblogistics__/graphics/entity/roboport/blank.png", + width = 12, + height = 12 + }, + open_door_trigger_effect = + { + { + type = "play-sound", + sound = { filename = "__base__/sound/roboport-door.ogg", volume = 1.2 } + }, + }, + close_door_trigger_effect = + { + { + type = "play-sound", + sound = { filename = "__base__/sound/roboport-door.ogg", volume = 0.75 } + }, + }, + }, + { + type = "roboport", + name = "bob-robochest-4", + icon = "__boblogistics__/graphics/icons/robochest-4.png", + flags = {"placeable-player", "player-creation"}, + minable = {hardness = 0.2, mining_time = 0.5, result = "bob-robochest-4"}, + fast_replaceable_group = "roboport", + max_health = 1250, + corpse = "medium-remnants", + collision_box = {{-0.7, -0.7}, {0.7, 0.7}}, + selection_box = {{-1, -1}, {1, 1}}, + dying_explosion = "medium-explosion", + energy_source = + { + type = "electric", + usage_priority = "secondary-input", + input_flow_limit = "7200kW", + buffer_capacity = "80MJ" + }, + recharge_minimum = "20MJ", + energy_usage = "5kW", + -- per one charge slot + charging_energy = "6000kW", + logistics_radius = 1, + construction_radius = 1, + charge_approach_distance = 5, + robot_slots_count = 40, + material_slots_count = 20, + stationing_offset = {0, 0}, + charging_offsets = + { + {0, 0}, + }, + base = + { + filename = "__boblogistics__/graphics/entity/roboport/robochest-4.png", + width = 96, + height = 96, + shift = {0, 0} + }, + base_animation = + { + filename = "__boblogistics__/graphics/entity/roboport/blank.png", + priority = "medium", + width = 12, + height = 12, + frame_count = 1, + }, + base_patch = + { + filename = "__boblogistics__/graphics/entity/roboport/blank.png", + width = 1, + height = 1, + frame_count = 1, + }, + door_animation_up = + { + filename = "__boblogistics__/graphics/entity/roboport/roboport-door-up-4.png", + priority = "medium", + width = 52, + height = 20, + frame_count = 16, + shift = {0.03125, -0.625} + }, + door_animation_down = + { + filename = "__boblogistics__/graphics/entity/roboport/roboport-door-down-4.png", + priority = "medium", + width = 52, + height = 22, + frame_count = 16, + shift = {0.03125, 0.03125} + }, + recharging_animation = + { + filename = "__boblogistics__/graphics/entity/roboport/roboport-recharging.png", + priority = "high", + width = 37, + height = 35, + frame_count = 16, + scale = 1.5, + animation_speed = 0.5 + }, + recharging_light = {intensity = 0.4, size = 5}, + request_to_open_door_timeout = 15, + spawn_and_station_height = 0.25, + radius_visualisation_picture = + { + filename = "__boblogistics__/graphics/entity/roboport/blank.png", + width = 12, + height = 12 + }, + construction_radius_visualisation_picture = + { + filename = "__boblogistics__/graphics/entity/roboport/blank.png", + width = 12, + height = 12 + }, + open_door_trigger_effect = + { + { + type = "play-sound", + sound = { filename = "__base__/sound/roboport-door.ogg", volume = 1.2 } + }, + }, + close_door_trigger_effect = + { + { + type = "play-sound", + sound = { filename = "__base__/sound/roboport-door.ogg", volume = 0.75 } + }, + }, + }, +} +) + + + +data:extend( +{ + { + type = "roboport", + name = "bob-logistic-zone-expander", + icon = "__boblogistics__/graphics/icons/logistic-zone-expander.png", + flags = {"placeable-player", "player-creation"}, + minable = {hardness = 0.2, mining_time = 0.5, result = "bob-logistic-zone-expander"}, + fast_replaceable_group = "roboport", + max_health = 500, + corpse = "small-remnants", + collision_box = {{-0.7, -0.7}, {0.7, 0.7}}, + selection_box = {{-1, -1}, {1, 1}}, + dying_explosion = "medium-explosion", + energy_source = + { + type = "electric", + usage_priority = "secondary-input", + input_flow_limit = "50kW", + buffer_capacity = "100MJ" + }, + recharge_minimum = "5MJ", + energy_usage = "25kW", + -- per one charge slot + charging_energy = "1000kW", + logistics_radius = 15, + construction_radius = 30, + charge_approach_distance = 5, + robot_slots_count = 0, + material_slots_count = 0, +-- stationing_offset = {0, 0}, +-- charging_offsets = {{0, -1.7}}, + base = + { + filename = "__boblogistics__/graphics/entity/roboport/logistic-zone-expander.png", + width = 136, + height = 132, + shift = {1, -0.75} + }, + base_animation = + { + filename = "__boblogistics__/graphics/entity/roboport/roboport-chargepad.png", + priority = "medium", + width = 32, + height = 32, + frame_count = 6, + shift = {0, -2.28125}, + animation_speed = 0.1, + }, + base_patch = + { + filename = "__boblogistics__/graphics/entity/roboport/blank.png", + width = 1, + height = 1, + frame_count = 1, + }, + door_animation_up = + { + filename = "__boblogistics__/graphics/entity/roboport/blank.png", + width = 1, + height = 1, + frame_count = 1, + }, + door_animation_down = + { + filename = "__boblogistics__/graphics/entity/roboport/blank.png", + width = 1, + height = 1, + frame_count = 1, + }, + recharging_animation = + { + filename = "__boblogistics__/graphics/entity/roboport/roboport-recharging.png", + priority = "high", + width = 37, + height = 35, + frame_count = 16, + scale = 1.5, + animation_speed = 0.5 + }, + recharging_light = {intensity = 0.4, size = 5}, + request_to_open_door_timeout = 15, + spawn_and_station_height = 1.75, + radius_visualisation_picture = + { + filename = "__boblogistics__/graphics/entity/roboport/roboport-radius-visualization.png", + width = 12, + height = 12 + }, + construction_radius_visualisation_picture = + { + filename = "__boblogistics__/graphics/entity/roboport/roboport-construction-radius-visualization.png", + width = 12, + height = 12 + }, + }, + + { + type = "roboport", + name = "bob-logistic-zone-expander-2", + icon = "__boblogistics__/graphics/icons/logistic-zone-expander-2.png", + flags = {"placeable-player", "player-creation"}, + minable = {hardness = 0.2, mining_time = 0.5, result = "bob-logistic-zone-expander-2"}, + fast_replaceable_group = "roboport", + max_health = 500, + corpse = "small-remnants", + collision_box = {{-0.7, -0.7}, {0.7, 0.7}}, + selection_box = {{-1, -1}, {1, 1}}, + dying_explosion = "medium-explosion", + energy_source = + { + type = "electric", + usage_priority = "secondary-input", + input_flow_limit = "100kW", + buffer_capacity = "200MJ" + }, + recharge_minimum = "10MJ", + energy_usage = "50kW", + -- per one charge slot + charging_energy = "2500kW", + logistics_radius = 30, + construction_radius = 60, + charge_approach_distance = 5, + robot_slots_count = 0, + material_slots_count = 0, +-- stationing_offset = {0, 0}, +-- charging_offsets = {{0, -1.7}}, + base = + { + filename = "__boblogistics__/graphics/entity/roboport/logistic-zone-expander-2.png", + width = 136, + height = 132, + shift = {1, -0.75} + }, + base_animation = + { + filename = "__boblogistics__/graphics/entity/roboport/roboport-chargepad-2.png", + priority = "medium", + width = 32, + height = 32, + frame_count = 6, + shift = {0, -2.28125}, + animation_speed = 0.2, + }, + base_patch = + { + filename = "__boblogistics__/graphics/entity/roboport/blank.png", + width = 1, + height = 1, + frame_count = 1, + }, + door_animation_up = + { + filename = "__boblogistics__/graphics/entity/roboport/blank.png", + width = 1, + height = 1, + frame_count = 1, + }, + door_animation_down = + { + filename = "__boblogistics__/graphics/entity/roboport/blank.png", + width = 1, + height = 1, + frame_count = 1, + }, + recharging_animation = + { + filename = "__boblogistics__/graphics/entity/roboport/roboport-recharging.png", + priority = "high", + width = 37, + height = 35, + frame_count = 16, + scale = 1.5, + animation_speed = 0.5 + }, + recharging_light = {intensity = 0.4, size = 5}, + request_to_open_door_timeout = 15, + spawn_and_station_height = 1.75, + radius_visualisation_picture = + { + filename = "__boblogistics__/graphics/entity/roboport/roboport-radius-visualization.png", + width = 12, + height = 12 + }, + construction_radius_visualisation_picture = + { + filename = "__boblogistics__/graphics/entity/roboport/roboport-construction-radius-visualization.png", + width = 12, + height = 12 + }, + }, + + { + type = "roboport", + name = "bob-logistic-zone-expander-3", + icon = "__boblogistics__/graphics/icons/logistic-zone-expander-3.png", + flags = {"placeable-player", "player-creation"}, + minable = {hardness = 0.2, mining_time = 0.5, result = "bob-logistic-zone-expander-3"}, + fast_replaceable_group = "roboport", + max_health = 500, + corpse = "small-remnants", + collision_box = {{-0.7, -0.7}, {0.7, 0.7}}, + selection_box = {{-1, -1}, {1, 1}}, + dying_explosion = "medium-explosion", + energy_source = + { + type = "electric", + usage_priority = "secondary-input", + input_flow_limit = "150kW", + buffer_capacity = "300MJ" + }, + recharge_minimum = "15MJ", + energy_usage = "75kW", + -- per one charge slot + charging_energy = "4000kW", + logistics_radius = 45, + construction_radius = 90, + charge_approach_distance = 5, + robot_slots_count = 0, + material_slots_count = 0, +-- stationing_offset = {0, 0}, +-- charging_offsets = {{0, -1.7}}, + base = + { + filename = "__boblogistics__/graphics/entity/roboport/logistic-zone-expander-3.png", + width = 136, + height = 132, + shift = {1, -0.75} + }, + base_animation = + { + filename = "__boblogistics__/graphics/entity/roboport/roboport-chargepad-3.png", + priority = "medium", + width = 32, + height = 32, + frame_count = 6, + shift = {0, -2.28125}, + animation_speed = 0.3, + }, + base_patch = + { + filename = "__boblogistics__/graphics/entity/roboport/blank.png", + width = 1, + height = 1, + frame_count = 1, + }, + door_animation_up = + { + filename = "__boblogistics__/graphics/entity/roboport/blank.png", + width = 1, + height = 1, + frame_count = 1, + }, + door_animation_down = + { + filename = "__boblogistics__/graphics/entity/roboport/blank.png", + width = 1, + height = 1, + frame_count = 1, + }, + recharging_animation = + { + filename = "__boblogistics__/graphics/entity/roboport/roboport-recharging.png", + priority = "high", + width = 37, + height = 35, + frame_count = 16, + scale = 1.5, + animation_speed = 0.5 + }, + recharging_light = {intensity = 0.4, size = 5}, + request_to_open_door_timeout = 15, + spawn_and_station_height = 1.75, + radius_visualisation_picture = + { + filename = "__boblogistics__/graphics/entity/roboport/roboport-radius-visualization.png", + width = 12, + height = 12 + }, + construction_radius_visualisation_picture = + { + filename = "__boblogistics__/graphics/entity/roboport/roboport-construction-radius-visualization.png", + width = 12, + height = 12 + }, + }, + + { + type = "roboport", + name = "bob-logistic-zone-expander-4", + icon = "__boblogistics__/graphics/icons/logistic-zone-expander-4.png", + flags = {"placeable-player", "player-creation"}, + minable = {hardness = 0.2, mining_time = 0.5, result = "bob-logistic-zone-expander-4"}, + fast_replaceable_group = "roboport", + max_health = 500, + corpse = "small-remnants", + collision_box = {{-0.7, -0.7}, {0.7, 0.7}}, + selection_box = {{-1, -1}, {1, 1}}, + dying_explosion = "medium-explosion", + energy_source = + { + type = "electric", + usage_priority = "secondary-input", + input_flow_limit = "200kW", + buffer_capacity = "400MJ" + }, + recharge_minimum = "20MJ", + energy_usage = "100kW", + -- per one charge slot + charging_energy = "6000kW", + logistics_radius = 60, + construction_radius = 120, + charge_approach_distance = 5, + robot_slots_count = 0, + material_slots_count = 0, +-- stationing_offset = {0, 0}, +-- charging_offsets = {{0, -1.7}}, + base = + { + filename = "__boblogistics__/graphics/entity/roboport/logistic-zone-expander-4.png", + width = 136, + height = 132, + shift = {1, -0.75} + }, + base_animation = + { + filename = "__boblogistics__/graphics/entity/roboport/roboport-chargepad-4.png", + priority = "medium", + width = 32, + height = 32, + frame_count = 6, + shift = {0, -2.28125}, + animation_speed = 0.4, + }, + base_patch = + { + filename = "__boblogistics__/graphics/entity/roboport/blank.png", + width = 1, + height = 1, + frame_count = 1, + }, + door_animation_up = + { + filename = "__boblogistics__/graphics/entity/roboport/blank.png", + width = 1, + height = 1, + frame_count = 1, + }, + door_animation_down = + { + filename = "__boblogistics__/graphics/entity/roboport/blank.png", + width = 1, + height = 1, + frame_count = 1, + }, + recharging_animation = + { + filename = "__boblogistics__/graphics/entity/roboport/roboport-recharging.png", + priority = "high", + width = 37, + height = 35, + frame_count = 16, + scale = 1.5, + animation_speed = 0.5 + }, + recharging_light = {intensity = 0.4, size = 5}, + request_to_open_door_timeout = 15, + spawn_and_station_height = 1.75, + radius_visualisation_picture = + { + filename = "__boblogistics__/graphics/entity/roboport/roboport-radius-visualization.png", + width = 12, + height = 12 + }, + construction_radius_visualisation_picture = + { + filename = "__boblogistics__/graphics/entity/roboport/roboport-construction-radius-visualization.png", + width = 12, + height = 12 + }, + }, +} +) + + +data:extend( +{ + { + type = "roboport", + name = "bob-robo-charge-port", + icon = "__boblogistics__/graphics/icons/robo-charge-port.png", + flags = {"placeable-player", "player-creation"}, + minable = {hardness = 0.2, mining_time = 0.5, result = "bob-robo-charge-port"}, + fast_replaceable_group = "roboport", + max_health = 500, + corpse = "medium-remnants", + collision_box = {{-0.7, -0.7}, {0.7, 0.7}}, + selection_box = {{-1, -1}, {1, 1}}, + dying_explosion = "medium-explosion", + energy_source = + { + type = "electric", + usage_priority = "secondary-input", + input_flow_limit = "6250kW", + buffer_capacity = "100MJ" + }, + recharge_minimum = "20MJ", + energy_usage = "0kW", + -- per one charge slot + charging_energy = "1250kW", + logistics_radius = 1, + construction_radius = 1, + charge_approach_distance = 5, + robot_slots_count = 0, + material_slots_count = 0, + stationing_offset = {0, 0}, + charging_offsets = + { + {-0.5, -0.5}, {0.5, -0.5}, {-0.5, 0.5}, {0.5, 0.5}, + }, + base = + { + filename = "__boblogistics__/graphics/entity/roboport/blank.png", + width = 1, + height = 1, + }, + base_animation = + { + layers = + { + { + filename = "__boblogistics__/graphics/entity/roboport/roboport-chargepad.png", + priority = "medium", + width = 32, + height = 32, + frame_count = 6, + shift = {-0.5, -0.5}, + animation_speed = 0.1, + }, + { + filename = "__boblogistics__/graphics/entity/roboport/roboport-chargepad.png", + priority = "medium", + width = 32, + height = 32, + frame_count = 6, + shift = {0.5, -0.5}, + animation_speed = 0.1, + }, + { + filename = "__boblogistics__/graphics/entity/roboport/roboport-chargepad.png", + priority = "medium", + width = 32, + height = 32, + frame_count = 6, + shift = {-0.5, 0.5}, + animation_speed = 0.1, + }, + { + filename = "__boblogistics__/graphics/entity/roboport/roboport-chargepad.png", + priority = "medium", + width = 32, + height = 32, + frame_count = 6, + shift = {0.5, 0.5}, + animation_speed = 0.1, + }, + } + }, + base_patch = + { + filename = "__boblogistics__/graphics/entity/roboport/blank.png", + width = 1, + height = 1, + frame_count = 1, + }, + door_animation_up = + { + filename = "__boblogistics__/graphics/entity/roboport/blank.png", + width = 1, + height = 1, + frame_count = 1, + }, + door_animation_down = + { + filename = "__boblogistics__/graphics/entity/roboport/blank.png", + width = 1, + height = 1, + frame_count = 1, + }, + recharging_animation = + { + filename = "__boblogistics__/graphics/entity/roboport/roboport-recharging.png", + priority = "high", + width = 37, + height = 35, + frame_count = 16, + scale = 1.5, + animation_speed = 0.5 + }, + recharging_light = {intensity = 0.4, size = 5}, + request_to_open_door_timeout = 15, + spawn_and_station_height = 0.33, + radius_visualisation_picture = + { + filename = "__boblogistics__/graphics/entity/roboport/blank.png", + width = 12, + height = 12 + }, + construction_radius_visualisation_picture = + { + filename = "__boblogistics__/graphics/entity/roboport/blank.png", + width = 12, + height = 12 + }, + }, + + { + type = "roboport", + name = "bob-robo-charge-port-2", + icon = "__boblogistics__/graphics/icons/robo-charge-port-2.png", + flags = {"placeable-player", "player-creation"}, + minable = {hardness = 0.2, mining_time = 0.5, result = "bob-robo-charge-port-2"}, + fast_replaceable_group = "roboport", + max_health = 750, + corpse = "medium-remnants", + collision_box = {{-0.7, -0.7}, {0.7, 0.7}}, + selection_box = {{-1, -1}, {1, 1}}, + dying_explosion = "medium-explosion", + energy_source = + { + type = "electric", + usage_priority = "secondary-input", + input_flow_limit = "15625kW", + buffer_capacity = "200MJ" + }, + recharge_minimum = "40MJ", + energy_usage = "0kW", + -- per one charge slot + charging_energy = "3125kW", + logistics_radius = 1, + construction_radius = 1, + charge_approach_distance = 5, + robot_slots_count = 0, + material_slots_count = 0, + stationing_offset = {0, 0}, + charging_offsets = + { + {-0.5, -0.5}, {0.5, -0.5}, {-0.5, 0.5}, {0.5, 0.5}, + }, + base = + { + filename = "__boblogistics__/graphics/entity/roboport/blank.png", + width = 1, + height = 1, + }, + base_animation = + { + layers = + { + { + filename = "__boblogistics__/graphics/entity/roboport/roboport-chargepad-2.png", + priority = "medium", + width = 32, + height = 32, + frame_count = 6, + shift = {-0.5, -0.5}, + animation_speed = 0.2, + }, + { + filename = "__boblogistics__/graphics/entity/roboport/roboport-chargepad-2.png", + priority = "medium", + width = 32, + height = 32, + frame_count = 6, + shift = {0.5, -0.5}, + animation_speed = 0.2, + }, + { + filename = "__boblogistics__/graphics/entity/roboport/roboport-chargepad-2.png", + priority = "medium", + width = 32, + height = 32, + frame_count = 6, + shift = {-0.5, 0.5}, + animation_speed = 0.2, + }, + { + filename = "__boblogistics__/graphics/entity/roboport/roboport-chargepad-2.png", + priority = "medium", + width = 32, + height = 32, + frame_count = 6, + shift = {0.5, 0.5}, + animation_speed = 0.2, + }, + } + }, + base_patch = + { + filename = "__boblogistics__/graphics/entity/roboport/blank.png", + width = 1, + height = 1, + frame_count = 1, + }, + door_animation_up = + { + filename = "__boblogistics__/graphics/entity/roboport/blank.png", + width = 1, + height = 1, + frame_count = 1, + }, + door_animation_down = + { + filename = "__boblogistics__/graphics/entity/roboport/blank.png", + width = 1, + height = 1, + frame_count = 1, + }, + recharging_animation = + { + filename = "__boblogistics__/graphics/entity/roboport/roboport-recharging.png", + priority = "high", + width = 37, + height = 35, + frame_count = 16, + scale = 1.5, + animation_speed = 0.5 + }, + recharging_light = {intensity = 0.4, size = 5}, + request_to_open_door_timeout = 15, + spawn_and_station_height = 0.33, + radius_visualisation_picture = + { + filename = "__boblogistics__/graphics/entity/roboport/blank.png", + width = 12, + height = 12 + }, + construction_radius_visualisation_picture = + { + filename = "__boblogistics__/graphics/entity/roboport/blank.png", + width = 12, + height = 12 + }, + }, + + { + type = "roboport", + name = "bob-robo-charge-port-3", + icon = "__boblogistics__/graphics/icons/robo-charge-port-3.png", + flags = {"placeable-player", "player-creation"}, + minable = {hardness = 0.2, mining_time = 0.5, result = "bob-robo-charge-port-3"}, + fast_replaceable_group = "roboport", + max_health = 1000, + corpse = "medium-remnants", + collision_box = {{-0.7, -0.7}, {0.7, 0.7}}, + selection_box = {{-1, -1}, {1, 1}}, + dying_explosion = "medium-explosion", + energy_source = + { + type = "electric", + usage_priority = "secondary-input", + input_flow_limit = "25000kW", + buffer_capacity = "300MJ" + }, + recharge_minimum = "60MJ", + energy_usage = "0kW", + -- per one charge slot + charging_energy = "5000kW", + logistics_radius = 1, + construction_radius = 1, + charge_approach_distance = 5, + robot_slots_count = 0, + material_slots_count = 0, + stationing_offset = {0, 0}, + charging_offsets = + { + {-0.5, -0.5}, {0.5, -0.5}, {-0.5, 0.5}, {0.5, 0.5}, + }, + base = + { + filename = "__boblogistics__/graphics/entity/roboport/blank.png", + width = 1, + height = 1, + }, + base_animation = + { + layers = + { + { + filename = "__boblogistics__/graphics/entity/roboport/roboport-chargepad-3.png", + priority = "medium", + width = 32, + height = 32, + frame_count = 6, + shift = {-0.5, -0.5}, + animation_speed = 0.3, + }, + { + filename = "__boblogistics__/graphics/entity/roboport/roboport-chargepad-3.png", + priority = "medium", + width = 32, + height = 32, + frame_count = 6, + shift = {0.5, -0.5}, + animation_speed = 0.3, + }, + { + filename = "__boblogistics__/graphics/entity/roboport/roboport-chargepad-3.png", + priority = "medium", + width = 32, + height = 32, + frame_count = 6, + shift = {-0.5, 0.5}, + animation_speed = 0.3, + }, + { + filename = "__boblogistics__/graphics/entity/roboport/roboport-chargepad-3.png", + priority = "medium", + width = 32, + height = 32, + frame_count = 6, + shift = {0.5, 0.5}, + animation_speed = 0.3, + }, + } + }, + base_patch = + { + filename = "__boblogistics__/graphics/entity/roboport/blank.png", + width = 1, + height = 1, + frame_count = 1, + }, + door_animation_up = + { + filename = "__boblogistics__/graphics/entity/roboport/blank.png", + width = 1, + height = 1, + frame_count = 1, + }, + door_animation_down = + { + filename = "__boblogistics__/graphics/entity/roboport/blank.png", + width = 1, + height = 1, + frame_count = 1, + }, + recharging_animation = + { + filename = "__boblogistics__/graphics/entity/roboport/roboport-recharging.png", + priority = "high", + width = 37, + height = 35, + frame_count = 16, + scale = 1.5, + animation_speed = 0.5 + }, + recharging_light = {intensity = 0.4, size = 5}, + request_to_open_door_timeout = 15, + spawn_and_station_height = 0.33, + radius_visualisation_picture = + { + filename = "__boblogistics__/graphics/entity/roboport/blank.png", + width = 12, + height = 12 + }, + construction_radius_visualisation_picture = + { + filename = "__boblogistics__/graphics/entity/roboport/blank.png", + width = 12, + height = 12 + }, + }, + + { + type = "roboport", + name = "bob-robo-charge-port-4", + icon = "__boblogistics__/graphics/icons/robo-charge-port-4.png", + flags = {"placeable-player", "player-creation"}, + minable = {hardness = 0.2, mining_time = 0.5, result = "bob-robo-charge-port-4"}, + fast_replaceable_group = "roboport", + max_health = 1250, + corpse = "medium-remnants", + collision_box = {{-0.7, -0.7}, {0.7, 0.7}}, + selection_box = {{-1, -1}, {1, 1}}, + dying_explosion = "medium-explosion", + energy_source = + { + type = "electric", + usage_priority = "secondary-input", + input_flow_limit = "37500kW", + buffer_capacity = "400MJ" + }, + recharge_minimum = "80MJ", + energy_usage = "0kW", + -- per one charge slot + charging_energy = "7500kW", + logistics_radius = 1, + construction_radius = 1, + charge_approach_distance = 5, + robot_slots_count = 0, + material_slots_count = 0, + stationing_offset = {0, 0}, + charging_offsets = + { + {-0.5, -0.5}, {0.5, -0.5}, {-0.5, 0.5}, {0.5, 0.5}, + }, + base = + { + filename = "__boblogistics__/graphics/entity/roboport/blank.png", + width = 1, + height = 1, + }, + base_animation = + { + layers = + { + { + filename = "__boblogistics__/graphics/entity/roboport/roboport-chargepad-4.png", + priority = "medium", + width = 32, + height = 32, + frame_count = 6, + shift = {-0.5, -0.5}, + animation_speed = 0.4, + }, + { + filename = "__boblogistics__/graphics/entity/roboport/roboport-chargepad-4.png", + priority = "medium", + width = 32, + height = 32, + frame_count = 6, + shift = {0.5, -0.5}, + animation_speed = 0.4, + }, + { + filename = "__boblogistics__/graphics/entity/roboport/roboport-chargepad-4.png", + priority = "medium", + width = 32, + height = 32, + frame_count = 6, + shift = {-0.5, 0.5}, + animation_speed = 0.4, + }, + { + filename = "__boblogistics__/graphics/entity/roboport/roboport-chargepad-4.png", + priority = "medium", + width = 32, + height = 32, + frame_count = 6, + shift = {0.5, 0.5}, + animation_speed = 0.4, + }, + } + }, + base_patch = + { + filename = "__boblogistics__/graphics/entity/roboport/blank.png", + width = 1, + height = 1, + frame_count = 1, + }, + door_animation_up = + { + filename = "__boblogistics__/graphics/entity/roboport/blank.png", + width = 1, + height = 1, + frame_count = 1, + }, + door_animation_down = + { + filename = "__boblogistics__/graphics/entity/roboport/blank.png", + width = 1, + height = 1, + frame_count = 1, + }, + recharging_animation = + { + filename = "__boblogistics__/graphics/entity/roboport/roboport-recharging.png", + priority = "high", + width = 37, + height = 35, + frame_count = 16, + scale = 1.5, + animation_speed = 0.5 + }, + recharging_light = {intensity = 0.4, size = 5}, + request_to_open_door_timeout = 15, + spawn_and_station_height = 0.33, + radius_visualisation_picture = + { + filename = "__boblogistics__/graphics/entity/roboport/blank.png", + width = 12, + height = 12 + }, + construction_radius_visualisation_picture = + { + filename = "__boblogistics__/graphics/entity/roboport/blank.png", + width = 12, + height = 12 + }, + }, + + + { + type = "roboport", + name = "bob-robo-charge-port-large", + icon = "__boblogistics__/graphics/icons/robo-charge-port-large.png", + flags = {"placeable-player", "player-creation"}, + minable = {hardness = 0.2, mining_time = 0.5, result = "bob-robo-charge-port-large"}, + fast_replaceable_group = "roboport", + max_health = 500, + corpse = "big-remnants", + collision_box = {{-1.2, -1.2}, {1.2, 1.2}}, + selection_box = {{-1.5, -1.5}, {1.5, 1.5}}, + dying_explosion = "medium-explosion", + energy_source = + { + type = "electric", + usage_priority = "secondary-input", + input_flow_limit = "12500kW", + buffer_capacity = "100MJ" + }, + recharge_minimum = "20MJ", + energy_usage = "0kW", + -- per one charge slot + charging_energy = "1250kW", + logistics_radius = 1, + construction_radius = 1, + charge_approach_distance = 5, + robot_slots_count = 0, + material_slots_count = 0, + stationing_offset = {0, 0}, + charging_offsets = + { + {-1, 1}, {0, 1}, {1, 1}, + {-1, 0}, {0, 0}, {1, 0}, + {-1, -1}, {0, -1}, {1, -1}, + }, + base = + { + filename = "__boblogistics__/graphics/entity/roboport/blank.png", + width = 1, + height = 1, + }, + base_animation = + { + layers = + { + { + filename = "__boblogistics__/graphics/entity/roboport/roboport-chargepad.png", + priority = "medium", + width = 32, + height = 32, + frame_count = 6, + animation_speed = 0.1, + shift = {-1, 1}, + }, + { + filename = "__boblogistics__/graphics/entity/roboport/roboport-chargepad.png", + priority = "medium", + width = 32, + height = 32, + frame_count = 6, + animation_speed = 0.1, + shift = {0, 1}, + }, + { + filename = "__boblogistics__/graphics/entity/roboport/roboport-chargepad.png", + priority = "medium", + width = 32, + height = 32, + frame_count = 6, + animation_speed = 0.1, + shift = {1, 1}, + }, + { + filename = "__boblogistics__/graphics/entity/roboport/roboport-chargepad.png", + priority = "medium", + width = 32, + height = 32, + frame_count = 6, + animation_speed = 0.1, + shift = {-1, 0}, + }, + { + filename = "__boblogistics__/graphics/entity/roboport/roboport-chargepad.png", + priority = "medium", + width = 32, + height = 32, + frame_count = 6, + animation_speed = 0.1, + shift = {0, 0}, + }, + { + filename = "__boblogistics__/graphics/entity/roboport/roboport-chargepad.png", + priority = "medium", + width = 32, + height = 32, + frame_count = 6, + animation_speed = 0.1, + shift = {1, 0}, + }, + { + filename = "__boblogistics__/graphics/entity/roboport/roboport-chargepad.png", + priority = "medium", + width = 32, + height = 32, + frame_count = 6, + animation_speed = 0.1, + shift = {-1, -1}, + }, + { + filename = "__boblogistics__/graphics/entity/roboport/roboport-chargepad.png", + priority = "medium", + width = 32, + height = 32, + frame_count = 6, + animation_speed = 0.1, + shift = {0, -1}, + }, + { + filename = "__boblogistics__/graphics/entity/roboport/roboport-chargepad.png", + priority = "medium", + width = 32, + height = 32, + frame_count = 6, + animation_speed = 0.1, + shift = {1, -1}, + }, + } + }, + base_patch = + { + filename = "__boblogistics__/graphics/entity/roboport/blank.png", + width = 1, + height = 1, + frame_count = 1, + }, + door_animation_up = + { + filename = "__boblogistics__/graphics/entity/roboport/blank.png", + width = 1, + height = 1, + frame_count = 1, + }, + door_animation_down = + { + filename = "__boblogistics__/graphics/entity/roboport/blank.png", + width = 1, + height = 1, + frame_count = 1, + }, + recharging_animation = + { + filename = "__boblogistics__/graphics/entity/roboport/roboport-recharging.png", + priority = "high", + width = 37, + height = 35, + frame_count = 16, + scale = 1.5, + animation_speed = 0.5 + }, + recharging_light = {intensity = 0.4, size = 5}, + request_to_open_door_timeout = 15, + spawn_and_station_height = 0.33, + radius_visualisation_picture = + { + filename = "__boblogistics__/graphics/entity/roboport/blank.png", + width = 12, + height = 12 + }, + construction_radius_visualisation_picture = + { + filename = "__boblogistics__/graphics/entity/roboport/blank.png", + width = 12, + height = 12 + }, + }, + + { + type = "roboport", + name = "bob-robo-charge-port-large-2", + icon = "__boblogistics__/graphics/icons/robo-charge-port-large-2.png", + flags = {"placeable-player", "player-creation"}, + minable = {hardness = 0.2, mining_time = 0.5, result = "bob-robo-charge-port-large-2"}, + fast_replaceable_group = "roboport", + max_health = 750, + corpse = "big-remnants", + collision_box = {{-1.2, -1.2}, {1.2, 1.2}}, + selection_box = {{-1.5, -1.5}, {1.5, 1.5}}, + dying_explosion = "medium-explosion", + energy_source = + { + type = "electric", + usage_priority = "secondary-input", + input_flow_limit = "31250kW", + buffer_capacity = "200MJ" + }, + recharge_minimum = "40MJ", + energy_usage = "0kW", + -- per one charge slot + charging_energy = "3125kW", + logistics_radius = 1, + construction_radius = 1, + charge_approach_distance = 5, + robot_slots_count = 0, + material_slots_count = 0, + stationing_offset = {0, 0}, + charging_offsets = + { + {-1, 1}, {0, 1}, {1, 1}, + {-1, 0}, {0, 0}, {1, 0}, + {-1, -1}, {0, -1}, {1, -1}, + }, + base = + { + filename = "__boblogistics__/graphics/entity/roboport/blank.png", + width = 1, + height = 1, + }, + base_animation = + { + layers = + { + { + filename = "__boblogistics__/graphics/entity/roboport/roboport-chargepad-2.png", + priority = "medium", + width = 32, + height = 32, + frame_count = 6, + animation_speed = 0.2, + shift = {-1, 1}, + }, + { + filename = "__boblogistics__/graphics/entity/roboport/roboport-chargepad-2.png", + priority = "medium", + width = 32, + height = 32, + frame_count = 6, + animation_speed = 0.2, + shift = {0, 1}, + }, + { + filename = "__boblogistics__/graphics/entity/roboport/roboport-chargepad-2.png", + priority = "medium", + width = 32, + height = 32, + frame_count = 6, + animation_speed = 0.2, + shift = {1, 1}, + }, + { + filename = "__boblogistics__/graphics/entity/roboport/roboport-chargepad-2.png", + priority = "medium", + width = 32, + height = 32, + frame_count = 6, + animation_speed = 0.2, + shift = {-1, 0}, + }, + { + filename = "__boblogistics__/graphics/entity/roboport/roboport-chargepad-2.png", + priority = "medium", + width = 32, + height = 32, + frame_count = 6, + animation_speed = 0.2, + shift = {0, 0}, + }, + { + filename = "__boblogistics__/graphics/entity/roboport/roboport-chargepad-2.png", + priority = "medium", + width = 32, + height = 32, + frame_count = 6, + animation_speed = 0.2, + shift = {1, 0}, + }, + { + filename = "__boblogistics__/graphics/entity/roboport/roboport-chargepad-2.png", + priority = "medium", + width = 32, + height = 32, + frame_count = 6, + animation_speed = 0.2, + shift = {-1, -1}, + }, + { + filename = "__boblogistics__/graphics/entity/roboport/roboport-chargepad-2.png", + priority = "medium", + width = 32, + height = 32, + frame_count = 6, + animation_speed = 0.2, + shift = {0, -1}, + }, + { + filename = "__boblogistics__/graphics/entity/roboport/roboport-chargepad-2.png", + priority = "medium", + width = 32, + height = 32, + frame_count = 6, + animation_speed = 0.2, + shift = {1, -1}, + }, + } + }, + base_patch = + { + filename = "__boblogistics__/graphics/entity/roboport/blank.png", + width = 1, + height = 1, + frame_count = 1, + }, + door_animation_up = + { + filename = "__boblogistics__/graphics/entity/roboport/blank.png", + width = 1, + height = 1, + frame_count = 1, + }, + door_animation_down = + { + filename = "__boblogistics__/graphics/entity/roboport/blank.png", + width = 1, + height = 1, + frame_count = 1, + }, + recharging_animation = + { + filename = "__boblogistics__/graphics/entity/roboport/roboport-recharging.png", + priority = "high", + width = 37, + height = 35, + frame_count = 16, + scale = 1.5, + animation_speed = 0.5 + }, + recharging_light = {intensity = 0.4, size = 5}, + request_to_open_door_timeout = 15, + spawn_and_station_height = 0.33, + radius_visualisation_picture = + { + filename = "__boblogistics__/graphics/entity/roboport/blank.png", + width = 12, + height = 12 + }, + construction_radius_visualisation_picture = + { + filename = "__boblogistics__/graphics/entity/roboport/blank.png", + width = 12, + height = 12 + }, + }, + + { + type = "roboport", + name = "bob-robo-charge-port-large-3", + icon = "__boblogistics__/graphics/icons/robo-charge-port-large-3.png", + flags = {"placeable-player", "player-creation"}, + minable = {hardness = 0.2, mining_time = 0.5, result = "bob-robo-charge-port-large-3"}, + fast_replaceable_group = "roboport", + max_health = 1000, + corpse = "big-remnants", + collision_box = {{-1.2, -1.2}, {1.2, 1.2}}, + selection_box = {{-1.5, -1.5}, {1.5, 1.5}}, + dying_explosion = "medium-explosion", + energy_source = + { + type = "electric", + usage_priority = "secondary-input", + input_flow_limit = "50000kW", + buffer_capacity = "300MJ" + }, + recharge_minimum = "60MJ", + energy_usage = "0kW", + -- per one charge slot + charging_energy = "5000kW", + logistics_radius = 1, + construction_radius = 1, + charge_approach_distance = 5, + robot_slots_count = 0, + material_slots_count = 0, + stationing_offset = {0, 0}, + charging_offsets = + { + {-1, 1}, {0, 1}, {1, 1}, + {-1, 0}, {0, 0}, {1, 0}, + {-1, -1}, {0, -1}, {1, -1}, + }, + base = + { + filename = "__boblogistics__/graphics/entity/roboport/blank.png", + width = 1, + height = 1, + }, + base_animation = + { + layers = + { + { + filename = "__boblogistics__/graphics/entity/roboport/roboport-chargepad-3.png", + priority = "medium", + width = 32, + height = 32, + frame_count = 6, + animation_speed = 0.3, + shift = {-1, 1}, + }, + { + filename = "__boblogistics__/graphics/entity/roboport/roboport-chargepad-3.png", + priority = "medium", + width = 32, + height = 32, + frame_count = 6, + animation_speed = 0.3, + shift = {0, 1}, + }, + { + filename = "__boblogistics__/graphics/entity/roboport/roboport-chargepad-3.png", + priority = "medium", + width = 32, + height = 32, + frame_count = 6, + animation_speed = 0.3, + shift = {1, 1}, + }, + { + filename = "__boblogistics__/graphics/entity/roboport/roboport-chargepad-3.png", + priority = "medium", + width = 32, + height = 32, + frame_count = 6, + animation_speed = 0.3, + shift = {-1, 0}, + }, + { + filename = "__boblogistics__/graphics/entity/roboport/roboport-chargepad-3.png", + priority = "medium", + width = 32, + height = 32, + frame_count = 6, + animation_speed = 0.3, + shift = {0, 0}, + }, + { + filename = "__boblogistics__/graphics/entity/roboport/roboport-chargepad-3.png", + priority = "medium", + width = 32, + height = 32, + frame_count = 6, + animation_speed = 0.3, + shift = {1, 0}, + }, + { + filename = "__boblogistics__/graphics/entity/roboport/roboport-chargepad-3.png", + priority = "medium", + width = 32, + height = 32, + frame_count = 6, + animation_speed = 0.3, + shift = {-1, -1}, + }, + { + filename = "__boblogistics__/graphics/entity/roboport/roboport-chargepad-3.png", + priority = "medium", + width = 32, + height = 32, + frame_count = 6, + animation_speed = 0.3, + shift = {0, -1}, + }, + { + filename = "__boblogistics__/graphics/entity/roboport/roboport-chargepad-3.png", + priority = "medium", + width = 32, + height = 32, + frame_count = 6, + animation_speed = 0.3, + shift = {1, -1}, + }, + } + }, + base_patch = + { + filename = "__boblogistics__/graphics/entity/roboport/blank.png", + width = 1, + height = 1, + frame_count = 1, + }, + door_animation_up = + { + filename = "__boblogistics__/graphics/entity/roboport/blank.png", + width = 1, + height = 1, + frame_count = 1, + }, + door_animation_down = + { + filename = "__boblogistics__/graphics/entity/roboport/blank.png", + width = 1, + height = 1, + frame_count = 1, + }, + recharging_animation = + { + filename = "__boblogistics__/graphics/entity/roboport/roboport-recharging.png", + priority = "high", + width = 37, + height = 35, + frame_count = 16, + scale = 1.5, + animation_speed = 0.5 + }, + recharging_light = {intensity = 0.4, size = 5}, + request_to_open_door_timeout = 15, + spawn_and_station_height = 0.33, + radius_visualisation_picture = + { + filename = "__boblogistics__/graphics/entity/roboport/blank.png", + width = 12, + height = 12 + }, + construction_radius_visualisation_picture = + { + filename = "__boblogistics__/graphics/entity/roboport/blank.png", + width = 12, + height = 12 + }, + }, + + { + type = "roboport", + name = "bob-robo-charge-port-large-4", + icon = "__boblogistics__/graphics/icons/robo-charge-port-large-4.png", + flags = {"placeable-player", "player-creation"}, + minable = {hardness = 0.2, mining_time = 0.5, result = "bob-robo-charge-port-large-4"}, + fast_replaceable_group = "roboport", + max_health = 1250, + corpse = "big-remnants", + collision_box = {{-1.2, -1.2}, {1.2, 1.2}}, + selection_box = {{-1.5, -1.5}, {1.5, 1.5}}, + dying_explosion = "medium-explosion", + energy_source = + { + type = "electric", + usage_priority = "secondary-input", + input_flow_limit = "75000kW", + buffer_capacity = "400MJ" + }, + recharge_minimum = "80MJ", + energy_usage = "0kW", + -- per one charge slot + charging_energy = "7500kW", + logistics_radius = 1, + construction_radius = 1, + charge_approach_distance = 5, + robot_slots_count = 0, + material_slots_count = 0, + stationing_offset = {0, 0}, + charging_offsets = + { + {-1, 1}, {0, 1}, {1, 1}, + {-1, 0}, {0, 0}, {1, 0}, + {-1, -1}, {0, -1}, {1, -1}, + }, + base = + { + filename = "__boblogistics__/graphics/entity/roboport/blank.png", + width = 1, + height = 1, + }, + base_animation = + { + layers = + { + { + filename = "__boblogistics__/graphics/entity/roboport/roboport-chargepad-4.png", + priority = "medium", + width = 32, + height = 32, + frame_count = 6, + animation_speed = 0.4, + shift = {-1, 1}, + }, + { + filename = "__boblogistics__/graphics/entity/roboport/roboport-chargepad-4.png", + priority = "medium", + width = 32, + height = 32, + frame_count = 6, + animation_speed = 0.4, + shift = {0, 1}, + }, + { + filename = "__boblogistics__/graphics/entity/roboport/roboport-chargepad-4.png", + priority = "medium", + width = 32, + height = 32, + frame_count = 6, + animation_speed = 0.4, + shift = {1, 1}, + }, + { + filename = "__boblogistics__/graphics/entity/roboport/roboport-chargepad-4.png", + priority = "medium", + width = 32, + height = 32, + frame_count = 6, + animation_speed = 0.4, + shift = {-1, 0}, + }, + { + filename = "__boblogistics__/graphics/entity/roboport/roboport-chargepad-4.png", + priority = "medium", + width = 32, + height = 32, + frame_count = 6, + animation_speed = 0.4, + shift = {0, 0}, + }, + { + filename = "__boblogistics__/graphics/entity/roboport/roboport-chargepad-4.png", + priority = "medium", + width = 32, + height = 32, + frame_count = 6, + animation_speed = 0.4, + shift = {1, 0}, + }, + { + filename = "__boblogistics__/graphics/entity/roboport/roboport-chargepad-4.png", + priority = "medium", + width = 32, + height = 32, + frame_count = 6, + animation_speed = 0.4, + shift = {-1, -1}, + }, + { + filename = "__boblogistics__/graphics/entity/roboport/roboport-chargepad-4.png", + priority = "medium", + width = 32, + height = 32, + frame_count = 6, + animation_speed = 0.4, + shift = {0, -1}, + }, + { + filename = "__boblogistics__/graphics/entity/roboport/roboport-chargepad-4.png", + priority = "medium", + width = 32, + height = 32, + frame_count = 6, + animation_speed = 0.4, + shift = {1, -1}, + }, + } + }, + base_patch = + { + filename = "__boblogistics__/graphics/entity/roboport/blank.png", + width = 1, + height = 1, + frame_count = 1, + }, + door_animation_up = + { + filename = "__boblogistics__/graphics/entity/roboport/blank.png", + width = 1, + height = 1, + frame_count = 1, + }, + door_animation_down = + { + filename = "__boblogistics__/graphics/entity/roboport/blank.png", + width = 1, + height = 1, + frame_count = 1, + }, + recharging_animation = + { + filename = "__boblogistics__/graphics/entity/roboport/roboport-recharging.png", + priority = "high", + width = 37, + height = 35, + frame_count = 16, + scale = 1.5, + animation_speed = 0.5 + }, + recharging_light = {intensity = 0.4, size = 5}, + request_to_open_door_timeout = 15, + spawn_and_station_height = 0.33, + radius_visualisation_picture = + { + filename = "__boblogistics__/graphics/entity/roboport/blank.png", + width = 12, + height = 12 + }, + construction_radius_visualisation_picture = + { + filename = "__boblogistics__/graphics/entity/roboport/blank.png", + width = 12, + height = 12 + }, + }, +} +) + + + +data:extend( +{ + { + type = "roboport", + name = "bob-logistic-zone-interface", + icon = "__boblogistics__/graphics/icons/logistic-zone-interface.png", + flags = {"placeable-player", "player-creation"}, + minable = {hardness = 0.2, mining_time = 0.5, result = "bob-logistic-zone-interface"}, + fast_replaceable_group = "roboport", + max_health = 150, + corpse = "big-remnants", + collision_box = {{-0.3, -0.3}, {0.3, 0.3}}, + selection_box = {{-0.5, -0.5}, {0.5, 0.5}}, + dying_explosion = "medium-explosion", + energy_source = + { + type = "electric", + usage_priority = "secondary-input", + input_flow_limit = "1MW", + buffer_capacity = "20MJ" + }, + recharge_minimum = "10MJ", + energy_usage = "10kW", + -- per one charge slot + charging_energy = "2500kW", + logistics_radius = 1, + construction_radius = 1, + charge_approach_distance = 5, + robot_slots_count = 0, + material_slots_count = 0, + stationing_offset = {0, 0}, + base = + { + filename = "__boblogistics__/graphics/entity/roboport/logistic-zone-interface.png", + width = 62, + height = 52, + }, + base_animation = + { + filename = "__boblogistics__/graphics/entity/roboport/roboport-base-animation.png", + priority = "medium", + width = 42, + height = 31, + frame_count = 8, + animation_speed = 0.5, + shift = {0, -1} + }, + base_patch = + { + filename = "__boblogistics__/graphics/entity/roboport/blank.png", + width = 1, + height = 1, + frame_count = 1, + }, + door_animation_up = + { + filename = "__boblogistics__/graphics/entity/roboport/blank.png", + width = 1, + height = 1, + frame_count = 1, + }, + door_animation_down = + { + filename = "__boblogistics__/graphics/entity/roboport/blank.png", + width = 1, + height = 1, + frame_count = 1, + }, + recharging_animation = + { + filename = "__boblogistics__/graphics/entity/roboport/roboport-recharging.png", + priority = "high", + width = 37, + height = 35, + frame_count = 16, + scale = 1.5, + animation_speed = 0.5 + }, + working_sound = + { + sound = { filename = "__base__/sound/roboport-working.ogg", volume = 0.6 }, + max_sounds_per_type = 3 + }, + recharging_light = {intensity = 0.4, size = 5}, + request_to_open_door_timeout = 15, + spawn_and_station_height = 0.33, + radius_visualisation_picture = + { + filename = "__boblogistics__/graphics/entity/roboport/blank.png", + width = 12, + height = 12 + }, + construction_radius_visualisation_picture = + { + filename = "__boblogistics__/graphics/entity/roboport/blank.png", + width = 12, + height = 12 + }, + open_door_trigger_effect = + { + { + type = "play-sound", + sound = { filename = "__base__/sound/roboport-door.ogg", volume = 1.2 } + }, + }, + close_door_trigger_effect = + { + { + type = "play-sound", + sound = { filename = "__base__/sound/roboport-door.ogg", volume = 0.75 } + }, + }, + circuit_wire_connection_point = + { + shadow = + { + red = {0.57813, 0.48438}, + green = {0.45313, 0.54688} + }, + wire = + { + red = {0.1875, -0.125}, + green = {0.1875, 0.03125} + } + }, + circuit_connector_sprites = get_circuit_connector_sprites({0, -0.1875}, nil, 18), + circuit_wire_max_distance = 10, + default_available_logistic_output_signal = "signal-X", + default_total_logistic_output_signal = "signal-Y", + default_available_construction_output_signal = "signal-Z", + default_total_construction_output_signal = "signal-T", + }, +} +) + + diff --git a/boblogistics_0.14.0/prototypes/entity/robots.lua b/boblogistics_0.14.2/prototypes/entity/robots.lua similarity index 97% rename from boblogistics_0.14.0/prototypes/entity/robots.lua rename to boblogistics_0.14.2/prototypes/entity/robots.lua index ea2dd97..eeab6f9 100644 --- a/boblogistics_0.14.0/prototypes/entity/robots.lua +++ b/boblogistics_0.14.2/prototypes/entity/robots.lua @@ -1,293 +1,293 @@ -bobmods.logistics.robot_shadow = { - filename = "__boblogistics__/graphics/entity/robots/robot-shadow.png", - priority = "high", - width = 52, - height = 37, - frame_count = 1, - direction_count = 1 -} - -bobmods.logistics.smoke = { - filename = "__base__/graphics/entity/smoke-construction/smoke-01.png", - width = 39, - height = 32, - frame_count = 19, - line_length = 19, - shift = {0.078125, -0.15625}, - animation_speed = 0.3, -} - -bobmods.logistics.sparks = { - { - filename = "__base__/graphics/entity/sparks/sparks-01.png", - width = 39, - height = 34, - frame_count = 19, - line_length = 19, - shift = {-0.109375, 0.3125}, - tint = { r = 1.0, g = 0.9, b = 0.0, a = 1.0 }, - animation_speed = 0.3, - }, - { - filename = "__base__/graphics/entity/sparks/sparks-02.png", - width = 36, - height = 32, - frame_count = 19, - line_length = 19, - shift = {0.03125, 0.125}, - tint = { r = 1.0, g = 0.9, b = 0.0, a = 1.0 }, - animation_speed = 0.3, - }, - { - filename = "__base__/graphics/entity/sparks/sparks-03.png", - width = 42, - height = 29, - frame_count = 19, - line_length = 19, - shift = {-0.0625, 0.203125}, - tint = { r = 1.0, g = 0.9, b = 0.0, a = 1.0 }, - animation_speed = 0.3, - }, - { - filename = "__base__/graphics/entity/sparks/sparks-04.png", - width = 40, - height = 35, - frame_count = 19, - line_length = 19, - shift = {-0.0625, 0.234375}, - tint = { r = 1.0, g = 0.9, b = 0.0, a = 1.0 }, - animation_speed = 0.3, - }, - { - filename = "__base__/graphics/entity/sparks/sparks-05.png", - width = 39, - height = 29, - frame_count = 19, - line_length = 19, - shift = {-0.109375, 0.171875}, - tint = { r = 1.0, g = 0.9, b = 0.0, a = 1.0 }, - animation_speed = 0.3, - }, - { - filename = "__base__/graphics/entity/sparks/sparks-06.png", - width = 44, - height = 36, - frame_count = 19, - line_length = 19, - shift = {0.03125, 0.3125}, - tint = { r = 1.0, g = 0.9, b = 0.0, a = 1.0 }, - animation_speed = 0.3, - }, -} - - -function bobmods.logistics.robot_picture(filename) -return { - filename = filename, - priority = "high", - width = 32, - height = 32, - frame_count = 1, - direction_count = 1 -} -end - - -data:extend( -{ - { - type = "logistic-robot", - name = "bob-logistic-robot-2", - icon = "__boblogistics__/graphics/icons/logistic-robot-2.png", - flags = {"placeable-player", "player-creation", "placeable-off-grid", "not-on-map"}, - minable = {hardness = 0.1, mining_time = 0.1, result = "bob-logistic-robot-2"}, - max_health = 125, - max_payload_size = 3, - speed = 0.07, - max_energy = "2250kJ", - energy_per_tick = "65J", - energy_per_move = "5000J", - collision_box = {{0, 0}, {0, 0}}, - selection_box = {{-0.5, -1.5}, {0.5, -0.5}}, - transfer_distance = 0.5, - speed_multiplier_when_out_of_energy = 0.2, - min_to_charge = 0.2, - max_to_charge = 0.95, - working_sound = flying_robot_sounds(), - cargo_centered = {0.0, 0.2}, - idle = bobmods.logistics.robot_picture("__boblogistics__/graphics/entity/robots/logistic-robot-2.png"), - idle_with_cargo = bobmods.logistics.robot_picture("__boblogistics__/graphics/entity/robots/logistic-robot-2.png"), - in_motion = bobmods.logistics.robot_picture("__boblogistics__/graphics/entity/robots/logistic-robot-2.png"), - in_motion_with_cargo = bobmods.logistics.robot_picture("__boblogistics__/graphics/entity/robots/logistic-robot-2.png"), - shadow_idle = bobmods.logistics.robot_shadow, - shadow_idle_with_cargo = bobmods.logistics.robot_shadow, - shadow_in_motion = bobmods.logistics.robot_shadow, - shadow_in_motion_with_cargo = bobmods.logistics.robot_shadow, - }, - - { - type = "logistic-robot", - name = "bob-logistic-robot-3", - icon = "__boblogistics__/graphics/icons/logistic-robot-3.png", - flags = {"placeable-player", "player-creation", "placeable-off-grid", "not-on-map"}, - minable = {hardness = 0.1, mining_time = 0.1, result = "bob-logistic-robot-3"}, - max_health = 150, - max_payload_size = 6, - speed = 0.09, - max_energy = "3000kJ", - energy_per_tick = "80J", - energy_per_move = "5000J", - collision_box = {{0, 0}, {0, 0}}, - selection_box = {{-0.5, -1.5}, {0.5, -0.5}}, - transfer_distance = 0.5, - speed_multiplier_when_out_of_energy = 0.2, - min_to_charge = 0.2, - max_to_charge = 0.95, - working_sound = flying_robot_sounds(), - cargo_centered = {0.0, 0.2}, - idle = bobmods.logistics.robot_picture("__boblogistics__/graphics/entity/robots/logistic-robot-3.png"), - idle_with_cargo = bobmods.logistics.robot_picture("__boblogistics__/graphics/entity/robots/logistic-robot-3.png"), - in_motion = bobmods.logistics.robot_picture("__boblogistics__/graphics/entity/robots/logistic-robot-3.png"), - in_motion_with_cargo = bobmods.logistics.robot_picture("__boblogistics__/graphics/entity/robots/logistic-robot-3.png"), - shadow_idle = bobmods.logistics.robot_shadow, - shadow_idle_with_cargo = bobmods.logistics.robot_shadow, - shadow_in_motion = bobmods.logistics.robot_shadow, - shadow_in_motion_with_cargo = bobmods.logistics.robot_shadow, - }, - - { - type = "logistic-robot", - name = "bob-logistic-robot-4", - icon = "__boblogistics__/graphics/icons/logistic-robot-4.png", - flags = {"placeable-player", "player-creation", "placeable-off-grid", "not-on-map"}, - minable = {hardness = 0.1, mining_time = 0.1, result = "bob-logistic-robot-4"}, - max_health = 175, - max_payload_size = 11, - speed = 0.12, - max_energy = "3750kJ", - energy_per_tick = "95J", - energy_per_move = "5000J", - collision_box = {{0, 0}, {0, 0}}, - selection_box = {{-0.5, -1.5}, {0.5, -0.5}}, - transfer_distance = 0.5, - speed_multiplier_when_out_of_energy = 0.2, - min_to_charge = 0.2, - max_to_charge = 0.95, - working_sound = flying_robot_sounds(), - cargo_centered = {0.0, 0.2}, - idle = bobmods.logistics.robot_picture("__boblogistics__/graphics/entity/robots/logistic-robot-4.png"), - idle_with_cargo = bobmods.logistics.robot_picture("__boblogistics__/graphics/entity/robots/logistic-robot-4.png"), - in_motion = bobmods.logistics.robot_picture("__boblogistics__/graphics/entity/robots/logistic-robot-4.png"), - in_motion_with_cargo = bobmods.logistics.robot_picture("__boblogistics__/graphics/entity/robots/logistic-robot-4.png"), - shadow_idle = bobmods.logistics.robot_shadow, - shadow_idle_with_cargo = bobmods.logistics.robot_shadow, - shadow_in_motion = bobmods.logistics.robot_shadow, - shadow_in_motion_with_cargo = bobmods.logistics.robot_shadow, - }, -} -) - - -data:extend( -{ - { - type = "construction-robot", - name = "bob-construction-robot-2", - icon = "__boblogistics__/graphics/icons/construction-robot-2.png", - flags = {"placeable-player", "player-creation", "placeable-off-grid", "not-on-map"}, - minable = {hardness = 0.1, mining_time = 0.1, result = "bob-construction-robot-2"}, - max_health = 225, - max_payload_size = 2, - speed = 0.09, - max_energy = "2250kJ", - energy_per_tick = "60J", - energy_per_move = "5000J", - collision_box = {{0, 0}, {0, 0}}, - selection_box = {{-0.5, -1.5}, {0.5, -0.5}}, - transfer_distance = 0.5, - speed_multiplier_when_out_of_energy = 0.2, - min_to_charge = 0.2, - max_to_charge = 0.95, - working_sound = flying_robot_sounds(), - working_light = {intensity = 0.8, size = 3}, - cargo_centered = {0.0, 0.2}, - construction_vector = {0.30, 0.22}, - repair_pack = "repair-pack", - idle = bobmods.logistics.robot_picture("__boblogistics__/graphics/entity/robots/construction-robot-2.png"), - in_motion = bobmods.logistics.robot_picture("__boblogistics__/graphics/entity/robots/construction-robot-2.png"), - working = bobmods.logistics.robot_picture("__boblogistics__/graphics/entity/robots/construction-robot-2.png"), - shadow_idle = bobmods.logistics.robot_shadow, - shadow_in_motion = bobmods.logistics.robot_shadow, - shadow_working = bobmods.logistics.robot_shadow, - smoke = bobmods.logistics.smoke, - sparks = bobmods.logistics.sparks - }, - - { - type = "construction-robot", - name = "bob-construction-robot-3", - icon = "__boblogistics__/graphics/icons/construction-robot-3.png", - flags = {"placeable-player", "player-creation", "placeable-off-grid", "not-on-map"}, - minable = {hardness = 0.1, mining_time = 0.1, result = "bob-construction-robot-3"}, - max_health = 350, - max_payload_size = 4, - speed = 0.12, - max_energy = "3000kJ", - energy_per_tick = "75J", - energy_per_move = "5000J", - collision_box = {{0, 0}, {0, 0}}, - selection_box = {{-0.5, -1.5}, {0.5, -0.5}}, - transfer_distance = 0.5, - speed_multiplier_when_out_of_energy = 0.2, - min_to_charge = 0.2, - max_to_charge = 0.95, - working_sound = flying_robot_sounds(), - working_light = {intensity = 0.8, size = 3}, - cargo_centered = {0.0, 0.2}, - construction_vector = {0.30, 0.22}, - repair_pack = "repair-pack", - idle = bobmods.logistics.robot_picture("__boblogistics__/graphics/entity/robots/construction-robot-3.png"), - in_motion = bobmods.logistics.robot_picture("__boblogistics__/graphics/entity/robots/construction-robot-3.png"), - working = bobmods.logistics.robot_picture("__boblogistics__/graphics/entity/robots/construction-robot-3.png"), - shadow_idle = bobmods.logistics.robot_shadow, - shadow_in_motion = bobmods.logistics.robot_shadow, - shadow_working = bobmods.logistics.robot_shadow, - smoke = bobmods.logistics.smoke, - sparks = bobmods.logistics.sparks - }, - - { - type = "construction-robot", - name = "bob-construction-robot-4", - icon = "__boblogistics__/graphics/icons/construction-robot-4.png", - flags = {"placeable-player", "player-creation", "placeable-off-grid", "not-on-map"}, - minable = {hardness = 0.1, mining_time = 0.1, result = "bob-construction-robot-4"}, - max_health = 500, - max_payload_size = 6, - speed = 0.15, - max_energy = "3750kJ", - energy_per_tick = "80J", - energy_per_move = "5000J", - collision_box = {{0, 0}, {0, 0}}, - selection_box = {{-0.5, -1.5}, {0.5, -0.5}}, - transfer_distance = 0.5, - speed_multiplier_when_out_of_energy = 0.2, - min_to_charge = 0.2, - max_to_charge = 0.95, - working_sound = flying_robot_sounds(), - working_light = {intensity = 0.8, size = 3}, - cargo_centered = {0.0, 0.2}, - construction_vector = {0.30, 0.22}, - repair_pack = "repair-pack", - idle = bobmods.logistics.robot_picture("__boblogistics__/graphics/entity/robots/construction-robot-4.png"), - in_motion = bobmods.logistics.robot_picture("__boblogistics__/graphics/entity/robots/construction-robot-4.png"), - working = bobmods.logistics.robot_picture("__boblogistics__/graphics/entity/robots/construction-robot-4.png"), - shadow_idle = bobmods.logistics.robot_shadow, - shadow_in_motion = bobmods.logistics.robot_shadow, - shadow_working = bobmods.logistics.robot_shadow, - smoke = bobmods.logistics.smoke, - sparks = bobmods.logistics.sparks - }, -} -) - +bobmods.logistics.robot_shadow = { + filename = "__boblogistics__/graphics/entity/robots/robot-shadow.png", + priority = "high", + width = 52, + height = 37, + frame_count = 1, + direction_count = 1 +} + +bobmods.logistics.smoke = { + filename = "__base__/graphics/entity/smoke-construction/smoke-01.png", + width = 39, + height = 32, + frame_count = 19, + line_length = 19, + shift = {0.078125, -0.15625}, + animation_speed = 0.3, +} + +bobmods.logistics.sparks = { + { + filename = "__base__/graphics/entity/sparks/sparks-01.png", + width = 39, + height = 34, + frame_count = 19, + line_length = 19, + shift = {-0.109375, 0.3125}, + tint = { r = 1.0, g = 0.9, b = 0.0, a = 1.0 }, + animation_speed = 0.3, + }, + { + filename = "__base__/graphics/entity/sparks/sparks-02.png", + width = 36, + height = 32, + frame_count = 19, + line_length = 19, + shift = {0.03125, 0.125}, + tint = { r = 1.0, g = 0.9, b = 0.0, a = 1.0 }, + animation_speed = 0.3, + }, + { + filename = "__base__/graphics/entity/sparks/sparks-03.png", + width = 42, + height = 29, + frame_count = 19, + line_length = 19, + shift = {-0.0625, 0.203125}, + tint = { r = 1.0, g = 0.9, b = 0.0, a = 1.0 }, + animation_speed = 0.3, + }, + { + filename = "__base__/graphics/entity/sparks/sparks-04.png", + width = 40, + height = 35, + frame_count = 19, + line_length = 19, + shift = {-0.0625, 0.234375}, + tint = { r = 1.0, g = 0.9, b = 0.0, a = 1.0 }, + animation_speed = 0.3, + }, + { + filename = "__base__/graphics/entity/sparks/sparks-05.png", + width = 39, + height = 29, + frame_count = 19, + line_length = 19, + shift = {-0.109375, 0.171875}, + tint = { r = 1.0, g = 0.9, b = 0.0, a = 1.0 }, + animation_speed = 0.3, + }, + { + filename = "__base__/graphics/entity/sparks/sparks-06.png", + width = 44, + height = 36, + frame_count = 19, + line_length = 19, + shift = {0.03125, 0.3125}, + tint = { r = 1.0, g = 0.9, b = 0.0, a = 1.0 }, + animation_speed = 0.3, + }, +} + + +function bobmods.logistics.robot_picture(filename) +return { + filename = filename, + priority = "high", + width = 32, + height = 32, + frame_count = 1, + direction_count = 1 +} +end + + +data:extend( +{ + { + type = "logistic-robot", + name = "bob-logistic-robot-2", + icon = "__boblogistics__/graphics/icons/logistic-robot-2.png", + flags = {"placeable-player", "player-creation", "placeable-off-grid", "not-on-map"}, + minable = {hardness = 0.1, mining_time = 0.1, result = "bob-logistic-robot-2"}, + max_health = 125, + max_payload_size = 3, + speed = 0.07, + max_energy = "2250kJ", + energy_per_tick = "65J", + energy_per_move = "5000J", + collision_box = {{0, 0}, {0, 0}}, + selection_box = {{-0.5, -1.5}, {0.5, -0.5}}, + transfer_distance = 0.5, + speed_multiplier_when_out_of_energy = 0.2, + min_to_charge = 0.2, + max_to_charge = 0.95, + working_sound = flying_robot_sounds(), + cargo_centered = {0.0, 0.2}, + idle = bobmods.logistics.robot_picture("__boblogistics__/graphics/entity/robots/logistic-robot-2.png"), + idle_with_cargo = bobmods.logistics.robot_picture("__boblogistics__/graphics/entity/robots/logistic-robot-2.png"), + in_motion = bobmods.logistics.robot_picture("__boblogistics__/graphics/entity/robots/logistic-robot-2.png"), + in_motion_with_cargo = bobmods.logistics.robot_picture("__boblogistics__/graphics/entity/robots/logistic-robot-2.png"), + shadow_idle = bobmods.logistics.robot_shadow, + shadow_idle_with_cargo = bobmods.logistics.robot_shadow, + shadow_in_motion = bobmods.logistics.robot_shadow, + shadow_in_motion_with_cargo = bobmods.logistics.robot_shadow, + }, + + { + type = "logistic-robot", + name = "bob-logistic-robot-3", + icon = "__boblogistics__/graphics/icons/logistic-robot-3.png", + flags = {"placeable-player", "player-creation", "placeable-off-grid", "not-on-map"}, + minable = {hardness = 0.1, mining_time = 0.1, result = "bob-logistic-robot-3"}, + max_health = 150, + max_payload_size = 6, + speed = 0.09, + max_energy = "3000kJ", + energy_per_tick = "80J", + energy_per_move = "5000J", + collision_box = {{0, 0}, {0, 0}}, + selection_box = {{-0.5, -1.5}, {0.5, -0.5}}, + transfer_distance = 0.5, + speed_multiplier_when_out_of_energy = 0.2, + min_to_charge = 0.2, + max_to_charge = 0.95, + working_sound = flying_robot_sounds(), + cargo_centered = {0.0, 0.2}, + idle = bobmods.logistics.robot_picture("__boblogistics__/graphics/entity/robots/logistic-robot-3.png"), + idle_with_cargo = bobmods.logistics.robot_picture("__boblogistics__/graphics/entity/robots/logistic-robot-3.png"), + in_motion = bobmods.logistics.robot_picture("__boblogistics__/graphics/entity/robots/logistic-robot-3.png"), + in_motion_with_cargo = bobmods.logistics.robot_picture("__boblogistics__/graphics/entity/robots/logistic-robot-3.png"), + shadow_idle = bobmods.logistics.robot_shadow, + shadow_idle_with_cargo = bobmods.logistics.robot_shadow, + shadow_in_motion = bobmods.logistics.robot_shadow, + shadow_in_motion_with_cargo = bobmods.logistics.robot_shadow, + }, + + { + type = "logistic-robot", + name = "bob-logistic-robot-4", + icon = "__boblogistics__/graphics/icons/logistic-robot-4.png", + flags = {"placeable-player", "player-creation", "placeable-off-grid", "not-on-map"}, + minable = {hardness = 0.1, mining_time = 0.1, result = "bob-logistic-robot-4"}, + max_health = 175, + max_payload_size = 11, + speed = 0.12, + max_energy = "3750kJ", + energy_per_tick = "95J", + energy_per_move = "5000J", + collision_box = {{0, 0}, {0, 0}}, + selection_box = {{-0.5, -1.5}, {0.5, -0.5}}, + transfer_distance = 0.5, + speed_multiplier_when_out_of_energy = 0.2, + min_to_charge = 0.2, + max_to_charge = 0.95, + working_sound = flying_robot_sounds(), + cargo_centered = {0.0, 0.2}, + idle = bobmods.logistics.robot_picture("__boblogistics__/graphics/entity/robots/logistic-robot-4.png"), + idle_with_cargo = bobmods.logistics.robot_picture("__boblogistics__/graphics/entity/robots/logistic-robot-4.png"), + in_motion = bobmods.logistics.robot_picture("__boblogistics__/graphics/entity/robots/logistic-robot-4.png"), + in_motion_with_cargo = bobmods.logistics.robot_picture("__boblogistics__/graphics/entity/robots/logistic-robot-4.png"), + shadow_idle = bobmods.logistics.robot_shadow, + shadow_idle_with_cargo = bobmods.logistics.robot_shadow, + shadow_in_motion = bobmods.logistics.robot_shadow, + shadow_in_motion_with_cargo = bobmods.logistics.robot_shadow, + }, +} +) + + +data:extend( +{ + { + type = "construction-robot", + name = "bob-construction-robot-2", + icon = "__boblogistics__/graphics/icons/construction-robot-2.png", + flags = {"placeable-player", "player-creation", "placeable-off-grid", "not-on-map"}, + minable = {hardness = 0.1, mining_time = 0.1, result = "bob-construction-robot-2"}, + max_health = 225, + max_payload_size = 2, + speed = 0.09, + max_energy = "2250kJ", + energy_per_tick = "60J", + energy_per_move = "5000J", + collision_box = {{0, 0}, {0, 0}}, + selection_box = {{-0.5, -1.5}, {0.5, -0.5}}, + transfer_distance = 0.5, + speed_multiplier_when_out_of_energy = 0.2, + min_to_charge = 0.2, + max_to_charge = 0.95, + working_sound = flying_robot_sounds(), + working_light = {intensity = 0.8, size = 3}, + cargo_centered = {0.0, 0.2}, + construction_vector = {0.30, 0.22}, + repair_pack = "repair-pack", + idle = bobmods.logistics.robot_picture("__boblogistics__/graphics/entity/robots/construction-robot-2.png"), + in_motion = bobmods.logistics.robot_picture("__boblogistics__/graphics/entity/robots/construction-robot-2.png"), + working = bobmods.logistics.robot_picture("__boblogistics__/graphics/entity/robots/construction-robot-2.png"), + shadow_idle = bobmods.logistics.robot_shadow, + shadow_in_motion = bobmods.logistics.robot_shadow, + shadow_working = bobmods.logistics.robot_shadow, + smoke = bobmods.logistics.smoke, + sparks = bobmods.logistics.sparks + }, + + { + type = "construction-robot", + name = "bob-construction-robot-3", + icon = "__boblogistics__/graphics/icons/construction-robot-3.png", + flags = {"placeable-player", "player-creation", "placeable-off-grid", "not-on-map"}, + minable = {hardness = 0.1, mining_time = 0.1, result = "bob-construction-robot-3"}, + max_health = 350, + max_payload_size = 4, + speed = 0.12, + max_energy = "3000kJ", + energy_per_tick = "75J", + energy_per_move = "5000J", + collision_box = {{0, 0}, {0, 0}}, + selection_box = {{-0.5, -1.5}, {0.5, -0.5}}, + transfer_distance = 0.5, + speed_multiplier_when_out_of_energy = 0.2, + min_to_charge = 0.2, + max_to_charge = 0.95, + working_sound = flying_robot_sounds(), + working_light = {intensity = 0.8, size = 3}, + cargo_centered = {0.0, 0.2}, + construction_vector = {0.30, 0.22}, + repair_pack = "repair-pack", + idle = bobmods.logistics.robot_picture("__boblogistics__/graphics/entity/robots/construction-robot-3.png"), + in_motion = bobmods.logistics.robot_picture("__boblogistics__/graphics/entity/robots/construction-robot-3.png"), + working = bobmods.logistics.robot_picture("__boblogistics__/graphics/entity/robots/construction-robot-3.png"), + shadow_idle = bobmods.logistics.robot_shadow, + shadow_in_motion = bobmods.logistics.robot_shadow, + shadow_working = bobmods.logistics.robot_shadow, + smoke = bobmods.logistics.smoke, + sparks = bobmods.logistics.sparks + }, + + { + type = "construction-robot", + name = "bob-construction-robot-4", + icon = "__boblogistics__/graphics/icons/construction-robot-4.png", + flags = {"placeable-player", "player-creation", "placeable-off-grid", "not-on-map"}, + minable = {hardness = 0.1, mining_time = 0.1, result = "bob-construction-robot-4"}, + max_health = 500, + max_payload_size = 6, + speed = 0.15, + max_energy = "3750kJ", + energy_per_tick = "80J", + energy_per_move = "5000J", + collision_box = {{0, 0}, {0, 0}}, + selection_box = {{-0.5, -1.5}, {0.5, -0.5}}, + transfer_distance = 0.5, + speed_multiplier_when_out_of_energy = 0.2, + min_to_charge = 0.2, + max_to_charge = 0.95, + working_sound = flying_robot_sounds(), + working_light = {intensity = 0.8, size = 3}, + cargo_centered = {0.0, 0.2}, + construction_vector = {0.30, 0.22}, + repair_pack = "repair-pack", + idle = bobmods.logistics.robot_picture("__boblogistics__/graphics/entity/robots/construction-robot-4.png"), + in_motion = bobmods.logistics.robot_picture("__boblogistics__/graphics/entity/robots/construction-robot-4.png"), + working = bobmods.logistics.robot_picture("__boblogistics__/graphics/entity/robots/construction-robot-4.png"), + shadow_idle = bobmods.logistics.robot_shadow, + shadow_in_motion = bobmods.logistics.robot_shadow, + shadow_working = bobmods.logistics.robot_shadow, + smoke = bobmods.logistics.smoke, + sparks = bobmods.logistics.sparks + }, +} +) + diff --git a/boblogistics_0.14.0/prototypes/entity/storage-tank.lua b/boblogistics_0.14.2/prototypes/entity/storage-tank.lua similarity index 96% rename from boblogistics_0.14.0/prototypes/entity/storage-tank.lua rename to boblogistics_0.14.2/prototypes/entity/storage-tank.lua index b743158..f6d2bf2 100644 --- a/boblogistics_0.14.0/prototypes/entity/storage-tank.lua +++ b/boblogistics_0.14.2/prototypes/entity/storage-tank.lua @@ -1,403 +1,403 @@ -data.raw["storage-tank"]["storage-tank"].fast_replaceable_group = "pipe" - - -data:extend( -{ - { - type = "storage-tank", - name = "storage-tank-2", - icon = "__base__/graphics/icons/storage-tank.png", - flags = {"placeable-player", "player-creation"}, - minable = {hardness = 0.2, mining_time = 3, result = "storage-tank-2"}, - max_health = 600, - corpse = "medium-remnants", - collision_box = {{-1.3, -1.3}, {1.3, 1.3}}, - selection_box = {{-1.5, -1.5}, {1.5, 1.5}}, - fluid_box = - { - base_area = 500, - pipe_covers = pipecoverspictures(), - pipe_connections = - { - { position = {-1, -2} }, - { position = {2, 1} }, - { position = {1, 2} }, - { position = {-2, -1} }, - }, - }, - fast_replaceable_group = "pipe", - window_bounding_box = {{-0.125, 0.6875}, {0.1875, 1.1875}}, - pictures = - { - picture = - { - sheet = - { - filename = "__base__/graphics/entity/storage-tank/storage-tank.png", - priority = "extra-high", - frames = 2, - width = 140, - height = 115, - shift = {0.6875, 0.109375} - } - }, - fluid_background = - { - filename = "__base__/graphics/entity/storage-tank/fluid-background.png", - priority = "extra-high", - width = 32, - height = 15 - }, - window_background = - { - filename = "__base__/graphics/entity/storage-tank/window-background.png", - priority = "extra-high", - width = 17, - height = 24 - }, - flow_sprite = - { - filename = "__base__/graphics/entity/pipe/fluid-flow-low-temperature.png", - priority = "extra-high", - width = 160, - height = 20 - } - }, - flow_length_in_ticks = 360, - vehicle_impact_sound = { filename = "__base__/sound/car-metal-impact.ogg", volume = 0.65 }, - working_sound = - { - sound = { - filename = "__base__/sound/storage-tank.ogg", - volume = 0.8 - }, - apparent_volume = 1.5, - max_sounds_per_type = 3 - }, - circuit_wire_connection_points = - { - { - shadow = - { - red = {2.35938, 0.890625}, - green = {2.29688, 0.953125}, - }, - wire = - { - red = {-0.40625, -0.375}, - green = {-0.53125, -0.46875}, - } - }, - { - shadow = - { - red = {2.35938, 0.890625}, - green = {2.29688, 0.953125}, - }, - wire = - { - red = {0.46875, -0.53125}, - green = {0.375, -0.4375}, - } - }, - { - shadow = - { - red = {2.35938, 0.890625}, - green = {2.29688, 0.953125}, - }, - wire = - { - red = {-0.40625, -0.375}, - green = {-0.53125, -0.46875}, - } - }, - { - shadow = - { - red = {2.35938, 0.890625}, - green = {2.29688, 0.953125}, - }, - wire = - { - red = {0.46875, -0.53125}, - green = {0.375, -0.4375}, - } - }, - }, - circuit_connector_sprites = - { - get_circuit_connector_sprites({-0.1875, -0.375}, nil, 7), - get_circuit_connector_sprites({0.375, -0.53125}, nil, 1), - get_circuit_connector_sprites({-0.1875, -0.375}, nil, 7), - get_circuit_connector_sprites({0.375, -0.53125}, nil, 1), - }, - circuit_wire_max_distance = 10 - }, - - { - type = "storage-tank", - name = "storage-tank-3", - icon = "__base__/graphics/icons/storage-tank.png", - flags = {"placeable-player", "player-creation"}, - minable = {hardness = 0.2, mining_time = 3, result = "storage-tank-3"}, - max_health = 700, - corpse = "medium-remnants", - collision_box = {{-1.3, -1.3}, {1.3, 1.3}}, - selection_box = {{-1.5, -1.5}, {1.5, 1.5}}, - fluid_box = - { - base_area = 750, - pipe_covers = pipecoverspictures(), - pipe_connections = - { - { position = {-1, -2} }, - { position = {2, 1} }, - { position = {1, 2} }, - { position = {-2, -1} }, - }, - }, - fast_replaceable_group = "pipe", - window_bounding_box = {{-0.125, 0.6875}, {0.1875, 1.1875}}, - pictures = - { - picture = - { - sheet = - { - filename = "__base__/graphics/entity/storage-tank/storage-tank.png", - priority = "extra-high", - frames = 2, - width = 140, - height = 115, - shift = {0.6875, 0.109375} - } - }, - fluid_background = - { - filename = "__base__/graphics/entity/storage-tank/fluid-background.png", - priority = "extra-high", - width = 32, - height = 15 - }, - window_background = - { - filename = "__base__/graphics/entity/storage-tank/window-background.png", - priority = "extra-high", - width = 17, - height = 24 - }, - flow_sprite = - { - filename = "__base__/graphics/entity/pipe/fluid-flow-low-temperature.png", - priority = "extra-high", - width = 160, - height = 20 - } - }, - flow_length_in_ticks = 360, - vehicle_impact_sound = { filename = "__base__/sound/car-metal-impact.ogg", volume = 0.65 }, - working_sound = - { - sound = { - filename = "__base__/sound/storage-tank.ogg", - volume = 0.8 - }, - apparent_volume = 1.5, - max_sounds_per_type = 3 - }, - circuit_wire_connection_points = - { - { - shadow = - { - red = {2.35938, 0.890625}, - green = {2.29688, 0.953125}, - }, - wire = - { - red = {-0.40625, -0.375}, - green = {-0.53125, -0.46875}, - } - }, - { - shadow = - { - red = {2.35938, 0.890625}, - green = {2.29688, 0.953125}, - }, - wire = - { - red = {0.46875, -0.53125}, - green = {0.375, -0.4375}, - } - }, - { - shadow = - { - red = {2.35938, 0.890625}, - green = {2.29688, 0.953125}, - }, - wire = - { - red = {-0.40625, -0.375}, - green = {-0.53125, -0.46875}, - } - }, - { - shadow = - { - red = {2.35938, 0.890625}, - green = {2.29688, 0.953125}, - }, - wire = - { - red = {0.46875, -0.53125}, - green = {0.375, -0.4375}, - } - }, - }, - circuit_connector_sprites = - { - get_circuit_connector_sprites({-0.1875, -0.375}, nil, 7), - get_circuit_connector_sprites({0.375, -0.53125}, nil, 1), - get_circuit_connector_sprites({-0.1875, -0.375}, nil, 7), - get_circuit_connector_sprites({0.375, -0.53125}, nil, 1), - }, - circuit_wire_max_distance = 12.5 - }, - - { - type = "storage-tank", - name = "storage-tank-4", - icon = "__base__/graphics/icons/storage-tank.png", - flags = {"placeable-player", "player-creation"}, - minable = {hardness = 0.2, mining_time = 3, result = "storage-tank-4"}, - max_health = 800, - corpse = "medium-remnants", - collision_box = {{-1.3, -1.3}, {1.3, 1.3}}, - selection_box = {{-1.5, -1.5}, {1.5, 1.5}}, - fluid_box = - { - base_area = 1000, - pipe_covers = pipecoverspictures(), - pipe_connections = - { - { position = {-1, -2} }, - { position = {2, 1} }, - { position = {1, 2} }, - { position = {-2, -1} }, - }, - }, - fast_replaceable_group = "pipe", - window_bounding_box = {{-0.125, 0.6875}, {0.1875, 1.1875}}, - pictures = - { - picture = - { - sheet = - { - filename = "__base__/graphics/entity/storage-tank/storage-tank.png", - priority = "extra-high", - frames = 2, - width = 140, - height = 115, - shift = {0.6875, 0.109375} - } - }, - fluid_background = - { - filename = "__base__/graphics/entity/storage-tank/fluid-background.png", - priority = "extra-high", - width = 32, - height = 15 - }, - window_background = - { - filename = "__base__/graphics/entity/storage-tank/window-background.png", - priority = "extra-high", - width = 17, - height = 24 - }, - flow_sprite = - { - filename = "__base__/graphics/entity/pipe/fluid-flow-low-temperature.png", - priority = "extra-high", - width = 160, - height = 20 - } - }, - flow_length_in_ticks = 360, - vehicle_impact_sound = { filename = "__base__/sound/car-metal-impact.ogg", volume = 0.65 }, - working_sound = - { - sound = { - filename = "__base__/sound/storage-tank.ogg", - volume = 0.8 - }, - apparent_volume = 1.5, - max_sounds_per_type = 3 - }, - circuit_wire_connection_points = - { - { - shadow = - { - red = {2.35938, 0.890625}, - green = {2.29688, 0.953125}, - }, - wire = - { - red = {-0.40625, -0.375}, - green = {-0.53125, -0.46875}, - } - }, - { - shadow = - { - red = {2.35938, 0.890625}, - green = {2.29688, 0.953125}, - }, - wire = - { - red = {0.46875, -0.53125}, - green = {0.375, -0.4375}, - } - }, - { - shadow = - { - red = {2.35938, 0.890625}, - green = {2.29688, 0.953125}, - }, - wire = - { - red = {-0.40625, -0.375}, - green = {-0.53125, -0.46875}, - } - }, - { - shadow = - { - red = {2.35938, 0.890625}, - green = {2.29688, 0.953125}, - }, - wire = - { - red = {0.46875, -0.53125}, - green = {0.375, -0.4375}, - } - }, - }, - circuit_connector_sprites = - { - get_circuit_connector_sprites({-0.1875, -0.375}, nil, 7), - get_circuit_connector_sprites({0.375, -0.53125}, nil, 1), - get_circuit_connector_sprites({-0.1875, -0.375}, nil, 7), - get_circuit_connector_sprites({0.375, -0.53125}, nil, 1), - }, - circuit_wire_max_distance = 15 - }, -} -) - +data.raw["storage-tank"]["storage-tank"].fast_replaceable_group = "pipe" + + +data:extend( +{ + { + type = "storage-tank", + name = "storage-tank-2", + icon = "__base__/graphics/icons/storage-tank.png", + flags = {"placeable-player", "player-creation"}, + minable = {hardness = 0.2, mining_time = 3, result = "storage-tank-2"}, + max_health = 600, + corpse = "medium-remnants", + collision_box = {{-1.3, -1.3}, {1.3, 1.3}}, + selection_box = {{-1.5, -1.5}, {1.5, 1.5}}, + fluid_box = + { + base_area = 500, + pipe_covers = pipecoverspictures(), + pipe_connections = + { + { position = {-1, -2} }, + { position = {2, 1} }, + { position = {1, 2} }, + { position = {-2, -1} }, + }, + }, + fast_replaceable_group = "pipe", + window_bounding_box = {{-0.125, 0.6875}, {0.1875, 1.1875}}, + pictures = + { + picture = + { + sheet = + { + filename = "__base__/graphics/entity/storage-tank/storage-tank.png", + priority = "extra-high", + frames = 2, + width = 140, + height = 115, + shift = {0.6875, 0.109375} + } + }, + fluid_background = + { + filename = "__base__/graphics/entity/storage-tank/fluid-background.png", + priority = "extra-high", + width = 32, + height = 15 + }, + window_background = + { + filename = "__base__/graphics/entity/storage-tank/window-background.png", + priority = "extra-high", + width = 17, + height = 24 + }, + flow_sprite = + { + filename = "__base__/graphics/entity/pipe/fluid-flow-low-temperature.png", + priority = "extra-high", + width = 160, + height = 20 + } + }, + flow_length_in_ticks = 360, + vehicle_impact_sound = { filename = "__base__/sound/car-metal-impact.ogg", volume = 0.65 }, + working_sound = + { + sound = { + filename = "__base__/sound/storage-tank.ogg", + volume = 0.8 + }, + apparent_volume = 1.5, + max_sounds_per_type = 3 + }, + circuit_wire_connection_points = + { + { + shadow = + { + red = {2.35938, 0.890625}, + green = {2.29688, 0.953125}, + }, + wire = + { + red = {-0.40625, -0.375}, + green = {-0.53125, -0.46875}, + } + }, + { + shadow = + { + red = {2.35938, 0.890625}, + green = {2.29688, 0.953125}, + }, + wire = + { + red = {0.46875, -0.53125}, + green = {0.375, -0.4375}, + } + }, + { + shadow = + { + red = {2.35938, 0.890625}, + green = {2.29688, 0.953125}, + }, + wire = + { + red = {-0.40625, -0.375}, + green = {-0.53125, -0.46875}, + } + }, + { + shadow = + { + red = {2.35938, 0.890625}, + green = {2.29688, 0.953125}, + }, + wire = + { + red = {0.46875, -0.53125}, + green = {0.375, -0.4375}, + } + }, + }, + circuit_connector_sprites = + { + get_circuit_connector_sprites({-0.1875, -0.375}, nil, 7), + get_circuit_connector_sprites({0.375, -0.53125}, nil, 1), + get_circuit_connector_sprites({-0.1875, -0.375}, nil, 7), + get_circuit_connector_sprites({0.375, -0.53125}, nil, 1), + }, + circuit_wire_max_distance = 10 + }, + + { + type = "storage-tank", + name = "storage-tank-3", + icon = "__base__/graphics/icons/storage-tank.png", + flags = {"placeable-player", "player-creation"}, + minable = {hardness = 0.2, mining_time = 3, result = "storage-tank-3"}, + max_health = 700, + corpse = "medium-remnants", + collision_box = {{-1.3, -1.3}, {1.3, 1.3}}, + selection_box = {{-1.5, -1.5}, {1.5, 1.5}}, + fluid_box = + { + base_area = 750, + pipe_covers = pipecoverspictures(), + pipe_connections = + { + { position = {-1, -2} }, + { position = {2, 1} }, + { position = {1, 2} }, + { position = {-2, -1} }, + }, + }, + fast_replaceable_group = "pipe", + window_bounding_box = {{-0.125, 0.6875}, {0.1875, 1.1875}}, + pictures = + { + picture = + { + sheet = + { + filename = "__base__/graphics/entity/storage-tank/storage-tank.png", + priority = "extra-high", + frames = 2, + width = 140, + height = 115, + shift = {0.6875, 0.109375} + } + }, + fluid_background = + { + filename = "__base__/graphics/entity/storage-tank/fluid-background.png", + priority = "extra-high", + width = 32, + height = 15 + }, + window_background = + { + filename = "__base__/graphics/entity/storage-tank/window-background.png", + priority = "extra-high", + width = 17, + height = 24 + }, + flow_sprite = + { + filename = "__base__/graphics/entity/pipe/fluid-flow-low-temperature.png", + priority = "extra-high", + width = 160, + height = 20 + } + }, + flow_length_in_ticks = 360, + vehicle_impact_sound = { filename = "__base__/sound/car-metal-impact.ogg", volume = 0.65 }, + working_sound = + { + sound = { + filename = "__base__/sound/storage-tank.ogg", + volume = 0.8 + }, + apparent_volume = 1.5, + max_sounds_per_type = 3 + }, + circuit_wire_connection_points = + { + { + shadow = + { + red = {2.35938, 0.890625}, + green = {2.29688, 0.953125}, + }, + wire = + { + red = {-0.40625, -0.375}, + green = {-0.53125, -0.46875}, + } + }, + { + shadow = + { + red = {2.35938, 0.890625}, + green = {2.29688, 0.953125}, + }, + wire = + { + red = {0.46875, -0.53125}, + green = {0.375, -0.4375}, + } + }, + { + shadow = + { + red = {2.35938, 0.890625}, + green = {2.29688, 0.953125}, + }, + wire = + { + red = {-0.40625, -0.375}, + green = {-0.53125, -0.46875}, + } + }, + { + shadow = + { + red = {2.35938, 0.890625}, + green = {2.29688, 0.953125}, + }, + wire = + { + red = {0.46875, -0.53125}, + green = {0.375, -0.4375}, + } + }, + }, + circuit_connector_sprites = + { + get_circuit_connector_sprites({-0.1875, -0.375}, nil, 7), + get_circuit_connector_sprites({0.375, -0.53125}, nil, 1), + get_circuit_connector_sprites({-0.1875, -0.375}, nil, 7), + get_circuit_connector_sprites({0.375, -0.53125}, nil, 1), + }, + circuit_wire_max_distance = 12.5 + }, + + { + type = "storage-tank", + name = "storage-tank-4", + icon = "__base__/graphics/icons/storage-tank.png", + flags = {"placeable-player", "player-creation"}, + minable = {hardness = 0.2, mining_time = 3, result = "storage-tank-4"}, + max_health = 800, + corpse = "medium-remnants", + collision_box = {{-1.3, -1.3}, {1.3, 1.3}}, + selection_box = {{-1.5, -1.5}, {1.5, 1.5}}, + fluid_box = + { + base_area = 1000, + pipe_covers = pipecoverspictures(), + pipe_connections = + { + { position = {-1, -2} }, + { position = {2, 1} }, + { position = {1, 2} }, + { position = {-2, -1} }, + }, + }, + fast_replaceable_group = "pipe", + window_bounding_box = {{-0.125, 0.6875}, {0.1875, 1.1875}}, + pictures = + { + picture = + { + sheet = + { + filename = "__base__/graphics/entity/storage-tank/storage-tank.png", + priority = "extra-high", + frames = 2, + width = 140, + height = 115, + shift = {0.6875, 0.109375} + } + }, + fluid_background = + { + filename = "__base__/graphics/entity/storage-tank/fluid-background.png", + priority = "extra-high", + width = 32, + height = 15 + }, + window_background = + { + filename = "__base__/graphics/entity/storage-tank/window-background.png", + priority = "extra-high", + width = 17, + height = 24 + }, + flow_sprite = + { + filename = "__base__/graphics/entity/pipe/fluid-flow-low-temperature.png", + priority = "extra-high", + width = 160, + height = 20 + } + }, + flow_length_in_ticks = 360, + vehicle_impact_sound = { filename = "__base__/sound/car-metal-impact.ogg", volume = 0.65 }, + working_sound = + { + sound = { + filename = "__base__/sound/storage-tank.ogg", + volume = 0.8 + }, + apparent_volume = 1.5, + max_sounds_per_type = 3 + }, + circuit_wire_connection_points = + { + { + shadow = + { + red = {2.35938, 0.890625}, + green = {2.29688, 0.953125}, + }, + wire = + { + red = {-0.40625, -0.375}, + green = {-0.53125, -0.46875}, + } + }, + { + shadow = + { + red = {2.35938, 0.890625}, + green = {2.29688, 0.953125}, + }, + wire = + { + red = {0.46875, -0.53125}, + green = {0.375, -0.4375}, + } + }, + { + shadow = + { + red = {2.35938, 0.890625}, + green = {2.29688, 0.953125}, + }, + wire = + { + red = {-0.40625, -0.375}, + green = {-0.53125, -0.46875}, + } + }, + { + shadow = + { + red = {2.35938, 0.890625}, + green = {2.29688, 0.953125}, + }, + wire = + { + red = {0.46875, -0.53125}, + green = {0.375, -0.4375}, + } + }, + }, + circuit_connector_sprites = + { + get_circuit_connector_sprites({-0.1875, -0.375}, nil, 7), + get_circuit_connector_sprites({0.375, -0.53125}, nil, 1), + get_circuit_connector_sprites({-0.1875, -0.375}, nil, 7), + get_circuit_connector_sprites({0.375, -0.53125}, nil, 1), + }, + circuit_wire_max_distance = 15 + }, +} +) + diff --git a/boblogistics_0.14.0/prototypes/entity/train.lua b/boblogistics_0.14.2/prototypes/entity/train.lua similarity index 92% rename from boblogistics_0.14.0/prototypes/entity/train.lua rename to boblogistics_0.14.2/prototypes/entity/train.lua index 43b0581..2f90aa2 100644 --- a/boblogistics_0.14.0/prototypes/entity/train.lua +++ b/boblogistics_0.14.2/prototypes/entity/train.lua @@ -1,1226 +1,1229 @@ -function rolling_stock_front_light() - return - { - { - type = "oriented", - minimum_darkness = 0.3, - picture = - { - filename = "__core__/graphics/light-cone.png", - priority = "medium", - scale = 2, - width = 200, - height = 200 - }, - shift = {-0.6, -16}, - size = 2, - intensity = 0.6 - }, - { - type = "oriented", - minimum_darkness = 0.3, - picture = - { - filename = "__core__/graphics/light-cone.png", - priority = "medium", - scale = 2, - width = 200, - height = 200 - }, - shift = {0.6, -16}, - size = 2, - intensity = 0.6 - } - } -end - -function rolling_stock_stop_trigger() - return - { - -- left side - { - type = "create-smoke", - repeat_count = 125, - entity_name = "smoke-train-stop", - initial_height = 0, - -- smoke goes to the left - speed = {-0.03, 0}, - speed_multiplier = 0.75, - speed_multiplier_deviation = 1.1, - offset_deviation = {{-0.75, -2.7}, {-0.3, 2.7}} - }, - -- right side - { - type = "create-smoke", - repeat_count = 125, - entity_name = "smoke-train-stop", - initial_height = 0, - -- smoke goes to the right - speed = {0.03, 0}, - speed_multiplier = 0.75, - speed_multiplier_deviation = 1.1, - offset_deviation = {{0.3, -2.7}, {0.75, 2.7}} - }, - { - type = "play-sound", - sound = - { - { - filename = "__base__/sound/train-breaks.ogg", - volume = 0.6 - }, - } - }, - } -end - -function rolling_stock_resistances() - return - { - { - type = "fire", - decrease = 15, - percent = 50 - }, - { - type = "physical", - decrease = 15, - percent = 30 - }, - { - type = "impact", - decrease = 50, - percent = 60 - }, - { - type = "explosion", - decrease = 15, - percent = 30 - }, - { - type = "acid", - decrease = 10, - percent = 20 - }, - - { - type = "laser", - decrease = 10, - percent = 30, - }, - { - type = "electric", - decrease = 12, - percent = 50, - }, - { - type = "poison", - decrease = 15, - percent = 60, - } - } -end - -function rolling_stock_armor_resistances() - return - { - { - type = "fire", - decrease = 25, - percent = 75 - }, - { - type = "physical", - decrease = 25, - percent = 50 - }, - { - type = "impact", - decrease = 75, - percent = 90 - }, - { - type = "explosion", - decrease = 25, - percent = 50 - }, - { - type = "acid", - decrease = 20, - percent = 30 - }, - { - type = "laser", - decrease = 10, - percent = 50, - }, - { - type = "electric", - decrease = 12, - percent = 75, - }, - { - type = "poison", - decrease = 15, - percent = 90, - } - } -end - - -data.raw.locomotive["diesel-locomotive"].resistances = rolling_stock_resistances() - - -data:extend( -{ - { - type = "locomotive", - name = "diesel-locomotive-2", - icon = "__base__/graphics/icons/diesel-locomotive.png", - flags = {"placeable-neutral", "player-creation", "placeable-off-grid", "not-on-map"}, - minable = {mining_time = 1, result = "diesel-locomotive-2"}, - mined_sound = {filename = "__core__/sound/deconstruct-medium.ogg"}, - max_health = 1350, - corpse = "medium-remnants", - dying_explosion = "medium-explosion", - collision_box = {{-0.6, -2.6}, {0.6, 2.6}}, - selection_box = {{-0.85, -2.6}, {0.9, 2.5}}, - drawing_box = {{-1, -4}, {1, 3}}, - weight = 2000, - max_speed = 1.7, - max_power = "900kW", - reversing_power_modifier = 0.8, - braking_force = 15, - friction_force = 0.001, - -- this is a percentage of current speed that will be subtracted - air_resistance = 0.0015, - connection_distance = 3, - joint_distance = 4, - energy_per_hit_point = 5, - rail_category = "regular", - drive_over_tie_trigger = drive_over_tie(), - tie_distance = 50, - crash_trigger = crash_trigger(), - vehicle_impact_sound = { filename = "__base__/sound/car-metal-impact.ogg", volume = 0.65 }, - open_sound = { filename = "__base__/sound/car-door-open.ogg", volume=0.7 }, - close_sound = { filename = "__base__/sound/car-door-close.ogg", volume = 0.7 }, - sound_minimum_speed = 0.5, - resistances = rolling_stock_resistances(), - energy_source = - { - type = "burner", - effectivity = 1.2, - fuel_inventory_size = 4, - smoke = - { - { - name = "train-smoke", - deviation = {0.3, 0.3}, - frequency = 100, - position = {0, 0}, - starting_frame = 0, - starting_frame_deviation = 60, - height = 2, - height_deviation = 0.5, - starting_vertical_speed = 0.2, - starting_vertical_speed_deviation = 0.1, - } - } - }, - front_light = rolling_stock_front_light(), - back_light = rolling_stock_back_light(), - stand_by_light = rolling_stock_stand_by_light(), - stop_trigger = rolling_stock_stop_trigger(), - working_sound = - { - sound = - { - filename = "__base__/sound/train-engine.ogg", - volume = 0.4 - }, - match_speed_to_activity = true, - }, - - color = {r = 0.92, g = 0.07, b = 0, a = 0.5}, - pictures = - { - layers = - { - { - priority = "very-low", - width = 238, - height = 230, - direction_count = 256, - filenames = - { - "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-01.png", - "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-02.png", - "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-03.png", - "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-04.png", - "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-05.png", - "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-06.png", - "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-07.png", - "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-08.png" - }, - line_length = 4, - lines_per_file = 8, - shift = {0.0, -0.5} - }, - { - priority = "very-low", - flags = { "mask" }, - width = 236, - height = 228, - direction_count = 256, - filenames = - { - "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-mask-01.png", - "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-mask-02.png", - "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-mask-03.png", - "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-mask-04.png", - "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-mask-05.png", - "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-mask-06.png", - "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-mask-07.png", - "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-mask-08.png" - }, - line_length = 4, - lines_per_file = 8, - shift = {0.0, -0.5}, - apply_runtime_tint = true - }, - { - priority = "very-low", - flags = { "compressed" }, - width = 253, - height = 212, - direction_count = 256, - draw_as_shadow = true, - filenames = - { - "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-shadow-01.png", - "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-shadow-02.png", - "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-shadow-03.png", - "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-shadow-04.png", - "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-shadow-05.png", - "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-shadow-06.png", - "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-shadow-07.png", - "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-shadow-08.png" - }, - line_length = 4, - lines_per_file = 8, - shift = {1, 0.3} - } - } - }, - wheels = standard_train_wheels, - equipment_grid = "diesel-locomotive-2", - }, - - { - type = "locomotive", - name = "diesel-locomotive-3", - icon = "__base__/graphics/icons/diesel-locomotive.png", - flags = {"placeable-neutral", "player-creation", "placeable-off-grid", "not-on-map"}, - minable = {mining_time = 1, result = "diesel-locomotive-3"}, - mined_sound = {filename = "__core__/sound/deconstruct-medium.ogg"}, - max_health = 1700, - corpse = "medium-remnants", - dying_explosion = "medium-explosion", - collision_box = {{-0.6, -2.6}, {0.6, 2.6}}, - selection_box = {{-0.85, -2.6}, {0.9, 2.5}}, - drawing_box = {{-1, -4}, {1, 3}}, - weight = 2000, - max_speed = 2, - max_power = "1200kW", - reversing_power_modifier = 1, - braking_force = 20, - friction_force = 0.0005, - -- this is a percentage of current speed that will be subtracted - air_resistance = 0.001, - connection_distance = 3, - joint_distance = 4, - energy_per_hit_point = 5, - rail_category = "regular", - drive_over_tie_trigger = drive_over_tie(), - tie_distance = 50, - crash_trigger = crash_trigger(), - vehicle_impact_sound = { filename = "__base__/sound/car-metal-impact.ogg", volume = 0.65 }, - open_sound = { filename = "__base__/sound/car-door-open.ogg", volume=0.7 }, - close_sound = { filename = "__base__/sound/car-door-close.ogg", volume = 0.7 }, - sound_minimum_speed = 0.5, - resistances = rolling_stock_resistances(), - energy_source = - { - type = "burner", - effectivity = 1.4, - fuel_inventory_size = 5, - smoke = - { - { - name = "train-smoke", - deviation = {0.3, 0.3}, - frequency = 100, - position = {0, 0}, - starting_frame = 0, - starting_frame_deviation = 60, - height = 2, - height_deviation = 0.5, - starting_vertical_speed = 0.2, - starting_vertical_speed_deviation = 0.1, - } - } - }, - front_light = rolling_stock_front_light(), - back_light = rolling_stock_back_light(), - stand_by_light = rolling_stock_stand_by_light(), - stop_trigger = rolling_stock_stop_trigger(), - working_sound = - { - sound = - { - filename = "__base__/sound/train-engine.ogg", - volume = 0.4 - }, - match_speed_to_activity = true, - }, - - color = {r = 0.92, g = 0.07, b = 0, a = 0.5}, - pictures = - { - layers = - { - { - priority = "very-low", - width = 238, - height = 230, - direction_count = 256, - filenames = - { - "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-01.png", - "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-02.png", - "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-03.png", - "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-04.png", - "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-05.png", - "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-06.png", - "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-07.png", - "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-08.png" - }, - line_length = 4, - lines_per_file = 8, - shift = {0.0, -0.5} - }, - { - priority = "very-low", - flags = { "mask" }, - width = 236, - height = 228, - direction_count = 256, - filenames = - { - "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-mask-01.png", - "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-mask-02.png", - "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-mask-03.png", - "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-mask-04.png", - "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-mask-05.png", - "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-mask-06.png", - "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-mask-07.png", - "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-mask-08.png" - }, - line_length = 4, - lines_per_file = 8, - shift = {0.0, -0.5}, - apply_runtime_tint = true - }, - { - priority = "very-low", - flags = { "compressed" }, - width = 253, - height = 212, - direction_count = 256, - draw_as_shadow = true, - filenames = - { - "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-shadow-01.png", - "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-shadow-02.png", - "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-shadow-03.png", - "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-shadow-04.png", - "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-shadow-05.png", - "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-shadow-06.png", - "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-shadow-07.png", - "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-shadow-08.png" - }, - line_length = 4, - lines_per_file = 8, - shift = {1, 0.3} - } - } - }, - wheels = standard_train_wheels, - equipment_grid = "diesel-locomotive-3", - }, -} -) - - - -data.raw["cargo-wagon"]["cargo-wagon"].resistances = rolling_stock_resistances() - -data:extend( -{ - { - type = "cargo-wagon", - name = "cargo-wagon-2", - icon = "__base__/graphics/icons/cargo-wagon.png", - flags = {"placeable-neutral", "player-creation", "placeable-off-grid", "not-on-map"}, - inventory_size = 60, - minable = {mining_time = 1, result = "cargo-wagon-2"}, - mined_sound = {filename = "__core__/sound/deconstruct-medium.ogg"}, - max_health = 800, - corpse = "medium-remnants", - dying_explosion = "medium-explosion", - collision_box = {{-0.6, -2.4}, {0.6, 2.4}}, - selection_box = {{-0.7, -2.5}, {1, 2.5}}, - weight = 1500, - max_speed = 2.5, - braking_force = 4, - friction_force = 0.0010, - air_resistance = 0.0015, - connection_distance = 3, - joint_distance = 4, - energy_per_hit_point = 5, - back_light = rolling_stock_back_light(), - stand_by_light = rolling_stock_stand_by_light(), - rail_category = "regular", - drive_over_tie_trigger = drive_over_tie(), - tie_distance = 50, - crash_trigger = crash_trigger(), - vehicle_impact_sound = { filename = "__base__/sound/car-wood-impact.ogg", volume = 1.0 }, - open_sound = { filename = "__base__/sound/machine-open.ogg", volume = 0.85 }, - close_sound = { filename = "__base__/sound/machine-close.ogg", volume = 0.75 }, - sound_minimum_speed = 0.5, - resistances = rolling_stock_resistances(), - working_sound = - { - sound = - { - filename = "__base__/sound/train-wheels.ogg", - volume = 0.5 - }, - match_volume_to_activity = true, - }, - - color = {r = 0.43, g = 0.23, b = 0, a = 0.5}, - pictures = - { - layers = - { - { - priority = "very-low", - width = 222, - height = 205, - back_equals_front = true, - direction_count = 128, - filenames = - { - "__base__/graphics/entity/cargo-wagon/cargo-wagon-1.png", - "__base__/graphics/entity/cargo-wagon/cargo-wagon-2.png", - "__base__/graphics/entity/cargo-wagon/cargo-wagon-3.png", - "__base__/graphics/entity/cargo-wagon/cargo-wagon-4.png" - }, - line_length = 4, - lines_per_file = 8, - shift = {0, -0.796875} - }, - { - flags = { "mask" }, - width = 196, - height = 174, - direction_count = 128, - back_equals_front = true, - apply_runtime_tint = true, - shift = {0, -1.125}, - filenames = - { - "__base__/graphics/entity/cargo-wagon/cargo-wagon-mask-1.png", - "__base__/graphics/entity/cargo-wagon/cargo-wagon-mask-2.png", - "__base__/graphics/entity/cargo-wagon/cargo-wagon-mask-3.png" - }, - line_length = 4, - lines_per_file = 11, - }, - { - flags = { "compressed" }, - width = 246, - height = 201, - back_equals_front = true, - draw_as_shadow = true, - direction_count = 128, - filenames = - { - "__base__/graphics/entity/cargo-wagon/cargo-wagon-shadow-1.png", - "__base__/graphics/entity/cargo-wagon/cargo-wagon-shadow-2.png", - "__base__/graphics/entity/cargo-wagon/cargo-wagon-shadow-3.png", - "__base__/graphics/entity/cargo-wagon/cargo-wagon-shadow-4.png" - }, - line_length = 4, - lines_per_file = 8, - shift = {0.8, -0.078125} - } - } - }, - horizontal_doors = - { - layers = - { - { - filename = "__base__/graphics/entity/cargo-wagon/cargo-wagon-door-horizontal-end.png", - line_length = 1, - width = 220, - height = 33, - frame_count = 8, - shift = {0, -0.921875} - }, - { - filename = "__base__/graphics/entity/cargo-wagon/cargo-wagon-door-horizontal-side.png", - line_length = 1, - width = 186, - height = 38, - frame_count = 8, - shift = {0, -0.78125} - }, - { - filename = "__base__/graphics/entity/cargo-wagon/cargo-wagon-door-horizontal-side-mask.png", - width = 182, - height = 35, - line_length = 1, - frame_count = 8, - shift = {0, -0.828125}, - apply_runtime_tint = true - }, - { - filename = "__base__/graphics/entity/cargo-wagon/cargo-wagon-door-horizontal-top.png", - line_length = 1, - width = 184, - height = 28, - frame_count = 8, - shift = {0.015625, -1.125} - }, - { - filename = "__base__/graphics/entity/cargo-wagon/cargo-wagon-door-horizontal-top-mask.png", - width = 185, - height = 23, - frame_count = 8, - line_length = 1, - shift = {0.015625, -1.17188}, - apply_runtime_tint = true - } - } - }, - vertical_doors = - { - layers = - { - { - filename = "__base__/graphics/entity/cargo-wagon/cargo-wagon-door-vertical-end.png", - line_length = 8, - width = 30, - height = 202, - frame_count = 8, - shift = {0, -0.84375} - }, - { - filename = "__base__/graphics/entity/cargo-wagon/cargo-wagon-door-vertical-side.png", - line_length = 8, - width = 67, - height = 169, - frame_count = 8, - shift = {0.015625, -1.01563} - }, - { - filename = "__base__/graphics/entity/cargo-wagon/cargo-wagon-door-vertical-side-mask.png", - line_length = 8, - width = 56, - height = 163, - frame_count = 8, - shift = {0, -1.10938}, - apply_runtime_tint = true - }, - { - filename = "__base__/graphics/entity/cargo-wagon/cargo-wagon-door-vertical-top.png", - line_length = 8, - width = 32, - height = 168, - frame_count = 8, - shift = {0, -1.125} - }, - { - filename = "__base__/graphics/entity/cargo-wagon/cargo-wagon-door-vertical-top-mask.png", - line_length = 8, - width = 32, - height = 166, - frame_count = 8, - shift = {0, -1.15625}, - apply_runtime_tint = true - } - } - }, - wheels = standard_train_wheels, - equipment_grid = "cargo-wagon-2", - }, - - { - type = "cargo-wagon", - name = "cargo-wagon-3", - icon = "__base__/graphics/icons/cargo-wagon.png", - flags = {"placeable-neutral", "player-creation", "placeable-off-grid", "not-on-map"}, - inventory_size = 80, - minable = {mining_time = 1, result = "cargo-wagon-3"}, - mined_sound = {filename = "__core__/sound/deconstruct-medium.ogg"}, - max_health = 1000, - corpse = "medium-remnants", - dying_explosion = "medium-explosion", - collision_box = {{-0.6, -2.4}, {0.6, 2.4}}, - selection_box = {{-0.7, -2.5}, {1, 2.5}}, - weight = 2000, - max_speed = 3.5, - braking_force = 5, - friction_force = 0.0005, - air_resistance = 0.001, - connection_distance = 3, - joint_distance = 4, - energy_per_hit_point = 5, - back_light = rolling_stock_back_light(), - stand_by_light = rolling_stock_stand_by_light(), - rail_category = "regular", - drive_over_tie_trigger = drive_over_tie(), - tie_distance = 50, - crash_trigger = crash_trigger(), - vehicle_impact_sound = { filename = "__base__/sound/car-wood-impact.ogg", volume = 1.0 }, - open_sound = { filename = "__base__/sound/machine-open.ogg", volume = 0.85 }, - close_sound = { filename = "__base__/sound/machine-close.ogg", volume = 0.75 }, - sound_minimum_speed = 0.5, - resistances = rolling_stock_resistances(), - working_sound = - { - sound = - { - filename = "__base__/sound/train-wheels.ogg", - volume = 0.5 - }, - match_volume_to_activity = true, - }, - - color = {r = 0.43, g = 0.23, b = 0, a = 0.5}, - pictures = - { - layers = - { - { - priority = "very-low", - width = 222, - height = 205, - back_equals_front = true, - direction_count = 128, - filenames = - { - "__base__/graphics/entity/cargo-wagon/cargo-wagon-1.png", - "__base__/graphics/entity/cargo-wagon/cargo-wagon-2.png", - "__base__/graphics/entity/cargo-wagon/cargo-wagon-3.png", - "__base__/graphics/entity/cargo-wagon/cargo-wagon-4.png" - }, - line_length = 4, - lines_per_file = 8, - shift = {0, -0.796875} - }, - { - flags = { "mask" }, - width = 196, - height = 174, - direction_count = 128, - back_equals_front = true, - apply_runtime_tint = true, - shift = {0, -1.125}, - filenames = - { - "__base__/graphics/entity/cargo-wagon/cargo-wagon-mask-1.png", - "__base__/graphics/entity/cargo-wagon/cargo-wagon-mask-2.png", - "__base__/graphics/entity/cargo-wagon/cargo-wagon-mask-3.png" - }, - line_length = 4, - lines_per_file = 11, - }, - { - flags = { "compressed" }, - width = 246, - height = 201, - back_equals_front = true, - draw_as_shadow = true, - direction_count = 128, - filenames = - { - "__base__/graphics/entity/cargo-wagon/cargo-wagon-shadow-1.png", - "__base__/graphics/entity/cargo-wagon/cargo-wagon-shadow-2.png", - "__base__/graphics/entity/cargo-wagon/cargo-wagon-shadow-3.png", - "__base__/graphics/entity/cargo-wagon/cargo-wagon-shadow-4.png" - }, - line_length = 4, - lines_per_file = 8, - shift = {0.8, -0.078125} - } - } - }, - horizontal_doors = - { - layers = - { - { - filename = "__base__/graphics/entity/cargo-wagon/cargo-wagon-door-horizontal-end.png", - line_length = 1, - width = 220, - height = 33, - frame_count = 8, - shift = {0, -0.921875} - }, - { - filename = "__base__/graphics/entity/cargo-wagon/cargo-wagon-door-horizontal-side.png", - line_length = 1, - width = 186, - height = 38, - frame_count = 8, - shift = {0, -0.78125} - }, - { - filename = "__base__/graphics/entity/cargo-wagon/cargo-wagon-door-horizontal-side-mask.png", - width = 182, - height = 35, - line_length = 1, - frame_count = 8, - shift = {0, -0.828125}, - apply_runtime_tint = true - }, - { - filename = "__base__/graphics/entity/cargo-wagon/cargo-wagon-door-horizontal-top.png", - line_length = 1, - width = 184, - height = 28, - frame_count = 8, - shift = {0.015625, -1.125} - }, - { - filename = "__base__/graphics/entity/cargo-wagon/cargo-wagon-door-horizontal-top-mask.png", - width = 185, - height = 23, - frame_count = 8, - line_length = 1, - shift = {0.015625, -1.17188}, - apply_runtime_tint = true - } - } - }, - vertical_doors = - { - layers = - { - { - filename = "__base__/graphics/entity/cargo-wagon/cargo-wagon-door-vertical-end.png", - line_length = 8, - width = 30, - height = 202, - frame_count = 8, - shift = {0, -0.84375} - }, - { - filename = "__base__/graphics/entity/cargo-wagon/cargo-wagon-door-vertical-side.png", - line_length = 8, - width = 67, - height = 169, - frame_count = 8, - shift = {0.015625, -1.01563} - }, - { - filename = "__base__/graphics/entity/cargo-wagon/cargo-wagon-door-vertical-side-mask.png", - line_length = 8, - width = 56, - height = 163, - frame_count = 8, - shift = {0, -1.10938}, - apply_runtime_tint = true - }, - { - filename = "__base__/graphics/entity/cargo-wagon/cargo-wagon-door-vertical-top.png", - line_length = 8, - width = 32, - height = 168, - frame_count = 8, - shift = {0, -1.125} - }, - { - filename = "__base__/graphics/entity/cargo-wagon/cargo-wagon-door-vertical-top-mask.png", - line_length = 8, - width = 32, - height = 166, - frame_count = 8, - shift = {0, -1.15625}, - apply_runtime_tint = true - } - } - }, - wheels = standard_train_wheels, - equipment_grid = "cargo-wagon-3", - }, -} -) - - - -data:extend( -{ - { - type = "locomotive", - name = "armoured-diesel-locomotive", - icon = "__base__/graphics/icons/diesel-locomotive.png", - flags = {"placeable-neutral", "player-creation", "placeable-off-grid", "not-on-map"}, - minable = {mining_time = 1, result = "armoured-diesel-locomotive"}, - mined_sound = {filename = "__core__/sound/deconstruct-medium.ogg"}, - max_health = 5000, - corpse = "medium-remnants", - dying_explosion = "medium-explosion", - collision_box = {{-0.6, -2.6}, {0.6, 2.6}}, - selection_box = {{-0.85, -2.6}, {0.9, 2.5}}, - drawing_box = {{-1, -4}, {1, 3}}, - weight = 4000, - max_speed = 1, - max_power = "600kW", - reversing_power_modifier = 0.75, - braking_force = 10, - friction_force = 0.0015, - -- this is a percentage of current speed that will be subtracted - air_resistance = 0.002, - connection_distance = 3, - joint_distance = 4, - energy_per_hit_point = 5, - rail_category = "regular", - drive_over_tie_trigger = drive_over_tie(), - tie_distance = 50, - crash_trigger = crash_trigger(), - vehicle_impact_sound = { filename = "__base__/sound/car-metal-impact.ogg", volume = 0.65 }, - open_sound = { filename = "__base__/sound/car-door-open.ogg", volume=0.7 }, - close_sound = { filename = "__base__/sound/car-door-close.ogg", volume = 0.7 }, - sound_minimum_speed = 0.5, - resistances = rolling_stock_armor_resistances(), - energy_source = - { - type = "burner", - effectivity = 1, - fuel_inventory_size = 3, - smoke = - { - { - name = "train-smoke", - deviation = {0.3, 0.3}, - frequency = 100, - position = {0, 0}, - starting_frame = 0, - starting_frame_deviation = 60, - height = 2, - height_deviation = 0.5, - starting_vertical_speed = 0.2, - starting_vertical_speed_deviation = 0.1, - } - } - }, - front_light = rolling_stock_front_light(), - back_light = rolling_stock_back_light(), - stand_by_light = rolling_stock_stand_by_light(), - stop_trigger = rolling_stock_stop_trigger(), - working_sound = - { - sound = - { - filename = "__base__/sound/train-engine.ogg", - volume = 0.4 - }, - match_speed_to_activity = true, - }, - - color = {r = 0.92, g = 0.07, b = 0, a = 0.5}, - pictures = - { - layers = - { - { - priority = "very-low", - width = 238, - height = 230, - direction_count = 256, - filenames = - { - "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-01.png", - "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-02.png", - "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-03.png", - "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-04.png", - "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-05.png", - "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-06.png", - "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-07.png", - "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-08.png" - }, - line_length = 4, - lines_per_file = 8, - shift = {0.0, -0.5} - }, - { - priority = "very-low", - flags = { "mask" }, - width = 236, - height = 228, - direction_count = 256, - filenames = - { - "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-mask-01.png", - "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-mask-02.png", - "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-mask-03.png", - "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-mask-04.png", - "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-mask-05.png", - "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-mask-06.png", - "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-mask-07.png", - "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-mask-08.png" - }, - line_length = 4, - lines_per_file = 8, - shift = {0.0, -0.5}, - apply_runtime_tint = true - }, - { - priority = "very-low", - flags = { "compressed" }, - width = 253, - height = 212, - direction_count = 256, - draw_as_shadow = true, - filenames = - { - "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-shadow-01.png", - "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-shadow-02.png", - "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-shadow-03.png", - "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-shadow-04.png", - "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-shadow-05.png", - "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-shadow-06.png", - "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-shadow-07.png", - "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-shadow-08.png" - }, - line_length = 4, - lines_per_file = 8, - shift = {1, 0.3} - } - } - }, - wheels = standard_train_wheels, - equipment_grid = "armoured-diesel-locomotive", - }, - - - { - type = "cargo-wagon", - name = "armoured-cargo-wagon", - icon = "__base__/graphics/icons/cargo-wagon.png", - flags = {"placeable-neutral", "player-creation", "placeable-off-grid", "not-on-map"}, - inventory_size = 40, - minable = {mining_time = 1, result = "armoured-cargo-wagon"}, - mined_sound = {filename = "__core__/sound/deconstruct-medium.ogg"}, - max_health = 3000, - corpse = "medium-remnants", - dying_explosion = "medium-explosion", - collision_box = {{-0.6, -2.4}, {0.6, 2.4}}, - selection_box = {{-0.7, -2.5}, {1, 2.5}}, - weight = 2000, - max_speed = 1, - braking_force = 3, - friction_force = 0.0015, - air_resistance = 0.002, - connection_distance = 3.3, - joint_distance = 4, - energy_per_hit_point = 5, - back_light = rolling_stock_back_light(), - stand_by_light = rolling_stock_stand_by_light(), - resistances = rolling_stock_armor_resistances(), - rail_category = "regular", - drive_over_tie_trigger = drive_over_tie(), - tie_distance = 50, - working_sound = - { - sound = - { - filename = "__base__/sound/train-wheels.ogg", - volume = 0.5 - }, - match_volume_to_activity = true, - }, - crash_trigger = crash_trigger(), - vehicle_impact_sound = { filename = "__base__/sound/car-wood-impact.ogg", volume = 1.0 }, - open_sound = { filename = "__base__/sound/machine-open.ogg", volume = 0.85 }, - close_sound = { filename = "__base__/sound/machine-close.ogg", volume = 0.75 }, - sound_minimum_speed = 0.5, - - color = {r = 0.43, g = 0.23, b = 0, a = 0.5}, - pictures = - { - layers = - { - { - priority = "very-low", - width = 222, - height = 205, - back_equals_front = true, - direction_count = 128, - filenames = - { - "__base__/graphics/entity/cargo-wagon/cargo-wagon-1.png", - "__base__/graphics/entity/cargo-wagon/cargo-wagon-2.png", - "__base__/graphics/entity/cargo-wagon/cargo-wagon-3.png", - "__base__/graphics/entity/cargo-wagon/cargo-wagon-4.png" - }, - line_length = 4, - lines_per_file = 8, - shift = {0, -0.796875} - }, - { - flags = { "mask" }, - width = 196, - height = 174, - direction_count = 128, - back_equals_front = true, - apply_runtime_tint = true, - shift = {0, -1.125}, - filenames = - { - "__base__/graphics/entity/cargo-wagon/cargo-wagon-mask-1.png", - "__base__/graphics/entity/cargo-wagon/cargo-wagon-mask-2.png", - "__base__/graphics/entity/cargo-wagon/cargo-wagon-mask-3.png" - }, - line_length = 4, - lines_per_file = 11, - }, - { - flags = { "compressed" }, - width = 246, - height = 201, - back_equals_front = true, - draw_as_shadow = true, - direction_count = 128, - filenames = - { - "__base__/graphics/entity/cargo-wagon/cargo-wagon-shadow-1.png", - "__base__/graphics/entity/cargo-wagon/cargo-wagon-shadow-2.png", - "__base__/graphics/entity/cargo-wagon/cargo-wagon-shadow-3.png", - "__base__/graphics/entity/cargo-wagon/cargo-wagon-shadow-4.png" - }, - line_length = 4, - lines_per_file = 8, - shift = {0.8, -0.078125} - } - } - }, - horizontal_doors = - { - layers = - { - { - filename = "__base__/graphics/entity/cargo-wagon/cargo-wagon-door-horizontal-end.png", - line_length = 1, - width = 220, - height = 33, - frame_count = 8, - shift = {0, -0.921875} - }, - { - filename = "__base__/graphics/entity/cargo-wagon/cargo-wagon-door-horizontal-side.png", - line_length = 1, - width = 186, - height = 38, - frame_count = 8, - shift = {0, -0.78125} - }, - { - filename = "__base__/graphics/entity/cargo-wagon/cargo-wagon-door-horizontal-side-mask.png", - width = 182, - height = 35, - line_length = 1, - frame_count = 8, - shift = {0, -0.828125}, - apply_runtime_tint = true - }, - { - filename = "__base__/graphics/entity/cargo-wagon/cargo-wagon-door-horizontal-top.png", - line_length = 1, - width = 184, - height = 28, - frame_count = 8, - shift = {0.015625, -1.125} - }, - { - filename = "__base__/graphics/entity/cargo-wagon/cargo-wagon-door-horizontal-top-mask.png", - width = 185, - height = 23, - frame_count = 8, - line_length = 1, - shift = {0.015625, -1.17188}, - apply_runtime_tint = true - } - } - }, - vertical_doors = - { - layers = - { - { - filename = "__base__/graphics/entity/cargo-wagon/cargo-wagon-door-vertical-end.png", - line_length = 8, - width = 30, - height = 202, - frame_count = 8, - shift = {0, -0.84375} - }, - { - filename = "__base__/graphics/entity/cargo-wagon/cargo-wagon-door-vertical-side.png", - line_length = 8, - width = 67, - height = 169, - frame_count = 8, - shift = {0.015625, -1.01563} - }, - { - filename = "__base__/graphics/entity/cargo-wagon/cargo-wagon-door-vertical-side-mask.png", - line_length = 8, - width = 56, - height = 163, - frame_count = 8, - shift = {0, -1.10938}, - apply_runtime_tint = true - }, - { - filename = "__base__/graphics/entity/cargo-wagon/cargo-wagon-door-vertical-top.png", - line_length = 8, - width = 32, - height = 168, - frame_count = 8, - shift = {0, -1.125} - }, - { - filename = "__base__/graphics/entity/cargo-wagon/cargo-wagon-door-vertical-top-mask.png", - line_length = 8, - width = 32, - height = 166, - frame_count = 8, - shift = {0, -1.15625}, - apply_runtime_tint = true - } - } - }, - wheels = standard_train_wheels, - equipment_grid = "armoured-cargo-wagon", - }, -} -) - - - +function rolling_stock_front_light() + return + { + { + type = "oriented", + minimum_darkness = 0.3, + picture = + { + filename = "__core__/graphics/light-cone.png", + priority = "medium", + scale = 2, + width = 200, + height = 200 + }, + shift = {-0.6, -16}, + size = 2, + intensity = 0.6 + }, + { + type = "oriented", + minimum_darkness = 0.3, + picture = + { + filename = "__core__/graphics/light-cone.png", + priority = "medium", + scale = 2, + width = 200, + height = 200 + }, + shift = {0.6, -16}, + size = 2, + intensity = 0.6 + } + } +end + +function rolling_stock_stop_trigger() + return + { + -- left side + { + type = "create-smoke", + repeat_count = 125, + entity_name = "smoke-train-stop", + initial_height = 0, + -- smoke goes to the left + speed = {-0.03, 0}, + speed_multiplier = 0.75, + speed_multiplier_deviation = 1.1, + offset_deviation = {{-0.75, -2.7}, {-0.3, 2.7}} + }, + -- right side + { + type = "create-smoke", + repeat_count = 125, + entity_name = "smoke-train-stop", + initial_height = 0, + -- smoke goes to the right + speed = {0.03, 0}, + speed_multiplier = 0.75, + speed_multiplier_deviation = 1.1, + offset_deviation = {{0.3, -2.7}, {0.75, 2.7}} + }, + { + type = "play-sound", + sound = + { + { + filename = "__base__/sound/train-breaks.ogg", + volume = 0.6 + }, + } + }, + } +end + +function rolling_stock_resistances() + return + { + { + type = "fire", + decrease = 15, + percent = 50 + }, + { + type = "physical", + decrease = 15, + percent = 30 + }, + { + type = "impact", + decrease = 50, + percent = 60 + }, + { + type = "explosion", + decrease = 15, + percent = 30 + }, + { + type = "acid", + decrease = 10, + percent = 20 + }, + + { + type = "laser", + decrease = 10, + percent = 30, + }, + { + type = "electric", + decrease = 12, + percent = 50, + }, + { + type = "poison", + decrease = 15, + percent = 60, + } + } +end + +function rolling_stock_armor_resistances() + return + { + { + type = "fire", + decrease = 25, + percent = 75 + }, + { + type = "physical", + decrease = 25, + percent = 50 + }, + { + type = "impact", + decrease = 75, + percent = 90 + }, + { + type = "explosion", + decrease = 25, + percent = 50 + }, + { + type = "acid", + decrease = 20, + percent = 30 + }, + { + type = "laser", + decrease = 10, + percent = 50, + }, + { + type = "electric", + decrease = 12, + percent = 75, + }, + { + type = "poison", + decrease = 15, + percent = 90, + } + } +end + + +data.raw.locomotive["diesel-locomotive"].resistances = rolling_stock_resistances() + + +data:extend( +{ + { + type = "locomotive", + name = "bob-diesel-locomotive-2", + icon = "__base__/graphics/icons/diesel-locomotive.png", + flags = {"placeable-neutral", "player-creation", "placeable-off-grid", "not-on-map"}, + minable = {mining_time = 1, result = "bob-diesel-locomotive-2"}, + mined_sound = {filename = "__core__/sound/deconstruct-medium.ogg"}, + max_health = 1350, + corpse = "medium-remnants", + dying_explosion = "medium-explosion", + collision_box = {{-0.6, -2.6}, {0.6, 2.6}}, + selection_box = {{-0.85, -2.6}, {0.9, 2.5}}, + vertical_selection_shift = -0.5, + drawing_box = {{-1, -4}, {1, 3}}, + weight = 2000, + max_speed = 1.7, + max_power = "900kW", + reversing_power_modifier = 0.8, + braking_force = 15, + friction_force = 0.375, --0.001, + air_resistance = 0.005625, --0.0015, -- this is a percentage of current speed that will be subtracted + connection_distance = 3, + joint_distance = 4, + energy_per_hit_point = 5, + rail_category = "regular", + drive_over_tie_trigger = drive_over_tie(), + tie_distance = 50, + crash_trigger = crash_trigger(), + vehicle_impact_sound = { filename = "__base__/sound/car-metal-impact.ogg", volume = 0.65 }, + open_sound = { filename = "__base__/sound/car-door-open.ogg", volume=0.7 }, + close_sound = { filename = "__base__/sound/car-door-close.ogg", volume = 0.7 }, + sound_minimum_speed = 0.5, + resistances = rolling_stock_resistances(), + energy_source = + { + type = "burner", + effectivity = 1.2, + fuel_inventory_size = 4, + smoke = + { + { + name = "train-smoke", + deviation = {0.3, 0.3}, + frequency = 100, + position = {0, 0}, + starting_frame = 0, + starting_frame_deviation = 60, + height = 2, + height_deviation = 0.5, + starting_vertical_speed = 0.2, + starting_vertical_speed_deviation = 0.1, + } + } + }, + front_light = rolling_stock_front_light(), + back_light = rolling_stock_back_light(), + stand_by_light = rolling_stock_stand_by_light(), + stop_trigger = rolling_stock_stop_trigger(), + working_sound = + { + sound = + { + filename = "__base__/sound/train-engine.ogg", + volume = 0.4 + }, + match_speed_to_activity = true, + }, + + color = {r = 0.92, g = 0.07, b = 0, a = 0.5}, + pictures = + { + layers = + { + { + priority = "very-low", + width = 238, + height = 230, + direction_count = 256, + filenames = + { + "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-01.png", + "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-02.png", + "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-03.png", + "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-04.png", + "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-05.png", + "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-06.png", + "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-07.png", + "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-08.png" + }, + line_length = 4, + lines_per_file = 8, + shift = {0.0, -0.5} + }, + { + priority = "very-low", + flags = { "mask" }, + width = 236, + height = 228, + direction_count = 256, + filenames = + { + "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-mask-01.png", + "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-mask-02.png", + "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-mask-03.png", + "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-mask-04.png", + "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-mask-05.png", + "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-mask-06.png", + "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-mask-07.png", + "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-mask-08.png" + }, + line_length = 4, + lines_per_file = 8, + shift = {0.0, -0.5}, + apply_runtime_tint = true + }, + { + priority = "very-low", + flags = { "compressed" }, + width = 253, + height = 212, + direction_count = 256, + draw_as_shadow = true, + filenames = + { + "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-shadow-01.png", + "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-shadow-02.png", + "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-shadow-03.png", + "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-shadow-04.png", + "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-shadow-05.png", + "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-shadow-06.png", + "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-shadow-07.png", + "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-shadow-08.png" + }, + line_length = 4, + lines_per_file = 8, + shift = {1, 0.3} + } + } + }, + wheels = standard_train_wheels, + equipment_grid = "bob-diesel-locomotive-2", + }, + + { + type = "locomotive", + name = "bob-diesel-locomotive-3", + icon = "__base__/graphics/icons/diesel-locomotive.png", + flags = {"placeable-neutral", "player-creation", "placeable-off-grid", "not-on-map"}, + minable = {mining_time = 1, result = "bob-diesel-locomotive-3"}, + mined_sound = {filename = "__core__/sound/deconstruct-medium.ogg"}, + max_health = 1700, + corpse = "medium-remnants", + dying_explosion = "medium-explosion", + collision_box = {{-0.6, -2.6}, {0.6, 2.6}}, + selection_box = {{-0.85, -2.6}, {0.9, 2.5}}, + vertical_selection_shift = -0.5, + drawing_box = {{-1, -4}, {1, 3}}, + weight = 2000, + max_speed = 2, + max_power = "1200kW", + reversing_power_modifier = 1, + braking_force = 20, + friction_force = 0.25, --0.0005, + air_resistance = 0.0075, --0.001, -- this is a percentage of current speed that will be subtracted + connection_distance = 3, + joint_distance = 4, + energy_per_hit_point = 5, + rail_category = "regular", + drive_over_tie_trigger = drive_over_tie(), + tie_distance = 50, + crash_trigger = crash_trigger(), + vehicle_impact_sound = { filename = "__base__/sound/car-metal-impact.ogg", volume = 0.65 }, + open_sound = { filename = "__base__/sound/car-door-open.ogg", volume=0.7 }, + close_sound = { filename = "__base__/sound/car-door-close.ogg", volume = 0.7 }, + sound_minimum_speed = 0.5, + resistances = rolling_stock_resistances(), + energy_source = + { + type = "burner", + effectivity = 1.4, + fuel_inventory_size = 5, + smoke = + { + { + name = "train-smoke", + deviation = {0.3, 0.3}, + frequency = 100, + position = {0, 0}, + starting_frame = 0, + starting_frame_deviation = 60, + height = 2, + height_deviation = 0.5, + starting_vertical_speed = 0.2, + starting_vertical_speed_deviation = 0.1, + } + } + }, + front_light = rolling_stock_front_light(), + back_light = rolling_stock_back_light(), + stand_by_light = rolling_stock_stand_by_light(), + stop_trigger = rolling_stock_stop_trigger(), + working_sound = + { + sound = + { + filename = "__base__/sound/train-engine.ogg", + volume = 0.4 + }, + match_speed_to_activity = true, + }, + + color = {r = 0.92, g = 0.07, b = 0, a = 0.5}, + pictures = + { + layers = + { + { + priority = "very-low", + width = 238, + height = 230, + direction_count = 256, + filenames = + { + "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-01.png", + "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-02.png", + "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-03.png", + "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-04.png", + "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-05.png", + "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-06.png", + "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-07.png", + "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-08.png" + }, + line_length = 4, + lines_per_file = 8, + shift = {0.0, -0.5} + }, + { + priority = "very-low", + flags = { "mask" }, + width = 236, + height = 228, + direction_count = 256, + filenames = + { + "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-mask-01.png", + "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-mask-02.png", + "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-mask-03.png", + "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-mask-04.png", + "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-mask-05.png", + "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-mask-06.png", + "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-mask-07.png", + "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-mask-08.png" + }, + line_length = 4, + lines_per_file = 8, + shift = {0.0, -0.5}, + apply_runtime_tint = true + }, + { + priority = "very-low", + flags = { "compressed" }, + width = 253, + height = 212, + direction_count = 256, + draw_as_shadow = true, + filenames = + { + "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-shadow-01.png", + "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-shadow-02.png", + "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-shadow-03.png", + "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-shadow-04.png", + "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-shadow-05.png", + "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-shadow-06.png", + "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-shadow-07.png", + "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-shadow-08.png" + }, + line_length = 4, + lines_per_file = 8, + shift = {1, 0.3} + } + } + }, + wheels = standard_train_wheels, + equipment_grid = "bob-diesel-locomotive-3", + }, +} +) + + + +data.raw["cargo-wagon"]["cargo-wagon"].resistances = rolling_stock_resistances() + +data:extend( +{ + { + type = "cargo-wagon", + name = "bob-cargo-wagon-2", + icon = "__base__/graphics/icons/cargo-wagon.png", + flags = {"placeable-neutral", "player-creation", "placeable-off-grid", "not-on-map"}, + inventory_size = 60, + minable = {mining_time = 1, result = "bob-cargo-wagon-2"}, + mined_sound = {filename = "__core__/sound/deconstruct-medium.ogg"}, + max_health = 800, + corpse = "medium-remnants", + dying_explosion = "medium-explosion", + collision_box = {{-0.6, -2.4}, {0.6, 2.4}}, + selection_box = {{-0.7, -2.5}, {1, 2.5}}, + vertical_selection_shift = -0.796875, + weight = 1500, + max_speed = 2.5, + braking_force = 4, + friction_force = 0.375, + air_resistance = 0.003, + connection_distance = 3, + joint_distance = 4, + energy_per_hit_point = 5, + back_light = rolling_stock_back_light(), + stand_by_light = rolling_stock_stand_by_light(), + rail_category = "regular", + drive_over_tie_trigger = drive_over_tie(), + tie_distance = 50, + crash_trigger = crash_trigger(), + vehicle_impact_sound = { filename = "__base__/sound/car-wood-impact.ogg", volume = 1.0 }, + open_sound = { filename = "__base__/sound/machine-open.ogg", volume = 0.85 }, + close_sound = { filename = "__base__/sound/machine-close.ogg", volume = 0.75 }, + sound_minimum_speed = 0.5, + resistances = rolling_stock_resistances(), + working_sound = + { + sound = + { + filename = "__base__/sound/train-wheels.ogg", + volume = 0.5 + }, + match_volume_to_activity = true, + }, + + color = {r = 0.43, g = 0.23, b = 0, a = 0.5}, + pictures = + { + layers = + { + { + priority = "very-low", + width = 222, + height = 205, + back_equals_front = true, + direction_count = 128, + filenames = + { + "__base__/graphics/entity/cargo-wagon/cargo-wagon-1.png", + "__base__/graphics/entity/cargo-wagon/cargo-wagon-2.png", + "__base__/graphics/entity/cargo-wagon/cargo-wagon-3.png", + "__base__/graphics/entity/cargo-wagon/cargo-wagon-4.png" + }, + line_length = 4, + lines_per_file = 8, + shift = {0, -0.796875} + }, + { + flags = { "mask" }, + width = 196, + height = 174, + direction_count = 128, + back_equals_front = true, + apply_runtime_tint = true, + shift = {0, -1.125}, + filenames = + { + "__base__/graphics/entity/cargo-wagon/cargo-wagon-mask-1.png", + "__base__/graphics/entity/cargo-wagon/cargo-wagon-mask-2.png", + "__base__/graphics/entity/cargo-wagon/cargo-wagon-mask-3.png" + }, + line_length = 4, + lines_per_file = 11, + }, + { + flags = { "compressed" }, + width = 246, + height = 201, + back_equals_front = true, + draw_as_shadow = true, + direction_count = 128, + filenames = + { + "__base__/graphics/entity/cargo-wagon/cargo-wagon-shadow-1.png", + "__base__/graphics/entity/cargo-wagon/cargo-wagon-shadow-2.png", + "__base__/graphics/entity/cargo-wagon/cargo-wagon-shadow-3.png", + "__base__/graphics/entity/cargo-wagon/cargo-wagon-shadow-4.png" + }, + line_length = 4, + lines_per_file = 8, + shift = {0.8, -0.078125} + } + } + }, + horizontal_doors = + { + layers = + { + { + filename = "__base__/graphics/entity/cargo-wagon/cargo-wagon-door-horizontal-end.png", + line_length = 1, + width = 220, + height = 33, + frame_count = 8, + shift = {0, -0.921875} + }, + { + filename = "__base__/graphics/entity/cargo-wagon/cargo-wagon-door-horizontal-side.png", + line_length = 1, + width = 186, + height = 38, + frame_count = 8, + shift = {0, -0.78125} + }, + { + filename = "__base__/graphics/entity/cargo-wagon/cargo-wagon-door-horizontal-side-mask.png", + width = 182, + height = 35, + line_length = 1, + frame_count = 8, + shift = {0, -0.828125}, + apply_runtime_tint = true + }, + { + filename = "__base__/graphics/entity/cargo-wagon/cargo-wagon-door-horizontal-top.png", + line_length = 1, + width = 184, + height = 28, + frame_count = 8, + shift = {0.015625, -1.125} + }, + { + filename = "__base__/graphics/entity/cargo-wagon/cargo-wagon-door-horizontal-top-mask.png", + width = 185, + height = 23, + frame_count = 8, + line_length = 1, + shift = {0.015625, -1.17188}, + apply_runtime_tint = true + } + } + }, + vertical_doors = + { + layers = + { + { + filename = "__base__/graphics/entity/cargo-wagon/cargo-wagon-door-vertical-end.png", + line_length = 8, + width = 30, + height = 202, + frame_count = 8, + shift = {0, -0.84375} + }, + { + filename = "__base__/graphics/entity/cargo-wagon/cargo-wagon-door-vertical-side.png", + line_length = 8, + width = 67, + height = 169, + frame_count = 8, + shift = {0.015625, -1.01563} + }, + { + filename = "__base__/graphics/entity/cargo-wagon/cargo-wagon-door-vertical-side-mask.png", + line_length = 8, + width = 56, + height = 163, + frame_count = 8, + shift = {0, -1.10938}, + apply_runtime_tint = true + }, + { + filename = "__base__/graphics/entity/cargo-wagon/cargo-wagon-door-vertical-top.png", + line_length = 8, + width = 32, + height = 168, + frame_count = 8, + shift = {0, -1.125} + }, + { + filename = "__base__/graphics/entity/cargo-wagon/cargo-wagon-door-vertical-top-mask.png", + line_length = 8, + width = 32, + height = 166, + frame_count = 8, + shift = {0, -1.15625}, + apply_runtime_tint = true + } + } + }, + wheels = standard_train_wheels, + equipment_grid = "bob-cargo-wagon-2", + }, + + { + type = "cargo-wagon", + name = "bob-cargo-wagon-3", + icon = "__base__/graphics/icons/cargo-wagon.png", + flags = {"placeable-neutral", "player-creation", "placeable-off-grid", "not-on-map"}, + inventory_size = 80, + minable = {mining_time = 1, result = "bob-cargo-wagon-3"}, + mined_sound = {filename = "__core__/sound/deconstruct-medium.ogg"}, + max_health = 1000, + corpse = "medium-remnants", + dying_explosion = "medium-explosion", + collision_box = {{-0.6, -2.4}, {0.6, 2.4}}, + selection_box = {{-0.7, -2.5}, {1, 2.5}}, + vertical_selection_shift = -0.796875, + weight = 2000, + max_speed = 3.5, + braking_force = 5, + friction_force = 0.25, + air_resistance = 0.002, + connection_distance = 3, + joint_distance = 4, + energy_per_hit_point = 5, + back_light = rolling_stock_back_light(), + stand_by_light = rolling_stock_stand_by_light(), + rail_category = "regular", + drive_over_tie_trigger = drive_over_tie(), + tie_distance = 50, + crash_trigger = crash_trigger(), + vehicle_impact_sound = { filename = "__base__/sound/car-wood-impact.ogg", volume = 1.0 }, + open_sound = { filename = "__base__/sound/machine-open.ogg", volume = 0.85 }, + close_sound = { filename = "__base__/sound/machine-close.ogg", volume = 0.75 }, + sound_minimum_speed = 0.5, + resistances = rolling_stock_resistances(), + working_sound = + { + sound = + { + filename = "__base__/sound/train-wheels.ogg", + volume = 0.5 + }, + match_volume_to_activity = true, + }, + + color = {r = 0.43, g = 0.23, b = 0, a = 0.5}, + pictures = + { + layers = + { + { + priority = "very-low", + width = 222, + height = 205, + back_equals_front = true, + direction_count = 128, + filenames = + { + "__base__/graphics/entity/cargo-wagon/cargo-wagon-1.png", + "__base__/graphics/entity/cargo-wagon/cargo-wagon-2.png", + "__base__/graphics/entity/cargo-wagon/cargo-wagon-3.png", + "__base__/graphics/entity/cargo-wagon/cargo-wagon-4.png" + }, + line_length = 4, + lines_per_file = 8, + shift = {0, -0.796875} + }, + { + flags = { "mask" }, + width = 196, + height = 174, + direction_count = 128, + back_equals_front = true, + apply_runtime_tint = true, + shift = {0, -1.125}, + filenames = + { + "__base__/graphics/entity/cargo-wagon/cargo-wagon-mask-1.png", + "__base__/graphics/entity/cargo-wagon/cargo-wagon-mask-2.png", + "__base__/graphics/entity/cargo-wagon/cargo-wagon-mask-3.png" + }, + line_length = 4, + lines_per_file = 11, + }, + { + flags = { "compressed" }, + width = 246, + height = 201, + back_equals_front = true, + draw_as_shadow = true, + direction_count = 128, + filenames = + { + "__base__/graphics/entity/cargo-wagon/cargo-wagon-shadow-1.png", + "__base__/graphics/entity/cargo-wagon/cargo-wagon-shadow-2.png", + "__base__/graphics/entity/cargo-wagon/cargo-wagon-shadow-3.png", + "__base__/graphics/entity/cargo-wagon/cargo-wagon-shadow-4.png" + }, + line_length = 4, + lines_per_file = 8, + shift = {0.8, -0.078125} + } + } + }, + horizontal_doors = + { + layers = + { + { + filename = "__base__/graphics/entity/cargo-wagon/cargo-wagon-door-horizontal-end.png", + line_length = 1, + width = 220, + height = 33, + frame_count = 8, + shift = {0, -0.921875} + }, + { + filename = "__base__/graphics/entity/cargo-wagon/cargo-wagon-door-horizontal-side.png", + line_length = 1, + width = 186, + height = 38, + frame_count = 8, + shift = {0, -0.78125} + }, + { + filename = "__base__/graphics/entity/cargo-wagon/cargo-wagon-door-horizontal-side-mask.png", + width = 182, + height = 35, + line_length = 1, + frame_count = 8, + shift = {0, -0.828125}, + apply_runtime_tint = true + }, + { + filename = "__base__/graphics/entity/cargo-wagon/cargo-wagon-door-horizontal-top.png", + line_length = 1, + width = 184, + height = 28, + frame_count = 8, + shift = {0.015625, -1.125} + }, + { + filename = "__base__/graphics/entity/cargo-wagon/cargo-wagon-door-horizontal-top-mask.png", + width = 185, + height = 23, + frame_count = 8, + line_length = 1, + shift = {0.015625, -1.17188}, + apply_runtime_tint = true + } + } + }, + vertical_doors = + { + layers = + { + { + filename = "__base__/graphics/entity/cargo-wagon/cargo-wagon-door-vertical-end.png", + line_length = 8, + width = 30, + height = 202, + frame_count = 8, + shift = {0, -0.84375} + }, + { + filename = "__base__/graphics/entity/cargo-wagon/cargo-wagon-door-vertical-side.png", + line_length = 8, + width = 67, + height = 169, + frame_count = 8, + shift = {0.015625, -1.01563} + }, + { + filename = "__base__/graphics/entity/cargo-wagon/cargo-wagon-door-vertical-side-mask.png", + line_length = 8, + width = 56, + height = 163, + frame_count = 8, + shift = {0, -1.10938}, + apply_runtime_tint = true + }, + { + filename = "__base__/graphics/entity/cargo-wagon/cargo-wagon-door-vertical-top.png", + line_length = 8, + width = 32, + height = 168, + frame_count = 8, + shift = {0, -1.125} + }, + { + filename = "__base__/graphics/entity/cargo-wagon/cargo-wagon-door-vertical-top-mask.png", + line_length = 8, + width = 32, + height = 166, + frame_count = 8, + shift = {0, -1.15625}, + apply_runtime_tint = true + } + } + }, + wheels = standard_train_wheels, + equipment_grid = "bob-cargo-wagon-3", + }, +} +) + + + +data:extend( +{ + { + type = "locomotive", + name = "bob-armoured-diesel-locomotive", + icon = "__base__/graphics/icons/diesel-locomotive.png", + flags = {"placeable-neutral", "player-creation", "placeable-off-grid", "not-on-map"}, + minable = {mining_time = 1, result = "bob-armoured-diesel-locomotive"}, + mined_sound = {filename = "__core__/sound/deconstruct-medium.ogg"}, + max_health = 5000, + corpse = "medium-remnants", + dying_explosion = "medium-explosion", + collision_box = {{-0.6, -2.6}, {0.6, 2.6}}, + selection_box = {{-0.85, -2.6}, {0.9, 2.5}}, + vertical_selection_shift = -0.5, + drawing_box = {{-1, -4}, {1, 3}}, + weight = 4000, + max_speed = 1, + max_power = "750kW", + reversing_power_modifier = 0.75, + braking_force = 10, + friction_force = 0.5, + air_resistance = 0.0075, + connection_distance = 3, + joint_distance = 4, + energy_per_hit_point = 5, + rail_category = "regular", + drive_over_tie_trigger = drive_over_tie(), + tie_distance = 50, + crash_trigger = crash_trigger(), + vehicle_impact_sound = { filename = "__base__/sound/car-metal-impact.ogg", volume = 0.65 }, + open_sound = { filename = "__base__/sound/car-door-open.ogg", volume=0.7 }, + close_sound = { filename = "__base__/sound/car-door-close.ogg", volume = 0.7 }, + sound_minimum_speed = 0.5, + resistances = rolling_stock_armor_resistances(), + energy_source = + { + type = "burner", + effectivity = 1, + fuel_inventory_size = 3, + smoke = + { + { + name = "train-smoke", + deviation = {0.3, 0.3}, + frequency = 100, + position = {0, 0}, + starting_frame = 0, + starting_frame_deviation = 60, + height = 2, + height_deviation = 0.5, + starting_vertical_speed = 0.2, + starting_vertical_speed_deviation = 0.1, + } + } + }, + front_light = rolling_stock_front_light(), + back_light = rolling_stock_back_light(), + stand_by_light = rolling_stock_stand_by_light(), + stop_trigger = rolling_stock_stop_trigger(), + working_sound = + { + sound = + { + filename = "__base__/sound/train-engine.ogg", + volume = 0.4 + }, + match_speed_to_activity = true, + }, + + color = {r = 0.92, g = 0.07, b = 0, a = 0.5}, + pictures = + { + layers = + { + { + priority = "very-low", + width = 238, + height = 230, + direction_count = 256, + filenames = + { + "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-01.png", + "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-02.png", + "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-03.png", + "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-04.png", + "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-05.png", + "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-06.png", + "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-07.png", + "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-08.png" + }, + line_length = 4, + lines_per_file = 8, + shift = {0.0, -0.5} + }, + { + priority = "very-low", + flags = { "mask" }, + width = 236, + height = 228, + direction_count = 256, + filenames = + { + "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-mask-01.png", + "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-mask-02.png", + "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-mask-03.png", + "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-mask-04.png", + "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-mask-05.png", + "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-mask-06.png", + "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-mask-07.png", + "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-mask-08.png" + }, + line_length = 4, + lines_per_file = 8, + shift = {0.0, -0.5}, + apply_runtime_tint = true + }, + { + priority = "very-low", + flags = { "compressed" }, + width = 253, + height = 212, + direction_count = 256, + draw_as_shadow = true, + filenames = + { + "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-shadow-01.png", + "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-shadow-02.png", + "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-shadow-03.png", + "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-shadow-04.png", + "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-shadow-05.png", + "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-shadow-06.png", + "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-shadow-07.png", + "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-shadow-08.png" + }, + line_length = 4, + lines_per_file = 8, + shift = {1, 0.3} + } + } + }, + wheels = standard_train_wheels, + equipment_grid = "bob-armoured-diesel-locomotive", + }, + + + { + type = "cargo-wagon", + name = "bob-armoured-cargo-wagon", + icon = "__base__/graphics/icons/cargo-wagon.png", + flags = {"placeable-neutral", "player-creation", "placeable-off-grid", "not-on-map"}, + inventory_size = 40, + minable = {mining_time = 1, result = "bob-armoured-cargo-wagon"}, + mined_sound = {filename = "__core__/sound/deconstruct-medium.ogg"}, + max_health = 3000, + corpse = "medium-remnants", + dying_explosion = "medium-explosion", + collision_box = {{-0.6, -2.4}, {0.6, 2.4}}, + selection_box = {{-0.7, -2.5}, {1, 2.5}}, + vertical_selection_shift = -0.796875, + weight = 2000, + max_speed = 1, + braking_force = 3, + friction_force = 0.5, + air_resistance = 0.005, + connection_distance = 3.3, + joint_distance = 4, + energy_per_hit_point = 5, + back_light = rolling_stock_back_light(), + stand_by_light = rolling_stock_stand_by_light(), + resistances = rolling_stock_armor_resistances(), + rail_category = "regular", + drive_over_tie_trigger = drive_over_tie(), + tie_distance = 50, + working_sound = + { + sound = + { + filename = "__base__/sound/train-wheels.ogg", + volume = 0.5 + }, + match_volume_to_activity = true, + }, + crash_trigger = crash_trigger(), + vehicle_impact_sound = { filename = "__base__/sound/car-wood-impact.ogg", volume = 1.0 }, + open_sound = { filename = "__base__/sound/machine-open.ogg", volume = 0.85 }, + close_sound = { filename = "__base__/sound/machine-close.ogg", volume = 0.75 }, + sound_minimum_speed = 0.5, + + color = {r = 0.43, g = 0.23, b = 0, a = 0.5}, + pictures = + { + layers = + { + { + priority = "very-low", + width = 222, + height = 205, + back_equals_front = true, + direction_count = 128, + filenames = + { + "__base__/graphics/entity/cargo-wagon/cargo-wagon-1.png", + "__base__/graphics/entity/cargo-wagon/cargo-wagon-2.png", + "__base__/graphics/entity/cargo-wagon/cargo-wagon-3.png", + "__base__/graphics/entity/cargo-wagon/cargo-wagon-4.png" + }, + line_length = 4, + lines_per_file = 8, + shift = {0, -0.796875} + }, + { + flags = { "mask" }, + width = 196, + height = 174, + direction_count = 128, + back_equals_front = true, + apply_runtime_tint = true, + shift = {0, -1.125}, + filenames = + { + "__base__/graphics/entity/cargo-wagon/cargo-wagon-mask-1.png", + "__base__/graphics/entity/cargo-wagon/cargo-wagon-mask-2.png", + "__base__/graphics/entity/cargo-wagon/cargo-wagon-mask-3.png" + }, + line_length = 4, + lines_per_file = 11, + }, + { + flags = { "compressed" }, + width = 246, + height = 201, + back_equals_front = true, + draw_as_shadow = true, + direction_count = 128, + filenames = + { + "__base__/graphics/entity/cargo-wagon/cargo-wagon-shadow-1.png", + "__base__/graphics/entity/cargo-wagon/cargo-wagon-shadow-2.png", + "__base__/graphics/entity/cargo-wagon/cargo-wagon-shadow-3.png", + "__base__/graphics/entity/cargo-wagon/cargo-wagon-shadow-4.png" + }, + line_length = 4, + lines_per_file = 8, + shift = {0.8, -0.078125} + } + } + }, + horizontal_doors = + { + layers = + { + { + filename = "__base__/graphics/entity/cargo-wagon/cargo-wagon-door-horizontal-end.png", + line_length = 1, + width = 220, + height = 33, + frame_count = 8, + shift = {0, -0.921875} + }, + { + filename = "__base__/graphics/entity/cargo-wagon/cargo-wagon-door-horizontal-side.png", + line_length = 1, + width = 186, + height = 38, + frame_count = 8, + shift = {0, -0.78125} + }, + { + filename = "__base__/graphics/entity/cargo-wagon/cargo-wagon-door-horizontal-side-mask.png", + width = 182, + height = 35, + line_length = 1, + frame_count = 8, + shift = {0, -0.828125}, + apply_runtime_tint = true + }, + { + filename = "__base__/graphics/entity/cargo-wagon/cargo-wagon-door-horizontal-top.png", + line_length = 1, + width = 184, + height = 28, + frame_count = 8, + shift = {0.015625, -1.125} + }, + { + filename = "__base__/graphics/entity/cargo-wagon/cargo-wagon-door-horizontal-top-mask.png", + width = 185, + height = 23, + frame_count = 8, + line_length = 1, + shift = {0.015625, -1.17188}, + apply_runtime_tint = true + } + } + }, + vertical_doors = + { + layers = + { + { + filename = "__base__/graphics/entity/cargo-wagon/cargo-wagon-door-vertical-end.png", + line_length = 8, + width = 30, + height = 202, + frame_count = 8, + shift = {0, -0.84375} + }, + { + filename = "__base__/graphics/entity/cargo-wagon/cargo-wagon-door-vertical-side.png", + line_length = 8, + width = 67, + height = 169, + frame_count = 8, + shift = {0.015625, -1.01563} + }, + { + filename = "__base__/graphics/entity/cargo-wagon/cargo-wagon-door-vertical-side-mask.png", + line_length = 8, + width = 56, + height = 163, + frame_count = 8, + shift = {0, -1.10938}, + apply_runtime_tint = true + }, + { + filename = "__base__/graphics/entity/cargo-wagon/cargo-wagon-door-vertical-top.png", + line_length = 8, + width = 32, + height = 168, + frame_count = 8, + shift = {0, -1.125} + }, + { + filename = "__base__/graphics/entity/cargo-wagon/cargo-wagon-door-vertical-top-mask.png", + line_length = 8, + width = 32, + height = 166, + frame_count = 8, + shift = {0, -1.15625}, + apply_runtime_tint = true + } + } + }, + wheels = standard_train_wheels, + equipment_grid = "bob-armoured-cargo-wagon", + }, +} +) + + + diff --git a/boblogistics_0.14.0/prototypes/equipment-grid.lua b/boblogistics_0.14.2/prototypes/equipment-grid.lua similarity index 52% rename from boblogistics_0.14.0/prototypes/equipment-grid.lua rename to boblogistics_0.14.2/prototypes/equipment-grid.lua index e9c2998..c506de7 100644 --- a/boblogistics_0.14.0/prototypes/equipment-grid.lua +++ b/boblogistics_0.14.2/prototypes/equipment-grid.lua @@ -1,91 +1,95 @@ -data:extend( -{ - { - type = "equipment-category", - name = "train" - }, - { - type = "equipment-category", - name = "locomotive" - }, - { - type = "equipment-category", - name = "cargo-wagon" - }, - { - type = "equipment-category", - name = "armoured-vehicle" - }, - { - type = "equipment-category", - name = "armoured-train" - }, - { - type = "equipment-category", - name = "armoured-locomotive" - }, - { - type = "equipment-category", - name = "armoured-cargo-wagon" - }, - - { - type = "equipment-grid", - name = "bob-diesel-locomotive", - width = 8, - height = 2, - equipment_categories = {"train", "locomotive"} - }, - { - type = "equipment-grid", - name = "bob-cargo-wagon", - width = 8, - height = 2, - equipment_categories = {"train", "cargo-wagon"} - }, - { - type = "equipment-grid", - name = "diesel-locomotive-2", - width = 8, - height = 3, - equipment_categories = {"train", "locomotive"} - }, - { - type = "equipment-grid", - name = "cargo-wagon-2", - width = 8, - height = 3, - equipment_categories = {"train", "cargo-wagon"} - }, - { - type = "equipment-grid", - name = "diesel-locomotive-3", - width = 8, - height = 4, - equipment_categories = {"train", "locomotive"} - }, - { - type = "equipment-grid", - name = "cargo-wagon-3", - width = 8, - height = 4, - equipment_categories = {"train", "cargo-wagon"} - }, - { - type = "equipment-grid", - name = "armoured-diesel-locomotive", - width = 10, - height = 6, - equipment_categories = {"train", "locomotive", "armoured-vehicle", "armoured-train", "armoured-locomotive"} - }, - { - type = "equipment-grid", - name = "armoured-cargo-wagon", - width = 10, - height = 6, - equipment_categories = {"train", "cargo-wagon", "armoured-vehicle", "armoured-train", "armoured-cargo-wagon"} - }, -} -) - - +data:extend( +{ + { + type = "equipment-category", + name = "vehicle" + }, + { + type = "equipment-category", + name = "train" + }, + { + type = "equipment-category", + name = "locomotive" + }, + { + type = "equipment-category", + name = "cargo-wagon" + }, + { + type = "equipment-category", + name = "armoured-vehicle" + }, + { + type = "equipment-category", + name = "armoured-train" + }, + { + type = "equipment-category", + name = "armoured-locomotive" + }, + { + type = "equipment-category", + name = "armoured-cargo-wagon" + }, + + { + type = "equipment-grid", + name = "bob-diesel-locomotive", + width = 8, + height = 2, + equipment_categories = {"train", "vehicle", "locomotive"} + }, + { + type = "equipment-grid", + name = "bob-cargo-wagon", + width = 8, + height = 2, + equipment_categories = {"train", "vehicle", "cargo-wagon"} + }, + { + type = "equipment-grid", + name = "bob-diesel-locomotive-2", + width = 8, + height = 3, + equipment_categories = {"train", "vehicle", "locomotive"} + }, + { + type = "equipment-grid", + name = "bob-cargo-wagon-2", + width = 8, + height = 3, + equipment_categories = {"train", "vehicle", "cargo-wagon"} + }, + { + type = "equipment-grid", + name = "bob-diesel-locomotive-3", + width = 8, + height = 4, + equipment_categories = {"train", "vehicle", "locomotive"} + }, + { + type = "equipment-grid", + name = "bob-cargo-wagon-3", + width = 8, + height = 4, + equipment_categories = {"train", "vehicle", "cargo-wagon"} + }, + { + type = "equipment-grid", + name = "bob-armoured-diesel-locomotive", + width = 10, + height = 6, + equipment_categories = {"train", "vehicle", "locomotive", "armoured-vehicle", "armoured-train", "armoured-locomotive"} + }, + { + type = "equipment-grid", + name = "bob-armoured-cargo-wagon", + width = 10, + height = 6, + equipment_categories = {"train", "vehicle", "cargo-wagon", "armoured-vehicle", "armoured-train", "armoured-cargo-wagon"} + }, +} +) + + diff --git a/boblogistics_0.14.0/prototypes/green-transport-belt.lua b/boblogistics_0.14.2/prototypes/green-transport-belt.lua similarity index 96% rename from boblogistics_0.14.0/prototypes/green-transport-belt.lua rename to boblogistics_0.14.2/prototypes/green-transport-belt.lua index 7d3df0c..9f7ed4b 100644 --- a/boblogistics_0.14.0/prototypes/green-transport-belt.lua +++ b/boblogistics_0.14.2/prototypes/green-transport-belt.lua @@ -1,393 +1,393 @@ -ending_patch_prototype = - { - sheet = - { - filename = "__boblogistics__/graphics/entity/transport-belt/start-end-integration-patches.png", - width = 40, - height = 40, - priority = "extra-high" - } - } - ----------------------- GREEN BELT PICTURES -green_belt_horizontal = - { - filename = "__boblogistics__/graphics/entity/transport-belt/green-transport-belt.png", - priority = "extra-high", - width = 40, - height = 40, - frame_count = 32 - } -green_belt_vertical = - { - filename = "__boblogistics__/graphics/entity/transport-belt/green-transport-belt.png", - priority = "extra-high", - width = 40, - height = 40, - frame_count = 32, - y = 40 - } -green_belt_ending_top = - { - filename = "__boblogistics__/graphics/entity/transport-belt/green-transport-belt.png", - priority = "extra-high", - width = 40, - height = 40, - frame_count = 32, - y = 80 - } -green_belt_ending_bottom = - { - filename = "__boblogistics__/graphics/entity/transport-belt/green-transport-belt.png", - priority = "extra-high", - width = 40, - height = 40, - frame_count = 32, - y = 120 - } -green_belt_ending_side = - { - filename = "__boblogistics__/graphics/entity/transport-belt/green-transport-belt.png", - priority = "extra-high", - width = 40, - height = 40, - frame_count = 32, - y = 160 - } -green_belt_starting_top = - { - filename = "__boblogistics__/graphics/entity/transport-belt/green-transport-belt.png", - priority = "extra-high", - width = 40, - height = 40, - frame_count = 32, - y = 200 - } -green_belt_starting_bottom = - { - filename = "__boblogistics__/graphics/entity/transport-belt/green-transport-belt.png", - priority = "extra-high", - width = 40, - height = 40, - frame_count = 32, - y = 240 - } -green_belt_starting_side = - { - filename = "__boblogistics__/graphics/entity/transport-belt/green-transport-belt.png", - priority = "extra-high", - width = 40, - height = 40, - frame_count = 32, - y = 280 - } - - -data:extend( -{ - { - type = "item", - name = "green-transport-belt", - icon = "__boblogistics__/graphics/icons/green-transport-belt.png", - flags = {"goes-to-quickbar"}, - subgroup = "bob-belt", - order = "a[transport-belt]-d[green-transport-belt]", - place_result = "green-transport-belt", - stack_size = 50 - }, - { - type = "item", - name = "green-underground-belt", - icon = "__boblogistics__/graphics/icons/green-transport-belt-to-ground.png", - flags = {"goes-to-quickbar"}, - subgroup = "bob-belt", - order = "b[underground-belt]-d[green-underground-belt]", - place_result = "green-underground-belt", - stack_size = 50 - }, - { - type = "item", - name = "green-splitter", - icon = "__boblogistics__/graphics/icons/green-splitter.png", - flags = {"goes-to-quickbar"}, - subgroup = "bob-belt", - order = "c[splitter]-d[green-splitter]", - place_result = "green-splitter", - stack_size = 50 - }, - - { - type = "transport-belt", - name = "green-transport-belt", - icon = "__boblogistics__/graphics/icons/green-transport-belt.png", - flags = {"placeable-neutral", "player-creation"}, - minable = {hardness = 0.2, mining_time = 0.3, result = "green-transport-belt"}, - max_health = 50, - corpse = "small-remnants", - resistances = - { - { - type = "fire", - percent = 50 - } - }, - collision_box = {{-0.4, -0.4}, {0.4, 0.4}}, - selection_box = {{-0.5, -0.5}, {0.5, 0.5}}, - working_sound = - { - sound = - { - filename = "__base__/sound/express-transport-belt.ogg", - volume = 0.4 - }, - max_sounds_per_type = 3 - }, - animation_speed_coefficient = 32, - animations = - { - filename = "__boblogistics__/graphics/entity/transport-belt/green-transport-belt.png", - priority = "extra-high", - width = 40, - height = 40, - frame_count = 32, - direction_count = 12 - }, - belt_horizontal = green_belt_horizontal, - belt_vertical = green_belt_vertical, - ending_top = green_belt_ending_top, - ending_bottom = green_belt_ending_bottom, - ending_side = green_belt_ending_side, - starting_top = green_belt_starting_top, - starting_bottom = green_belt_starting_bottom, - starting_side = green_belt_starting_side, - ending_patch = ending_patch_prototype, - fast_replaceable_group = "transport-belt", - speed = 0.125, - connector_frame_sprites = transport_belt_connector_frame_sprites, - circuit_connector_sprites = transport_belt_circuit_connector_sprites, - circuit_wire_connection_point = transport_belt_circuit_wire_connection_point, - circuit_wire_max_distance = transport_belt_circuit_wire_max_distance - }, - - { - type = "underground-belt", - name = "green-underground-belt", - icon = "__boblogistics__/graphics/icons/green-transport-belt-to-ground.png", - flags = {"placeable-neutral", "player-creation", "fast-replaceable-no-build-while-moving"}, - minable = {hardness = 0.2, mining_time = 0.5, result = "green-underground-belt"}, - max_health = 60, - corpse = "small-remnants", - underground_sprite = - { - filename = "__core__/graphics/arrows/underground-lines.png", - priority = "high", - width = 64, - height = 64, - x = 64, - scale = 0.5 - }, - resistances = - { - { - type = "fire", - percent = 60 - } - }, - collision_box = {{-0.4, -0.15}, {0.4, 0.1}}, - selection_box = {{-0.5, -0.25}, {0.5, 0.75}}, - distance_to_enter = 0.5, - animation_speed_coefficient = 32, - belt_horizontal = green_belt_horizontal, - belt_vertical = green_belt_vertical, - ending_top = green_belt_ending_top, - ending_bottom = green_belt_ending_bottom, - ending_side = green_belt_ending_side, - starting_top = green_belt_starting_top, - starting_bottom = green_belt_starting_bottom, - starting_side = green_belt_starting_side, - ending_patch = ending_patch_prototype, - fast_replaceable_group = "underground-belt", - speed = 0.125, - max_distance = 20, - structure = - { - direction_in = - { - sheet = - { - filename = "__boblogistics__/graphics/entity/transport-belt/green-transport-belt-to-ground-structure.png", - priority = "extra-high", - shift = {0.26, 0}, - width = 57, - height = 43, - y = 43 - } - }, - direction_out = - { - sheet = - { - filename = "__boblogistics__/graphics/entity/transport-belt/green-transport-belt-to-ground-structure.png", - priority = "extra-high", - shift = {0.26, 0}, - width = 57, - height = 43 - } - } - }, - }, - - { - type = "splitter", - name = "green-splitter", - icon = "__boblogistics__/graphics/icons/green-splitter.png", - flags = {"placeable-neutral", "player-creation"}, - minable = {hardness = 0.2, mining_time = 0.5, result = "green-splitter"}, - max_health = 80, - corpse = "medium-remnants", - resistances = - { - { - type = "fire", - percent = 60 - } - }, - collision_box = {{-0.9, -0.1}, {0.9, 0.1}}, - selection_box = {{-0.9, -0.5}, {0.9, 0.5}}, - animation_speed_coefficient = 32, - structure_animation_speed_coefficient = 1.2, - structure_animation_movement_cooldown = 10, - belt_horizontal = green_belt_horizontal, - belt_vertical = green_belt_vertical, - ending_top = green_belt_ending_top, - ending_bottom = green_belt_ending_bottom, - ending_side = green_belt_ending_side, - starting_top = green_belt_starting_top, - starting_bottom = green_belt_starting_bottom, - starting_side = green_belt_starting_side, - ending_patch = ending_patch_prototype, - fast_replaceable_group = "splitter", - speed = 0.125, - structure = - { - north = - { - filename = "__boblogistics__/graphics/entity/transport-belt/green-splitter-north.png", - frame_count = 32, - line_length = 16, - priority = "extra-high", - width = 80, - height = 35, - shift = {0.225, 0} - }, - east = - { - filename = "__boblogistics__/graphics/entity/transport-belt/green-splitter-east.png", - frame_count = 32, - line_length = 16, - priority = "extra-high", - width = 46, - height = 81, - shift = {0.075, 0} - }, - south = - { - filename = "__boblogistics__/graphics/entity/transport-belt/green-splitter-south.png", - frame_count = 32, - line_length = 16, - priority = "extra-high", - width = 82, - height = 36, - shift = {0.075, 0} - }, - west = - { - filename = "__boblogistics__/graphics/entity/transport-belt/green-splitter-west.png", - frame_count = 32, - line_length = 16, - priority = "extra-high", - width = 47, - height = 79, - shift = {0.25, 0.05} - }, - }, - }, - - { - type = "recipe", - name = "green-transport-belt", - enabled = "false", - ingredients = - { - {"express-transport-belt", 1}, - {"iron-gear-wheel", 5}, - }, - result = "green-transport-belt" - }, - { - type = "recipe", - name = "green-underground-belt", - enabled = "false", - ingredients = - { - {"express-underground-belt", 2}, - {"iron-gear-wheel", 20}, - }, - result_count = 2, - result = "green-underground-belt" - }, - { - type = "recipe", - name = "green-splitter", - enabled = "false", - energy_required = 2, - ingredients = - { - {"express-splitter", 1}, - {"advanced-circuit", 10}, - {"iron-gear-wheel", 10}, - }, - result = "green-splitter" - }, -} -) - - -data:extend( -{ - { - type = "technology", - name = "bob-logistics-4", - icon = "__base__/graphics/technology/logistics.png", - effects = - { - { - type = "unlock-recipe", - recipe = "green-transport-belt" - }, - { - type = "unlock-recipe", - recipe = "green-underground-belt" - }, - { - type = "unlock-recipe", - recipe = "green-splitter" - } - }, - prerequisites = {"logistics-3"}, - unit = - { - count = 150, - ingredients = - { - {"science-pack-1", 1}, - {"science-pack-2", 1}, - {"science-pack-3", 1} - }, - time = 20 - }, - order = "a-f-d", - }, -} -) - +ending_patch_prototype = + { + sheet = + { + filename = "__boblogistics__/graphics/entity/transport-belt/start-end-integration-patches.png", + width = 40, + height = 40, + priority = "extra-high" + } + } + +---------------------- GREEN BELT PICTURES +green_belt_horizontal = + { + filename = "__boblogistics__/graphics/entity/transport-belt/green-transport-belt.png", + priority = "extra-high", + width = 40, + height = 40, + frame_count = 32 + } +green_belt_vertical = + { + filename = "__boblogistics__/graphics/entity/transport-belt/green-transport-belt.png", + priority = "extra-high", + width = 40, + height = 40, + frame_count = 32, + y = 40 + } +green_belt_ending_top = + { + filename = "__boblogistics__/graphics/entity/transport-belt/green-transport-belt.png", + priority = "extra-high", + width = 40, + height = 40, + frame_count = 32, + y = 80 + } +green_belt_ending_bottom = + { + filename = "__boblogistics__/graphics/entity/transport-belt/green-transport-belt.png", + priority = "extra-high", + width = 40, + height = 40, + frame_count = 32, + y = 120 + } +green_belt_ending_side = + { + filename = "__boblogistics__/graphics/entity/transport-belt/green-transport-belt.png", + priority = "extra-high", + width = 40, + height = 40, + frame_count = 32, + y = 160 + } +green_belt_starting_top = + { + filename = "__boblogistics__/graphics/entity/transport-belt/green-transport-belt.png", + priority = "extra-high", + width = 40, + height = 40, + frame_count = 32, + y = 200 + } +green_belt_starting_bottom = + { + filename = "__boblogistics__/graphics/entity/transport-belt/green-transport-belt.png", + priority = "extra-high", + width = 40, + height = 40, + frame_count = 32, + y = 240 + } +green_belt_starting_side = + { + filename = "__boblogistics__/graphics/entity/transport-belt/green-transport-belt.png", + priority = "extra-high", + width = 40, + height = 40, + frame_count = 32, + y = 280 + } + + +data:extend( +{ + { + type = "item", + name = "green-transport-belt", + icon = "__boblogistics__/graphics/icons/green-transport-belt.png", + flags = {"goes-to-quickbar"}, + subgroup = "bob-belt", + order = "a[transport-belt]-d[green-transport-belt]", + place_result = "green-transport-belt", + stack_size = 50 + }, + { + type = "item", + name = "green-underground-belt", + icon = "__boblogistics__/graphics/icons/green-transport-belt-to-ground.png", + flags = {"goes-to-quickbar"}, + subgroup = "bob-belt", + order = "b[underground-belt]-d[green-underground-belt]", + place_result = "green-underground-belt", + stack_size = 50 + }, + { + type = "item", + name = "green-splitter", + icon = "__boblogistics__/graphics/icons/green-splitter.png", + flags = {"goes-to-quickbar"}, + subgroup = "bob-belt", + order = "c[splitter]-d[green-splitter]", + place_result = "green-splitter", + stack_size = 50 + }, + + { + type = "transport-belt", + name = "green-transport-belt", + icon = "__boblogistics__/graphics/icons/green-transport-belt.png", + flags = {"placeable-neutral", "player-creation"}, + minable = {hardness = 0.2, mining_time = 0.3, result = "green-transport-belt"}, + max_health = 50, + corpse = "small-remnants", + resistances = + { + { + type = "fire", + percent = 50 + } + }, + collision_box = {{-0.4, -0.4}, {0.4, 0.4}}, + selection_box = {{-0.5, -0.5}, {0.5, 0.5}}, + working_sound = + { + sound = + { + filename = "__base__/sound/express-transport-belt.ogg", + volume = 0.4 + }, + max_sounds_per_type = 3 + }, + animation_speed_coefficient = 32, + animations = + { + filename = "__boblogistics__/graphics/entity/transport-belt/green-transport-belt.png", + priority = "extra-high", + width = 40, + height = 40, + frame_count = 32, + direction_count = 12 + }, + belt_horizontal = green_belt_horizontal, + belt_vertical = green_belt_vertical, + ending_top = green_belt_ending_top, + ending_bottom = green_belt_ending_bottom, + ending_side = green_belt_ending_side, + starting_top = green_belt_starting_top, + starting_bottom = green_belt_starting_bottom, + starting_side = green_belt_starting_side, + ending_patch = ending_patch_prototype, + fast_replaceable_group = "transport-belt", + speed = 0.125, + connector_frame_sprites = transport_belt_connector_frame_sprites, + circuit_connector_sprites = transport_belt_circuit_connector_sprites, + circuit_wire_connection_point = transport_belt_circuit_wire_connection_point, + circuit_wire_max_distance = transport_belt_circuit_wire_max_distance + }, + + { + type = "underground-belt", + name = "green-underground-belt", + icon = "__boblogistics__/graphics/icons/green-transport-belt-to-ground.png", + flags = {"placeable-neutral", "player-creation", "fast-replaceable-no-build-while-moving"}, + minable = {hardness = 0.2, mining_time = 0.5, result = "green-underground-belt"}, + max_health = 60, + corpse = "small-remnants", + underground_sprite = + { + filename = "__core__/graphics/arrows/underground-lines.png", + priority = "high", + width = 64, + height = 64, + x = 64, + scale = 0.5 + }, + resistances = + { + { + type = "fire", + percent = 60 + } + }, + collision_box = {{-0.4, -0.15}, {0.4, 0.1}}, + selection_box = {{-0.5, -0.25}, {0.5, 0.75}}, + distance_to_enter = 0.5, + animation_speed_coefficient = 32, + belt_horizontal = green_belt_horizontal, + belt_vertical = green_belt_vertical, + ending_top = green_belt_ending_top, + ending_bottom = green_belt_ending_bottom, + ending_side = green_belt_ending_side, + starting_top = green_belt_starting_top, + starting_bottom = green_belt_starting_bottom, + starting_side = green_belt_starting_side, + ending_patch = ending_patch_prototype, + fast_replaceable_group = "underground-belt", + speed = 0.125, + max_distance = 20, + structure = + { + direction_in = + { + sheet = + { + filename = "__boblogistics__/graphics/entity/transport-belt/green-transport-belt-to-ground-structure.png", + priority = "extra-high", + shift = {0.26, 0}, + width = 57, + height = 43, + y = 43 + } + }, + direction_out = + { + sheet = + { + filename = "__boblogistics__/graphics/entity/transport-belt/green-transport-belt-to-ground-structure.png", + priority = "extra-high", + shift = {0.26, 0}, + width = 57, + height = 43 + } + } + }, + }, + + { + type = "splitter", + name = "green-splitter", + icon = "__boblogistics__/graphics/icons/green-splitter.png", + flags = {"placeable-neutral", "player-creation"}, + minable = {hardness = 0.2, mining_time = 0.5, result = "green-splitter"}, + max_health = 80, + corpse = "medium-remnants", + resistances = + { + { + type = "fire", + percent = 60 + } + }, + collision_box = {{-0.9, -0.1}, {0.9, 0.1}}, + selection_box = {{-0.9, -0.5}, {0.9, 0.5}}, + animation_speed_coefficient = 32, + structure_animation_speed_coefficient = 1.2, + structure_animation_movement_cooldown = 10, + belt_horizontal = green_belt_horizontal, + belt_vertical = green_belt_vertical, + ending_top = green_belt_ending_top, + ending_bottom = green_belt_ending_bottom, + ending_side = green_belt_ending_side, + starting_top = green_belt_starting_top, + starting_bottom = green_belt_starting_bottom, + starting_side = green_belt_starting_side, + ending_patch = ending_patch_prototype, + fast_replaceable_group = "splitter", + speed = 0.125, + structure = + { + north = + { + filename = "__boblogistics__/graphics/entity/transport-belt/green-splitter-north.png", + frame_count = 32, + line_length = 16, + priority = "extra-high", + width = 80, + height = 35, + shift = {0.225, 0} + }, + east = + { + filename = "__boblogistics__/graphics/entity/transport-belt/green-splitter-east.png", + frame_count = 32, + line_length = 16, + priority = "extra-high", + width = 46, + height = 81, + shift = {0.075, 0} + }, + south = + { + filename = "__boblogistics__/graphics/entity/transport-belt/green-splitter-south.png", + frame_count = 32, + line_length = 16, + priority = "extra-high", + width = 82, + height = 36, + shift = {0.075, 0} + }, + west = + { + filename = "__boblogistics__/graphics/entity/transport-belt/green-splitter-west.png", + frame_count = 32, + line_length = 16, + priority = "extra-high", + width = 47, + height = 79, + shift = {0.25, 0.05} + }, + }, + }, + + { + type = "recipe", + name = "green-transport-belt", + enabled = "false", + ingredients = + { + {"express-transport-belt", 1}, + {"iron-gear-wheel", 5}, + }, + result = "green-transport-belt" + }, + { + type = "recipe", + name = "green-underground-belt", + enabled = "false", + ingredients = + { + {"express-underground-belt", 2}, + {"iron-gear-wheel", 20}, + }, + result_count = 2, + result = "green-underground-belt" + }, + { + type = "recipe", + name = "green-splitter", + enabled = "false", + energy_required = 2, + ingredients = + { + {"express-splitter", 1}, + {"advanced-circuit", 10}, + {"iron-gear-wheel", 10}, + }, + result = "green-splitter" + }, +} +) + + +data:extend( +{ + { + type = "technology", + name = "bob-logistics-4", + icon = "__base__/graphics/technology/logistics.png", + effects = + { + { + type = "unlock-recipe", + recipe = "green-transport-belt" + }, + { + type = "unlock-recipe", + recipe = "green-underground-belt" + }, + { + type = "unlock-recipe", + recipe = "green-splitter" + } + }, + prerequisites = {"logistics-3"}, + unit = + { + count = 150, + ingredients = + { + {"science-pack-1", 1}, + {"science-pack-2", 1}, + {"science-pack-3", 1} + }, + time = 20 + }, + order = "a-f-d", + }, +} +) + diff --git a/boblogistics_0.14.0/prototypes/inserter.lua b/boblogistics_0.14.2/prototypes/inserter.lua similarity index 96% rename from boblogistics_0.14.0/prototypes/inserter.lua rename to boblogistics_0.14.2/prototypes/inserter.lua index 25fae44..530fd04 100644 --- a/boblogistics_0.14.0/prototypes/inserter.lua +++ b/boblogistics_0.14.2/prototypes/inserter.lua @@ -1,665 +1,665 @@ -data:extend( -{ - { - type = "item", - name = "express-inserter", - icon = "__boblogistics__/graphics/icons/inserter/cyan-inserter.png", - flags = {"goes-to-quickbar"}, - subgroup = "inserter", - order = "d[fast-inserter][express]", - place_result = "express-inserter", - stack_size = 50 - }, - { - type = "item", - name = "express-filter-inserter", - icon = "__boblogistics__/graphics/icons/inserter/magenta-inserter.png", - flags = {"goes-to-quickbar"}, - subgroup = "inserter", - order = "e[filter-inserter][express]", - place_result = "express-filter-inserter", - stack_size = 50 - }, - - { - type = "recipe", - name = "express-inserter", - enabled = "false", - ingredients = - { - {"fast-inserter", 1}, - {"advanced-circuit", 2}, - {"iron-gear-wheel", 2}, - }, - result = "express-inserter", - requester_paste_multiplier = 4 - }, - { - type = "recipe", - name = "express-filter-inserter", - enabled = false, - ingredients = - { - {"filter-inserter", 1}, - {"advanced-circuit", 4} - }, - result = "express-filter-inserter", - requester_paste_multiplier = 4 - }, - - { - type = "inserter", - name = "express-inserter", - icon = "__boblogistics__/graphics/icons/inserter/cyan-inserter.png", - flags = {"placeable-neutral", "placeable-player", "player-creation"}, - minable = {hardness = 0.2, mining_time = 0.5, result = "express-inserter"}, - max_health = 40, - corpse = "small-remnants", - resistances = - { - { - type = "fire", - percent = 90 - } - }, - vehicle_impact_sound = { filename = "__base__/sound/car-metal-impact.ogg", volume = 0.65 }, - working_sound = - { - match_progress_to_activity = true, - sound = - { - { - filename = "__base__/sound/inserter-fast-1.ogg", - volume = 0.75 - }, - { - filename = "__base__/sound/inserter-fast-2.ogg", - volume = 0.75 - }, - { - filename = "__base__/sound/inserter-fast-3.ogg", - volume = 0.75 - }, - { - filename = "__base__/sound/inserter-fast-4.ogg", - volume = 0.75 - }, - { - filename = "__base__/sound/inserter-fast-5.ogg", - volume = 0.75 - } - } - }, - collision_box = {{-0.15, -0.15}, {0.15, 0.15}}, - selection_box = {{-0.4, -0.35}, {0.4, 0.45}}, - energy_per_movement = 5000, - energy_per_rotation = 5000, - energy_source = - { - type = "electric", - usage_priority = "secondary-input", - drain = "0.4kW" - }, - extension_speed = 0.25, - rotation_speed = 0.1, - pickup_position = {0, -1}, - insert_position = {0, 1.2}, - fast_replaceable_group = "inserter", - hand_base_picture = - { - filename = "__boblogistics__/graphics/entity/inserter/cyan-inserter-hand-base.png", - priority = "extra-high", - width = 8, - height = 34 - }, - hand_closed_picture = - { - filename = "__boblogistics__/graphics/entity/inserter/cyan-inserter-hand-closed.png", - priority = "extra-high", - width = 18, - height = 41 - }, - hand_open_picture = - { - filename = "__boblogistics__/graphics/entity/inserter/cyan-inserter-hand-open.png", - priority = "extra-high", - width = 18, - height = 41 - }, - hand_base_shadow = - { - filename = "__boblogistics__/graphics/entity/inserter/burner-inserter-hand-base-shadow.png", - priority = "extra-high", - width = 8, - height = 34 - }, - hand_closed_shadow = - { - filename = "__boblogistics__/graphics/entity/inserter/burner-inserter-hand-closed-shadow.png", - priority = "extra-high", - width = 18, - height = 41 - }, - hand_open_shadow = - { - filename = "__boblogistics__/graphics/entity/inserter/burner-inserter-hand-open-shadow.png", - priority = "extra-high", - width = 18, - height = 41 - }, - platform_picture = - { - sheet= - { - filename = "__boblogistics__/graphics/entity/inserter/cyan-inserter-platform.png", - priority = "extra-high", - width = 46, - height = 46, - shift = {0.09375, 0} - } - }, - circuit_wire_connection_point = inserter_circuit_wire_connection_point, - circuit_connector_sprites = inserter_circuit_connector_sprites, - circuit_wire_max_distance = inserter_circuit_wire_max_distance - }, - - { - type = "inserter", - name = "express-filter-inserter", - icon = "__boblogistics__/graphics/icons/inserter/magenta-inserter.png", - flags = {"placeable-neutral", "placeable-player", "player-creation"}, - minable = {hardness = 0.2, mining_time = 0.5, result = "express-filter-inserter"}, - max_health = 40, - corpse = "small-remnants", - resistances = - { - { - type = "fire", - percent = 90 - } - }, - vehicle_impact_sound = { filename = "__base__/sound/car-metal-impact.ogg", volume = 0.65 }, - working_sound = - { - match_progress_to_activity = true, - sound = - { - { - filename = "__base__/sound/inserter-fast-1.ogg", - volume = 0.75 - }, - { - filename = "__base__/sound/inserter-fast-2.ogg", - volume = 0.75 - }, - { - filename = "__base__/sound/inserter-fast-3.ogg", - volume = 0.75 - }, - { - filename = "__base__/sound/inserter-fast-4.ogg", - volume = 0.75 - }, - { - filename = "__base__/sound/inserter-fast-5.ogg", - volume = 0.75 - } - } - }, - collision_box = {{-0.15, -0.15}, {0.15, 0.15}}, - selection_box = {{-0.4, -0.35}, {0.4, 0.45}}, - pickup_position = {0, -1}, - insert_position = {0, 1.2}, - energy_per_movement = 8000, - energy_per_rotation = 8000, - energy_source = - { - type = "electric", - usage_priority = "secondary-input", - drain = "0.5kW" - }, - extension_speed = 0.25, - rotation_speed = 0.1, - fast_replaceable_group = "inserter", - filter_count = 5, - hand_base_picture = - { - filename = "__boblogistics__/graphics/entity/inserter/magenta-inserter-hand-base.png", - priority = "extra-high", - width = 8, - height = 34 - }, - hand_closed_picture = - { - filename = "__boblogistics__/graphics/entity/inserter/magenta-inserter-hand-closed.png", - priority = "extra-high", - width = 18, - height = 41 - }, - hand_open_picture = - { - filename = "__boblogistics__/graphics/entity/inserter/magenta-inserter-hand-open.png", - priority = "extra-high", - width = 18, - height = 41 - }, - hand_base_shadow = - { - filename = "__boblogistics__/graphics/entity/inserter/burner-inserter-hand-base-shadow.png", - priority = "extra-high", - width = 8, - height = 34 - }, - hand_closed_shadow = - { - filename = "__boblogistics__/graphics/entity/inserter/burner-inserter-hand-closed-shadow.png", - priority = "extra-high", - width = 18, - height = 41 - }, - hand_open_shadow = - { - filename = "__boblogistics__/graphics/entity/inserter/burner-inserter-hand-open-shadow.png", - priority = "extra-high", - width = 18, - height = 41 - }, - platform_picture = - { - sheet= - { - filename = "__boblogistics__/graphics/entity/inserter/magenta-inserter-platform.png", - priority = "extra-high", - width = 46, - height = 46, - shift = {0.09375, 0} - } - }, - - circuit_wire_connection_point = inserter_circuit_wire_connection_point, - circuit_connector_sprites = inserter_circuit_connector_sprites, - circuit_wire_max_distance = inserter_circuit_wire_max_distance - }, - - { - type = "technology", - name = "express-inserters", - icon = "__boblogistics__/graphics/icons/technology/express-inserter.png", - icon_size = 128, - effects = - { - { - type = "unlock-recipe", - recipe = "express-inserter" - }, - { - type = "unlock-recipe", - recipe = "express-filter-inserter" - }, - }, - prerequisites = - { - "advanced-electronics", - "logistics", - }, - unit = - { - count = 50, - ingredients = - { - {"science-pack-1", 1}, - {"science-pack-2", 1}, - {"science-pack-3", 1}, - }, - time = 30 - }, - upgrade = true, - order = "a-f", - }, -} -) - - - - - -data:extend( -{ - { - type = "item", - name = "express-stack-inserter", - icon = "__boblogistics__/graphics/icons/inserter/dark-green-inserter.png", - flags = {"goes-to-quickbar"}, - subgroup = "inserter", - order = "f[stack-inserter][express]", - place_result = "express-stack-inserter", - stack_size = 50 - }, - { - type = "item", - name = "express-stack-filter-inserter", - icon = "__boblogistics__/graphics/icons/inserter/stripe-inserter.png", - flags = {"goes-to-quickbar"}, - subgroup = "inserter", - order = "g[stack-filter-inserter][express]", - place_result = "express-stack-filter-inserter", - stack_size = 50 - }, - - { - type = "recipe", - name = "express-stack-inserter", - enabled = false, - ingredients = - { - {"stack-inserter", 1}, - {"iron-gear-wheel", 15}, - {"advanced-circuit", 5}, - }, - result = "express-stack-inserter", - requester_paste_multiplier = 4 - }, - { - type = "recipe", - name = "express-stack-filter-inserter", - enabled = false, - ingredients = - { - {"stack-filter-inserter", 1}, - {"iron-gear-wheel", 15}, - {"advanced-circuit", 5} - }, - result = "express-stack-filter-inserter", - requester_paste_multiplier = 4 - }, - - { - type = "inserter", - name = "express-stack-inserter", - icon = "__boblogistics__/graphics/icons/inserter/dark-green-inserter.png", - flags = {"placeable-neutral", "placeable-player", "player-creation"}, - stack = true, - minable = - { - hardness = 0.2, - mining_time = 0.5, - result = "express-stack-inserter" - }, - max_health = 40, - corpse = "small-remnants", - resistances = - { - { - type = "fire", - percent = 90 - } - }, - collision_box = {{-0.15, -0.15}, {0.15, 0.15}}, - selection_box = {{-0.4, -0.35}, {0.4, 0.45}}, - pickup_position = {0, -1}, - insert_position = {0, 1.2}, - energy_per_movement = 20000, - energy_per_rotation = 20000, - energy_source = - { - type = "electric", - usage_priority = "secondary-input", - drain = "1kW" - }, - extension_speed = 0.25, - rotation_speed = 0.1, - fast_replaceable_group = "inserter", - vehicle_impact_sound = { filename = "__base__/sound/car-metal-impact.ogg", volume = 0.65 }, - working_sound = - { - match_progress_to_activity = true, - sound = - { - { - filename = "__base__/sound/inserter-fast-1.ogg", - volume = 0.75 - }, - { - filename = "__base__/sound/inserter-fast-2.ogg", - volume = 0.75 - }, - { - filename = "__base__/sound/inserter-fast-3.ogg", - volume = 0.75 - }, - { - filename = "__base__/sound/inserter-fast-4.ogg", - volume = 0.75 - }, - { - filename = "__base__/sound/inserter-fast-5.ogg", - volume = 0.75 - } - } - }, - hand_base_picture = - { - filename = "__boblogistics__/graphics/entity/inserter/dark-green-inserter-hand-base.png", - priority = "extra-high", - width = 8, - height = 34 - }, - hand_closed_picture = - { - filename = "__boblogistics__/graphics/entity/inserter/dark-green-big-inserter-hand-closed.png", - priority = "extra-high", - width = 24, - height = 41 - }, - hand_open_picture = - { - filename = "__boblogistics__/graphics/entity/inserter/dark-green-big-inserter-hand-open.png", - priority = "extra-high", - width = 32, - height = 41 - }, - hand_base_shadow = - { - filename = "__boblogistics__/graphics/entity/inserter/burner-inserter-hand-base-shadow.png", - priority = "extra-high", - width = 8, - height = 34 - }, - hand_closed_shadow = - { - filename = "__boblogistics__/graphics/entity/inserter/burner-inserter-hand-closed-shadow.png", - priority = "extra-high", - width = 18, - height = 41 - }, - hand_open_shadow = - { - filename = "__boblogistics__/graphics/entity/inserter/burner-inserter-hand-open-shadow.png", - priority = "extra-high", - width = 18, - height = 41 - }, - platform_picture = - { - sheet = - { - filename = "__boblogistics__/graphics/entity/inserter/dark-green-inserter-platform.png", - priority = "extra-high", - width = 46, - height = 46, - shift = {0.09375, 0} - } - }, - circuit_wire_connection_point = inserter_circuit_wire_connection_point, - circuit_connector_sprites = inserter_circuit_connector_sprites, - circuit_wire_max_distance = inserter_circuit_wire_max_distance - }, - - { - type = "inserter", - name = "express-stack-filter-inserter", - icon = "__boblogistics__/graphics/icons/inserter/stripe-inserter.png", - flags = {"placeable-neutral", "placeable-player", "player-creation"}, - stack = true, - filter_count = 2, - minable = - { - hardness = 0.2, - mining_time = 0.5, - result = "express-stack-filter-inserter" - }, - max_health = 40, - corpse = "small-remnants", - resistances = - { - { - type = "fire", - percent = 90 - } - }, - collision_box = {{-0.15, -0.15}, {0.15, 0.15}}, - selection_box = {{-0.4, -0.35}, {0.4, 0.45}}, - pickup_position = {0, -1}, - insert_position = {0, 1.2}, - energy_per_movement = 20000, - energy_per_rotation = 20000, - energy_source = - { - type = "electric", - usage_priority = "secondary-input", - drain = "1kW" - }, - extension_speed = 0.25, - rotation_speed = 0.1, - fast_replaceable_group = "inserter", - vehicle_impact_sound = { filename = "__base__/sound/car-metal-impact.ogg", volume = 0.65 }, - working_sound = - { - match_progress_to_activity = true, - sound = - { - { - filename = "__base__/sound/inserter-fast-1.ogg", - volume = 0.75 - }, - { - filename = "__base__/sound/inserter-fast-2.ogg", - volume = 0.75 - }, - { - filename = "__base__/sound/inserter-fast-3.ogg", - volume = 0.75 - }, - { - filename = "__base__/sound/inserter-fast-4.ogg", - volume = 0.75 - }, - { - filename = "__base__/sound/inserter-fast-5.ogg", - volume = 0.75 - } - } - }, - hand_base_picture = - { - filename = "__boblogistics__/graphics/entity/inserter/stripe-inserter-hand-base.png", - priority = "extra-high", - width = 8, - height = 34 - }, - hand_closed_picture = - { - filename = "__boblogistics__/graphics/entity/inserter/stripe-inserter-hand-closed.png", - priority = "extra-high", - width = 24, - height = 41 - }, - hand_open_picture = - { - filename = "__boblogistics__/graphics/entity/inserter/stripe-inserter-hand-open.png", - priority = "extra-high", - width = 32, - height = 41 - }, - hand_base_shadow = - { - filename = "__boblogistics__/graphics/entity/inserter/burner-inserter-hand-base-shadow.png", - priority = "extra-high", - width = 8, - height = 34 - }, - hand_closed_shadow = - { - filename = "__boblogistics__/graphics/entity/inserter/burner-inserter-hand-closed-shadow.png", - priority = "extra-high", - width = 18, - height = 41 - }, - hand_open_shadow = - { - filename = "__boblogistics__/graphics/entity/inserter/burner-inserter-hand-open-shadow.png", - priority = "extra-high", - width = 18, - height = 41 - }, - platform_picture = - { - sheet = - { - filename = "__boblogistics__/graphics/entity/inserter/stripe-inserter-platform.png", - priority = "extra-high", - width = 46, - height = 46, - shift = {0.09375, 0} - } - }, - circuit_wire_connection_point = inserter_circuit_wire_connection_point, - circuit_connector_sprites = inserter_circuit_connector_sprites, - circuit_wire_max_distance = inserter_circuit_wire_max_distance - }, - - - { - type = "technology", - name = "stack-inserter-2", - icon = "__base__/graphics/technology/inserter-capacity.png", - icon_size = 128, - effects = - { - { - type = "unlock-recipe", - recipe = "express-stack-inserter" - }, - { - type = "unlock-recipe", - recipe = "express-stack-filter-inserter" - } - }, - prerequisites = - { - "logistics-2", - "advanced-electronics" - }, - unit = - { - count = 150, - ingredients = - { - {"science-pack-1", 1}, - {"science-pack-2", 1}, - {"science-pack-3", 1}, - }, - time = 30 - }, - upgrade = true, - order = "c-o-a2", - }, -} -) - - -if data.raw.technology["stack-inserter"] then - data.raw.technology["stack-inserter-2"].icon = "__base__/graphics/technology/stack-inserter.png" - data.raw.technology["stack-inserter-2"].prerequisites = {"stack-inserter"} -end - +data:extend( +{ + { + type = "item", + name = "express-inserter", + icon = "__boblogistics__/graphics/icons/inserter/cyan-inserter.png", + flags = {"goes-to-quickbar"}, + subgroup = "inserter", + order = "d[fast-inserter][express]", + place_result = "express-inserter", + stack_size = 50 + }, + { + type = "item", + name = "express-filter-inserter", + icon = "__boblogistics__/graphics/icons/inserter/magenta-inserter.png", + flags = {"goes-to-quickbar"}, + subgroup = "inserter", + order = "e[filter-inserter][express]", + place_result = "express-filter-inserter", + stack_size = 50 + }, + + { + type = "recipe", + name = "express-inserter", + enabled = "false", + ingredients = + { + {"fast-inserter", 1}, + {"advanced-circuit", 2}, + {"iron-gear-wheel", 2}, + }, + result = "express-inserter", + requester_paste_multiplier = 4 + }, + { + type = "recipe", + name = "express-filter-inserter", + enabled = false, + ingredients = + { + {"filter-inserter", 1}, + {"advanced-circuit", 4} + }, + result = "express-filter-inserter", + requester_paste_multiplier = 4 + }, + + { + type = "inserter", + name = "express-inserter", + icon = "__boblogistics__/graphics/icons/inserter/cyan-inserter.png", + flags = {"placeable-neutral", "placeable-player", "player-creation"}, + minable = {hardness = 0.2, mining_time = 0.5, result = "express-inserter"}, + max_health = 40, + corpse = "small-remnants", + resistances = + { + { + type = "fire", + percent = 90 + } + }, + vehicle_impact_sound = { filename = "__base__/sound/car-metal-impact.ogg", volume = 0.65 }, + working_sound = + { + match_progress_to_activity = true, + sound = + { + { + filename = "__base__/sound/inserter-fast-1.ogg", + volume = 0.75 + }, + { + filename = "__base__/sound/inserter-fast-2.ogg", + volume = 0.75 + }, + { + filename = "__base__/sound/inserter-fast-3.ogg", + volume = 0.75 + }, + { + filename = "__base__/sound/inserter-fast-4.ogg", + volume = 0.75 + }, + { + filename = "__base__/sound/inserter-fast-5.ogg", + volume = 0.75 + } + } + }, + collision_box = {{-0.15, -0.15}, {0.15, 0.15}}, + selection_box = {{-0.4, -0.35}, {0.4, 0.45}}, + energy_per_movement = 5000, + energy_per_rotation = 5000, + energy_source = + { + type = "electric", + usage_priority = "secondary-input", + drain = "0.4kW" + }, + extension_speed = 0.25, + rotation_speed = 0.1, + pickup_position = {0, -1}, + insert_position = {0, 1.2}, + fast_replaceable_group = "inserter", + hand_base_picture = + { + filename = "__boblogistics__/graphics/entity/inserter/cyan-inserter-hand-base.png", + priority = "extra-high", + width = 8, + height = 34 + }, + hand_closed_picture = + { + filename = "__boblogistics__/graphics/entity/inserter/cyan-inserter-hand-closed.png", + priority = "extra-high", + width = 18, + height = 41 + }, + hand_open_picture = + { + filename = "__boblogistics__/graphics/entity/inserter/cyan-inserter-hand-open.png", + priority = "extra-high", + width = 18, + height = 41 + }, + hand_base_shadow = + { + filename = "__boblogistics__/graphics/entity/inserter/burner-inserter-hand-base-shadow.png", + priority = "extra-high", + width = 8, + height = 34 + }, + hand_closed_shadow = + { + filename = "__boblogistics__/graphics/entity/inserter/burner-inserter-hand-closed-shadow.png", + priority = "extra-high", + width = 18, + height = 41 + }, + hand_open_shadow = + { + filename = "__boblogistics__/graphics/entity/inserter/burner-inserter-hand-open-shadow.png", + priority = "extra-high", + width = 18, + height = 41 + }, + platform_picture = + { + sheet= + { + filename = "__boblogistics__/graphics/entity/inserter/cyan-inserter-platform.png", + priority = "extra-high", + width = 46, + height = 46, + shift = {0.09375, 0} + } + }, + circuit_wire_connection_point = inserter_circuit_wire_connection_point, + circuit_connector_sprites = inserter_circuit_connector_sprites, + circuit_wire_max_distance = inserter_circuit_wire_max_distance + }, + + { + type = "inserter", + name = "express-filter-inserter", + icon = "__boblogistics__/graphics/icons/inserter/magenta-inserter.png", + flags = {"placeable-neutral", "placeable-player", "player-creation"}, + minable = {hardness = 0.2, mining_time = 0.5, result = "express-filter-inserter"}, + max_health = 40, + corpse = "small-remnants", + resistances = + { + { + type = "fire", + percent = 90 + } + }, + vehicle_impact_sound = { filename = "__base__/sound/car-metal-impact.ogg", volume = 0.65 }, + working_sound = + { + match_progress_to_activity = true, + sound = + { + { + filename = "__base__/sound/inserter-fast-1.ogg", + volume = 0.75 + }, + { + filename = "__base__/sound/inserter-fast-2.ogg", + volume = 0.75 + }, + { + filename = "__base__/sound/inserter-fast-3.ogg", + volume = 0.75 + }, + { + filename = "__base__/sound/inserter-fast-4.ogg", + volume = 0.75 + }, + { + filename = "__base__/sound/inserter-fast-5.ogg", + volume = 0.75 + } + } + }, + collision_box = {{-0.15, -0.15}, {0.15, 0.15}}, + selection_box = {{-0.4, -0.35}, {0.4, 0.45}}, + pickup_position = {0, -1}, + insert_position = {0, 1.2}, + energy_per_movement = 8000, + energy_per_rotation = 8000, + energy_source = + { + type = "electric", + usage_priority = "secondary-input", + drain = "0.5kW" + }, + extension_speed = 0.25, + rotation_speed = 0.1, + fast_replaceable_group = "inserter", + filter_count = 5, + hand_base_picture = + { + filename = "__boblogistics__/graphics/entity/inserter/magenta-inserter-hand-base.png", + priority = "extra-high", + width = 8, + height = 34 + }, + hand_closed_picture = + { + filename = "__boblogistics__/graphics/entity/inserter/magenta-inserter-hand-closed.png", + priority = "extra-high", + width = 18, + height = 41 + }, + hand_open_picture = + { + filename = "__boblogistics__/graphics/entity/inserter/magenta-inserter-hand-open.png", + priority = "extra-high", + width = 18, + height = 41 + }, + hand_base_shadow = + { + filename = "__boblogistics__/graphics/entity/inserter/burner-inserter-hand-base-shadow.png", + priority = "extra-high", + width = 8, + height = 34 + }, + hand_closed_shadow = + { + filename = "__boblogistics__/graphics/entity/inserter/burner-inserter-hand-closed-shadow.png", + priority = "extra-high", + width = 18, + height = 41 + }, + hand_open_shadow = + { + filename = "__boblogistics__/graphics/entity/inserter/burner-inserter-hand-open-shadow.png", + priority = "extra-high", + width = 18, + height = 41 + }, + platform_picture = + { + sheet= + { + filename = "__boblogistics__/graphics/entity/inserter/magenta-inserter-platform.png", + priority = "extra-high", + width = 46, + height = 46, + shift = {0.09375, 0} + } + }, + + circuit_wire_connection_point = inserter_circuit_wire_connection_point, + circuit_connector_sprites = inserter_circuit_connector_sprites, + circuit_wire_max_distance = inserter_circuit_wire_max_distance + }, + + { + type = "technology", + name = "express-inserters", + icon = "__boblogistics__/graphics/icons/technology/express-inserter.png", + icon_size = 128, + effects = + { + { + type = "unlock-recipe", + recipe = "express-inserter" + }, + { + type = "unlock-recipe", + recipe = "express-filter-inserter" + }, + }, + prerequisites = + { + "advanced-electronics", + "logistics", + }, + unit = + { + count = 50, + ingredients = + { + {"science-pack-1", 1}, + {"science-pack-2", 1}, + {"science-pack-3", 1}, + }, + time = 30 + }, + upgrade = true, + order = "a-f", + }, +} +) + + + + + +data:extend( +{ + { + type = "item", + name = "express-stack-inserter", + icon = "__boblogistics__/graphics/icons/inserter/dark-green-inserter.png", + flags = {"goes-to-quickbar"}, + subgroup = "inserter", + order = "f[stack-inserter][express]", + place_result = "express-stack-inserter", + stack_size = 50 + }, + { + type = "item", + name = "express-stack-filter-inserter", + icon = "__boblogistics__/graphics/icons/inserter/stripe-inserter.png", + flags = {"goes-to-quickbar"}, + subgroup = "inserter", + order = "g[stack-filter-inserter][express]", + place_result = "express-stack-filter-inserter", + stack_size = 50 + }, + + { + type = "recipe", + name = "express-stack-inserter", + enabled = false, + ingredients = + { + {"stack-inserter", 1}, + {"iron-gear-wheel", 15}, + {"advanced-circuit", 5}, + }, + result = "express-stack-inserter", + requester_paste_multiplier = 4 + }, + { + type = "recipe", + name = "express-stack-filter-inserter", + enabled = false, + ingredients = + { + {"stack-filter-inserter", 1}, + {"iron-gear-wheel", 15}, + {"advanced-circuit", 5} + }, + result = "express-stack-filter-inserter", + requester_paste_multiplier = 4 + }, + + { + type = "inserter", + name = "express-stack-inserter", + icon = "__boblogistics__/graphics/icons/inserter/dark-green-inserter.png", + flags = {"placeable-neutral", "placeable-player", "player-creation"}, + stack = true, + minable = + { + hardness = 0.2, + mining_time = 0.5, + result = "express-stack-inserter" + }, + max_health = 40, + corpse = "small-remnants", + resistances = + { + { + type = "fire", + percent = 90 + } + }, + collision_box = {{-0.15, -0.15}, {0.15, 0.15}}, + selection_box = {{-0.4, -0.35}, {0.4, 0.45}}, + pickup_position = {0, -1}, + insert_position = {0, 1.2}, + energy_per_movement = 20000, + energy_per_rotation = 20000, + energy_source = + { + type = "electric", + usage_priority = "secondary-input", + drain = "1kW" + }, + extension_speed = 0.25, + rotation_speed = 0.1, + fast_replaceable_group = "inserter", + vehicle_impact_sound = { filename = "__base__/sound/car-metal-impact.ogg", volume = 0.65 }, + working_sound = + { + match_progress_to_activity = true, + sound = + { + { + filename = "__base__/sound/inserter-fast-1.ogg", + volume = 0.75 + }, + { + filename = "__base__/sound/inserter-fast-2.ogg", + volume = 0.75 + }, + { + filename = "__base__/sound/inserter-fast-3.ogg", + volume = 0.75 + }, + { + filename = "__base__/sound/inserter-fast-4.ogg", + volume = 0.75 + }, + { + filename = "__base__/sound/inserter-fast-5.ogg", + volume = 0.75 + } + } + }, + hand_base_picture = + { + filename = "__boblogistics__/graphics/entity/inserter/dark-green-inserter-hand-base.png", + priority = "extra-high", + width = 8, + height = 34 + }, + hand_closed_picture = + { + filename = "__boblogistics__/graphics/entity/inserter/dark-green-big-inserter-hand-closed.png", + priority = "extra-high", + width = 24, + height = 41 + }, + hand_open_picture = + { + filename = "__boblogistics__/graphics/entity/inserter/dark-green-big-inserter-hand-open.png", + priority = "extra-high", + width = 32, + height = 41 + }, + hand_base_shadow = + { + filename = "__boblogistics__/graphics/entity/inserter/burner-inserter-hand-base-shadow.png", + priority = "extra-high", + width = 8, + height = 34 + }, + hand_closed_shadow = + { + filename = "__boblogistics__/graphics/entity/inserter/burner-inserter-hand-closed-shadow.png", + priority = "extra-high", + width = 18, + height = 41 + }, + hand_open_shadow = + { + filename = "__boblogistics__/graphics/entity/inserter/burner-inserter-hand-open-shadow.png", + priority = "extra-high", + width = 18, + height = 41 + }, + platform_picture = + { + sheet = + { + filename = "__boblogistics__/graphics/entity/inserter/dark-green-inserter-platform.png", + priority = "extra-high", + width = 46, + height = 46, + shift = {0.09375, 0} + } + }, + circuit_wire_connection_point = inserter_circuit_wire_connection_point, + circuit_connector_sprites = inserter_circuit_connector_sprites, + circuit_wire_max_distance = inserter_circuit_wire_max_distance + }, + + { + type = "inserter", + name = "express-stack-filter-inserter", + icon = "__boblogistics__/graphics/icons/inserter/stripe-inserter.png", + flags = {"placeable-neutral", "placeable-player", "player-creation"}, + stack = true, + filter_count = 2, + minable = + { + hardness = 0.2, + mining_time = 0.5, + result = "express-stack-filter-inserter" + }, + max_health = 40, + corpse = "small-remnants", + resistances = + { + { + type = "fire", + percent = 90 + } + }, + collision_box = {{-0.15, -0.15}, {0.15, 0.15}}, + selection_box = {{-0.4, -0.35}, {0.4, 0.45}}, + pickup_position = {0, -1}, + insert_position = {0, 1.2}, + energy_per_movement = 20000, + energy_per_rotation = 20000, + energy_source = + { + type = "electric", + usage_priority = "secondary-input", + drain = "1kW" + }, + extension_speed = 0.25, + rotation_speed = 0.1, + fast_replaceable_group = "inserter", + vehicle_impact_sound = { filename = "__base__/sound/car-metal-impact.ogg", volume = 0.65 }, + working_sound = + { + match_progress_to_activity = true, + sound = + { + { + filename = "__base__/sound/inserter-fast-1.ogg", + volume = 0.75 + }, + { + filename = "__base__/sound/inserter-fast-2.ogg", + volume = 0.75 + }, + { + filename = "__base__/sound/inserter-fast-3.ogg", + volume = 0.75 + }, + { + filename = "__base__/sound/inserter-fast-4.ogg", + volume = 0.75 + }, + { + filename = "__base__/sound/inserter-fast-5.ogg", + volume = 0.75 + } + } + }, + hand_base_picture = + { + filename = "__boblogistics__/graphics/entity/inserter/stripe-inserter-hand-base.png", + priority = "extra-high", + width = 8, + height = 34 + }, + hand_closed_picture = + { + filename = "__boblogistics__/graphics/entity/inserter/stripe-inserter-hand-closed.png", + priority = "extra-high", + width = 24, + height = 41 + }, + hand_open_picture = + { + filename = "__boblogistics__/graphics/entity/inserter/stripe-inserter-hand-open.png", + priority = "extra-high", + width = 32, + height = 41 + }, + hand_base_shadow = + { + filename = "__boblogistics__/graphics/entity/inserter/burner-inserter-hand-base-shadow.png", + priority = "extra-high", + width = 8, + height = 34 + }, + hand_closed_shadow = + { + filename = "__boblogistics__/graphics/entity/inserter/burner-inserter-hand-closed-shadow.png", + priority = "extra-high", + width = 18, + height = 41 + }, + hand_open_shadow = + { + filename = "__boblogistics__/graphics/entity/inserter/burner-inserter-hand-open-shadow.png", + priority = "extra-high", + width = 18, + height = 41 + }, + platform_picture = + { + sheet = + { + filename = "__boblogistics__/graphics/entity/inserter/stripe-inserter-platform.png", + priority = "extra-high", + width = 46, + height = 46, + shift = {0.09375, 0} + } + }, + circuit_wire_connection_point = inserter_circuit_wire_connection_point, + circuit_connector_sprites = inserter_circuit_connector_sprites, + circuit_wire_max_distance = inserter_circuit_wire_max_distance + }, + + + { + type = "technology", + name = "stack-inserter-2", + icon = "__base__/graphics/technology/inserter-capacity.png", + icon_size = 128, + effects = + { + { + type = "unlock-recipe", + recipe = "express-stack-inserter" + }, + { + type = "unlock-recipe", + recipe = "express-stack-filter-inserter" + } + }, + prerequisites = + { + "logistics-2", + "advanced-electronics" + }, + unit = + { + count = 150, + ingredients = + { + {"science-pack-1", 1}, + {"science-pack-2", 1}, + {"science-pack-3", 1}, + }, + time = 30 + }, + upgrade = true, + order = "c-o-a2", + }, +} +) + + +if data.raw.technology["stack-inserter"] then + data.raw.technology["stack-inserter-2"].icon = "__base__/graphics/technology/stack-inserter.png" + data.raw.technology["stack-inserter-2"].prerequisites = {"stack-inserter"} +end + diff --git a/boblogistics_0.14.0/prototypes/item/logistic-container.lua b/boblogistics_0.14.2/prototypes/item/logistic-container.lua similarity index 96% rename from boblogistics_0.14.0/prototypes/item/logistic-container.lua rename to boblogistics_0.14.2/prototypes/item/logistic-container.lua index ac922d3..01f5012 100644 --- a/boblogistics_0.14.0/prototypes/item/logistic-container.lua +++ b/boblogistics_0.14.2/prototypes/item/logistic-container.lua @@ -1,45 +1,45 @@ -data:extend( -{ - { - type = "item", - name = "logistic-chest-passive-provider-2", - icon = "__boblogistics__/graphics/icons/logistic-chest-passive-provider-2.png", - flags = {"goes-to-quickbar"}, - subgroup = "logistic-network", - order = "b[storage]-d[logistic-chest-passive-provider-2]", - place_result = "logistic-chest-passive-provider-2", - stack_size = 50 - }, - { - type = "item", - name = "logistic-chest-active-provider-2", - icon = "__boblogistics__/graphics/icons/logistic-chest-active-provider-2.png", - flags = {"goes-to-quickbar"}, - subgroup = "logistic-network", - order = "b[storage]-d[logistic-chest-active-provider-2]", - place_result = "logistic-chest-active-provider-2", - stack_size = 50 - }, - { - type = "item", - name = "logistic-chest-storage-2", - icon = "__boblogistics__/graphics/icons/logistic-chest-storage-2.png", - flags = {"goes-to-quickbar"}, - subgroup = "logistic-network", - order = "b[storage]-d[logistic-chest-storage-2]", - place_result = "logistic-chest-storage-2", - stack_size = 50 - }, - { - type = "item", - name = "logistic-chest-requester-2", - icon = "__boblogistics__/graphics/icons/logistic-chest-requester-2.png", - flags = {"goes-to-quickbar"}, - subgroup = "logistic-network", - order = "b[storage]-d[logistic-chest-requester-2]", - place_result = "logistic-chest-requester-2", - stack_size = 50 - } -} -) - +data:extend( +{ + { + type = "item", + name = "logistic-chest-passive-provider-2", + icon = "__boblogistics__/graphics/icons/logistic-chest-passive-provider-2.png", + flags = {"goes-to-quickbar"}, + subgroup = "logistic-network", + order = "b[storage]-d[logistic-chest-passive-provider-2]", + place_result = "logistic-chest-passive-provider-2", + stack_size = 50 + }, + { + type = "item", + name = "logistic-chest-active-provider-2", + icon = "__boblogistics__/graphics/icons/logistic-chest-active-provider-2.png", + flags = {"goes-to-quickbar"}, + subgroup = "logistic-network", + order = "b[storage]-d[logistic-chest-active-provider-2]", + place_result = "logistic-chest-active-provider-2", + stack_size = 50 + }, + { + type = "item", + name = "logistic-chest-storage-2", + icon = "__boblogistics__/graphics/icons/logistic-chest-storage-2.png", + flags = {"goes-to-quickbar"}, + subgroup = "logistic-network", + order = "b[storage]-d[logistic-chest-storage-2]", + place_result = "logistic-chest-storage-2", + stack_size = 50 + }, + { + type = "item", + name = "logistic-chest-requester-2", + icon = "__boblogistics__/graphics/icons/logistic-chest-requester-2.png", + flags = {"goes-to-quickbar"}, + subgroup = "logistic-network", + order = "b[storage]-d[logistic-chest-requester-2]", + place_result = "logistic-chest-requester-2", + stack_size = 50 + } +} +) + diff --git a/boblogistics_0.14.0/prototypes/item/pipes.lua b/boblogistics_0.14.2/prototypes/item/pipes.lua similarity index 95% rename from boblogistics_0.14.0/prototypes/item/pipes.lua rename to boblogistics_0.14.2/prototypes/item/pipes.lua index 525ef1e..bdb970a 100644 --- a/boblogistics_0.14.0/prototypes/item/pipes.lua +++ b/boblogistics_0.14.2/prototypes/item/pipes.lua @@ -1,247 +1,247 @@ -data.raw.item["pipe"].subgroup = "pipe" -data.raw.item["pipe-to-ground"].subgroup = "pipe-to-ground" - -data.raw.item["pipe"].order = "a[pipe]-a[pipe]-1-2" -data.raw.item["pipe-to-ground"].order = "a[pipe]-b[pipe-to-ground]-1-2" - - -data:extend( -{ - { - type = "item", - name = "stone-pipe", - icon = "__boblogistics__/graphics/icons/pipe/stone-pipe.png", - flags = {"goes-to-quickbar"}, - subgroup = "pipe", - order = "a[pipe]-a[pipe]-1-3", - place_result = "stone-pipe", - stack_size = 50, - }, - - { - type = "item", - name = "stone-pipe-to-ground", - icon = "__boblogistics__/graphics/icons/pipe/stone-pipe-to-ground.png", - flags = {"goes-to-quickbar"}, - subgroup = "pipe-to-ground", - order = "a[pipe]-b[pipe-to-ground]-1-3", - place_result = "stone-pipe-to-ground", - stack_size = 50, - }, - - - { - type = "item", - name = "copper-pipe", - icon = "__boblogistics__/graphics/icons/pipe/copper-pipe.png", - flags = {"goes-to-quickbar"}, - subgroup = "pipe", - order = "a[pipe]-a[pipe]-1-1", - place_result = "copper-pipe", - stack_size = 50, - }, - - { - type = "item", - name = "copper-pipe-to-ground", - icon = "__boblogistics__/graphics/icons/pipe/copper-pipe-to-ground.png", - flags = {"goes-to-quickbar"}, - subgroup = "pipe-to-ground", - order = "a[pipe]-b[pipe-to-ground]-1-1", - place_result = "copper-pipe-to-ground", - stack_size = 50, - }, - - - { - type = "item", - name = "steel-pipe", - icon = "__boblogistics__/graphics/icons/pipe/steel-pipe.png", - flags = {"goes-to-quickbar"}, - subgroup = "pipe", - order = "a[pipe]-a[pipe]-2-2", - place_result = "steel-pipe", - stack_size = 50, - }, - - { - type = "item", - name = "steel-pipe-to-ground", - icon = "__boblogistics__/graphics/icons/pipe/steel-pipe-to-ground.png", - flags = {"goes-to-quickbar"}, - subgroup = "pipe-to-ground", - order = "a[pipe]-b[pipe-to-ground]-2-2", - place_result = "steel-pipe-to-ground", - stack_size = 50, - }, - - - { - type = "item", - name = "plastic-pipe", - icon = "__boblogistics__/graphics/icons/pipe/plastic-pipe.png", - flags = {"goes-to-quickbar"}, - subgroup = "pipe", - order = "a[pipe]-a[pipe]-2-3", - place_result = "plastic-pipe", - stack_size = 50, - }, - - { - type = "item", - name = "plastic-pipe-to-ground", - icon = "__boblogistics__/graphics/icons/pipe/plastic-pipe-to-ground.png", - flags = {"goes-to-quickbar"}, - subgroup = "pipe-to-ground", - order = "a[pipe]-b[pipe-to-ground]-2-3", - place_result = "plastic-pipe-to-ground", - stack_size = 50, - }, -} -) - - -if data.raw.item["bronze-alloy"] then -data:extend( -{ - { - type = "item", - name = "bronze-pipe", - icon = "__boblogistics__/graphics/icons/pipe/bronze-pipe.png", - flags = {"goes-to-quickbar"}, - subgroup = "pipe", - order = "a[pipe]-a[pipe]-2-1", - place_result = "bronze-pipe", - stack_size = 50, - }, - - { - type = "item", - name = "bronze-pipe-to-ground", - icon = "__boblogistics__/graphics/icons/pipe/bronze-pipe-to-ground.png", - flags = {"goes-to-quickbar"}, - subgroup = "pipe-to-ground", - order = "a[pipe]-b[pipe-to-ground]-2-1", - place_result = "bronze-pipe-to-ground", - stack_size = 50, - }, -} -) -end - - -if data.raw.item["brass-alloy"] then -data:extend( -{ - { - type = "item", - name = "brass-pipe", - icon = "__boblogistics__/graphics/icons/pipe/brass-pipe.png", - flags = {"goes-to-quickbar"}, - subgroup = "pipe", - order = "a[pipe]-a[pipe]-3-1", - place_result = "brass-pipe", - stack_size = 50, - }, - - { - type = "item", - name = "brass-pipe-to-ground", - icon = "__boblogistics__/graphics/icons/pipe/brass-pipe-to-ground.png", - flags = {"goes-to-quickbar"}, - subgroup = "pipe-to-ground", - order = "a[pipe]-b[pipe-to-ground]-3-1", - place_result = "brass-pipe-to-ground", - stack_size = 50, - }, -} -) -end - - -if data.raw.item["silicon-nitride"] then -data:extend( -{ - { - type = "item", - name = "ceramic-pipe", - icon = "__boblogistics__/graphics/icons/pipe/ceramic-pipe.png", - flags = {"goes-to-quickbar"}, - subgroup = "pipe", - order = "a[pipe]-a[pipe]-3-3", - place_result = "ceramic-pipe", - stack_size = 50, - }, - - { - type = "item", - name = "ceramic-pipe-to-ground", - icon = "__boblogistics__/graphics/icons/pipe/ceramic-pipe-to-ground.png", - flags = {"goes-to-quickbar"}, - subgroup = "pipe-to-ground", - order = "a[pipe]-b[pipe-to-ground]-3-3", - place_result = "ceramic-pipe-to-ground", - stack_size = 50, - }, -} -) -end - - -if data.raw.item["titanium-plate"] then -data:extend( -{ - { - type = "item", - name = "titanium-pipe", - icon = "__boblogistics__/graphics/icons/pipe/titanium-pipe.png", - flags = {"goes-to-quickbar"}, - subgroup = "pipe", - order = "a[pipe]-a[pipe]-3-2", - place_result = "titanium-pipe", - stack_size = 50, - }, - - { - type = "item", - name = "titanium-pipe-to-ground", - icon = "__boblogistics__/graphics/icons/pipe/titanium-pipe-to-ground.png", - flags = {"goes-to-quickbar"}, - subgroup = "pipe-to-ground", - order = "a[pipe]-b[pipe-to-ground]-3-2", - place_result = "titanium-pipe-to-ground", - stack_size = 50, - }, -} -) -end - - -if data.raw.item["tungsten-plate"] then -data:extend( -{ - { - type = "item", - name = "tungsten-pipe", - icon = "__boblogistics__/graphics/icons/pipe/tungsten-pipe.png", - flags = {"goes-to-quickbar"}, - subgroup = "pipe", - order = "a[pipe]-a[pipe]-4-2", - place_result = "tungsten-pipe", - stack_size = 50, - }, - - { - type = "item", - name = "tungsten-pipe-to-ground", - icon = "__boblogistics__/graphics/icons/pipe/tungsten-pipe-to-ground.png", - flags = {"goes-to-quickbar"}, - subgroup = "pipe-to-ground", - order = "a[pipe]-b[pipe-to-ground]-4-2", - place_result = "tungsten-pipe-to-ground", - stack_size = 50, - }, -} -) -end - +data.raw.item["pipe"].subgroup = "pipe" +data.raw.item["pipe-to-ground"].subgroup = "pipe-to-ground" + +data.raw.item["pipe"].order = "a[pipe]-a[pipe]-1-2" +data.raw.item["pipe-to-ground"].order = "a[pipe]-b[pipe-to-ground]-1-2" + + +data:extend( +{ + { + type = "item", + name = "stone-pipe", + icon = "__boblogistics__/graphics/icons/pipe/stone-pipe.png", + flags = {"goes-to-quickbar"}, + subgroup = "pipe", + order = "a[pipe]-a[pipe]-1-3", + place_result = "stone-pipe", + stack_size = 50, + }, + + { + type = "item", + name = "stone-pipe-to-ground", + icon = "__boblogistics__/graphics/icons/pipe/stone-pipe-to-ground.png", + flags = {"goes-to-quickbar"}, + subgroup = "pipe-to-ground", + order = "a[pipe]-b[pipe-to-ground]-1-3", + place_result = "stone-pipe-to-ground", + stack_size = 50, + }, + + + { + type = "item", + name = "copper-pipe", + icon = "__boblogistics__/graphics/icons/pipe/copper-pipe.png", + flags = {"goes-to-quickbar"}, + subgroup = "pipe", + order = "a[pipe]-a[pipe]-1-1", + place_result = "copper-pipe", + stack_size = 50, + }, + + { + type = "item", + name = "copper-pipe-to-ground", + icon = "__boblogistics__/graphics/icons/pipe/copper-pipe-to-ground.png", + flags = {"goes-to-quickbar"}, + subgroup = "pipe-to-ground", + order = "a[pipe]-b[pipe-to-ground]-1-1", + place_result = "copper-pipe-to-ground", + stack_size = 50, + }, + + + { + type = "item", + name = "steel-pipe", + icon = "__boblogistics__/graphics/icons/pipe/steel-pipe.png", + flags = {"goes-to-quickbar"}, + subgroup = "pipe", + order = "a[pipe]-a[pipe]-2-2", + place_result = "steel-pipe", + stack_size = 50, + }, + + { + type = "item", + name = "steel-pipe-to-ground", + icon = "__boblogistics__/graphics/icons/pipe/steel-pipe-to-ground.png", + flags = {"goes-to-quickbar"}, + subgroup = "pipe-to-ground", + order = "a[pipe]-b[pipe-to-ground]-2-2", + place_result = "steel-pipe-to-ground", + stack_size = 50, + }, + + + { + type = "item", + name = "plastic-pipe", + icon = "__boblogistics__/graphics/icons/pipe/plastic-pipe.png", + flags = {"goes-to-quickbar"}, + subgroup = "pipe", + order = "a[pipe]-a[pipe]-2-3", + place_result = "plastic-pipe", + stack_size = 50, + }, + + { + type = "item", + name = "plastic-pipe-to-ground", + icon = "__boblogistics__/graphics/icons/pipe/plastic-pipe-to-ground.png", + flags = {"goes-to-quickbar"}, + subgroup = "pipe-to-ground", + order = "a[pipe]-b[pipe-to-ground]-2-3", + place_result = "plastic-pipe-to-ground", + stack_size = 50, + }, +} +) + + +if data.raw.item["bronze-alloy"] then +data:extend( +{ + { + type = "item", + name = "bronze-pipe", + icon = "__boblogistics__/graphics/icons/pipe/bronze-pipe.png", + flags = {"goes-to-quickbar"}, + subgroup = "pipe", + order = "a[pipe]-a[pipe]-2-1", + place_result = "bronze-pipe", + stack_size = 50, + }, + + { + type = "item", + name = "bronze-pipe-to-ground", + icon = "__boblogistics__/graphics/icons/pipe/bronze-pipe-to-ground.png", + flags = {"goes-to-quickbar"}, + subgroup = "pipe-to-ground", + order = "a[pipe]-b[pipe-to-ground]-2-1", + place_result = "bronze-pipe-to-ground", + stack_size = 50, + }, +} +) +end + + +if data.raw.item["brass-alloy"] then +data:extend( +{ + { + type = "item", + name = "brass-pipe", + icon = "__boblogistics__/graphics/icons/pipe/brass-pipe.png", + flags = {"goes-to-quickbar"}, + subgroup = "pipe", + order = "a[pipe]-a[pipe]-3-1", + place_result = "brass-pipe", + stack_size = 50, + }, + + { + type = "item", + name = "brass-pipe-to-ground", + icon = "__boblogistics__/graphics/icons/pipe/brass-pipe-to-ground.png", + flags = {"goes-to-quickbar"}, + subgroup = "pipe-to-ground", + order = "a[pipe]-b[pipe-to-ground]-3-1", + place_result = "brass-pipe-to-ground", + stack_size = 50, + }, +} +) +end + + +if data.raw.item["silicon-nitride"] then +data:extend( +{ + { + type = "item", + name = "ceramic-pipe", + icon = "__boblogistics__/graphics/icons/pipe/ceramic-pipe.png", + flags = {"goes-to-quickbar"}, + subgroup = "pipe", + order = "a[pipe]-a[pipe]-3-3", + place_result = "ceramic-pipe", + stack_size = 50, + }, + + { + type = "item", + name = "ceramic-pipe-to-ground", + icon = "__boblogistics__/graphics/icons/pipe/ceramic-pipe-to-ground.png", + flags = {"goes-to-quickbar"}, + subgroup = "pipe-to-ground", + order = "a[pipe]-b[pipe-to-ground]-3-3", + place_result = "ceramic-pipe-to-ground", + stack_size = 50, + }, +} +) +end + + +if data.raw.item["titanium-plate"] then +data:extend( +{ + { + type = "item", + name = "titanium-pipe", + icon = "__boblogistics__/graphics/icons/pipe/titanium-pipe.png", + flags = {"goes-to-quickbar"}, + subgroup = "pipe", + order = "a[pipe]-a[pipe]-3-2", + place_result = "titanium-pipe", + stack_size = 50, + }, + + { + type = "item", + name = "titanium-pipe-to-ground", + icon = "__boblogistics__/graphics/icons/pipe/titanium-pipe-to-ground.png", + flags = {"goes-to-quickbar"}, + subgroup = "pipe-to-ground", + order = "a[pipe]-b[pipe-to-ground]-3-2", + place_result = "titanium-pipe-to-ground", + stack_size = 50, + }, +} +) +end + + +if data.raw.item["tungsten-plate"] then +data:extend( +{ + { + type = "item", + name = "tungsten-pipe", + icon = "__boblogistics__/graphics/icons/pipe/tungsten-pipe.png", + flags = {"goes-to-quickbar"}, + subgroup = "pipe", + order = "a[pipe]-a[pipe]-4-2", + place_result = "tungsten-pipe", + stack_size = 50, + }, + + { + type = "item", + name = "tungsten-pipe-to-ground", + icon = "__boblogistics__/graphics/icons/pipe/tungsten-pipe-to-ground.png", + flags = {"goes-to-quickbar"}, + subgroup = "pipe-to-ground", + order = "a[pipe]-b[pipe-to-ground]-4-2", + place_result = "tungsten-pipe-to-ground", + stack_size = 50, + }, +} +) +end + diff --git a/boblogistics_0.14.0/prototypes/item/pump.lua b/boblogistics_0.14.2/prototypes/item/pump.lua similarity index 96% rename from boblogistics_0.14.0/prototypes/item/pump.lua rename to boblogistics_0.14.2/prototypes/item/pump.lua index 8943f47..d23f17f 100644 --- a/boblogistics_0.14.0/prototypes/item/pump.lua +++ b/boblogistics_0.14.2/prototypes/item/pump.lua @@ -1,37 +1,37 @@ -data.raw.item["small-pump"].order = "b[pipe]-c[small-pump-1]" - -data:extend( -{ - { - type = "item", - name = "small-pump-2", - icon = "__base__/graphics/icons/small-pump.png", - flags = {"goes-to-quickbar"}, - subgroup = "energy-pipe-distribution", - order = "b[pipe]-c[small-pump-2]", - place_result = "small-pump-2", - stack_size = 50 - }, - { - type = "item", - name = "small-pump-3", - icon = "__base__/graphics/icons/small-pump.png", - flags = {"goes-to-quickbar"}, - subgroup = "energy-pipe-distribution", - order = "b[pipe]-c[small-pump-3]", - place_result = "small-pump-3", - stack_size = 50 - }, - { - type = "item", - name = "small-pump-4", - icon = "__base__/graphics/icons/small-pump.png", - flags = {"goes-to-quickbar"}, - subgroup = "energy-pipe-distribution", - order = "b[pipe]-c[small-pump-4]", - place_result = "small-pump-4", - stack_size = 50 - }, -} -) - +data.raw.item["small-pump"].order = "b[pipe]-c[small-pump-1]" + +data:extend( +{ + { + type = "item", + name = "small-pump-2", + icon = "__base__/graphics/icons/small-pump.png", + flags = {"goes-to-quickbar"}, + subgroup = "energy-pipe-distribution", + order = "b[pipe]-c[small-pump-2]", + place_result = "small-pump-2", + stack_size = 50 + }, + { + type = "item", + name = "small-pump-3", + icon = "__base__/graphics/icons/small-pump.png", + flags = {"goes-to-quickbar"}, + subgroup = "energy-pipe-distribution", + order = "b[pipe]-c[small-pump-3]", + place_result = "small-pump-3", + stack_size = 50 + }, + { + type = "item", + name = "small-pump-4", + icon = "__base__/graphics/icons/small-pump.png", + flags = {"goes-to-quickbar"}, + subgroup = "energy-pipe-distribution", + order = "b[pipe]-c[small-pump-4]", + place_result = "small-pump-4", + stack_size = 50 + }, +} +) + diff --git a/boblogistics_0.14.0/prototypes/item/roboport-parts.lua b/boblogistics_0.14.2/prototypes/item/roboport-parts.lua similarity index 96% rename from boblogistics_0.14.0/prototypes/item/roboport-parts.lua rename to boblogistics_0.14.2/prototypes/item/roboport-parts.lua index 318eed3..cc3b8cd 100644 --- a/boblogistics_0.14.0/prototypes/item/roboport-parts.lua +++ b/boblogistics_0.14.2/prototypes/item/roboport-parts.lua @@ -1,126 +1,126 @@ -data:extend( -{ - { - type = "item", - name = "roboport-antenna-1", - icon = "__boblogistics__/graphics/icons/roboport-antenna.png", - flags = {"goes-to-quickbar"}, - subgroup = "bob-roboport-parts", - order = "b[roboport-antenna-1]", - stack_size = 100 - }, - { - type = "item", - name = "roboport-antenna-2", - icon = "__boblogistics__/graphics/icons/roboport-antenna-2.png", - flags = {"goes-to-quickbar"}, - subgroup = "bob-roboport-parts", - order = "b[roboport-antenna-2]", - stack_size = 100 - }, - { - type = "item", - name = "roboport-antenna-3", - icon = "__boblogistics__/graphics/icons/roboport-antenna-3.png", - flags = {"goes-to-quickbar"}, - subgroup = "bob-roboport-parts", - order = "b[roboport-antenna-3]", - stack_size = 100 - }, - { - type = "item", - name = "roboport-antenna-4", - icon = "__boblogistics__/graphics/icons/roboport-antenna-4.png", - flags = {"goes-to-quickbar"}, - subgroup = "bob-roboport-parts", - order = "b[roboport-antenna-4]", - stack_size = 100 - }, -} -) - - -data:extend( -{ - { - type = "item", - name = "roboport-chargepad-1", - icon = "__boblogistics__/graphics/icons/roboport-chargepad.png", - flags = {"goes-to-quickbar"}, - subgroup = "bob-roboport-parts", - order = "b[roboport-chargepad-1]", - stack_size = 100 - }, - { - type = "item", - name = "roboport-chargepad-2", - icon = "__boblogistics__/graphics/icons/roboport-chargepad-2.png", - flags = {"goes-to-quickbar"}, - subgroup = "bob-roboport-parts", - order = "b[roboport-chargepad-2]", - stack_size = 100 - }, - { - type = "item", - name = "roboport-chargepad-3", - icon = "__boblogistics__/graphics/icons/roboport-chargepad-3.png", - flags = {"goes-to-quickbar"}, - subgroup = "bob-roboport-parts", - order = "b[roboport-chargepad-3]", - stack_size = 100 - }, - { - type = "item", - name = "roboport-chargepad-4", - icon = "__boblogistics__/graphics/icons/roboport-chargepad-4.png", - flags = {"goes-to-quickbar"}, - subgroup = "bob-roboport-parts", - order = "b[roboport-chargepad-4]", - stack_size = 100 - }, -} -) - - -data:extend( -{ - { - type = "item", - name = "roboport-door-1", - icon = "__boblogistics__/graphics/icons/roboport-door.png", - flags = {"goes-to-quickbar"}, - subgroup = "bob-roboport-parts", - order = "b[roboport-door-1]", - stack_size = 100 - }, - { - type = "item", - name = "roboport-door-2", - icon = "__boblogistics__/graphics/icons/roboport-door-2.png", - flags = {"goes-to-quickbar"}, - subgroup = "bob-roboport-parts", - order = "b[roboport-door-2]", - stack_size = 100 - }, - { - type = "item", - name = "roboport-door-3", - icon = "__boblogistics__/graphics/icons/roboport-door-3.png", - flags = {"goes-to-quickbar"}, - subgroup = "bob-roboport-parts", - order = "b[roboport-door-3]", - stack_size = 100 - }, - { - type = "item", - name = "roboport-door-4", - icon = "__boblogistics__/graphics/icons/roboport-door-4.png", - flags = {"goes-to-quickbar"}, - subgroup = "bob-roboport-parts", - order = "b[roboport-door-4]", - stack_size = 100 - }, -} -) - - +data:extend( +{ + { + type = "item", + name = "roboport-antenna-1", + icon = "__boblogistics__/graphics/icons/roboport-antenna.png", + flags = {"goes-to-quickbar"}, + subgroup = "bob-roboport-parts", + order = "b[roboport-antenna-1]", + stack_size = 100 + }, + { + type = "item", + name = "roboport-antenna-2", + icon = "__boblogistics__/graphics/icons/roboport-antenna-2.png", + flags = {"goes-to-quickbar"}, + subgroup = "bob-roboport-parts", + order = "b[roboport-antenna-2]", + stack_size = 100 + }, + { + type = "item", + name = "roboport-antenna-3", + icon = "__boblogistics__/graphics/icons/roboport-antenna-3.png", + flags = {"goes-to-quickbar"}, + subgroup = "bob-roboport-parts", + order = "b[roboport-antenna-3]", + stack_size = 100 + }, + { + type = "item", + name = "roboport-antenna-4", + icon = "__boblogistics__/graphics/icons/roboport-antenna-4.png", + flags = {"goes-to-quickbar"}, + subgroup = "bob-roboport-parts", + order = "b[roboport-antenna-4]", + stack_size = 100 + }, +} +) + + +data:extend( +{ + { + type = "item", + name = "roboport-chargepad-1", + icon = "__boblogistics__/graphics/icons/roboport-chargepad.png", + flags = {"goes-to-quickbar"}, + subgroup = "bob-roboport-parts", + order = "b[roboport-chargepad-1]", + stack_size = 100 + }, + { + type = "item", + name = "roboport-chargepad-2", + icon = "__boblogistics__/graphics/icons/roboport-chargepad-2.png", + flags = {"goes-to-quickbar"}, + subgroup = "bob-roboport-parts", + order = "b[roboport-chargepad-2]", + stack_size = 100 + }, + { + type = "item", + name = "roboport-chargepad-3", + icon = "__boblogistics__/graphics/icons/roboport-chargepad-3.png", + flags = {"goes-to-quickbar"}, + subgroup = "bob-roboport-parts", + order = "b[roboport-chargepad-3]", + stack_size = 100 + }, + { + type = "item", + name = "roboport-chargepad-4", + icon = "__boblogistics__/graphics/icons/roboport-chargepad-4.png", + flags = {"goes-to-quickbar"}, + subgroup = "bob-roboport-parts", + order = "b[roboport-chargepad-4]", + stack_size = 100 + }, +} +) + + +data:extend( +{ + { + type = "item", + name = "roboport-door-1", + icon = "__boblogistics__/graphics/icons/roboport-door.png", + flags = {"goes-to-quickbar"}, + subgroup = "bob-roboport-parts", + order = "b[roboport-door-1]", + stack_size = 100 + }, + { + type = "item", + name = "roboport-door-2", + icon = "__boblogistics__/graphics/icons/roboport-door-2.png", + flags = {"goes-to-quickbar"}, + subgroup = "bob-roboport-parts", + order = "b[roboport-door-2]", + stack_size = 100 + }, + { + type = "item", + name = "roboport-door-3", + icon = "__boblogistics__/graphics/icons/roboport-door-3.png", + flags = {"goes-to-quickbar"}, + subgroup = "bob-roboport-parts", + order = "b[roboport-door-3]", + stack_size = 100 + }, + { + type = "item", + name = "roboport-door-4", + icon = "__boblogistics__/graphics/icons/roboport-door-4.png", + flags = {"goes-to-quickbar"}, + subgroup = "bob-roboport-parts", + order = "b[roboport-door-4]", + stack_size = 100 + }, +} +) + + diff --git a/boblogistics_0.14.0/prototypes/item/roboport.lua b/boblogistics_0.14.2/prototypes/item/roboport.lua similarity index 96% rename from boblogistics_0.14.0/prototypes/item/roboport.lua rename to boblogistics_0.14.2/prototypes/item/roboport.lua index dd673af..db704a6 100644 --- a/boblogistics_0.14.0/prototypes/item/roboport.lua +++ b/boblogistics_0.14.2/prototypes/item/roboport.lua @@ -1,252 +1,252 @@ -data.raw.item["roboport"].stack_size = 10 -data.raw.item["roboport"].order = "c[signal]-a[roboport-1]" -data.raw.item["roboport"].subgroup = "bob-logistic-roboport", - - -data:extend( -{ - { - type = "item", - name = "bob-roboport-2", - icon = "__boblogistics__/graphics/icons/roboport-2.png", - flags = {"goes-to-quickbar"}, - subgroup = "bob-logistic-roboport", - order = "c[signal]-a[roboport-2]", - place_result = "bob-roboport-2", - stack_size = 10 - }, - - { - type = "item", - name = "bob-roboport-3", - icon = "__boblogistics__/graphics/icons/roboport-3.png", - flags = {"goes-to-quickbar"}, - subgroup = "bob-logistic-roboport", - order = "c[signal]-a[roboport-3]", - place_result = "bob-roboport-3", - stack_size = 10 - }, - - { - type = "item", - name = "bob-roboport-4", - icon = "__boblogistics__/graphics/icons/roboport-4.png", - flags = {"goes-to-quickbar"}, - subgroup = "bob-logistic-roboport", - order = "c[signal]-a[roboport-4]", - place_result = "bob-roboport-4", - stack_size = 10 - }, -} -) - - -data:extend( -{ - { - type = "item", - name = "bob-robochest", - icon = "__boblogistics__/graphics/icons/robochest.png", - flags = {"goes-to-quickbar"}, - subgroup = "bob-logistic-roboport", - order = "c[signal]-a[robochest-1]", - place_result = "bob-robochest", - stack_size = 10 - }, - - { - type = "item", - name = "bob-robochest-2", - icon = "__boblogistics__/graphics/icons/robochest-2.png", - flags = {"goes-to-quickbar"}, - subgroup = "bob-logistic-roboport", - order = "c[signal]-a[robochest-2]", - place_result = "bob-robochest-2", - stack_size = 10 - }, - - { - type = "item", - name = "bob-robochest-3", - icon = "__boblogistics__/graphics/icons/robochest-3.png", - flags = {"goes-to-quickbar"}, - subgroup = "bob-logistic-roboport", - order = "c[signal]-a[robochest-3]", - place_result = "bob-robochest-3", - stack_size = 10 - }, - - { - type = "item", - name = "bob-robochest-4", - icon = "__boblogistics__/graphics/icons/robochest-4.png", - flags = {"goes-to-quickbar"}, - subgroup = "bob-logistic-roboport", - order = "c[signal]-a[robochest-4]", - place_result = "bob-robochest-4", - stack_size = 10 - }, -} -) - - - -data:extend( -{ - { - type = "item", - name = "bob-logistic-zone-expander", - icon = "__boblogistics__/graphics/icons/logistic-zone-expander.png", - flags = {"goes-to-quickbar"}, - subgroup = "bob-logistic-roboport", - order = "c[signal]-a[logistic-zone-expander-1]", - place_result = "bob-logistic-zone-expander", - stack_size = 10 - }, - - { - type = "item", - name = "bob-logistic-zone-expander-2", - icon = "__boblogistics__/graphics/icons/logistic-zone-expander-2.png", - flags = {"goes-to-quickbar"}, - subgroup = "bob-logistic-roboport", - order = "c[signal]-a[logistic-zone-expander-2]", - place_result = "bob-logistic-zone-expander-2", - stack_size = 10 - }, - - { - type = "item", - name = "bob-logistic-zone-expander-3", - icon = "__boblogistics__/graphics/icons/logistic-zone-expander-3.png", - flags = {"goes-to-quickbar"}, - subgroup = "bob-logistic-roboport", - order = "c[signal]-a[logistic-zone-expander-3]", - place_result = "bob-logistic-zone-expander-3", - stack_size = 10 - }, - - { - type = "item", - name = "bob-logistic-zone-expander-4", - icon = "__boblogistics__/graphics/icons/logistic-zone-expander-4.png", - flags = {"goes-to-quickbar"}, - subgroup = "bob-logistic-roboport", - order = "c[signal]-a[logistic-zone-expander-4]", - place_result = "bob-logistic-zone-expander-4", - stack_size = 10 - }, -} -) - - -data:extend( -{ - { - type = "item", - name = "bob-robo-charge-port", - icon = "__boblogistics__/graphics/icons/robo-charge-port.png", - flags = {"goes-to-quickbar"}, - subgroup = "bob-logistic-roboport", - order = "c[signal]-a[robo-charge-port-a-1]", - place_result = "bob-robo-charge-port", - stack_size = 10 - }, - - { - type = "item", - name = "bob-robo-charge-port-2", - icon = "__boblogistics__/graphics/icons/robo-charge-port-2.png", - flags = {"goes-to-quickbar"}, - subgroup = "bob-logistic-roboport", - order = "c[signal]-a[robo-charge-port-a-2]", - place_result = "bob-robo-charge-port-2", - stack_size = 10 - }, - - { - type = "item", - name = "bob-robo-charge-port-3", - icon = "__boblogistics__/graphics/icons/robo-charge-port-3.png", - flags = {"goes-to-quickbar"}, - subgroup = "bob-logistic-roboport", - order = "c[signal]-a[robo-charge-port-a-3]", - place_result = "bob-robo-charge-port-3", - stack_size = 10 - }, - - { - type = "item", - name = "bob-robo-charge-port-4", - icon = "__boblogistics__/graphics/icons/robo-charge-port-4.png", - flags = {"goes-to-quickbar"}, - subgroup = "bob-logistic-roboport", - order = "c[signal]-a[robo-charge-port-a-4]", - place_result = "bob-robo-charge-port-4", - stack_size = 10 - }, - - - { - type = "item", - name = "bob-robo-charge-port-large", - icon = "__boblogistics__/graphics/icons/robo-charge-port-large.png", - flags = {"goes-to-quickbar"}, - subgroup = "bob-logistic-roboport", - order = "c[signal]-a[robo-charge-port-l-1]", - place_result = "bob-robo-charge-port-large", - stack_size = 10 - }, - - { - type = "item", - name = "bob-robo-charge-port-large-2", - icon = "__boblogistics__/graphics/icons/robo-charge-port-large-2.png", - flags = {"goes-to-quickbar"}, - subgroup = "bob-logistic-roboport", - order = "c[signal]-a[robo-charge-port-l-2]", - place_result = "bob-robo-charge-port-large-2", - stack_size = 10 - }, - - { - type = "item", - name = "bob-robo-charge-port-large-3", - icon = "__boblogistics__/graphics/icons/robo-charge-port-large-3.png", - flags = {"goes-to-quickbar"}, - subgroup = "bob-logistic-roboport", - order = "c[signal]-a[robo-charge-port-l-3]", - place_result = "bob-robo-charge-port-large-3", - stack_size = 10 - }, - - { - type = "item", - name = "bob-robo-charge-port-large-4", - icon = "__boblogistics__/graphics/icons/robo-charge-port-large-4.png", - flags = {"goes-to-quickbar"}, - subgroup = "bob-logistic-roboport", - order = "c[signal]-a[robo-charge-port-l-4]", - place_result = "bob-robo-charge-port-large-4", - stack_size = 10 - }, -} -) - - -data:extend( -{ - { - type = "item", - name = "bob-logistic-zone-interface", - icon = "__boblogistics__/graphics/icons/logistic-zone-interface.png", - flags = {"goes-to-quickbar"}, - subgroup = "bob-logistic-roboport", - order = "c[signal]-a[logistic-zone-interface]", - place_result = "bob-logistic-zone-interface", - stack_size = 10 - } -} -) - - +data.raw.item["roboport"].stack_size = 10 +data.raw.item["roboport"].order = "c[signal]-a[roboport-1]" +data.raw.item["roboport"].subgroup = "bob-logistic-roboport", + + +data:extend( +{ + { + type = "item", + name = "bob-roboport-2", + icon = "__boblogistics__/graphics/icons/roboport-2.png", + flags = {"goes-to-quickbar"}, + subgroup = "bob-logistic-roboport", + order = "c[signal]-a[roboport-2]", + place_result = "bob-roboport-2", + stack_size = 10 + }, + + { + type = "item", + name = "bob-roboport-3", + icon = "__boblogistics__/graphics/icons/roboport-3.png", + flags = {"goes-to-quickbar"}, + subgroup = "bob-logistic-roboport", + order = "c[signal]-a[roboport-3]", + place_result = "bob-roboport-3", + stack_size = 10 + }, + + { + type = "item", + name = "bob-roboport-4", + icon = "__boblogistics__/graphics/icons/roboport-4.png", + flags = {"goes-to-quickbar"}, + subgroup = "bob-logistic-roboport", + order = "c[signal]-a[roboport-4]", + place_result = "bob-roboport-4", + stack_size = 10 + }, +} +) + + +data:extend( +{ + { + type = "item", + name = "bob-robochest", + icon = "__boblogistics__/graphics/icons/robochest.png", + flags = {"goes-to-quickbar"}, + subgroup = "bob-logistic-roboport", + order = "c[signal]-a[robochest-1]", + place_result = "bob-robochest", + stack_size = 10 + }, + + { + type = "item", + name = "bob-robochest-2", + icon = "__boblogistics__/graphics/icons/robochest-2.png", + flags = {"goes-to-quickbar"}, + subgroup = "bob-logistic-roboport", + order = "c[signal]-a[robochest-2]", + place_result = "bob-robochest-2", + stack_size = 10 + }, + + { + type = "item", + name = "bob-robochest-3", + icon = "__boblogistics__/graphics/icons/robochest-3.png", + flags = {"goes-to-quickbar"}, + subgroup = "bob-logistic-roboport", + order = "c[signal]-a[robochest-3]", + place_result = "bob-robochest-3", + stack_size = 10 + }, + + { + type = "item", + name = "bob-robochest-4", + icon = "__boblogistics__/graphics/icons/robochest-4.png", + flags = {"goes-to-quickbar"}, + subgroup = "bob-logistic-roboport", + order = "c[signal]-a[robochest-4]", + place_result = "bob-robochest-4", + stack_size = 10 + }, +} +) + + + +data:extend( +{ + { + type = "item", + name = "bob-logistic-zone-expander", + icon = "__boblogistics__/graphics/icons/logistic-zone-expander.png", + flags = {"goes-to-quickbar"}, + subgroup = "bob-logistic-roboport", + order = "c[signal]-a[logistic-zone-expander-1]", + place_result = "bob-logistic-zone-expander", + stack_size = 10 + }, + + { + type = "item", + name = "bob-logistic-zone-expander-2", + icon = "__boblogistics__/graphics/icons/logistic-zone-expander-2.png", + flags = {"goes-to-quickbar"}, + subgroup = "bob-logistic-roboport", + order = "c[signal]-a[logistic-zone-expander-2]", + place_result = "bob-logistic-zone-expander-2", + stack_size = 10 + }, + + { + type = "item", + name = "bob-logistic-zone-expander-3", + icon = "__boblogistics__/graphics/icons/logistic-zone-expander-3.png", + flags = {"goes-to-quickbar"}, + subgroup = "bob-logistic-roboport", + order = "c[signal]-a[logistic-zone-expander-3]", + place_result = "bob-logistic-zone-expander-3", + stack_size = 10 + }, + + { + type = "item", + name = "bob-logistic-zone-expander-4", + icon = "__boblogistics__/graphics/icons/logistic-zone-expander-4.png", + flags = {"goes-to-quickbar"}, + subgroup = "bob-logistic-roboport", + order = "c[signal]-a[logistic-zone-expander-4]", + place_result = "bob-logistic-zone-expander-4", + stack_size = 10 + }, +} +) + + +data:extend( +{ + { + type = "item", + name = "bob-robo-charge-port", + icon = "__boblogistics__/graphics/icons/robo-charge-port.png", + flags = {"goes-to-quickbar"}, + subgroup = "bob-logistic-roboport", + order = "c[signal]-a[robo-charge-port-a-1]", + place_result = "bob-robo-charge-port", + stack_size = 10 + }, + + { + type = "item", + name = "bob-robo-charge-port-2", + icon = "__boblogistics__/graphics/icons/robo-charge-port-2.png", + flags = {"goes-to-quickbar"}, + subgroup = "bob-logistic-roboport", + order = "c[signal]-a[robo-charge-port-a-2]", + place_result = "bob-robo-charge-port-2", + stack_size = 10 + }, + + { + type = "item", + name = "bob-robo-charge-port-3", + icon = "__boblogistics__/graphics/icons/robo-charge-port-3.png", + flags = {"goes-to-quickbar"}, + subgroup = "bob-logistic-roboport", + order = "c[signal]-a[robo-charge-port-a-3]", + place_result = "bob-robo-charge-port-3", + stack_size = 10 + }, + + { + type = "item", + name = "bob-robo-charge-port-4", + icon = "__boblogistics__/graphics/icons/robo-charge-port-4.png", + flags = {"goes-to-quickbar"}, + subgroup = "bob-logistic-roboport", + order = "c[signal]-a[robo-charge-port-a-4]", + place_result = "bob-robo-charge-port-4", + stack_size = 10 + }, + + + { + type = "item", + name = "bob-robo-charge-port-large", + icon = "__boblogistics__/graphics/icons/robo-charge-port-large.png", + flags = {"goes-to-quickbar"}, + subgroup = "bob-logistic-roboport", + order = "c[signal]-a[robo-charge-port-l-1]", + place_result = "bob-robo-charge-port-large", + stack_size = 10 + }, + + { + type = "item", + name = "bob-robo-charge-port-large-2", + icon = "__boblogistics__/graphics/icons/robo-charge-port-large-2.png", + flags = {"goes-to-quickbar"}, + subgroup = "bob-logistic-roboport", + order = "c[signal]-a[robo-charge-port-l-2]", + place_result = "bob-robo-charge-port-large-2", + stack_size = 10 + }, + + { + type = "item", + name = "bob-robo-charge-port-large-3", + icon = "__boblogistics__/graphics/icons/robo-charge-port-large-3.png", + flags = {"goes-to-quickbar"}, + subgroup = "bob-logistic-roboport", + order = "c[signal]-a[robo-charge-port-l-3]", + place_result = "bob-robo-charge-port-large-3", + stack_size = 10 + }, + + { + type = "item", + name = "bob-robo-charge-port-large-4", + icon = "__boblogistics__/graphics/icons/robo-charge-port-large-4.png", + flags = {"goes-to-quickbar"}, + subgroup = "bob-logistic-roboport", + order = "c[signal]-a[robo-charge-port-l-4]", + place_result = "bob-robo-charge-port-large-4", + stack_size = 10 + }, +} +) + + +data:extend( +{ + { + type = "item", + name = "bob-logistic-zone-interface", + icon = "__boblogistics__/graphics/icons/logistic-zone-interface.png", + flags = {"goes-to-quickbar"}, + subgroup = "bob-logistic-roboport", + order = "c[signal]-a[logistic-zone-interface]", + place_result = "bob-logistic-zone-interface", + stack_size = 10 + } +} +) + + diff --git a/boblogistics_0.14.0/prototypes/item/robots.lua b/boblogistics_0.14.2/prototypes/item/robots.lua similarity index 96% rename from boblogistics_0.14.0/prototypes/item/robots.lua rename to boblogistics_0.14.2/prototypes/item/robots.lua index 1fca8d9..c876ecd 100644 --- a/boblogistics_0.14.0/prototypes/item/robots.lua +++ b/boblogistics_0.14.2/prototypes/item/robots.lua @@ -1,81 +1,81 @@ -data.raw.item["logistic-robot"].order = "a[robot]-a[logistic-robot-1]" -data.raw.item["logistic-robot"].subgroup = "bob-logistic-robots" - -data.raw.item["construction-robot"].order = "a[robot]-b[construction-robot-1]" -data.raw.item["construction-robot"].subgroup = "bob-logistic-robots" - -data:extend( -{ - { - type = "item", - name = "bob-logistic-robot-2", - icon = "__boblogistics__/graphics/icons/logistic-robot-2.png", - flags = {"goes-to-quickbar"}, - subgroup = "bob-logistic-robots", - order = "a[robot]-a[logistic-robot-2]", - place_result = "bob-logistic-robot-2", - stack_size = 50 - }, - - { - type = "item", - name = "bob-logistic-robot-3", - icon = "__boblogistics__/graphics/icons/logistic-robot-3.png", - flags = {"goes-to-quickbar"}, - subgroup = "bob-logistic-robots", - order = "a[robot]-a[logistic-robot-3]", - place_result = "bob-logistic-robot-3", - stack_size = 50 - }, - - { - type = "item", - name = "bob-logistic-robot-4", - icon = "__boblogistics__/graphics/icons/logistic-robot-4.png", - flags = {"goes-to-quickbar"}, - subgroup = "bob-logistic-robots", - order = "a[robot]-a[logistic-robot-4]", - place_result = "bob-logistic-robot-4", - stack_size = 50 - }, - - - { - type = "item", - name = "bob-construction-robot-2", - icon = "__boblogistics__/graphics/icons/construction-robot-2.png", - flags = {"goes-to-quickbar"}, - subgroup = "bob-logistic-robots", - order = "a[robot]-b[construction-robot-2]", - place_result = "bob-construction-robot-2", - stack_size = 50 - }, - - { - type = "item", - name = "bob-construction-robot-3", - icon = "__boblogistics__/graphics/icons/construction-robot-3.png", - flags = {"goes-to-quickbar"}, - subgroup = "bob-logistic-robots", - order = "a[robot]-b[construction-robot-3]", - place_result = "bob-construction-robot-3", - stack_size = 50 - }, - - { - type = "item", - name = "bob-construction-robot-4", - icon = "__boblogistics__/graphics/icons/construction-robot-4.png", - flags = {"goes-to-quickbar"}, - subgroup = "bob-logistic-robots", - order = "a[robot]-b[construction-robot-4]", - place_result = "bob-construction-robot-4", - stack_size = 50 - }, -} -) - - - - - +data.raw.item["logistic-robot"].order = "a[robot]-a[logistic-robot-1]" +data.raw.item["logistic-robot"].subgroup = "bob-logistic-robots" + +data.raw.item["construction-robot"].order = "a[robot]-b[construction-robot-1]" +data.raw.item["construction-robot"].subgroup = "bob-logistic-robots" + +data:extend( +{ + { + type = "item", + name = "bob-logistic-robot-2", + icon = "__boblogistics__/graphics/icons/logistic-robot-2.png", + flags = {"goes-to-quickbar"}, + subgroup = "bob-logistic-robots", + order = "a[robot]-a[logistic-robot-2]", + place_result = "bob-logistic-robot-2", + stack_size = 50 + }, + + { + type = "item", + name = "bob-logistic-robot-3", + icon = "__boblogistics__/graphics/icons/logistic-robot-3.png", + flags = {"goes-to-quickbar"}, + subgroup = "bob-logistic-robots", + order = "a[robot]-a[logistic-robot-3]", + place_result = "bob-logistic-robot-3", + stack_size = 50 + }, + + { + type = "item", + name = "bob-logistic-robot-4", + icon = "__boblogistics__/graphics/icons/logistic-robot-4.png", + flags = {"goes-to-quickbar"}, + subgroup = "bob-logistic-robots", + order = "a[robot]-a[logistic-robot-4]", + place_result = "bob-logistic-robot-4", + stack_size = 50 + }, + + + { + type = "item", + name = "bob-construction-robot-2", + icon = "__boblogistics__/graphics/icons/construction-robot-2.png", + flags = {"goes-to-quickbar"}, + subgroup = "bob-logistic-robots", + order = "a[robot]-b[construction-robot-2]", + place_result = "bob-construction-robot-2", + stack_size = 50 + }, + + { + type = "item", + name = "bob-construction-robot-3", + icon = "__boblogistics__/graphics/icons/construction-robot-3.png", + flags = {"goes-to-quickbar"}, + subgroup = "bob-logistic-robots", + order = "a[robot]-b[construction-robot-3]", + place_result = "bob-construction-robot-3", + stack_size = 50 + }, + + { + type = "item", + name = "bob-construction-robot-4", + icon = "__boblogistics__/graphics/icons/construction-robot-4.png", + flags = {"goes-to-quickbar"}, + subgroup = "bob-logistic-robots", + order = "a[robot]-b[construction-robot-4]", + place_result = "bob-construction-robot-4", + stack_size = 50 + }, +} +) + + + + + diff --git a/boblogistics_0.14.0/prototypes/item/storage-tank.lua b/boblogistics_0.14.2/prototypes/item/storage-tank.lua similarity index 95% rename from boblogistics_0.14.0/prototypes/item/storage-tank.lua rename to boblogistics_0.14.2/prototypes/item/storage-tank.lua index 78f071a..67b8e3e 100644 --- a/boblogistics_0.14.0/prototypes/item/storage-tank.lua +++ b/boblogistics_0.14.2/prototypes/item/storage-tank.lua @@ -1,40 +1,40 @@ -data.raw.item["storage-tank"].order = "b[fluid]-a[storage-tank-1]" - -data:extend( -{ - { - type = "item", - name = "storage-tank-2", - icon = "__base__/graphics/icons/storage-tank.png", - flags = {"goes-to-quickbar"}, - subgroup = "bob-storage", - order = "b[fluid]-a[storage-tank-2]", - place_result = "storage-tank-2", - stack_size = 50 - }, - - { - type = "item", - name = "storage-tank-3", - icon = "__base__/graphics/icons/storage-tank.png", - flags = {"goes-to-quickbar"}, - subgroup = "bob-storage", - order = "b[fluid]-a[storage-tank-3]", - place_result = "storage-tank-3", - stack_size = 50 - }, - - { - type = "item", - name = "storage-tank-4", - icon = "__base__/graphics/icons/storage-tank.png", - flags = {"goes-to-quickbar"}, - subgroup = "bob-storage", - order = "b[fluid]-a[storage-tank-4]", - place_result = "storage-tank-4", - stack_size = 50 - }, -} -) - - +data.raw.item["storage-tank"].order = "b[fluid]-a[storage-tank-1]" + +data:extend( +{ + { + type = "item", + name = "storage-tank-2", + icon = "__base__/graphics/icons/storage-tank.png", + flags = {"goes-to-quickbar"}, + subgroup = "bob-storage", + order = "b[fluid]-a[storage-tank-2]", + place_result = "storage-tank-2", + stack_size = 50 + }, + + { + type = "item", + name = "storage-tank-3", + icon = "__base__/graphics/icons/storage-tank.png", + flags = {"goes-to-quickbar"}, + subgroup = "bob-storage", + order = "b[fluid]-a[storage-tank-3]", + place_result = "storage-tank-3", + stack_size = 50 + }, + + { + type = "item", + name = "storage-tank-4", + icon = "__base__/graphics/icons/storage-tank.png", + flags = {"goes-to-quickbar"}, + subgroup = "bob-storage", + order = "b[fluid]-a[storage-tank-4]", + place_result = "storage-tank-4", + stack_size = 50 + }, +} +) + + diff --git a/boblogistics_0.14.0/prototypes/item/train.lua b/boblogistics_0.14.2/prototypes/item/train.lua similarity index 75% rename from boblogistics_0.14.0/prototypes/item/train.lua rename to boblogistics_0.14.2/prototypes/item/train.lua index a3126f1..38216d8 100644 --- a/boblogistics_0.14.0/prototypes/item/train.lua +++ b/boblogistics_0.14.2/prototypes/item/train.lua @@ -1,80 +1,80 @@ -data.raw["item-with-entity-data"]["diesel-locomotive"].stack_size = 10 -data.raw["item-with-entity-data"]["diesel-locomotive"].order = "a[train-system]-e[diesel-locomotive-1]" - -data.raw["item-with-entity-data"]["cargo-wagon"].stack_size = 10 -data.raw["item-with-entity-data"]["cargo-wagon"].order = "a[train-system]-f[cargo-wagon-1]" - -data:extend( -{ - { - type = "item-with-entity-data", - name = "diesel-locomotive-2", - icon = "__base__/graphics/icons/diesel-locomotive.png", - flags = {"goes-to-quickbar"}, - subgroup = "bob-transport", - order = "a[train-system]-e[diesel-locomotive-2]", - place_result = "diesel-locomotive-2", - stack_size = 10 - }, - - { - type = "item-with-entity-data", - name = "diesel-locomotive-3", - icon = "__base__/graphics/icons/diesel-locomotive.png", - flags = {"goes-to-quickbar"}, - subgroup = "bob-transport", - order = "a[train-system]-e[diesel-locomotive-3]", - place_result = "diesel-locomotive-3", - stack_size = 10 - }, - - - { - type = "item-with-entity-data", - name = "armoured-diesel-locomotive", - icon = "__base__/graphics/icons/diesel-locomotive.png", - flags = {"goes-to-quickbar"}, - subgroup = "bob-transport", - order = "a[train-system]-e[diesel-locomotive-a]", - place_result = "armoured-diesel-locomotive", - stack_size = 10 - }, - - - { - type = "item-with-entity-data", - name = "cargo-wagon-2", - icon = "__base__/graphics/icons/cargo-wagon.png", - flags = {"goes-to-quickbar"}, - subgroup = "bob-transport", - order = "a[train-system]-f[cargo-wagon-2]", - place_result = "cargo-wagon-2", - stack_size = 10 - }, - - { - type = "item-with-entity-data", - name = "cargo-wagon-3", - icon = "__base__/graphics/icons/cargo-wagon.png", - flags = {"goes-to-quickbar"}, - subgroup = "bob-transport", - order = "a[train-system]-f[cargo-wagon-3]", - place_result = "cargo-wagon-3", - stack_size = 10 - }, - - - { - type = "item-with-entity-data", - name = "armoured-cargo-wagon", - icon = "__base__/graphics/icons/cargo-wagon.png", - flags = {"goes-to-quickbar"}, - subgroup = "bob-transport", - order = "a[train-system]-f[cargo-wagon]", - place_result = "armoured-cargo-wagon", - stack_size = 10 - }, -} -) - - +data.raw["item-with-entity-data"]["diesel-locomotive"].stack_size = 10 +data.raw["item-with-entity-data"]["diesel-locomotive"].order = "a[train-system]-e[diesel-locomotive-1]" + +data.raw["item-with-entity-data"]["cargo-wagon"].stack_size = 10 +data.raw["item-with-entity-data"]["cargo-wagon"].order = "a[train-system]-f[cargo-wagon-1]" + +data:extend( +{ + { + type = "item-with-entity-data", + name = "bob-diesel-locomotive-2", + icon = "__base__/graphics/icons/diesel-locomotive.png", + flags = {"goes-to-quickbar"}, + subgroup = "bob-transport", + order = "a[train-system]-e[diesel-locomotive-2]", + place_result = "bob-diesel-locomotive-2", + stack_size = 10 + }, + + { + type = "item-with-entity-data", + name = "bob-diesel-locomotive-3", + icon = "__base__/graphics/icons/diesel-locomotive.png", + flags = {"goes-to-quickbar"}, + subgroup = "bob-transport", + order = "a[train-system]-e[diesel-locomotive-3]", + place_result = "bob-diesel-locomotive-3", + stack_size = 10 + }, + + + { + type = "item-with-entity-data", + name = "bob-armoured-diesel-locomotive", + icon = "__base__/graphics/icons/diesel-locomotive.png", + flags = {"goes-to-quickbar"}, + subgroup = "bob-transport", + order = "a[train-system]-e[diesel-locomotive-a]", + place_result = "bob-armoured-diesel-locomotive", + stack_size = 10 + }, + + + { + type = "item-with-entity-data", + name = "bob-cargo-wagon-2", + icon = "__base__/graphics/icons/cargo-wagon.png", + flags = {"goes-to-quickbar"}, + subgroup = "bob-transport", + order = "a[train-system]-f[cargo-wagon-2]", + place_result = "bob-cargo-wagon-2", + stack_size = 10 + }, + + { + type = "item-with-entity-data", + name = "bob-cargo-wagon-3", + icon = "__base__/graphics/icons/cargo-wagon.png", + flags = {"goes-to-quickbar"}, + subgroup = "bob-transport", + order = "a[train-system]-f[cargo-wagon-3]", + place_result = "bob-cargo-wagon-3", + stack_size = 10 + }, + + + { + type = "item-with-entity-data", + name = "bob-armoured-cargo-wagon", + icon = "__base__/graphics/icons/cargo-wagon.png", + flags = {"goes-to-quickbar"}, + subgroup = "bob-transport", + order = "a[train-system]-f[cargo-wagon]", + place_result = "bob-armoured-cargo-wagon", + stack_size = 10 + }, +} +) + + diff --git a/boblogistics_0.14.0/prototypes/productivity-limitations.lua b/boblogistics_0.14.2/prototypes/productivity-limitations.lua similarity index 98% rename from boblogistics_0.14.0/prototypes/productivity-limitations.lua rename to boblogistics_0.14.2/prototypes/productivity-limitations.lua index e75e261..97ce581 100644 --- a/boblogistics_0.14.0/prototypes/productivity-limitations.lua +++ b/boblogistics_0.14.2/prototypes/productivity-limitations.lua @@ -1,46 +1,46 @@ -local roboport_parts = { - "roboport-antenna-1", - "roboport-antenna-2", - "roboport-antenna-3", - "roboport-antenna-4", - "roboport-chargepad-1", - "roboport-chargepad-2", - "roboport-chargepad-3", - "roboport-chargepad-4", - "roboport-door-1", - "roboport-door-2", - "roboport-door-3", - "roboport-door-4" -} - -bobmods.lib.module.add_productivity_limitations(roboport_parts) - - -if data.raw.recipe["flying-robot-frame-2"] then bobmods.lib.module.add_productivity_limitation("flying-robot-frame-2") end -if data.raw.recipe["flying-robot-frame-3"] then bobmods.lib.module.add_productivity_limitation("flying-robot-frame-3") end -if data.raw.recipe["flying-robot-frame-4"] then bobmods.lib.module.add_productivity_limitation("flying-robot-frame-4") end - - -if data.raw.recipe["robot-brain-logistic"] then bobmods.lib.module.add_productivity_limitation("robot-brain-logistic") end -if data.raw.recipe["robot-brain-logistic-2"] then bobmods.lib.module.add_productivity_limitation("robot-brain-logistic-2") end -if data.raw.recipe["robot-brain-logistic-3"] then bobmods.lib.module.add_productivity_limitation("robot-brain-logistic-3") end -if data.raw.recipe["robot-brain-logistic-4"] then bobmods.lib.module.add_productivity_limitation("robot-brain-logistic-4") end - -if data.raw.recipe["robot-brain-construction"] then bobmods.lib.module.add_productivity_limitation("robot-brain-construction") end -if data.raw.recipe["robot-brain-construction-2"] then bobmods.lib.module.add_productivity_limitation("robot-brain-construction-2") end -if data.raw.recipe["robot-brain-construction-3"] then bobmods.lib.module.add_productivity_limitation("robot-brain-construction-3") end -if data.raw.recipe["robot-brain-construction-4"] then bobmods.lib.module.add_productivity_limitation("robot-brain-construction-4") end - - -if data.raw.recipe["robot-tool-logistic"] then bobmods.lib.module.add_productivity_limitation("robot-tool-logistic") end -if data.raw.recipe["robot-tool-logistic-2"] then bobmods.lib.module.add_productivity_limitation("robot-tool-logistic-2") end -if data.raw.recipe["robot-tool-logistic-3"] then bobmods.lib.module.add_productivity_limitation("robot-tool-logistic-3") end -if data.raw.recipe["robot-tool-logistic-4"] then bobmods.lib.module.add_productivity_limitation("robot-tool-logistic-4") end - -if data.raw.recipe["robot-tool-construction"] then bobmods.lib.module.add_productivity_limitation("robot-tool-construction") end -if data.raw.recipe["robot-tool-construction-2"] then bobmods.lib.module.add_productivity_limitation("robot-tool-construction-2") end -if data.raw.recipe["robot-tool-construction-3"] then bobmods.lib.module.add_productivity_limitation("robot-tool-construction-3") end -if data.raw.recipe["robot-tool-construction-4"] then bobmods.lib.module.add_productivity_limitation("robot-tool-construction-4") end - - - +local roboport_parts = { + "roboport-antenna-1", + "roboport-antenna-2", + "roboport-antenna-3", + "roboport-antenna-4", + "roboport-chargepad-1", + "roboport-chargepad-2", + "roboport-chargepad-3", + "roboport-chargepad-4", + "roboport-door-1", + "roboport-door-2", + "roboport-door-3", + "roboport-door-4" +} + +bobmods.lib.module.add_productivity_limitations(roboport_parts) + + +if data.raw.recipe["flying-robot-frame-2"] then bobmods.lib.module.add_productivity_limitation("flying-robot-frame-2") end +if data.raw.recipe["flying-robot-frame-3"] then bobmods.lib.module.add_productivity_limitation("flying-robot-frame-3") end +if data.raw.recipe["flying-robot-frame-4"] then bobmods.lib.module.add_productivity_limitation("flying-robot-frame-4") end + + +if data.raw.recipe["robot-brain-logistic"] then bobmods.lib.module.add_productivity_limitation("robot-brain-logistic") end +if data.raw.recipe["robot-brain-logistic-2"] then bobmods.lib.module.add_productivity_limitation("robot-brain-logistic-2") end +if data.raw.recipe["robot-brain-logistic-3"] then bobmods.lib.module.add_productivity_limitation("robot-brain-logistic-3") end +if data.raw.recipe["robot-brain-logistic-4"] then bobmods.lib.module.add_productivity_limitation("robot-brain-logistic-4") end + +if data.raw.recipe["robot-brain-construction"] then bobmods.lib.module.add_productivity_limitation("robot-brain-construction") end +if data.raw.recipe["robot-brain-construction-2"] then bobmods.lib.module.add_productivity_limitation("robot-brain-construction-2") end +if data.raw.recipe["robot-brain-construction-3"] then bobmods.lib.module.add_productivity_limitation("robot-brain-construction-3") end +if data.raw.recipe["robot-brain-construction-4"] then bobmods.lib.module.add_productivity_limitation("robot-brain-construction-4") end + + +if data.raw.recipe["robot-tool-logistic"] then bobmods.lib.module.add_productivity_limitation("robot-tool-logistic") end +if data.raw.recipe["robot-tool-logistic-2"] then bobmods.lib.module.add_productivity_limitation("robot-tool-logistic-2") end +if data.raw.recipe["robot-tool-logistic-3"] then bobmods.lib.module.add_productivity_limitation("robot-tool-logistic-3") end +if data.raw.recipe["robot-tool-logistic-4"] then bobmods.lib.module.add_productivity_limitation("robot-tool-logistic-4") end + +if data.raw.recipe["robot-tool-construction"] then bobmods.lib.module.add_productivity_limitation("robot-tool-construction") end +if data.raw.recipe["robot-tool-construction-2"] then bobmods.lib.module.add_productivity_limitation("robot-tool-construction-2") end +if data.raw.recipe["robot-tool-construction-3"] then bobmods.lib.module.add_productivity_limitation("robot-tool-construction-3") end +if data.raw.recipe["robot-tool-construction-4"] then bobmods.lib.module.add_productivity_limitation("robot-tool-construction-4") end + + + diff --git a/boblogistics_0.14.0/prototypes/purple-transport-belt.lua b/boblogistics_0.14.2/prototypes/purple-transport-belt.lua similarity index 96% rename from boblogistics_0.14.0/prototypes/purple-transport-belt.lua rename to boblogistics_0.14.2/prototypes/purple-transport-belt.lua index 579578d..50adf08 100644 --- a/boblogistics_0.14.0/prototypes/purple-transport-belt.lua +++ b/boblogistics_0.14.2/prototypes/purple-transport-belt.lua @@ -1,385 +1,385 @@ ----------------------- PURPLE BELT PICTURES -purple_belt_horizontal = - { - filename = "__boblogistics__/graphics/entity/transport-belt/purple-transport-belt.png", - priority = "extra-high", - width = 40, - height = 40, - frame_count = 32 - } -purple_belt_vertical = - { - filename = "__boblogistics__/graphics/entity/transport-belt/purple-transport-belt.png", - priority = "extra-high", - width = 40, - height = 40, - frame_count = 32, - y = 40, - } -purple_belt_ending_top = - { - filename = "__boblogistics__/graphics/entity/transport-belt/purple-transport-belt.png", - priority = "extra-high", - width = 40, - height = 40, - frame_count = 32, - y = 80 - } -purple_belt_ending_bottom = - { - filename = "__boblogistics__/graphics/entity/transport-belt/purple-transport-belt.png", - priority = "extra-high", - width = 40, - height = 40, - frame_count = 32, - y = 120 - } -purple_belt_ending_side = - { - filename = "__boblogistics__/graphics/entity/transport-belt/purple-transport-belt.png", - priority = "extra-high", - width = 40, - height = 40, - frame_count = 32, - y = 160 - } -purple_belt_starting_top = - { - filename = "__boblogistics__/graphics/entity/transport-belt/purple-transport-belt.png", - priority = "extra-high", - width = 40, - height = 40, - frame_count = 32, - y = 200 - } -purple_belt_starting_bottom = - { - filename = "__boblogistics__/graphics/entity/transport-belt/purple-transport-belt.png", - priority = "extra-high", - width = 40, - height = 40, - frame_count = 32, - y = 240 - } -purple_belt_starting_side = - { - filename = "__boblogistics__/graphics/entity/transport-belt/purple-transport-belt.png", - priority = "extra-high", - width = 40, - height = 40, - frame_count = 32, - y = 280 - } - - - -data:extend( -{ - { - type = "item", - name = "purple-transport-belt", - icon = "__boblogistics__/graphics/icons/purple-transport-belt.png", - flags = {"goes-to-quickbar"}, - subgroup = "bob-belt", - order = "a[transport-belt]-e[purple-transport-belt]", - place_result = "purple-transport-belt", - stack_size = 50 - }, - { - type = "item", - name = "purple-underground-belt", - icon = "__boblogistics__/graphics/icons/purple-transport-belt-to-ground.png", - flags = {"goes-to-quickbar"}, - subgroup = "bob-belt", - order = "b[underground-belt]-e[purple-underground-belt]", - place_result = "purple-underground-belt", - stack_size = 50 - }, - { - type = "item", - name = "purple-splitter", - icon = "__boblogistics__/graphics/icons/purple-splitter.png", - flags = {"goes-to-quickbar"}, - subgroup = "bob-belt", - order = "c[splitter]-e[purple-splitter]", - place_result = "purple-splitter", - stack_size = 50 - }, - - { - type = "transport-belt", - name = "purple-transport-belt", - icon = "__boblogistics__/graphics/icons/purple-transport-belt.png", - flags = {"placeable-neutral", "player-creation"}, - minable = {hardness = 0.2, mining_time = 0.3, result = "purple-transport-belt"}, - max_health = 50, - corpse = "small-remnants", - resistances = - { - { - type = "fire", - percent = 50 - } - }, - collision_box = {{-0.4, -0.4}, {0.4, 0.4}}, - selection_box = {{-0.5, -0.5}, {0.5, 0.5}}, - working_sound = - { - sound = - { - filename = "__base__/sound/express-transport-belt.ogg", - volume = 0.4 - }, - max_sounds_per_type = 3 - }, - animation_speed_coefficient = 32, - animations = - { - filename = "__boblogistics__/graphics/entity/transport-belt/purple-transport-belt.png", - priority = "extra-high", - width = 40, - height = 40, - frame_count = 32, - direction_count = 12 - }, - belt_horizontal = purple_belt_horizontal, - belt_vertical = purple_belt_vertical, - ending_top = purple_belt_ending_top, - ending_bottom = purple_belt_ending_bottom, - ending_side = purple_belt_ending_side, - starting_top = purple_belt_starting_top, - starting_bottom = purple_belt_starting_bottom, - starting_side = purple_belt_starting_side, - ending_patch = ending_patch_prototype, - fast_replaceable_group = "transport-belt", - speed = 0.15625, - connector_frame_sprites = transport_belt_connector_frame_sprites, - circuit_connector_sprites = transport_belt_circuit_connector_sprites, - circuit_wire_connection_point = transport_belt_circuit_wire_connection_point, - circuit_wire_max_distance = transport_belt_circuit_wire_max_distance - }, - - { - type = "underground-belt", - name = "purple-underground-belt", - icon = "__boblogistics__/graphics/icons/purple-transport-belt-to-ground.png", - flags = {"placeable-neutral", "player-creation", "fast-replaceable-no-build-while-moving"}, - minable = {hardness = 0.2, mining_time = 0.5, result = "purple-underground-belt"}, - max_health = 60, - corpse = "small-remnants", - underground_sprite = - { - filename = "__core__/graphics/arrows/underground-lines.png", - priority = "high", - width = 64, - height = 64, - x = 64, - scale = 0.5 - }, - resistances = - { - { - type = "fire", - percent = 60 - } - }, - collision_box = {{-0.4, -0.15}, {0.4, 0.1}}, - selection_box = {{-0.5, -0.25}, {0.5, 0.75}}, - distance_to_enter = 0.5, - animation_speed_coefficient = 32, - belt_horizontal = purple_belt_horizontal, - belt_vertical = purple_belt_vertical, - ending_top = purple_belt_ending_top, - ending_bottom = purple_belt_ending_bottom, - ending_side = purple_belt_ending_side, - starting_top = purple_belt_starting_top, - starting_bottom = purple_belt_starting_bottom, - starting_side = purple_belt_starting_side, - ending_patch = ending_patch_prototype, - fast_replaceable_group = "underground-belt", - speed = 0.15625, - max_distance = 25, - structure = - { - direction_in = - { - sheet = - { - filename = "__boblogistics__/graphics/entity/transport-belt/purple-transport-belt-to-ground-structure.png", - priority = "extra-high", - shift = {0.26, 0}, - width = 57, - height = 43, - y = 43 - } - }, - direction_out = - { - sheet = - { - filename = "__boblogistics__/graphics/entity/transport-belt/purple-transport-belt-to-ground-structure.png", - priority = "extra-high", - shift = {0.26, 0}, - width = 57, - height = 43 - } - }, - }, - }, - - { - type = "splitter", - name = "purple-splitter", - icon = "__boblogistics__/graphics/icons/purple-splitter.png", - flags = {"placeable-neutral", "player-creation"}, - minable = {hardness = 0.2, mining_time = 0.5, result = "purple-splitter"}, - max_health = 80, - corpse = "medium-remnants", - resistances = - { - { - type = "fire", - percent = 60 - } - }, - collision_box = {{-0.9, -0.1}, {0.9, 0.1}}, - selection_box = {{-0.9, -0.5}, {0.9, 0.5}}, - animation_speed_coefficient = 32, - structure_animation_speed_coefficient = 1.2, - structure_animation_movement_cooldown = 10, - belt_horizontal = purple_belt_horizontal, - belt_vertical = purple_belt_vertical, - ending_top = purple_belt_ending_top, - ending_bottom = purple_belt_ending_bottom, - ending_side = purple_belt_ending_side, - starting_top = purple_belt_starting_top, - starting_bottom = purple_belt_starting_bottom, - starting_side = purple_belt_starting_side, - ending_patch = ending_patch_prototype, - fast_replaceable_group = "splitter", - speed = 0.15625, - structure = - { - north = - { - filename = "__boblogistics__/graphics/entity/transport-belt/purple-splitter-north.png", - frame_count = 32, - line_length = 16, - priority = "extra-high", - width = 80, - height = 35, - shift = {0.225, 0} - }, - east = - { - filename = "__boblogistics__/graphics/entity/transport-belt/purple-splitter-east.png", - frame_count = 32, - line_length = 16, - priority = "extra-high", - width = 46, - height = 81, - shift = {0.075, 0} - }, - south = - { - filename = "__boblogistics__/graphics/entity/transport-belt/purple-splitter-south.png", - frame_count = 32, - line_length = 16, - priority = "extra-high", - width = 82, - height = 36, - shift = {0.075, 0} - }, - west = - { - filename = "__boblogistics__/graphics/entity/transport-belt/purple-splitter-west.png", - frame_count = 32, - line_length = 16, - priority = "extra-high", - width = 47, - height = 79, - shift = {0.25, 0.05} - }, - }, - }, - - { - type = "recipe", - name = "purple-transport-belt", - enabled = "false", - ingredients = - { - {"green-transport-belt", 1}, - {"iron-gear-wheel", 5}, - }, - result = "purple-transport-belt" - }, - { - type = "recipe", - name = "purple-underground-belt", - enabled = "false", - ingredients = - { - {"green-underground-belt", 2}, - {"iron-gear-wheel", 20}, - }, - result_count = 2, - result = "purple-underground-belt" - }, - { - type = "recipe", - name = "purple-splitter", - enabled = "false", - energy_required = 2, - ingredients = - { - {"green-splitter", 1}, - {"processing-unit", 10}, - {"iron-gear-wheel", 10}, - }, - result = "purple-splitter" - }, -} -) - - -data:extend( -{ - { - type = "technology", - name = "bob-logistics-5", - icon = "__base__/graphics/technology/logistics.png", - effects = - { - { - type = "unlock-recipe", - recipe = "purple-transport-belt" - }, - { - type = "unlock-recipe", - recipe = "purple-underground-belt" - }, - { - type = "unlock-recipe", - recipe = "purple-splitter" - } - }, - prerequisites = {"bob-logistics-4"}, - unit = - { - count = 150, - ingredients = - { - {"science-pack-1", 1}, - {"science-pack-2", 1}, - {"science-pack-3", 1}, - {"alien-science-pack", 1} - }, - time = 30 - }, - order = "a-f-e", - }, -} -) - - +---------------------- PURPLE BELT PICTURES +purple_belt_horizontal = + { + filename = "__boblogistics__/graphics/entity/transport-belt/purple-transport-belt.png", + priority = "extra-high", + width = 40, + height = 40, + frame_count = 32 + } +purple_belt_vertical = + { + filename = "__boblogistics__/graphics/entity/transport-belt/purple-transport-belt.png", + priority = "extra-high", + width = 40, + height = 40, + frame_count = 32, + y = 40, + } +purple_belt_ending_top = + { + filename = "__boblogistics__/graphics/entity/transport-belt/purple-transport-belt.png", + priority = "extra-high", + width = 40, + height = 40, + frame_count = 32, + y = 80 + } +purple_belt_ending_bottom = + { + filename = "__boblogistics__/graphics/entity/transport-belt/purple-transport-belt.png", + priority = "extra-high", + width = 40, + height = 40, + frame_count = 32, + y = 120 + } +purple_belt_ending_side = + { + filename = "__boblogistics__/graphics/entity/transport-belt/purple-transport-belt.png", + priority = "extra-high", + width = 40, + height = 40, + frame_count = 32, + y = 160 + } +purple_belt_starting_top = + { + filename = "__boblogistics__/graphics/entity/transport-belt/purple-transport-belt.png", + priority = "extra-high", + width = 40, + height = 40, + frame_count = 32, + y = 200 + } +purple_belt_starting_bottom = + { + filename = "__boblogistics__/graphics/entity/transport-belt/purple-transport-belt.png", + priority = "extra-high", + width = 40, + height = 40, + frame_count = 32, + y = 240 + } +purple_belt_starting_side = + { + filename = "__boblogistics__/graphics/entity/transport-belt/purple-transport-belt.png", + priority = "extra-high", + width = 40, + height = 40, + frame_count = 32, + y = 280 + } + + + +data:extend( +{ + { + type = "item", + name = "purple-transport-belt", + icon = "__boblogistics__/graphics/icons/purple-transport-belt.png", + flags = {"goes-to-quickbar"}, + subgroup = "bob-belt", + order = "a[transport-belt]-e[purple-transport-belt]", + place_result = "purple-transport-belt", + stack_size = 50 + }, + { + type = "item", + name = "purple-underground-belt", + icon = "__boblogistics__/graphics/icons/purple-transport-belt-to-ground.png", + flags = {"goes-to-quickbar"}, + subgroup = "bob-belt", + order = "b[underground-belt]-e[purple-underground-belt]", + place_result = "purple-underground-belt", + stack_size = 50 + }, + { + type = "item", + name = "purple-splitter", + icon = "__boblogistics__/graphics/icons/purple-splitter.png", + flags = {"goes-to-quickbar"}, + subgroup = "bob-belt", + order = "c[splitter]-e[purple-splitter]", + place_result = "purple-splitter", + stack_size = 50 + }, + + { + type = "transport-belt", + name = "purple-transport-belt", + icon = "__boblogistics__/graphics/icons/purple-transport-belt.png", + flags = {"placeable-neutral", "player-creation"}, + minable = {hardness = 0.2, mining_time = 0.3, result = "purple-transport-belt"}, + max_health = 50, + corpse = "small-remnants", + resistances = + { + { + type = "fire", + percent = 50 + } + }, + collision_box = {{-0.4, -0.4}, {0.4, 0.4}}, + selection_box = {{-0.5, -0.5}, {0.5, 0.5}}, + working_sound = + { + sound = + { + filename = "__base__/sound/express-transport-belt.ogg", + volume = 0.4 + }, + max_sounds_per_type = 3 + }, + animation_speed_coefficient = 32, + animations = + { + filename = "__boblogistics__/graphics/entity/transport-belt/purple-transport-belt.png", + priority = "extra-high", + width = 40, + height = 40, + frame_count = 32, + direction_count = 12 + }, + belt_horizontal = purple_belt_horizontal, + belt_vertical = purple_belt_vertical, + ending_top = purple_belt_ending_top, + ending_bottom = purple_belt_ending_bottom, + ending_side = purple_belt_ending_side, + starting_top = purple_belt_starting_top, + starting_bottom = purple_belt_starting_bottom, + starting_side = purple_belt_starting_side, + ending_patch = ending_patch_prototype, + fast_replaceable_group = "transport-belt", + speed = 0.15625, + connector_frame_sprites = transport_belt_connector_frame_sprites, + circuit_connector_sprites = transport_belt_circuit_connector_sprites, + circuit_wire_connection_point = transport_belt_circuit_wire_connection_point, + circuit_wire_max_distance = transport_belt_circuit_wire_max_distance + }, + + { + type = "underground-belt", + name = "purple-underground-belt", + icon = "__boblogistics__/graphics/icons/purple-transport-belt-to-ground.png", + flags = {"placeable-neutral", "player-creation", "fast-replaceable-no-build-while-moving"}, + minable = {hardness = 0.2, mining_time = 0.5, result = "purple-underground-belt"}, + max_health = 60, + corpse = "small-remnants", + underground_sprite = + { + filename = "__core__/graphics/arrows/underground-lines.png", + priority = "high", + width = 64, + height = 64, + x = 64, + scale = 0.5 + }, + resistances = + { + { + type = "fire", + percent = 60 + } + }, + collision_box = {{-0.4, -0.15}, {0.4, 0.1}}, + selection_box = {{-0.5, -0.25}, {0.5, 0.75}}, + distance_to_enter = 0.5, + animation_speed_coefficient = 32, + belt_horizontal = purple_belt_horizontal, + belt_vertical = purple_belt_vertical, + ending_top = purple_belt_ending_top, + ending_bottom = purple_belt_ending_bottom, + ending_side = purple_belt_ending_side, + starting_top = purple_belt_starting_top, + starting_bottom = purple_belt_starting_bottom, + starting_side = purple_belt_starting_side, + ending_patch = ending_patch_prototype, + fast_replaceable_group = "underground-belt", + speed = 0.15625, + max_distance = 25, + structure = + { + direction_in = + { + sheet = + { + filename = "__boblogistics__/graphics/entity/transport-belt/purple-transport-belt-to-ground-structure.png", + priority = "extra-high", + shift = {0.26, 0}, + width = 57, + height = 43, + y = 43 + } + }, + direction_out = + { + sheet = + { + filename = "__boblogistics__/graphics/entity/transport-belt/purple-transport-belt-to-ground-structure.png", + priority = "extra-high", + shift = {0.26, 0}, + width = 57, + height = 43 + } + }, + }, + }, + + { + type = "splitter", + name = "purple-splitter", + icon = "__boblogistics__/graphics/icons/purple-splitter.png", + flags = {"placeable-neutral", "player-creation"}, + minable = {hardness = 0.2, mining_time = 0.5, result = "purple-splitter"}, + max_health = 80, + corpse = "medium-remnants", + resistances = + { + { + type = "fire", + percent = 60 + } + }, + collision_box = {{-0.9, -0.1}, {0.9, 0.1}}, + selection_box = {{-0.9, -0.5}, {0.9, 0.5}}, + animation_speed_coefficient = 32, + structure_animation_speed_coefficient = 1.2, + structure_animation_movement_cooldown = 10, + belt_horizontal = purple_belt_horizontal, + belt_vertical = purple_belt_vertical, + ending_top = purple_belt_ending_top, + ending_bottom = purple_belt_ending_bottom, + ending_side = purple_belt_ending_side, + starting_top = purple_belt_starting_top, + starting_bottom = purple_belt_starting_bottom, + starting_side = purple_belt_starting_side, + ending_patch = ending_patch_prototype, + fast_replaceable_group = "splitter", + speed = 0.15625, + structure = + { + north = + { + filename = "__boblogistics__/graphics/entity/transport-belt/purple-splitter-north.png", + frame_count = 32, + line_length = 16, + priority = "extra-high", + width = 80, + height = 35, + shift = {0.225, 0} + }, + east = + { + filename = "__boblogistics__/graphics/entity/transport-belt/purple-splitter-east.png", + frame_count = 32, + line_length = 16, + priority = "extra-high", + width = 46, + height = 81, + shift = {0.075, 0} + }, + south = + { + filename = "__boblogistics__/graphics/entity/transport-belt/purple-splitter-south.png", + frame_count = 32, + line_length = 16, + priority = "extra-high", + width = 82, + height = 36, + shift = {0.075, 0} + }, + west = + { + filename = "__boblogistics__/graphics/entity/transport-belt/purple-splitter-west.png", + frame_count = 32, + line_length = 16, + priority = "extra-high", + width = 47, + height = 79, + shift = {0.25, 0.05} + }, + }, + }, + + { + type = "recipe", + name = "purple-transport-belt", + enabled = "false", + ingredients = + { + {"green-transport-belt", 1}, + {"iron-gear-wheel", 5}, + }, + result = "purple-transport-belt" + }, + { + type = "recipe", + name = "purple-underground-belt", + enabled = "false", + ingredients = + { + {"green-underground-belt", 2}, + {"iron-gear-wheel", 20}, + }, + result_count = 2, + result = "purple-underground-belt" + }, + { + type = "recipe", + name = "purple-splitter", + enabled = "false", + energy_required = 2, + ingredients = + { + {"green-splitter", 1}, + {"processing-unit", 10}, + {"iron-gear-wheel", 10}, + }, + result = "purple-splitter" + }, +} +) + + +data:extend( +{ + { + type = "technology", + name = "bob-logistics-5", + icon = "__base__/graphics/technology/logistics.png", + effects = + { + { + type = "unlock-recipe", + recipe = "purple-transport-belt" + }, + { + type = "unlock-recipe", + recipe = "purple-underground-belt" + }, + { + type = "unlock-recipe", + recipe = "purple-splitter" + } + }, + prerequisites = {"bob-logistics-4"}, + unit = + { + count = 150, + ingredients = + { + {"science-pack-1", 1}, + {"science-pack-2", 1}, + {"science-pack-3", 1}, + {"alien-science-pack", 1} + }, + time = 30 + }, + order = "a-f-e", + }, +} +) + + diff --git a/boblogistics_0.14.0/prototypes/recipe/belt-recipe-updates.lua b/boblogistics_0.14.2/prototypes/recipe/belt-recipe-updates.lua similarity index 97% rename from boblogistics_0.14.0/prototypes/recipe/belt-recipe-updates.lua rename to boblogistics_0.14.2/prototypes/recipe/belt-recipe-updates.lua index 36c677e..1ca93de 100644 --- a/boblogistics_0.14.0/prototypes/recipe/belt-recipe-updates.lua +++ b/boblogistics_0.14.2/prototypes/recipe/belt-recipe-updates.lua @@ -1,67 +1,67 @@ -data.raw["underground-belt"]["underground-belt"].max_distance = 5 -data.raw["underground-belt"]["fast-underground-belt"].max_distance = 10 -data.raw["underground-belt"]["express-underground-belt"].max_distance = 15 - -data.raw.recipe["express-underground-belt"].category = "crafting-with-fluid" -data.raw.recipe["express-underground-belt"].ingredients = { {"iron-gear-wheel", 20}, {"fast-underground-belt", 2}, {type="fluid", name="lubricant", amount=10} } - - - -if data.raw.item["titanium-bearing"] then - bobmods.lib.recipe.add_ingredient("green-transport-belt", {"titanium-bearing", 5}) - bobmods.lib.recipe.add_ingredient("green-underground-belt", {"titanium-bearing", 20}) - bobmods.lib.recipe.add_ingredient("green-splitter", {"titanium-bearing", 10}) - bobmods.lib.tech.add_prerequisite("bob-logistics-4", "titanium-processing") -else - bobmods.lib.recipe.add_ingredient("green-transport-belt", {"iron-gear-wheel", 5}) - bobmods.lib.recipe.add_ingredient("green-underground-belt", {"iron-gear-wheel", 20}) - bobmods.lib.recipe.add_ingredient("green-splitter", {"iron-gear-wheel", 10}) -end - -if data.raw.item["titanium-gear-wheel"] then - bobmods.lib.recipe.replace_ingredient("green-transport-belt", "iron-gear-wheel", "titanium-gear-wheel") - bobmods.lib.recipe.replace_ingredient("green-underground-belt", "iron-gear-wheel", "titanium-gear-wheel") - bobmods.lib.recipe.replace_ingredient("green-splitter", "iron-gear-wheel", "titanium-gear-wheel") - bobmods.lib.tech.add_prerequisite("bob-logistics-4", "titanium-processing") -end - - - -if data.raw.recipe["purple-transport-belt"] then - if data.raw.item["nitinol-bearing"] then - bobmods.lib.recipe.add_ingredient("purple-transport-belt", {"nitinol-bearing", 5}) - bobmods.lib.tech.add_prerequisite("bob-logistics-5", "nitinol-processing") - else - bobmods.lib.recipe.add_ingredient("purple-transport-belt", {"iron-gear-wheel", 5}) - end - - if data.raw.item["nitinol-gear-wheel"] then - bobmods.lib.recipe.replace_ingredient("purple-transport-belt", "iron-gear-wheel", "nitinol-gear-wheel") - bobmods.lib.tech.add_prerequisite("bob-logistics-5", "nitinol-processing") - end -end - -if data.raw.recipe["purple-underground-belt"] then - if data.raw.item["nitinol-bearing"] then - bobmods.lib.recipe.add_ingredient("purple-underground-belt", {"nitinol-bearing", 20}) - else - bobmods.lib.recipe.add_ingredient("purple-underground-belt", {"iron-gear-wheel", 20}) - end - - if data.raw.item["nitinol-gear-wheel"] then - bobmods.lib.recipe.replace_ingredient("purple-underground-belt", "iron-gear-wheel", "nitinol-gear-wheel") - end -end - -if data.raw.recipe["purple-splitter"] then - if data.raw.item["nitinol-bearing"] then - bobmods.lib.recipe.add_ingredient("purple-splitter", {"nitinol-bearing", 10}) - else - bobmods.lib.recipe.add_ingredient("purple-splitter", {"iron-gear-wheel", 10}) - end - - if data.raw.item["nitinol-gear-wheel"] then - bobmods.lib.recipe.replace_ingredient("purple-splitter", "iron-gear-wheel", "nitinol-gear-wheel") - end -end - +data.raw["underground-belt"]["underground-belt"].max_distance = 5 +data.raw["underground-belt"]["fast-underground-belt"].max_distance = 10 +data.raw["underground-belt"]["express-underground-belt"].max_distance = 15 + +data.raw.recipe["express-underground-belt"].category = "crafting-with-fluid" +data.raw.recipe["express-underground-belt"].ingredients = { {"iron-gear-wheel", 20}, {"fast-underground-belt", 2}, {type="fluid", name="lubricant", amount=10} } + + + +if data.raw.item["titanium-bearing"] then + bobmods.lib.recipe.add_ingredient("green-transport-belt", {"titanium-bearing", 5}) + bobmods.lib.recipe.add_ingredient("green-underground-belt", {"titanium-bearing", 20}) + bobmods.lib.recipe.add_ingredient("green-splitter", {"titanium-bearing", 10}) + bobmods.lib.tech.add_prerequisite("bob-logistics-4", "titanium-processing") +else + bobmods.lib.recipe.add_ingredient("green-transport-belt", {"iron-gear-wheel", 5}) + bobmods.lib.recipe.add_ingredient("green-underground-belt", {"iron-gear-wheel", 20}) + bobmods.lib.recipe.add_ingredient("green-splitter", {"iron-gear-wheel", 10}) +end + +if data.raw.item["titanium-gear-wheel"] then + bobmods.lib.recipe.replace_ingredient("green-transport-belt", "iron-gear-wheel", "titanium-gear-wheel") + bobmods.lib.recipe.replace_ingredient("green-underground-belt", "iron-gear-wheel", "titanium-gear-wheel") + bobmods.lib.recipe.replace_ingredient("green-splitter", "iron-gear-wheel", "titanium-gear-wheel") + bobmods.lib.tech.add_prerequisite("bob-logistics-4", "titanium-processing") +end + + + +if data.raw.recipe["purple-transport-belt"] then + if data.raw.item["nitinol-bearing"] then + bobmods.lib.recipe.add_ingredient("purple-transport-belt", {"nitinol-bearing", 5}) + bobmods.lib.tech.add_prerequisite("bob-logistics-5", "nitinol-processing") + else + bobmods.lib.recipe.add_ingredient("purple-transport-belt", {"iron-gear-wheel", 5}) + end + + if data.raw.item["nitinol-gear-wheel"] then + bobmods.lib.recipe.replace_ingredient("purple-transport-belt", "iron-gear-wheel", "nitinol-gear-wheel") + bobmods.lib.tech.add_prerequisite("bob-logistics-5", "nitinol-processing") + end +end + +if data.raw.recipe["purple-underground-belt"] then + if data.raw.item["nitinol-bearing"] then + bobmods.lib.recipe.add_ingredient("purple-underground-belt", {"nitinol-bearing", 20}) + else + bobmods.lib.recipe.add_ingredient("purple-underground-belt", {"iron-gear-wheel", 20}) + end + + if data.raw.item["nitinol-gear-wheel"] then + bobmods.lib.recipe.replace_ingredient("purple-underground-belt", "iron-gear-wheel", "nitinol-gear-wheel") + end +end + +if data.raw.recipe["purple-splitter"] then + if data.raw.item["nitinol-bearing"] then + bobmods.lib.recipe.add_ingredient("purple-splitter", {"nitinol-bearing", 10}) + else + bobmods.lib.recipe.add_ingredient("purple-splitter", {"iron-gear-wheel", 10}) + end + + if data.raw.item["nitinol-gear-wheel"] then + bobmods.lib.recipe.replace_ingredient("purple-splitter", "iron-gear-wheel", "nitinol-gear-wheel") + end +end + diff --git a/boblogistics_0.14.0/prototypes/recipe/inserter-recipe-updates.lua b/boblogistics_0.14.2/prototypes/recipe/inserter-recipe-updates.lua similarity index 97% rename from boblogistics_0.14.0/prototypes/recipe/inserter-recipe-updates.lua rename to boblogistics_0.14.2/prototypes/recipe/inserter-recipe-updates.lua index 67218a8..60ef1ce 100644 --- a/boblogistics_0.14.0/prototypes/recipe/inserter-recipe-updates.lua +++ b/boblogistics_0.14.2/prototypes/recipe/inserter-recipe-updates.lua @@ -1,25 +1,25 @@ -local function complete_purple_inserter_recipe(name) - if data.raw.recipe[name] then - if data.raw.item["titanium-bearing"] then - bobmods.lib.recipe.add_ingredient(name, {"titanium-bearing", 2}) - else - bobmods.lib.recipe.add_ingredient(name, {"iron-gear-wheel", 2}) - end - - if data.raw.item["titanium-gear-wheel"] then - bobmods.lib.recipe.replace_ingredient(name, "iron-gear-wheel", "titanium-gear-wheel") - end - end -end - - -complete_purple_inserter_recipe("express-inserter") -complete_purple_inserter_recipe("express-filter-inserter") -if data.raw.item["titanium-bearing"] then bobmods.lib.tech.add_prerequisite("express-inserters", "titanium-processing") end - -complete_purple_inserter_recipe("express-stack-inserter") -complete_purple_inserter_recipe("express-stack-filter-inserter") -if data.raw.item["titanium-bearing"] then bobmods.lib.tech.add_prerequisite("stack-inserter-2", "titanium-processing") end - - - +local function complete_purple_inserter_recipe(name) + if data.raw.recipe[name] then + if data.raw.item["titanium-bearing"] then + bobmods.lib.recipe.add_ingredient(name, {"titanium-bearing", 2}) + else + bobmods.lib.recipe.add_ingredient(name, {"iron-gear-wheel", 2}) + end + + if data.raw.item["titanium-gear-wheel"] then + bobmods.lib.recipe.replace_ingredient(name, "iron-gear-wheel", "titanium-gear-wheel") + end + end +end + + +complete_purple_inserter_recipe("express-inserter") +complete_purple_inserter_recipe("express-filter-inserter") +if data.raw.item["titanium-bearing"] then bobmods.lib.tech.add_prerequisite("express-inserters", "titanium-processing") end + +complete_purple_inserter_recipe("express-stack-inserter") +complete_purple_inserter_recipe("express-stack-filter-inserter") +if data.raw.item["titanium-bearing"] then bobmods.lib.tech.add_prerequisite("stack-inserter-2", "titanium-processing") end + + + diff --git a/boblogistics_0.14.0/prototypes/recipe/logistic-container-recipe.lua b/boblogistics_0.14.2/prototypes/recipe/logistic-container-recipe.lua similarity index 95% rename from boblogistics_0.14.0/prototypes/recipe/logistic-container-recipe.lua rename to boblogistics_0.14.2/prototypes/recipe/logistic-container-recipe.lua index 83b514d..4a86198 100644 --- a/boblogistics_0.14.0/prototypes/recipe/logistic-container-recipe.lua +++ b/boblogistics_0.14.2/prototypes/recipe/logistic-container-recipe.lua @@ -1,49 +1,49 @@ -data:extend( -{ - { - type = "recipe", - name = "logistic-chest-passive-provider-2", - enabled = false, - ingredients = - { - {"logistic-chest-passive-provider", 1}, - {"processing-unit", 1} - }, - result = "logistic-chest-passive-provider-2" - }, - { - type = "recipe", - name = "logistic-chest-active-provider-2", - enabled = false, - ingredients = - { - {"logistic-chest-active-provider", 1}, - {"processing-unit", 1} - }, - result = "logistic-chest-active-provider-2" - }, - { - type = "recipe", - name = "logistic-chest-storage-2", - enabled = false, - ingredients = - { - {"logistic-chest-storage", 1}, - {"processing-unit", 1} - }, - result = "logistic-chest-storage-2" - }, - { - type = "recipe", - name = "logistic-chest-requester-2", - enabled = false, - ingredients = - { - {"logistic-chest-requester", 1}, - {"processing-unit", 1} - }, - result = "logistic-chest-requester-2" - }, -} -) - +data:extend( +{ + { + type = "recipe", + name = "logistic-chest-passive-provider-2", + enabled = false, + ingredients = + { + {"logistic-chest-passive-provider", 1}, + {"processing-unit", 1} + }, + result = "logistic-chest-passive-provider-2" + }, + { + type = "recipe", + name = "logistic-chest-active-provider-2", + enabled = false, + ingredients = + { + {"logistic-chest-active-provider", 1}, + {"processing-unit", 1} + }, + result = "logistic-chest-active-provider-2" + }, + { + type = "recipe", + name = "logistic-chest-storage-2", + enabled = false, + ingredients = + { + {"logistic-chest-storage", 1}, + {"processing-unit", 1} + }, + result = "logistic-chest-storage-2" + }, + { + type = "recipe", + name = "logistic-chest-requester-2", + enabled = false, + ingredients = + { + {"logistic-chest-requester", 1}, + {"processing-unit", 1} + }, + result = "logistic-chest-requester-2" + }, +} +) + diff --git a/boblogistics_0.14.0/prototypes/recipe/pipes-recipe.lua b/boblogistics_0.14.2/prototypes/recipe/pipes-recipe.lua similarity index 93% rename from boblogistics_0.14.0/prototypes/recipe/pipes-recipe.lua rename to boblogistics_0.14.2/prototypes/recipe/pipes-recipe.lua index 6cb3737..4c00ddf 100644 --- a/boblogistics_0.14.0/prototypes/recipe/pipes-recipe.lua +++ b/boblogistics_0.14.2/prototypes/recipe/pipes-recipe.lua @@ -1,254 +1,254 @@ -data:extend( -{ - { - type = "recipe", - name = "stone-pipe", - ingredients = - { - {"stone-brick", 1}, - }, - result = "stone-pipe", - }, - - { - type = "recipe", - name = "stone-pipe-to-ground", - ingredients = - { - {"stone-pipe", 10}, - {"stone-brick", 5}, - }, - result_count = 2, - result = "stone-pipe-to-ground", - }, - - - { - type = "recipe", - name = "copper-pipe", - ingredients = - { - {"copper-plate", 1}, - }, - result = "copper-pipe", - }, - - { - type = "recipe", - name = "copper-pipe-to-ground", - ingredients = - { - {"copper-pipe", 10}, - {"copper-plate", 5}, - }, - result_count = 2, - result = "copper-pipe-to-ground", - }, - - - { - type = "recipe", - name = "steel-pipe", - enabled = "false", - ingredients = - { - {"steel-plate", 1}, - }, - result = "steel-pipe", - }, - - { - type = "recipe", - name = "steel-pipe-to-ground", - enabled = "false", - ingredients = - { - {"steel-pipe", 12}, - {"steel-plate", 5}, - }, - result_count = 2, - result = "steel-pipe-to-ground", - }, - - - { - type = "recipe", - name = "plastic-pipe", - enabled = "false", - ingredients = - { - {"plastic-bar", 1}, - }, - result = "plastic-pipe", - }, - - { - type = "recipe", - name = "plastic-pipe-to-ground", - enabled = "false", - ingredients = - { - {"plastic-pipe", 12}, - {"plastic-bar", 5}, - }, - result_count = 2, - result = "plastic-pipe-to-ground", - }, -} -) - - -if data.raw.item["bronze-alloy"] then -data:extend( -{ - { - type = "recipe", - name = "bronze-pipe", - enabled = "false", - ingredients = - { - {"bronze-alloy", 1}, - }, - result = "bronze-pipe", - }, - - { - type = "recipe", - name = "bronze-pipe-to-ground", - enabled = "false", - ingredients = - { - {"bronze-pipe", 12}, - {"bronze-alloy", 5}, - }, - result_count = 2, - result = "bronze-pipe-to-ground", - }, -} -) -end - - -if data.raw.item["brass-alloy"] then -data:extend( -{ - { - type = "recipe", - name = "brass-pipe", - enabled = "false", - ingredients = - { - {"brass-alloy", 1}, - }, - result = "brass-pipe", - }, - - { - type = "recipe", - name = "brass-pipe-to-ground", - enabled = "false", - ingredients = - { - {"brass-pipe", 15}, - {"brass-alloy", 5}, - }, - result_count = 2, - result = "brass-pipe-to-ground", - }, -} -) -end - - -if data.raw.item["silicon-nitride"] then -data:extend( -{ - { - type = "recipe", - name = "ceramic-pipe", - enabled = "false", - ingredients = - { - {"silicon-nitride", 1}, - }, - result = "ceramic-pipe", - }, - - { - type = "recipe", - name = "ceramic-pipe-to-ground", - enabled = "false", - ingredients = - { - {"ceramic-pipe", 15}, - {"silicon-nitride", 5}, - }, - result_count = 2, - result = "ceramic-pipe-to-ground", - }, -} -) -end - - -if data.raw.item["titanium-plate"] then -data:extend( -{ - { - type = "recipe", - name = "titanium-pipe", - enabled = "false", - ingredients = - { - {"titanium-plate", 1}, - }, - result = "titanium-pipe", - }, - - { - type = "recipe", - name = "titanium-pipe-to-ground", - enabled = "false", - ingredients = - { - {"titanium-pipe", 15}, - {"titanium-plate", 5}, - }, - result_count = 2, - result = "titanium-pipe-to-ground", - }, -} -) -end - - -if data.raw.item["tungsten-plate"] then -data:extend( -{ - { - type = "recipe", - name = "tungsten-pipe", - enabled = "false", - ingredients = - { - {"tungsten-plate", 1}, - }, - result = "tungsten-pipe", - }, - - { - type = "recipe", - name = "tungsten-pipe-to-ground", - enabled = "false", - ingredients = - { - {"tungsten-pipe", 18}, - {"tungsten-plate", 5}, - }, - result_count = 2, - result = "tungsten-pipe-to-ground", - }, -} -) -end - +data:extend( +{ + { + type = "recipe", + name = "stone-pipe", + ingredients = + { + {"stone-brick", 1}, + }, + result = "stone-pipe", + }, + + { + type = "recipe", + name = "stone-pipe-to-ground", + ingredients = + { + {"stone-pipe", 10}, + {"stone-brick", 5}, + }, + result_count = 2, + result = "stone-pipe-to-ground", + }, + + + { + type = "recipe", + name = "copper-pipe", + ingredients = + { + {"copper-plate", 1}, + }, + result = "copper-pipe", + }, + + { + type = "recipe", + name = "copper-pipe-to-ground", + ingredients = + { + {"copper-pipe", 10}, + {"copper-plate", 5}, + }, + result_count = 2, + result = "copper-pipe-to-ground", + }, + + + { + type = "recipe", + name = "steel-pipe", + enabled = "false", + ingredients = + { + {"steel-plate", 1}, + }, + result = "steel-pipe", + }, + + { + type = "recipe", + name = "steel-pipe-to-ground", + enabled = "false", + ingredients = + { + {"steel-pipe", 12}, + {"steel-plate", 5}, + }, + result_count = 2, + result = "steel-pipe-to-ground", + }, + + + { + type = "recipe", + name = "plastic-pipe", + enabled = "false", + ingredients = + { + {"plastic-bar", 1}, + }, + result = "plastic-pipe", + }, + + { + type = "recipe", + name = "plastic-pipe-to-ground", + enabled = "false", + ingredients = + { + {"plastic-pipe", 12}, + {"plastic-bar", 5}, + }, + result_count = 2, + result = "plastic-pipe-to-ground", + }, +} +) + + +if data.raw.item["bronze-alloy"] then +data:extend( +{ + { + type = "recipe", + name = "bronze-pipe", + enabled = "false", + ingredients = + { + {"bronze-alloy", 1}, + }, + result = "bronze-pipe", + }, + + { + type = "recipe", + name = "bronze-pipe-to-ground", + enabled = "false", + ingredients = + { + {"bronze-pipe", 12}, + {"bronze-alloy", 5}, + }, + result_count = 2, + result = "bronze-pipe-to-ground", + }, +} +) +end + + +if data.raw.item["brass-alloy"] then +data:extend( +{ + { + type = "recipe", + name = "brass-pipe", + enabled = "false", + ingredients = + { + {"brass-alloy", 1}, + }, + result = "brass-pipe", + }, + + { + type = "recipe", + name = "brass-pipe-to-ground", + enabled = "false", + ingredients = + { + {"brass-pipe", 15}, + {"brass-alloy", 5}, + }, + result_count = 2, + result = "brass-pipe-to-ground", + }, +} +) +end + + +if data.raw.item["silicon-nitride"] then +data:extend( +{ + { + type = "recipe", + name = "ceramic-pipe", + enabled = "false", + ingredients = + { + {"silicon-nitride", 1}, + }, + result = "ceramic-pipe", + }, + + { + type = "recipe", + name = "ceramic-pipe-to-ground", + enabled = "false", + ingredients = + { + {"ceramic-pipe", 15}, + {"silicon-nitride", 5}, + }, + result_count = 2, + result = "ceramic-pipe-to-ground", + }, +} +) +end + + +if data.raw.item["titanium-plate"] then +data:extend( +{ + { + type = "recipe", + name = "titanium-pipe", + enabled = "false", + ingredients = + { + {"titanium-plate", 1}, + }, + result = "titanium-pipe", + }, + + { + type = "recipe", + name = "titanium-pipe-to-ground", + enabled = "false", + ingredients = + { + {"titanium-pipe", 15}, + {"titanium-plate", 5}, + }, + result_count = 2, + result = "titanium-pipe-to-ground", + }, +} +) +end + + +if data.raw.item["tungsten-plate"] then +data:extend( +{ + { + type = "recipe", + name = "tungsten-pipe", + enabled = "false", + ingredients = + { + {"tungsten-plate", 1}, + }, + result = "tungsten-pipe", + }, + + { + type = "recipe", + name = "tungsten-pipe-to-ground", + enabled = "false", + ingredients = + { + {"tungsten-pipe", 18}, + {"tungsten-plate", 5}, + }, + result_count = 2, + result = "tungsten-pipe-to-ground", + }, +} +) +end + diff --git a/boblogistics_0.14.0/prototypes/recipe/pump-recipe-updates.lua b/boblogistics_0.14.2/prototypes/recipe/pump-recipe-updates.lua similarity index 96% rename from boblogistics_0.14.0/prototypes/recipe/pump-recipe-updates.lua rename to boblogistics_0.14.2/prototypes/recipe/pump-recipe-updates.lua index a768f74..f90287f 100644 --- a/boblogistics_0.14.0/prototypes/recipe/pump-recipe-updates.lua +++ b/boblogistics_0.14.2/prototypes/recipe/pump-recipe-updates.lua @@ -1,21 +1,21 @@ -if data.raw.item["aluminium-plate"] then - bobmods.lib.recipe.replace_ingredient("small-pump-2", "steel-plate", "aluminium-plate") -end - -if data.raw.item["bronze-pipe"] then - bobmods.lib.recipe.replace_ingredient("small-pump-3", "copper-pipe", "bronze-pipe") -end - -if data.raw.item["titanium-plate"] then - bobmods.lib.recipe.replace_ingredient("small-pump-3", "steel-plate", "titanium-plate") -end - -if data.raw.item["brass-pipe"] then - bobmods.lib.recipe.replace_ingredient("small-pump-4", "copper-pipe", "brass-pipe") -end - -if data.raw.item["nitinol-alloy"] then - bobmods.lib.recipe.replace_ingredient("small-pump-4", "steel-plate", "nitinol-alloy") -end - - +if data.raw.item["aluminium-plate"] then + bobmods.lib.recipe.replace_ingredient("small-pump-2", "steel-plate", "aluminium-plate") +end + +if data.raw.item["bronze-pipe"] then + bobmods.lib.recipe.replace_ingredient("small-pump-3", "copper-pipe", "bronze-pipe") +end + +if data.raw.item["titanium-plate"] then + bobmods.lib.recipe.replace_ingredient("small-pump-3", "steel-plate", "titanium-plate") +end + +if data.raw.item["brass-pipe"] then + bobmods.lib.recipe.replace_ingredient("small-pump-4", "copper-pipe", "brass-pipe") +end + +if data.raw.item["nitinol-alloy"] then + bobmods.lib.recipe.replace_ingredient("small-pump-4", "steel-plate", "nitinol-alloy") +end + + diff --git a/boblogistics_0.14.0/prototypes/recipe/pump-recipe.lua b/boblogistics_0.14.2/prototypes/recipe/pump-recipe.lua similarity index 94% rename from boblogistics_0.14.0/prototypes/recipe/pump-recipe.lua rename to boblogistics_0.14.2/prototypes/recipe/pump-recipe.lua index 53fc8d8..52baf95 100644 --- a/boblogistics_0.14.0/prototypes/recipe/pump-recipe.lua +++ b/boblogistics_0.14.2/prototypes/recipe/pump-recipe.lua @@ -1,44 +1,44 @@ -data:extend( -{ - { - type = "recipe", - name = "small-pump-2", - energy_required = 2, - enabled = false, - ingredients = - { - {"small-pump", 1}, - {"steel-plate", 1}, - {"copper-pipe", 1} - }, - result= "small-pump-2" - }, - { - type = "recipe", - name = "small-pump-3", - energy_required = 2, - enabled = false, - ingredients = - { - {"small-pump-2", 1}, - {"steel-plate", 1}, - {"copper-pipe", 1} - }, - result= "small-pump-3" - }, - { - type = "recipe", - name = "small-pump-4", - energy_required = 2, - enabled = false, - ingredients = - { - {"small-pump-3", 1}, - {"steel-plate", 1}, - {"copper-pipe", 1} - }, - result= "small-pump-4" - }, -} -) - +data:extend( +{ + { + type = "recipe", + name = "small-pump-2", + energy_required = 2, + enabled = false, + ingredients = + { + {"small-pump", 1}, + {"steel-plate", 1}, + {"copper-pipe", 1} + }, + result= "small-pump-2" + }, + { + type = "recipe", + name = "small-pump-3", + energy_required = 2, + enabled = false, + ingredients = + { + {"small-pump-2", 1}, + {"steel-plate", 1}, + {"copper-pipe", 1} + }, + result= "small-pump-3" + }, + { + type = "recipe", + name = "small-pump-4", + energy_required = 2, + enabled = false, + ingredients = + { + {"small-pump-3", 1}, + {"steel-plate", 1}, + {"copper-pipe", 1} + }, + result= "small-pump-4" + }, +} +) + diff --git a/boblogistics_0.14.0/prototypes/recipe/roboport-parts-recipe.lua b/boblogistics_0.14.2/prototypes/recipe/roboport-parts-recipe.lua similarity index 94% rename from boblogistics_0.14.0/prototypes/recipe/roboport-parts-recipe.lua rename to boblogistics_0.14.2/prototypes/recipe/roboport-parts-recipe.lua index 0078215..f2a837c 100644 --- a/boblogistics_0.14.0/prototypes/recipe/roboport-parts-recipe.lua +++ b/boblogistics_0.14.2/prototypes/recipe/roboport-parts-recipe.lua @@ -1,170 +1,170 @@ -data:extend( -{ - { - type = "recipe", - name = "roboport-antenna-1", - enabled = "false", - ingredients = - { - {"steel-plate", 1}, - {"copper-cable", 2}, - {"advanced-circuit", 5}, - }, - result = "roboport-antenna-1", - energy_required = 0.2 - }, - { - type = "recipe", - name = "roboport-antenna-2", - enabled = "false", - ingredients = - { - {"steel-plate", 1}, - {"copper-cable", 2}, - {"advanced-circuit", 5}, - }, - result = "roboport-antenna-2", - energy_required = 0.2 - }, - { - type = "recipe", - name = "roboport-antenna-3", - enabled = "false", - ingredients = - { - {"steel-plate", 1}, - {"copper-cable", 2}, - {"processing-unit", 5}, - }, - result = "roboport-antenna-3", - energy_required = 0.2 - }, - { - type = "recipe", - name = "roboport-antenna-4", - enabled = "false", - ingredients = - { - {"steel-plate", 1}, - {"copper-plate", 1}, - {"copper-cable", 2}, - {"processing-unit", 5}, - }, - result = "roboport-antenna-4", - energy_required = 0.2 - }, -} -) - - -data:extend( -{ - { - type = "recipe", - name = "roboport-chargepad-1", - enabled = "false", - ingredients = - { - {"steel-plate", 2}, - {"advanced-circuit", 5}, - }, - result = "roboport-chargepad-1", - energy_required = 1 - }, - { - type = "recipe", - name = "roboport-chargepad-2", - enabled = "false", - ingredients = - { - {"steel-plate", 2}, - {"advanced-circuit", 5}, - {"battery", 2}, - }, - result = "roboport-chargepad-2", - energy_required = 1 - }, - { - type = "recipe", - name = "roboport-chargepad-3", - enabled = "false", - ingredients = - { - {"steel-plate", 2}, - {"processing-unit", 5}, - {"battery", 2}, - }, - result = "roboport-chargepad-3", - energy_required = 1 - }, - { - type = "recipe", - name = "roboport-chargepad-4", - enabled = "false", - ingredients = - { - {"steel-plate", 2}, - {"processing-unit", 5}, - {"battery", 2}, - }, - result = "roboport-chargepad-4", - energy_required = 1 - }, -} -) - - -data:extend( -{ - { - type = "recipe", - name = "roboport-door-1", - enabled = "false", - ingredients = - { - {"steel-plate", 15}, - {"iron-gear-wheel", 20}, - }, - result = "roboport-door-1", - energy_required = 1 - }, - { - type = "recipe", - name = "roboport-door-2", - enabled = "false", - ingredients = - { - {"steel-plate", 15}, - {"iron-gear-wheel", 20}, - }, - result = "roboport-door-2", - energy_required = 1 - }, - { - type = "recipe", - name = "roboport-door-3", - enabled = "false", - ingredients = - { - {"steel-plate", 15}, - {"iron-gear-wheel", 20}, - }, - result = "roboport-door-3", - energy_required = 1 - }, - { - type = "recipe", - name = "roboport-door-4", - enabled = "false", - ingredients = - { - {"steel-plate", 15}, - {"iron-gear-wheel", 20}, - }, - result = "roboport-door-4", - energy_required = 1 - }, -} -) - - +data:extend( +{ + { + type = "recipe", + name = "roboport-antenna-1", + enabled = "false", + ingredients = + { + {"steel-plate", 1}, + {"copper-cable", 2}, + {"advanced-circuit", 5}, + }, + result = "roboport-antenna-1", + energy_required = 0.2 + }, + { + type = "recipe", + name = "roboport-antenna-2", + enabled = "false", + ingredients = + { + {"steel-plate", 1}, + {"copper-cable", 2}, + {"advanced-circuit", 5}, + }, + result = "roboport-antenna-2", + energy_required = 0.2 + }, + { + type = "recipe", + name = "roboport-antenna-3", + enabled = "false", + ingredients = + { + {"steel-plate", 1}, + {"copper-cable", 2}, + {"processing-unit", 5}, + }, + result = "roboport-antenna-3", + energy_required = 0.2 + }, + { + type = "recipe", + name = "roboport-antenna-4", + enabled = "false", + ingredients = + { + {"steel-plate", 1}, + {"copper-plate", 1}, + {"copper-cable", 2}, + {"processing-unit", 5}, + }, + result = "roboport-antenna-4", + energy_required = 0.2 + }, +} +) + + +data:extend( +{ + { + type = "recipe", + name = "roboport-chargepad-1", + enabled = "false", + ingredients = + { + {"steel-plate", 2}, + {"advanced-circuit", 5}, + }, + result = "roboport-chargepad-1", + energy_required = 1 + }, + { + type = "recipe", + name = "roboport-chargepad-2", + enabled = "false", + ingredients = + { + {"steel-plate", 2}, + {"advanced-circuit", 5}, + {"battery", 2}, + }, + result = "roboport-chargepad-2", + energy_required = 1 + }, + { + type = "recipe", + name = "roboport-chargepad-3", + enabled = "false", + ingredients = + { + {"steel-plate", 2}, + {"processing-unit", 5}, + {"battery", 2}, + }, + result = "roboport-chargepad-3", + energy_required = 1 + }, + { + type = "recipe", + name = "roboport-chargepad-4", + enabled = "false", + ingredients = + { + {"steel-plate", 2}, + {"processing-unit", 5}, + {"battery", 2}, + }, + result = "roboport-chargepad-4", + energy_required = 1 + }, +} +) + + +data:extend( +{ + { + type = "recipe", + name = "roboport-door-1", + enabled = "false", + ingredients = + { + {"steel-plate", 15}, + {"iron-gear-wheel", 20}, + }, + result = "roboport-door-1", + energy_required = 1 + }, + { + type = "recipe", + name = "roboport-door-2", + enabled = "false", + ingredients = + { + {"steel-plate", 15}, + {"iron-gear-wheel", 20}, + }, + result = "roboport-door-2", + energy_required = 1 + }, + { + type = "recipe", + name = "roboport-door-3", + enabled = "false", + ingredients = + { + {"steel-plate", 15}, + {"iron-gear-wheel", 20}, + }, + result = "roboport-door-3", + energy_required = 1 + }, + { + type = "recipe", + name = "roboport-door-4", + enabled = "false", + ingredients = + { + {"steel-plate", 15}, + {"iron-gear-wheel", 20}, + }, + result = "roboport-door-4", + energy_required = 1 + }, +} +) + + diff --git a/boblogistics_0.14.0/prototypes/recipe/roboport-recipe-updates.lua b/boblogistics_0.14.2/prototypes/recipe/roboport-recipe-updates.lua similarity index 97% rename from boblogistics_0.14.0/prototypes/recipe/roboport-recipe-updates.lua rename to boblogistics_0.14.2/prototypes/recipe/roboport-recipe-updates.lua index 14759fd..6966376 100644 --- a/boblogistics_0.14.0/prototypes/recipe/roboport-recipe-updates.lua +++ b/boblogistics_0.14.2/prototypes/recipe/roboport-recipe-updates.lua @@ -1,126 +1,126 @@ -if bobmods.logistics.RoboportRecipeUpdate then - data.raw.recipe["roboport"].ingredients = {{"steel-plate", 15}, {"roboport-antenna-1", 5}, {"roboport-chargepad-1", 4}, {"roboport-door-1", 1}} -end - - - - -if data.raw.item["aluminium-plate"] then - bobmods.lib.recipe.replace_ingredient("roboport-antenna-2", "steel-plate", "aluminium-plate") - bobmods.lib.tech.add_prerequisite("bob-robo-modular-2", "aluminium-processing") -end - -if data.raw.item["tinned-copper-cable"] then - bobmods.lib.recipe.replace_ingredient("roboport-antenna-2", "copper-cable", "tinned-copper-cable") -end - - -if data.raw.item["steel-bearing"] then - bobmods.lib.recipe.add_ingredient("roboport-door-2", {"steel-bearing", 20}) -else - bobmods.lib.recipe.add_ingredient("roboport-door-2", {"iron-gear-wheel", 20}) -end - -if data.raw.item["steel-gear-wheel"] then - bobmods.lib.recipe.replace_ingredient("roboport-door-2", "iron-gear-wheel", "steel-gear-wheel") -end - - - - - -if data.raw.item["nickel-plate"] then - bobmods.lib.recipe.replace_ingredient("roboport-antenna-3", "steel-plate", "nickel-plate") - bobmods.lib.tech.add_prerequisite("bob-robo-modular-3", "nickel-processing") -end - -if data.raw.item["insulated-cable"] then - bobmods.lib.recipe.replace_ingredient("roboport-antenna-3", "copper-cable", "insulated-cable") -end - -if data.raw.item["lithium-ion-battery"] then - bobmods.lib.recipe.replace_ingredient("roboport-chargepad-3", "battery", "lithium-ion-battery") - bobmods.lib.tech.add_prerequisite("bob-robo-modular-3", "battery-2") -end - -if data.raw.item["titanium-plate"] then - bobmods.lib.recipe.replace_ingredient("roboport-chargepad-3", "steel-plate", "titanium-plate") - bobmods.lib.recipe.replace_ingredient("roboport-door-3", "steel-plate", "titanium-plate") - bobmods.lib.recipe.replace_ingredient("bob-roboport-3", "steel-plate", "titanium-plate") - bobmods.lib.recipe.replace_ingredient("bob-robochest-3", "steel-plate", "titanium-plate") - bobmods.lib.recipe.replace_ingredient("bob-logistic-zone-expander-3", "steel-plate", "titanium-plate") - bobmods.lib.recipe.replace_ingredient("bob-robo-charge-port-3", "steel-plate", "titanium-plate") - bobmods.lib.recipe.replace_ingredient("bob-robo-charge-port-large-3", "steel-plate", "titanium-plate") - bobmods.lib.tech.add_prerequisite("bob-robo-modular-3", "titanium-processing") -end - - -if data.raw.item["titanium-bearing"] then - bobmods.lib.recipe.add_ingredient("roboport-door-3", {"titanium-bearing", 20}) -else - bobmods.lib.recipe.add_ingredient("roboport-door-3", {"iron-gear-wheel", 20}) - bobmods.lib.recipe.add_ingredient("roboport-door-3", {type = "fluid", name = "lubricant", amount = 10}) - data.raw.recipe["roboport-door-3"].category = "crafting-with-fluid" -end - -if data.raw.item["titanium-gear-wheel"] then - bobmods.lib.recipe.replace_ingredient("roboport-door-3", "iron-gear-wheel", "titanium-gear-wheel") -end - - - - - -if data.raw.item["nickel-plate"] then - bobmods.lib.recipe.replace_ingredient("roboport-antenna-4", "steel-plate", "nickel-plate") -end - -if data.raw.item["gold-plate"] then - bobmods.lib.recipe.replace_ingredient("roboport-antenna-4", "copper-plate", "gold-plate") - bobmods.lib.tech.add_prerequisite("bob-robo-modular-4", "gold-processing") -end - -if data.raw.item["gilded-copper-cable"] then - bobmods.lib.recipe.replace_ingredient("roboport-antenna-4", "copper-cable", "gilded-copper-cable") -end - -if data.raw.item["advanced-processing-unit"] then - bobmods.lib.recipe.replace_ingredient("roboport-antenna-4", "processing-unit", "advanced-processing-unit") - bobmods.lib.recipe.replace_ingredient("roboport-chargepad-4", "processing-unit", "advanced-processing-unit") - bobmods.lib.tech.add_prerequisite("bob-robo-modular-4", "advanced-electronics-3") -end - -if data.raw.item["silver-zinc-battery"] then - bobmods.lib.recipe.replace_ingredient("roboport-chargepad-4", "battery", "silver-zinc-battery") - bobmods.lib.tech.add_prerequisite("bob-robo-modular-4", "battery-3") -else - if data.raw.item["lithium-ion-battery"] then - bobmods.lib.recipe.replace_ingredient("roboport-chargepad-4", "battery", "lithium-ion-battery") - end -end - -if data.raw.item["nitinol-alloy"] then - bobmods.lib.recipe.replace_ingredient("roboport-chargepad-4", "steel-plate", "nitinol-alloy") - bobmods.lib.recipe.replace_ingredient("roboport-door-4", "steel-plate", "nitinol-alloy") - bobmods.lib.recipe.replace_ingredient("bob-roboport-4", "steel-plate", "nitinol-alloy") - bobmods.lib.recipe.replace_ingredient("bob-robochest-4", "steel-plate", "nitinol-alloy") - bobmods.lib.recipe.replace_ingredient("bob-logistic-zone-expander-4", "steel-plate", "nitinol-alloy") - bobmods.lib.recipe.replace_ingredient("bob-robo-charge-port-4", "steel-plate", "nitinol-alloy") - bobmods.lib.recipe.replace_ingredient("bob-robo-charge-port-large-4", "steel-plate", "nitinol-alloy") - bobmods.lib.tech.add_prerequisite("bob-robo-modular-4", "nitinol-processing") -end - -if data.raw.item["nitinol-bearing"] then - bobmods.lib.recipe.add_ingredient("roboport-door-4", {"nitinol-bearing", 20}) -else - bobmods.lib.recipe.add_ingredient("roboport-door-4", {"iron-gear-wheel", 30}) - bobmods.lib.recipe.add_ingredient("roboport-door-4", {type = "fluid", name = "lubricant", amount = 15}) - data.raw.recipe["roboport-door-4"].category = "crafting-with-fluid" -end - -if data.raw.item["nitinol-gear-wheel"] then - bobmods.lib.recipe.replace_ingredient("roboport-door-4", "iron-gear-wheel", "nitinol-gear-wheel") -end - - - +if bobmods.logistics.RoboportRecipeUpdate then + data.raw.recipe["roboport"].ingredients = {{"steel-plate", 15}, {"roboport-antenna-1", 5}, {"roboport-chargepad-1", 4}, {"roboport-door-1", 1}} +end + + + + +if data.raw.item["aluminium-plate"] then + bobmods.lib.recipe.replace_ingredient("roboport-antenna-2", "steel-plate", "aluminium-plate") + bobmods.lib.tech.add_prerequisite("bob-robo-modular-2", "aluminium-processing") +end + +if data.raw.item["tinned-copper-cable"] then + bobmods.lib.recipe.replace_ingredient("roboport-antenna-2", "copper-cable", "tinned-copper-cable") +end + + +if data.raw.item["steel-bearing"] then + bobmods.lib.recipe.add_ingredient("roboport-door-2", {"steel-bearing", 20}) +else + bobmods.lib.recipe.add_ingredient("roboport-door-2", {"iron-gear-wheel", 20}) +end + +if data.raw.item["steel-gear-wheel"] then + bobmods.lib.recipe.replace_ingredient("roboport-door-2", "iron-gear-wheel", "steel-gear-wheel") +end + + + + + +if data.raw.item["nickel-plate"] then + bobmods.lib.recipe.replace_ingredient("roboport-antenna-3", "steel-plate", "nickel-plate") + bobmods.lib.tech.add_prerequisite("bob-robo-modular-3", "nickel-processing") +end + +if data.raw.item["insulated-cable"] then + bobmods.lib.recipe.replace_ingredient("roboport-antenna-3", "copper-cable", "insulated-cable") +end + +if data.raw.item["lithium-ion-battery"] then + bobmods.lib.recipe.replace_ingredient("roboport-chargepad-3", "battery", "lithium-ion-battery") + bobmods.lib.tech.add_prerequisite("bob-robo-modular-3", "battery-2") +end + +if data.raw.item["titanium-plate"] then + bobmods.lib.recipe.replace_ingredient("roboport-chargepad-3", "steel-plate", "titanium-plate") + bobmods.lib.recipe.replace_ingredient("roboport-door-3", "steel-plate", "titanium-plate") + bobmods.lib.recipe.replace_ingredient("bob-roboport-3", "steel-plate", "titanium-plate") + bobmods.lib.recipe.replace_ingredient("bob-robochest-3", "steel-plate", "titanium-plate") + bobmods.lib.recipe.replace_ingredient("bob-logistic-zone-expander-3", "steel-plate", "titanium-plate") + bobmods.lib.recipe.replace_ingredient("bob-robo-charge-port-3", "steel-plate", "titanium-plate") + bobmods.lib.recipe.replace_ingredient("bob-robo-charge-port-large-3", "steel-plate", "titanium-plate") + bobmods.lib.tech.add_prerequisite("bob-robo-modular-3", "titanium-processing") +end + + +if data.raw.item["titanium-bearing"] then + bobmods.lib.recipe.add_ingredient("roboport-door-3", {"titanium-bearing", 20}) +else + bobmods.lib.recipe.add_ingredient("roboport-door-3", {"iron-gear-wheel", 20}) + bobmods.lib.recipe.add_ingredient("roboport-door-3", {type = "fluid", name = "lubricant", amount = 10}) + data.raw.recipe["roboport-door-3"].category = "crafting-with-fluid" +end + +if data.raw.item["titanium-gear-wheel"] then + bobmods.lib.recipe.replace_ingredient("roboport-door-3", "iron-gear-wheel", "titanium-gear-wheel") +end + + + + + +if data.raw.item["nickel-plate"] then + bobmods.lib.recipe.replace_ingredient("roboport-antenna-4", "steel-plate", "nickel-plate") +end + +if data.raw.item["gold-plate"] then + bobmods.lib.recipe.replace_ingredient("roboport-antenna-4", "copper-plate", "gold-plate") + bobmods.lib.tech.add_prerequisite("bob-robo-modular-4", "gold-processing") +end + +if data.raw.item["gilded-copper-cable"] then + bobmods.lib.recipe.replace_ingredient("roboport-antenna-4", "copper-cable", "gilded-copper-cable") +end + +if data.raw.item["advanced-processing-unit"] then + bobmods.lib.recipe.replace_ingredient("roboport-antenna-4", "processing-unit", "advanced-processing-unit") + bobmods.lib.recipe.replace_ingredient("roboport-chargepad-4", "processing-unit", "advanced-processing-unit") + bobmods.lib.tech.add_prerequisite("bob-robo-modular-4", "advanced-electronics-3") +end + +if data.raw.item["silver-zinc-battery"] then + bobmods.lib.recipe.replace_ingredient("roboport-chargepad-4", "battery", "silver-zinc-battery") + bobmods.lib.tech.add_prerequisite("bob-robo-modular-4", "battery-3") +else + if data.raw.item["lithium-ion-battery"] then + bobmods.lib.recipe.replace_ingredient("roboport-chargepad-4", "battery", "lithium-ion-battery") + end +end + +if data.raw.item["nitinol-alloy"] then + bobmods.lib.recipe.replace_ingredient("roboport-chargepad-4", "steel-plate", "nitinol-alloy") + bobmods.lib.recipe.replace_ingredient("roboport-door-4", "steel-plate", "nitinol-alloy") + bobmods.lib.recipe.replace_ingredient("bob-roboport-4", "steel-plate", "nitinol-alloy") + bobmods.lib.recipe.replace_ingredient("bob-robochest-4", "steel-plate", "nitinol-alloy") + bobmods.lib.recipe.replace_ingredient("bob-logistic-zone-expander-4", "steel-plate", "nitinol-alloy") + bobmods.lib.recipe.replace_ingredient("bob-robo-charge-port-4", "steel-plate", "nitinol-alloy") + bobmods.lib.recipe.replace_ingredient("bob-robo-charge-port-large-4", "steel-plate", "nitinol-alloy") + bobmods.lib.tech.add_prerequisite("bob-robo-modular-4", "nitinol-processing") +end + +if data.raw.item["nitinol-bearing"] then + bobmods.lib.recipe.add_ingredient("roboport-door-4", {"nitinol-bearing", 20}) +else + bobmods.lib.recipe.add_ingredient("roboport-door-4", {"iron-gear-wheel", 30}) + bobmods.lib.recipe.add_ingredient("roboport-door-4", {type = "fluid", name = "lubricant", amount = 15}) + data.raw.recipe["roboport-door-4"].category = "crafting-with-fluid" +end + +if data.raw.item["nitinol-gear-wheel"] then + bobmods.lib.recipe.replace_ingredient("roboport-door-4", "iron-gear-wheel", "nitinol-gear-wheel") +end + + + diff --git a/boblogistics_0.14.0/prototypes/recipe/roboport-recipe.lua b/boblogistics_0.14.2/prototypes/recipe/roboport-recipe.lua similarity index 95% rename from boblogistics_0.14.0/prototypes/recipe/roboport-recipe.lua rename to boblogistics_0.14.2/prototypes/recipe/roboport-recipe.lua index 233da4e..8646575 100644 --- a/boblogistics_0.14.0/prototypes/recipe/roboport-recipe.lua +++ b/boblogistics_0.14.2/prototypes/recipe/roboport-recipe.lua @@ -1,322 +1,322 @@ -data:extend( -{ - { - type = "recipe", - name = "bob-roboport-2", - enabled = "false", - ingredients = - { - {"roboport", 1}, - {"steel-plate", 15}, - {"roboport-antenna-2", 5}, - {"roboport-chargepad-2", 4}, - {"roboport-door-2", 1}, - }, - result = "bob-roboport-2", - energy_required = 20 - }, - - { - type = "recipe", - name = "bob-roboport-3", - enabled = "false", - ingredients = - { - {"bob-roboport-2", 1}, - {"steel-plate", 15}, - {"roboport-antenna-3", 5}, - {"roboport-chargepad-3", 4}, - {"roboport-door-3", 1}, - }, - result = "bob-roboport-3", - energy_required = 25 - }, - - { - type = "recipe", - name = "bob-roboport-4", - enabled = "false", - ingredients = - { - {"bob-roboport-3", 1}, - {"steel-plate", 15}, - {"roboport-antenna-4", 5}, - {"roboport-chargepad-4", 4}, - {"roboport-door-4", 1}, - }, - result = "bob-roboport-4", - energy_required = 30 - }, -} -) - - - -data:extend( -{ - { - type = "recipe", - name = "bob-robochest", - enabled = "false", - ingredients = - { - {"steel-chest", 1}, - {"roboport-antenna-1", 1}, - {"roboport-chargepad-1", 1}, - {"roboport-door-1", 1}, - }, - result = "bob-robochest", - energy_required = 5 - }, - - { - type = "recipe", - name = "bob-robochest-2", - enabled = "false", - ingredients = - { - {"bob-robochest", 1}, - {"steel-plate", 8}, - {"roboport-chargepad-2", 1}, - {"roboport-door-2", 1}, - }, - result = "bob-robochest-2", - energy_required = 5 - }, - - { - type = "recipe", - name = "bob-robochest-3", - enabled = "false", - ingredients = - { - {"bob-robochest-2", 1}, - {"steel-plate", 8}, - {"roboport-chargepad-3", 1}, - {"roboport-door-3", 1}, - }, - result = "bob-robochest-3", - energy_required = 5 - }, - - { - type = "recipe", - name = "bob-robochest-4", - enabled = "false", - ingredients = - { - {"bob-robochest-3", 1}, - {"steel-plate", 8}, - {"roboport-chargepad-4", 1}, - {"roboport-door-4", 1}, - }, - result = "bob-robochest-4", - energy_required = 5 - }, -} -) - - - -data:extend( -{ - { - type = "recipe", - name = "bob-logistic-zone-expander", - enabled = "false", - ingredients = - { - {"steel-plate", 5}, - {"roboport-antenna-1", 3}, --- {"roboport-chargepad-1", 1}, - }, - result = "bob-logistic-zone-expander", - energy_required = 5 - }, - - { - type = "recipe", - name = "bob-logistic-zone-expander-2", - enabled = "false", - ingredients = - { - {"bob-logistic-zone-expander", 1}, - {"steel-plate", 5}, - {"roboport-antenna-2", 3}, --- {"roboport-chargepad-2", 1}, - }, - result = "bob-logistic-zone-expander-2", - energy_required = 5 - }, - - { - type = "recipe", - name = "bob-logistic-zone-expander-3", - enabled = "false", - ingredients = - { - {"bob-logistic-zone-expander-2", 1}, - {"steel-plate", 5}, - {"roboport-antenna-3", 3}, --- {"roboport-chargepad-3", 1}, - }, - result = "bob-logistic-zone-expander-3", - energy_required = 5 - }, - - { - type = "recipe", - name = "bob-logistic-zone-expander-4", - enabled = "false", - ingredients = - { - {"bob-logistic-zone-expander-3", 1}, - {"steel-plate", 5}, - {"roboport-antenna-4", 3}, --- {"roboport-chargepad-4", 1}, - }, - result = "bob-logistic-zone-expander-4", - energy_required = 5 - }, -} -) - - - -data:extend( -{ - { - type = "recipe", - name = "bob-robo-charge-port", - enabled = "false", - ingredients = - { - {"steel-plate", 10}, - {"roboport-antenna-1", 1}, - {"roboport-chargepad-1", 4}, - }, - result = "bob-robo-charge-port", - energy_required = 5 - }, - - { - type = "recipe", - name = "bob-robo-charge-port-2", - enabled = "false", - ingredients = - { - {"bob-robo-charge-port", 1}, - {"steel-plate", 10}, - {"roboport-chargepad-2", 4}, - }, - result = "bob-robo-charge-port-2", - energy_required = 5 - }, - - { - type = "recipe", - name = "bob-robo-charge-port-3", - enabled = "false", - ingredients = - { - {"bob-robo-charge-port-2", 1}, - {"steel-plate", 10}, - {"roboport-chargepad-3", 4}, - }, - result = "bob-robo-charge-port-3", - energy_required = 5 - }, - - { - type = "recipe", - name = "bob-robo-charge-port-4", - enabled = "false", - ingredients = - { - {"bob-robo-charge-port-3", 1}, - {"steel-plate", 10}, - {"roboport-chargepad-4", 4}, - }, - result = "bob-robo-charge-port-4", - energy_required = 5 - }, - - - { - type = "recipe", - name = "bob-robo-charge-port-large", - enabled = "false", - ingredients = - { - {"steel-plate", 15}, - {"roboport-antenna-1", 1}, - {"roboport-chargepad-1", 9}, - }, - result = "bob-robo-charge-port-large", - energy_required = 5 - }, - - { - type = "recipe", - name = "bob-robo-charge-port-large-2", - enabled = "false", - ingredients = - { - {"bob-robo-charge-port-large", 1}, - {"steel-plate", 15}, - {"roboport-chargepad-2", 9}, - }, - result = "bob-robo-charge-port-large-2", - energy_required = 5 - }, - - { - type = "recipe", - name = "bob-robo-charge-port-large-3", - enabled = "false", - ingredients = - { - {"bob-robo-charge-port-large-2", 1}, - {"steel-plate", 15}, - {"roboport-chargepad-3", 9}, - }, - result = "bob-robo-charge-port-large-3", - energy_required = 5 - }, - - { - type = "recipe", - name = "bob-robo-charge-port-large-4", - enabled = "false", - ingredients = - { - {"bob-robo-charge-port-large-3", 1}, - {"steel-plate", 15}, - {"roboport-chargepad-4", 9}, - }, - result = "bob-robo-charge-port-large-4", - energy_required = 5 - }, -} -) - - -data:extend( -{ - { - type = "recipe", - name = "bob-logistic-zone-interface", - enabled = "false", - ingredients = - { - {"steel-plate", 5}, - {"roboport-antenna-1", 1}, - {"advanced-circuit", 2} - }, - result = "bob-logistic-zone-interface", - energy_required = 2 - } -} -) - - +data:extend( +{ + { + type = "recipe", + name = "bob-roboport-2", + enabled = "false", + ingredients = + { + {"roboport", 1}, + {"steel-plate", 15}, + {"roboport-antenna-2", 5}, + {"roboport-chargepad-2", 4}, + {"roboport-door-2", 1}, + }, + result = "bob-roboport-2", + energy_required = 20 + }, + + { + type = "recipe", + name = "bob-roboport-3", + enabled = "false", + ingredients = + { + {"bob-roboport-2", 1}, + {"steel-plate", 15}, + {"roboport-antenna-3", 5}, + {"roboport-chargepad-3", 4}, + {"roboport-door-3", 1}, + }, + result = "bob-roboport-3", + energy_required = 25 + }, + + { + type = "recipe", + name = "bob-roboport-4", + enabled = "false", + ingredients = + { + {"bob-roboport-3", 1}, + {"steel-plate", 15}, + {"roboport-antenna-4", 5}, + {"roboport-chargepad-4", 4}, + {"roboport-door-4", 1}, + }, + result = "bob-roboport-4", + energy_required = 30 + }, +} +) + + + +data:extend( +{ + { + type = "recipe", + name = "bob-robochest", + enabled = "false", + ingredients = + { + {"steel-chest", 1}, + {"roboport-antenna-1", 1}, + {"roboport-chargepad-1", 1}, + {"roboport-door-1", 1}, + }, + result = "bob-robochest", + energy_required = 5 + }, + + { + type = "recipe", + name = "bob-robochest-2", + enabled = "false", + ingredients = + { + {"bob-robochest", 1}, + {"steel-plate", 8}, + {"roboport-chargepad-2", 1}, + {"roboport-door-2", 1}, + }, + result = "bob-robochest-2", + energy_required = 5 + }, + + { + type = "recipe", + name = "bob-robochest-3", + enabled = "false", + ingredients = + { + {"bob-robochest-2", 1}, + {"steel-plate", 8}, + {"roboport-chargepad-3", 1}, + {"roboport-door-3", 1}, + }, + result = "bob-robochest-3", + energy_required = 5 + }, + + { + type = "recipe", + name = "bob-robochest-4", + enabled = "false", + ingredients = + { + {"bob-robochest-3", 1}, + {"steel-plate", 8}, + {"roboport-chargepad-4", 1}, + {"roboport-door-4", 1}, + }, + result = "bob-robochest-4", + energy_required = 5 + }, +} +) + + + +data:extend( +{ + { + type = "recipe", + name = "bob-logistic-zone-expander", + enabled = "false", + ingredients = + { + {"steel-plate", 5}, + {"roboport-antenna-1", 3}, +-- {"roboport-chargepad-1", 1}, + }, + result = "bob-logistic-zone-expander", + energy_required = 5 + }, + + { + type = "recipe", + name = "bob-logistic-zone-expander-2", + enabled = "false", + ingredients = + { + {"bob-logistic-zone-expander", 1}, + {"steel-plate", 5}, + {"roboport-antenna-2", 3}, +-- {"roboport-chargepad-2", 1}, + }, + result = "bob-logistic-zone-expander-2", + energy_required = 5 + }, + + { + type = "recipe", + name = "bob-logistic-zone-expander-3", + enabled = "false", + ingredients = + { + {"bob-logistic-zone-expander-2", 1}, + {"steel-plate", 5}, + {"roboport-antenna-3", 3}, +-- {"roboport-chargepad-3", 1}, + }, + result = "bob-logistic-zone-expander-3", + energy_required = 5 + }, + + { + type = "recipe", + name = "bob-logistic-zone-expander-4", + enabled = "false", + ingredients = + { + {"bob-logistic-zone-expander-3", 1}, + {"steel-plate", 5}, + {"roboport-antenna-4", 3}, +-- {"roboport-chargepad-4", 1}, + }, + result = "bob-logistic-zone-expander-4", + energy_required = 5 + }, +} +) + + + +data:extend( +{ + { + type = "recipe", + name = "bob-robo-charge-port", + enabled = "false", + ingredients = + { + {"steel-plate", 10}, + {"roboport-antenna-1", 1}, + {"roboport-chargepad-1", 4}, + }, + result = "bob-robo-charge-port", + energy_required = 5 + }, + + { + type = "recipe", + name = "bob-robo-charge-port-2", + enabled = "false", + ingredients = + { + {"bob-robo-charge-port", 1}, + {"steel-plate", 10}, + {"roboport-chargepad-2", 4}, + }, + result = "bob-robo-charge-port-2", + energy_required = 5 + }, + + { + type = "recipe", + name = "bob-robo-charge-port-3", + enabled = "false", + ingredients = + { + {"bob-robo-charge-port-2", 1}, + {"steel-plate", 10}, + {"roboport-chargepad-3", 4}, + }, + result = "bob-robo-charge-port-3", + energy_required = 5 + }, + + { + type = "recipe", + name = "bob-robo-charge-port-4", + enabled = "false", + ingredients = + { + {"bob-robo-charge-port-3", 1}, + {"steel-plate", 10}, + {"roboport-chargepad-4", 4}, + }, + result = "bob-robo-charge-port-4", + energy_required = 5 + }, + + + { + type = "recipe", + name = "bob-robo-charge-port-large", + enabled = "false", + ingredients = + { + {"steel-plate", 15}, + {"roboport-antenna-1", 1}, + {"roboport-chargepad-1", 9}, + }, + result = "bob-robo-charge-port-large", + energy_required = 5 + }, + + { + type = "recipe", + name = "bob-robo-charge-port-large-2", + enabled = "false", + ingredients = + { + {"bob-robo-charge-port-large", 1}, + {"steel-plate", 15}, + {"roboport-chargepad-2", 9}, + }, + result = "bob-robo-charge-port-large-2", + energy_required = 5 + }, + + { + type = "recipe", + name = "bob-robo-charge-port-large-3", + enabled = "false", + ingredients = + { + {"bob-robo-charge-port-large-2", 1}, + {"steel-plate", 15}, + {"roboport-chargepad-3", 9}, + }, + result = "bob-robo-charge-port-large-3", + energy_required = 5 + }, + + { + type = "recipe", + name = "bob-robo-charge-port-large-4", + enabled = "false", + ingredients = + { + {"bob-robo-charge-port-large-3", 1}, + {"steel-plate", 15}, + {"roboport-chargepad-4", 9}, + }, + result = "bob-robo-charge-port-large-4", + energy_required = 5 + }, +} +) + + +data:extend( +{ + { + type = "recipe", + name = "bob-logistic-zone-interface", + enabled = "false", + ingredients = + { + {"steel-plate", 5}, + {"roboport-antenna-1", 1}, + {"advanced-circuit", 2} + }, + result = "bob-logistic-zone-interface", + energy_required = 2 + } +} +) + + diff --git a/boblogistics_0.14.0/prototypes/recipe/robots-recipe-updates.lua b/boblogistics_0.14.2/prototypes/recipe/robots-recipe-updates.lua similarity index 97% rename from boblogistics_0.14.0/prototypes/recipe/robots-recipe-updates.lua rename to boblogistics_0.14.2/prototypes/recipe/robots-recipe-updates.lua index f4f3683..700e9ec 100644 --- a/boblogistics_0.14.0/prototypes/recipe/robots-recipe-updates.lua +++ b/boblogistics_0.14.2/prototypes/recipe/robots-recipe-updates.lua @@ -1,378 +1,378 @@ -if bobmods.logistics.RobotRequirePrevious == true then - bobmods.lib.recipe.add_ingredient("bob-logistic-robot-2", {"logistic-robot", 1}) - bobmods.lib.recipe.add_ingredient("bob-construction-robot-2", {"construction-robot", 1}) - bobmods.lib.recipe.add_ingredient("bob-logistic-robot-3", {"bob-logistic-robot-2", 1}) - bobmods.lib.recipe.add_ingredient("bob-construction-robot-3", {"bob-construction-robot-2", 1}) - bobmods.lib.recipe.add_ingredient("bob-logistic-robot-4", {"bob-logistic-robot-3", 1}) - bobmods.lib.recipe.add_ingredient("bob-construction-robot-4", {"bob-construction-robot-3", 1}) -end - - - - -if data.raw.recipe["robot-brain-logistic"] then - if data.raw["recipe-category"]["electronics"] then - data.raw.recipe["robot-brain-logistic"].category = "electronics" - end - if data.raw.item["circuit-board"] and data.raw.item["basic-electronic-components"] and data.raw.item["electronic-components"] then - bobmods.lib.recipe.add_ingredient("robot-brain-logistic", {"circuit-board", 1}) - bobmods.lib.recipe.add_ingredient("robot-brain-logistic", {"basic-electronic-components", 6}) - bobmods.lib.recipe.add_ingredient("robot-brain-logistic", {"electronic-components", 4}) - else - bobmods.lib.recipe.add_ingredient("robot-brain-logistic", {"electronic-circuit", 2}) - bobmods.lib.recipe.add_ingredient("robot-brain-logistic", {"advanced-circuit", 2}) - end -end - -if data.raw.recipe["robot-brain-construction"] then - if data.raw["recipe-category"]["electronics"] then - data.raw.recipe["robot-brain-construction"].category = "electronics" - end - if data.raw.item["circuit-board"] and data.raw.item["basic-electronic-components"] and data.raw.item["electronic-components"] then - bobmods.lib.recipe.add_ingredient("robot-brain-construction", {"circuit-board", 1}) - bobmods.lib.recipe.add_ingredient("robot-brain-construction", {"basic-electronic-components", 8}) - bobmods.lib.recipe.add_ingredient("robot-brain-construction", {"electronic-components", 3}) - else - bobmods.lib.recipe.add_ingredient("robot-brain-construction", {"electronic-circuit", 3}) - bobmods.lib.recipe.add_ingredient("robot-brain-construction", {"advanced-circuit", 1}) - end -end - - - -if data.raw.recipe["robot-brain-logistic-2"] then - if data.raw["recipe-category"]["electronics"] then - data.raw.recipe["robot-brain-logistic-2"].category = "electronics" - end - if data.raw.item["circuit-board"] and data.raw.item["basic-electronic-components"] and data.raw.item["electronic-components"] then - bobmods.lib.recipe.add_ingredient("robot-brain-logistic-2", {"circuit-board", 1}) - bobmods.lib.recipe.add_ingredient("robot-brain-logistic-2", {"basic-electronic-components", 10}) - bobmods.lib.recipe.add_ingredient("robot-brain-logistic-2", {"electronic-components", 6}) - else - bobmods.lib.recipe.add_ingredient("robot-brain-logistic-2", {"advanced-circuit", 4}) - end -end - -if data.raw.recipe["robot-brain-construction-2"] then - if data.raw["recipe-category"]["electronics"] then - data.raw.recipe["robot-brain-construction-2"].category = "electronics" - end - if data.raw.item["circuit-board"] and data.raw.item["basic-electronic-components"] and data.raw.item["electronic-components"] then - bobmods.lib.recipe.add_ingredient("robot-brain-construction-2", {"circuit-board", 1}) - bobmods.lib.recipe.add_ingredient("robot-brain-construction-2", {"basic-electronic-components", 12}) - bobmods.lib.recipe.add_ingredient("robot-brain-construction-2", {"electronic-components", 4}) - else - bobmods.lib.recipe.add_ingredient("robot-brain-construction-2", {"electronic-circuit", 1}) - bobmods.lib.recipe.add_ingredient("robot-brain-construction-2", {"advanced-circuit", 3}) - end -end - - - -if data.raw.recipe["robot-brain-logistic-3"] then - if data.raw["recipe-category"]["electronics"] then - data.raw.recipe["robot-brain-logistic-3"].category = "electronics" - end - if data.raw.item["superior-circuit-board"] and data.raw.item["basic-electronic-components"] and data.raw.item["electronic-components"] and data.raw.item["intergrated-electronics"] then - bobmods.lib.recipe.add_ingredient("robot-brain-logistic-3", {"superior-circuit-board", 1}) - bobmods.lib.recipe.add_ingredient("robot-brain-logistic-3", {"basic-electronic-components", 4}) - bobmods.lib.recipe.add_ingredient("robot-brain-logistic-3", {"electronic-components", 6}) - bobmods.lib.recipe.add_ingredient("robot-brain-logistic-3", {"intergrated-electronics", 6}) - else - bobmods.lib.recipe.add_ingredient("robot-brain-logistic-3", {"advanced-circuit", 2}) - bobmods.lib.recipe.add_ingredient("robot-brain-logistic-3", {"processing-unit", 2}) - end -end - -if data.raw.recipe["robot-brain-construction-3"] then - if data.raw["recipe-category"]["electronics"] then - data.raw.recipe["robot-brain-construction-3"].category = "electronics" - end - if data.raw.item["superior-circuit-board"] and data.raw.item["basic-electronic-components"] and data.raw.item["electronic-components"] and data.raw.item["intergrated-electronics"] then - bobmods.lib.recipe.add_ingredient("robot-brain-construction-3", {"superior-circuit-board", 1}) - bobmods.lib.recipe.add_ingredient("robot-brain-construction-3", {"basic-electronic-components", 4}) - bobmods.lib.recipe.add_ingredient("robot-brain-construction-3", {"electronic-components", 8}) - bobmods.lib.recipe.add_ingredient("robot-brain-construction-3", {"intergrated-electronics", 4}) - else - bobmods.lib.recipe.add_ingredient("robot-brain-construction-3", {"advanced-circuit", 3}) - bobmods.lib.recipe.add_ingredient("robot-brain-construction-3", {"processing-unit", 1}) - end -end - - - -if data.raw.recipe["robot-brain-logistic-4"] then - if data.raw["recipe-category"]["electronics"] then - data.raw.recipe["robot-brain-logistic-4"].category = "electronics" - end - if data.raw.item["multi-layer-circuit-board"] and data.raw.item["basic-electronic-components"] and data.raw.item["electronic-components"] and data.raw.item["intergrated-electronics"] and data.raw.item["processing-electronics"] then - bobmods.lib.recipe.add_ingredient("robot-brain-logistic-4", {"multi-layer-circuit-board", 1}) - bobmods.lib.recipe.add_ingredient("robot-brain-logistic-4", {"basic-electronic-components", 2}) - bobmods.lib.recipe.add_ingredient("robot-brain-logistic-4", {"electronic-components", 4}) - bobmods.lib.recipe.add_ingredient("robot-brain-logistic-4", {"intergrated-electronics", 8}) - bobmods.lib.recipe.add_ingredient("robot-brain-logistic-4", {"processing-electronics", 4}) - else - if data.raw.item["advanced-processing-unit"] then - bobmods.lib.recipe.add_ingredient("robot-brain-logistic-4", {"processing-unit", 2}) - bobmods.lib.recipe.add_ingredient("robot-brain-logistic-4", {"advanced-processing-unit", 2}) - else - bobmods.lib.recipe.add_ingredient("robot-brain-logistic-4", {"processing-unit", 4}) - end - end -end - -if data.raw.recipe["robot-brain-construction-4"] then - if data.raw["recipe-category"]["electronics"] then - data.raw.recipe["robot-brain-construction-4"].category = "electronics" - end - if data.raw.item["multi-layer-circuit-board"] and data.raw.item["basic-electronic-components"] and data.raw.item["electronic-components"] and data.raw.item["intergrated-electronics"] and data.raw.item["processing-electronics"] then - bobmods.lib.recipe.add_ingredient("robot-brain-construction-4", {"multi-layer-circuit-board", 1}) - bobmods.lib.recipe.add_ingredient("robot-brain-construction-4", {"basic-electronic-components", 2}) - bobmods.lib.recipe.add_ingredient("robot-brain-construction-4", {"electronic-components", 6}) - bobmods.lib.recipe.add_ingredient("robot-brain-construction-4", {"intergrated-electronics", 6}) - bobmods.lib.recipe.add_ingredient("robot-brain-construction-4", {"processing-electronics", 4}) - else - if data.raw.item["advanced-processing-unit"] then - bobmods.lib.recipe.add_ingredient("robot-brain-construction-4", {"processing-unit", 3}) - bobmods.lib.recipe.add_ingredient("robot-brain-construction-4", {"advanced-processing-unit", 1}) - else - bobmods.lib.recipe.add_ingredient("robot-brain-construction-4", {"advanced-circuit", 1}) - bobmods.lib.recipe.add_ingredient("robot-brain-construction-4", {"processing-unit", 3}) - end - end -end - - - - - -for i, tool in ipairs({"robot-tool-logistic", "robot-tool-construction"}) do - if data.raw.recipe[tool] then - bobmods.lib.recipe.add_ingredient(tool, {"steel-plate", 1}) - if data.raw.item["steel-gear-wheel"] then - bobmods.lib.recipe.add_ingredient(tool, {"steel-gear-wheel", 2}) - else - bobmods.lib.recipe.add_ingredient(tool, {"iron-gear-wheel", 2}) - end - end -end - -for i, tool in ipairs({"robot-tool-logistic-2", "robot-tool-construction-2"}) do - if data.raw.recipe[tool] then - if data.raw.item["aluminium-plate"] then - bobmods.lib.recipe.add_ingredient(tool, {"aluminium-plate", 1}) - else - bobmods.lib.recipe.add_ingredient(tool, {"steel-plate", 1}) - end - if data.raw.item["brass-gear-wheel"] then - bobmods.lib.recipe.add_ingredient(tool, {"brass-gear-wheel", 2}) - else - bobmods.lib.recipe.add_ingredient(tool, {"iron-gear-wheel", 2}) - end - if data.raw.item["steel-bearing"] then - bobmods.lib.recipe.add_ingredient(tool, {"steel-bearing", 2}) - end - end -end - -for i, tool in ipairs({"robot-tool-logistic-3", "robot-tool-construction-3"}) do - if data.raw.recipe[tool] then - if data.raw.item["titanium-plate"] then - bobmods.lib.recipe.add_ingredient(tool, {"titanium-plate", 1}) - else - bobmods.lib.recipe.add_ingredient(tool, {"steel-plate", 1}) - end - if data.raw.item["titanium-gear-wheel"] then - bobmods.lib.recipe.add_ingredient(tool, {"titanium-gear-wheel", 2}) - else - bobmods.lib.recipe.add_ingredient(tool, {"iron-gear-wheel", 2}) - end - if data.raw.item["titanium-bearing"] then - bobmods.lib.recipe.add_ingredient(tool, {"titanium-bearing", 2}) - end - end -end - -for i, tool in ipairs({"robot-tool-logistic-4", "robot-tool-construction-4"}) do - if data.raw.recipe[tool] then - if data.raw.item["silicon-nitride"] then - bobmods.lib.recipe.add_ingredient(tool, {"silicon-nitride", 1}) - else - bobmods.lib.recipe.add_ingredient(tool, {"steel-plate", 1}) - end - if data.raw.item["nitinol-gear-wheel"] then - bobmods.lib.recipe.add_ingredient(tool, {"nitinol-gear-wheel", 2}) - else - bobmods.lib.recipe.add_ingredient(tool, {"iron-gear-wheel", 2}) - end - if data.raw.item["ceramic-bearing"] then - bobmods.lib.recipe.add_ingredient(tool, {"ceramic-bearing", 2}) - end - if tool == "robot-tool-construction-4" and data.raw.item["tungsten-carbide"] then - bobmods.lib.recipe.add_ingredient(tool, {"tungsten-carbide", 1}) - end - end -end - - - - - -if data.raw.item["flying-robot-frame-2"] then - if data.raw.item["aluminium-plate"] then - bobmods.lib.recipe.replace_ingredient("flying-robot-frame-2", "steel-plate", "aluminium-plate") - end - bobmods.lib.recipe.add_ingredient("bob-logistic-robot-2", {"flying-robot-frame-2", 1}) - bobmods.lib.recipe.add_ingredient("bob-construction-robot-2", {"flying-robot-frame-2", 1}) -else - for i, robot in ipairs({"bob-logistic-robot-2", "bob-construction-robot-2"}) do - bobmods.lib.recipe.add_ingredient(robot, {"battery", 2}) - - if data.raw.item["aluminium-plate"] then - bobmods.lib.recipe.add_ingredient(robot, {"aluminium-plate", 1}) - else - bobmods.lib.recipe.add_ingredient(robot, {"steel-plate", 1}) - end - - bobmods.lib.recipe.add_ingredient(robot, {"advanced-circuit", 3}) - end -end - - - -if data.raw.item["flying-robot-frame-3"] then - if data.raw.item["lithium-ion-battery"] then - bobmods.lib.recipe.replace_ingredient("flying-robot-frame-3", "battery", "lithium-ion-battery") - end - - if data.raw.item["titanium-plate"] then - bobmods.lib.recipe.replace_ingredient("flying-robot-frame-3", "steel-plate", "titanium-plate") - end - - bobmods.lib.recipe.add_ingredient("bob-logistic-robot-3", {"flying-robot-frame-3", 1}) - bobmods.lib.recipe.add_ingredient("bob-construction-robot-3", {"flying-robot-frame-3", 1}) -else - for i, robot in ipairs({"bob-logistic-robot-3", "bob-construction-robot-3"}) do - if data.raw.item["lithium-ion-battery"] then - bobmods.lib.recipe.add_ingredient(robot, {"lithium-ion-battery", 2}) - else - bobmods.lib.recipe.add_ingredient(robot, {"battery", 2}) - end - - if data.raw.item["titanium-plate"] then - bobmods.lib.recipe.add_ingredient(robot, {"titanium-plate", 1}) - else - bobmods.lib.recipe.add_ingredient(robot, {"steel-plate", 1}) - end - - bobmods.lib.recipe.add_ingredient(robot, {"processing-unit", 3}) - end -end - - - -if data.raw.item["flying-robot-frame-4"] then - if data.raw.item["silver-zinc-battery"] then - bobmods.lib.recipe.replace_ingredient("flying-robot-frame-4", "battery", "silver-zinc-battery") - else - if data.raw.item["lithium-ion-battery"] then - bobmods.lib.recipe.replace_ingredient("flying-robot-frame-4", "battery", "lithium-ion-battery") - end - end - - if data.raw.item["silicon-nitride"] then - bobmods.lib.recipe.replace_ingredient("flying-robot-frame-4", "steel-plate", "silicon-nitride") - end - - if data.raw.item["advanced-processing-unit"] then - bobmods.lib.recipe.replace_ingredient("flying-robot-frame-4", "processing-unit", "advanced-processing-unit") - end - - bobmods.lib.recipe.add_ingredient("bob-logistic-robot-4", {"flying-robot-frame-4", 1}) - bobmods.lib.recipe.add_ingredient("bob-construction-robot-4", {"flying-robot-frame-4", 1}) -else - for i, robot in ipairs({"bob-logistic-robot-4", "bob-construction-robot-4"}) do - if data.raw.item["silver-zinc-battery"] then - bobmods.lib.recipe.add_ingredient(robot, {"silver-zinc-battery", 2}) - else - if data.raw.item["lithium-ion-battery"] then - bobmods.lib.recipe.add_ingredient(robot, {"lithium-ion-battery", 2}) - else - bobmods.lib.recipe.add_ingredient(robot, {"battery", 2}) - end - end - - if data.raw.item["silicon-nitride"] then - bobmods.lib.recipe.add_ingredient(robot, {"silicon-nitride", 1}) - else - bobmods.lib.recipe.add_ingredient(robot, {"steel-plate", 1}) - end - - if data.raw.item["advanced-processing-unit"] then - bobmods.lib.recipe.add_ingredient(robot, {"advanced-processing-unit", 3}) - else - bobmods.lib.recipe.add_ingredient(robot, {"processing-unit", 3}) - end - end -end - - - - -if data.raw.item["robot-brain-logistic"] and data.raw.item["robot-tool-logistic"] then - data.raw.recipe["logistic-robot"].ingredients = {{"flying-robot-frame", 1}, {"robot-brain-logistic", 1}, {"robot-tool-logistic", 1}} -end -if data.raw.item["robot-brain-construction"] and data.raw.item["robot-tool-construction"] then - data.raw.recipe["construction-robot"].ingredients = {{"flying-robot-frame", 1}, {"robot-brain-construction", 1}, {"robot-tool-construction", 1}} -end - -if data.raw.item["robot-brain-logistic-2"] and data.raw.item["robot-tool-logistic-2"] then - bobmods.lib.recipe.add_ingredient("bob-logistic-robot-2", {"robot-brain-logistic-2", 1}) - bobmods.lib.recipe.add_ingredient("bob-logistic-robot-2", {"robot-tool-logistic-2", 1}) -else - bobmods.lib.recipe.add_ingredient("bob-logistic-robot-2", {"advanced-circuit", 1}) -end - -if data.raw.item["robot-brain-construction-2"] and data.raw.item["robot-tool-construction-2"] then - bobmods.lib.recipe.add_ingredient("bob-construction-robot-2", {"robot-brain-construction-2", 1}) - bobmods.lib.recipe.add_ingredient("bob-construction-robot-2", {"robot-tool-construction-2", 1}) -else - bobmods.lib.recipe.add_ingredient("bob-construction-robot-2", {"advanced-circuit", 1}) -end - -if data.raw.item["robot-brain-logistic-3"] and data.raw.item["robot-tool-logistic-3"]then - bobmods.lib.recipe.add_ingredient("bob-logistic-robot-3", {"robot-brain-logistic-3", 1}) - bobmods.lib.recipe.add_ingredient("bob-logistic-robot-3", {"robot-tool-logistic-3", 1}) -else - bobmods.lib.recipe.add_ingredient("bob-logistic-robot-3", {"processing-unit", 1}) -end - -if data.raw.item["robot-brain-construction-3"] and data.raw.item["robot-tool-construction-3"] then - bobmods.lib.recipe.add_ingredient("bob-construction-robot-3", {"robot-brain-construction-3", 1}) - bobmods.lib.recipe.add_ingredient("bob-construction-robot-3", {"robot-tool-construction-3", 1}) -else - bobmods.lib.recipe.add_ingredient("bob-construction-robot-3", {"processing-unit", 1}) -end - -if data.raw.item["robot-brain-logistic-4"] and data.raw.item["robot-tool-logistic-4"] then - bobmods.lib.recipe.add_ingredient("bob-logistic-robot-4", {"robot-brain-logistic-4", 1}) - bobmods.lib.recipe.add_ingredient("bob-logistic-robot-4", {"robot-tool-logistic-4", 1}) -else - if data.raw.item["advanced-processing-unit"] then - bobmods.lib.recipe.add_ingredient("bob-logistic-robot-4", {"advanced-processing-unit", 1}) - else - bobmods.lib.recipe.add_ingredient("bob-logistic-robot-4", {"processing-unit", 1}) - end -end - -if data.raw.item["robot-brain-construction-4"] and data.raw.item["robot-tool-construction-4"] then - bobmods.lib.recipe.add_ingredient("bob-construction-robot-4", {"robot-brain-construction-4", 1}) - bobmods.lib.recipe.add_ingredient("bob-construction-robot-4", {"robot-tool-construction-4", 1}) -else - if data.raw.item["advanced-processing-unit"] then - bobmods.lib.recipe.add_ingredient("bob-construction-robot-4", {"advanced-processing-unit", 1}) - else - bobmods.lib.recipe.add_ingredient("bob-construction-robot-4", {"processing-unit", 1}) - end -end - +if bobmods.logistics.RobotRequirePrevious == true then + bobmods.lib.recipe.add_ingredient("bob-logistic-robot-2", {"logistic-robot", 1}) + bobmods.lib.recipe.add_ingredient("bob-construction-robot-2", {"construction-robot", 1}) + bobmods.lib.recipe.add_ingredient("bob-logistic-robot-3", {"bob-logistic-robot-2", 1}) + bobmods.lib.recipe.add_ingredient("bob-construction-robot-3", {"bob-construction-robot-2", 1}) + bobmods.lib.recipe.add_ingredient("bob-logistic-robot-4", {"bob-logistic-robot-3", 1}) + bobmods.lib.recipe.add_ingredient("bob-construction-robot-4", {"bob-construction-robot-3", 1}) +end + + + + +if data.raw.recipe["robot-brain-logistic"] then + if data.raw["recipe-category"]["electronics"] then + data.raw.recipe["robot-brain-logistic"].category = "electronics" + end + if data.raw.item["circuit-board"] and data.raw.item["basic-electronic-components"] and data.raw.item["electronic-components"] then + bobmods.lib.recipe.add_ingredient("robot-brain-logistic", {"circuit-board", 1}) + bobmods.lib.recipe.add_ingredient("robot-brain-logistic", {"basic-electronic-components", 6}) + bobmods.lib.recipe.add_ingredient("robot-brain-logistic", {"electronic-components", 4}) + else + bobmods.lib.recipe.add_ingredient("robot-brain-logistic", {"electronic-circuit", 2}) + bobmods.lib.recipe.add_ingredient("robot-brain-logistic", {"advanced-circuit", 2}) + end +end + +if data.raw.recipe["robot-brain-construction"] then + if data.raw["recipe-category"]["electronics"] then + data.raw.recipe["robot-brain-construction"].category = "electronics" + end + if data.raw.item["circuit-board"] and data.raw.item["basic-electronic-components"] and data.raw.item["electronic-components"] then + bobmods.lib.recipe.add_ingredient("robot-brain-construction", {"circuit-board", 1}) + bobmods.lib.recipe.add_ingredient("robot-brain-construction", {"basic-electronic-components", 8}) + bobmods.lib.recipe.add_ingredient("robot-brain-construction", {"electronic-components", 3}) + else + bobmods.lib.recipe.add_ingredient("robot-brain-construction", {"electronic-circuit", 3}) + bobmods.lib.recipe.add_ingredient("robot-brain-construction", {"advanced-circuit", 1}) + end +end + + + +if data.raw.recipe["robot-brain-logistic-2"] then + if data.raw["recipe-category"]["electronics"] then + data.raw.recipe["robot-brain-logistic-2"].category = "electronics" + end + if data.raw.item["circuit-board"] and data.raw.item["basic-electronic-components"] and data.raw.item["electronic-components"] then + bobmods.lib.recipe.add_ingredient("robot-brain-logistic-2", {"circuit-board", 1}) + bobmods.lib.recipe.add_ingredient("robot-brain-logistic-2", {"basic-electronic-components", 10}) + bobmods.lib.recipe.add_ingredient("robot-brain-logistic-2", {"electronic-components", 6}) + else + bobmods.lib.recipe.add_ingredient("robot-brain-logistic-2", {"advanced-circuit", 4}) + end +end + +if data.raw.recipe["robot-brain-construction-2"] then + if data.raw["recipe-category"]["electronics"] then + data.raw.recipe["robot-brain-construction-2"].category = "electronics" + end + if data.raw.item["circuit-board"] and data.raw.item["basic-electronic-components"] and data.raw.item["electronic-components"] then + bobmods.lib.recipe.add_ingredient("robot-brain-construction-2", {"circuit-board", 1}) + bobmods.lib.recipe.add_ingredient("robot-brain-construction-2", {"basic-electronic-components", 12}) + bobmods.lib.recipe.add_ingredient("robot-brain-construction-2", {"electronic-components", 4}) + else + bobmods.lib.recipe.add_ingredient("robot-brain-construction-2", {"electronic-circuit", 1}) + bobmods.lib.recipe.add_ingredient("robot-brain-construction-2", {"advanced-circuit", 3}) + end +end + + + +if data.raw.recipe["robot-brain-logistic-3"] then + if data.raw["recipe-category"]["electronics"] then + data.raw.recipe["robot-brain-logistic-3"].category = "electronics" + end + if data.raw.item["superior-circuit-board"] and data.raw.item["basic-electronic-components"] and data.raw.item["electronic-components"] and data.raw.item["intergrated-electronics"] then + bobmods.lib.recipe.add_ingredient("robot-brain-logistic-3", {"superior-circuit-board", 1}) + bobmods.lib.recipe.add_ingredient("robot-brain-logistic-3", {"basic-electronic-components", 4}) + bobmods.lib.recipe.add_ingredient("robot-brain-logistic-3", {"electronic-components", 6}) + bobmods.lib.recipe.add_ingredient("robot-brain-logistic-3", {"intergrated-electronics", 6}) + else + bobmods.lib.recipe.add_ingredient("robot-brain-logistic-3", {"advanced-circuit", 2}) + bobmods.lib.recipe.add_ingredient("robot-brain-logistic-3", {"processing-unit", 2}) + end +end + +if data.raw.recipe["robot-brain-construction-3"] then + if data.raw["recipe-category"]["electronics"] then + data.raw.recipe["robot-brain-construction-3"].category = "electronics" + end + if data.raw.item["superior-circuit-board"] and data.raw.item["basic-electronic-components"] and data.raw.item["electronic-components"] and data.raw.item["intergrated-electronics"] then + bobmods.lib.recipe.add_ingredient("robot-brain-construction-3", {"superior-circuit-board", 1}) + bobmods.lib.recipe.add_ingredient("robot-brain-construction-3", {"basic-electronic-components", 4}) + bobmods.lib.recipe.add_ingredient("robot-brain-construction-3", {"electronic-components", 8}) + bobmods.lib.recipe.add_ingredient("robot-brain-construction-3", {"intergrated-electronics", 4}) + else + bobmods.lib.recipe.add_ingredient("robot-brain-construction-3", {"advanced-circuit", 3}) + bobmods.lib.recipe.add_ingredient("robot-brain-construction-3", {"processing-unit", 1}) + end +end + + + +if data.raw.recipe["robot-brain-logistic-4"] then + if data.raw["recipe-category"]["electronics"] then + data.raw.recipe["robot-brain-logistic-4"].category = "electronics" + end + if data.raw.item["multi-layer-circuit-board"] and data.raw.item["basic-electronic-components"] and data.raw.item["electronic-components"] and data.raw.item["intergrated-electronics"] and data.raw.item["processing-electronics"] then + bobmods.lib.recipe.add_ingredient("robot-brain-logistic-4", {"multi-layer-circuit-board", 1}) + bobmods.lib.recipe.add_ingredient("robot-brain-logistic-4", {"basic-electronic-components", 2}) + bobmods.lib.recipe.add_ingredient("robot-brain-logistic-4", {"electronic-components", 4}) + bobmods.lib.recipe.add_ingredient("robot-brain-logistic-4", {"intergrated-electronics", 8}) + bobmods.lib.recipe.add_ingredient("robot-brain-logistic-4", {"processing-electronics", 4}) + else + if data.raw.item["advanced-processing-unit"] then + bobmods.lib.recipe.add_ingredient("robot-brain-logistic-4", {"processing-unit", 2}) + bobmods.lib.recipe.add_ingredient("robot-brain-logistic-4", {"advanced-processing-unit", 2}) + else + bobmods.lib.recipe.add_ingredient("robot-brain-logistic-4", {"processing-unit", 4}) + end + end +end + +if data.raw.recipe["robot-brain-construction-4"] then + if data.raw["recipe-category"]["electronics"] then + data.raw.recipe["robot-brain-construction-4"].category = "electronics" + end + if data.raw.item["multi-layer-circuit-board"] and data.raw.item["basic-electronic-components"] and data.raw.item["electronic-components"] and data.raw.item["intergrated-electronics"] and data.raw.item["processing-electronics"] then + bobmods.lib.recipe.add_ingredient("robot-brain-construction-4", {"multi-layer-circuit-board", 1}) + bobmods.lib.recipe.add_ingredient("robot-brain-construction-4", {"basic-electronic-components", 2}) + bobmods.lib.recipe.add_ingredient("robot-brain-construction-4", {"electronic-components", 6}) + bobmods.lib.recipe.add_ingredient("robot-brain-construction-4", {"intergrated-electronics", 6}) + bobmods.lib.recipe.add_ingredient("robot-brain-construction-4", {"processing-electronics", 4}) + else + if data.raw.item["advanced-processing-unit"] then + bobmods.lib.recipe.add_ingredient("robot-brain-construction-4", {"processing-unit", 3}) + bobmods.lib.recipe.add_ingredient("robot-brain-construction-4", {"advanced-processing-unit", 1}) + else + bobmods.lib.recipe.add_ingredient("robot-brain-construction-4", {"advanced-circuit", 1}) + bobmods.lib.recipe.add_ingredient("robot-brain-construction-4", {"processing-unit", 3}) + end + end +end + + + + + +for i, tool in ipairs({"robot-tool-logistic", "robot-tool-construction"}) do + if data.raw.recipe[tool] then + bobmods.lib.recipe.add_ingredient(tool, {"steel-plate", 1}) + if data.raw.item["steel-gear-wheel"] then + bobmods.lib.recipe.add_ingredient(tool, {"steel-gear-wheel", 2}) + else + bobmods.lib.recipe.add_ingredient(tool, {"iron-gear-wheel", 2}) + end + end +end + +for i, tool in ipairs({"robot-tool-logistic-2", "robot-tool-construction-2"}) do + if data.raw.recipe[tool] then + if data.raw.item["aluminium-plate"] then + bobmods.lib.recipe.add_ingredient(tool, {"aluminium-plate", 1}) + else + bobmods.lib.recipe.add_ingredient(tool, {"steel-plate", 1}) + end + if data.raw.item["brass-gear-wheel"] then + bobmods.lib.recipe.add_ingredient(tool, {"brass-gear-wheel", 2}) + else + bobmods.lib.recipe.add_ingredient(tool, {"iron-gear-wheel", 2}) + end + if data.raw.item["steel-bearing"] then + bobmods.lib.recipe.add_ingredient(tool, {"steel-bearing", 2}) + end + end +end + +for i, tool in ipairs({"robot-tool-logistic-3", "robot-tool-construction-3"}) do + if data.raw.recipe[tool] then + if data.raw.item["titanium-plate"] then + bobmods.lib.recipe.add_ingredient(tool, {"titanium-plate", 1}) + else + bobmods.lib.recipe.add_ingredient(tool, {"steel-plate", 1}) + end + if data.raw.item["titanium-gear-wheel"] then + bobmods.lib.recipe.add_ingredient(tool, {"titanium-gear-wheel", 2}) + else + bobmods.lib.recipe.add_ingredient(tool, {"iron-gear-wheel", 2}) + end + if data.raw.item["titanium-bearing"] then + bobmods.lib.recipe.add_ingredient(tool, {"titanium-bearing", 2}) + end + end +end + +for i, tool in ipairs({"robot-tool-logistic-4", "robot-tool-construction-4"}) do + if data.raw.recipe[tool] then + if data.raw.item["silicon-nitride"] then + bobmods.lib.recipe.add_ingredient(tool, {"silicon-nitride", 1}) + else + bobmods.lib.recipe.add_ingredient(tool, {"steel-plate", 1}) + end + if data.raw.item["nitinol-gear-wheel"] then + bobmods.lib.recipe.add_ingredient(tool, {"nitinol-gear-wheel", 2}) + else + bobmods.lib.recipe.add_ingredient(tool, {"iron-gear-wheel", 2}) + end + if data.raw.item["ceramic-bearing"] then + bobmods.lib.recipe.add_ingredient(tool, {"ceramic-bearing", 2}) + end + if tool == "robot-tool-construction-4" and data.raw.item["tungsten-carbide"] then + bobmods.lib.recipe.add_ingredient(tool, {"tungsten-carbide", 1}) + end + end +end + + + + + +if data.raw.item["flying-robot-frame-2"] then + if data.raw.item["aluminium-plate"] then + bobmods.lib.recipe.replace_ingredient("flying-robot-frame-2", "steel-plate", "aluminium-plate") + end + bobmods.lib.recipe.add_ingredient("bob-logistic-robot-2", {"flying-robot-frame-2", 1}) + bobmods.lib.recipe.add_ingredient("bob-construction-robot-2", {"flying-robot-frame-2", 1}) +else + for i, robot in ipairs({"bob-logistic-robot-2", "bob-construction-robot-2"}) do + bobmods.lib.recipe.add_ingredient(robot, {"battery", 2}) + + if data.raw.item["aluminium-plate"] then + bobmods.lib.recipe.add_ingredient(robot, {"aluminium-plate", 1}) + else + bobmods.lib.recipe.add_ingredient(robot, {"steel-plate", 1}) + end + + bobmods.lib.recipe.add_ingredient(robot, {"advanced-circuit", 3}) + end +end + + + +if data.raw.item["flying-robot-frame-3"] then + if data.raw.item["lithium-ion-battery"] then + bobmods.lib.recipe.replace_ingredient("flying-robot-frame-3", "battery", "lithium-ion-battery") + end + + if data.raw.item["titanium-plate"] then + bobmods.lib.recipe.replace_ingredient("flying-robot-frame-3", "steel-plate", "titanium-plate") + end + + bobmods.lib.recipe.add_ingredient("bob-logistic-robot-3", {"flying-robot-frame-3", 1}) + bobmods.lib.recipe.add_ingredient("bob-construction-robot-3", {"flying-robot-frame-3", 1}) +else + for i, robot in ipairs({"bob-logistic-robot-3", "bob-construction-robot-3"}) do + if data.raw.item["lithium-ion-battery"] then + bobmods.lib.recipe.add_ingredient(robot, {"lithium-ion-battery", 2}) + else + bobmods.lib.recipe.add_ingredient(robot, {"battery", 2}) + end + + if data.raw.item["titanium-plate"] then + bobmods.lib.recipe.add_ingredient(robot, {"titanium-plate", 1}) + else + bobmods.lib.recipe.add_ingredient(robot, {"steel-plate", 1}) + end + + bobmods.lib.recipe.add_ingredient(robot, {"processing-unit", 3}) + end +end + + + +if data.raw.item["flying-robot-frame-4"] then + if data.raw.item["silver-zinc-battery"] then + bobmods.lib.recipe.replace_ingredient("flying-robot-frame-4", "battery", "silver-zinc-battery") + else + if data.raw.item["lithium-ion-battery"] then + bobmods.lib.recipe.replace_ingredient("flying-robot-frame-4", "battery", "lithium-ion-battery") + end + end + + if data.raw.item["silicon-nitride"] then + bobmods.lib.recipe.replace_ingredient("flying-robot-frame-4", "steel-plate", "silicon-nitride") + end + + if data.raw.item["advanced-processing-unit"] then + bobmods.lib.recipe.replace_ingredient("flying-robot-frame-4", "processing-unit", "advanced-processing-unit") + end + + bobmods.lib.recipe.add_ingredient("bob-logistic-robot-4", {"flying-robot-frame-4", 1}) + bobmods.lib.recipe.add_ingredient("bob-construction-robot-4", {"flying-robot-frame-4", 1}) +else + for i, robot in ipairs({"bob-logistic-robot-4", "bob-construction-robot-4"}) do + if data.raw.item["silver-zinc-battery"] then + bobmods.lib.recipe.add_ingredient(robot, {"silver-zinc-battery", 2}) + else + if data.raw.item["lithium-ion-battery"] then + bobmods.lib.recipe.add_ingredient(robot, {"lithium-ion-battery", 2}) + else + bobmods.lib.recipe.add_ingredient(robot, {"battery", 2}) + end + end + + if data.raw.item["silicon-nitride"] then + bobmods.lib.recipe.add_ingredient(robot, {"silicon-nitride", 1}) + else + bobmods.lib.recipe.add_ingredient(robot, {"steel-plate", 1}) + end + + if data.raw.item["advanced-processing-unit"] then + bobmods.lib.recipe.add_ingredient(robot, {"advanced-processing-unit", 3}) + else + bobmods.lib.recipe.add_ingredient(robot, {"processing-unit", 3}) + end + end +end + + + + +if data.raw.item["robot-brain-logistic"] and data.raw.item["robot-tool-logistic"] then + data.raw.recipe["logistic-robot"].ingredients = {{"flying-robot-frame", 1}, {"robot-brain-logistic", 1}, {"robot-tool-logistic", 1}} +end +if data.raw.item["robot-brain-construction"] and data.raw.item["robot-tool-construction"] then + data.raw.recipe["construction-robot"].ingredients = {{"flying-robot-frame", 1}, {"robot-brain-construction", 1}, {"robot-tool-construction", 1}} +end + +if data.raw.item["robot-brain-logistic-2"] and data.raw.item["robot-tool-logistic-2"] then + bobmods.lib.recipe.add_ingredient("bob-logistic-robot-2", {"robot-brain-logistic-2", 1}) + bobmods.lib.recipe.add_ingredient("bob-logistic-robot-2", {"robot-tool-logistic-2", 1}) +else + bobmods.lib.recipe.add_ingredient("bob-logistic-robot-2", {"advanced-circuit", 1}) +end + +if data.raw.item["robot-brain-construction-2"] and data.raw.item["robot-tool-construction-2"] then + bobmods.lib.recipe.add_ingredient("bob-construction-robot-2", {"robot-brain-construction-2", 1}) + bobmods.lib.recipe.add_ingredient("bob-construction-robot-2", {"robot-tool-construction-2", 1}) +else + bobmods.lib.recipe.add_ingredient("bob-construction-robot-2", {"advanced-circuit", 1}) +end + +if data.raw.item["robot-brain-logistic-3"] and data.raw.item["robot-tool-logistic-3"]then + bobmods.lib.recipe.add_ingredient("bob-logistic-robot-3", {"robot-brain-logistic-3", 1}) + bobmods.lib.recipe.add_ingredient("bob-logistic-robot-3", {"robot-tool-logistic-3", 1}) +else + bobmods.lib.recipe.add_ingredient("bob-logistic-robot-3", {"processing-unit", 1}) +end + +if data.raw.item["robot-brain-construction-3"] and data.raw.item["robot-tool-construction-3"] then + bobmods.lib.recipe.add_ingredient("bob-construction-robot-3", {"robot-brain-construction-3", 1}) + bobmods.lib.recipe.add_ingredient("bob-construction-robot-3", {"robot-tool-construction-3", 1}) +else + bobmods.lib.recipe.add_ingredient("bob-construction-robot-3", {"processing-unit", 1}) +end + +if data.raw.item["robot-brain-logistic-4"] and data.raw.item["robot-tool-logistic-4"] then + bobmods.lib.recipe.add_ingredient("bob-logistic-robot-4", {"robot-brain-logistic-4", 1}) + bobmods.lib.recipe.add_ingredient("bob-logistic-robot-4", {"robot-tool-logistic-4", 1}) +else + if data.raw.item["advanced-processing-unit"] then + bobmods.lib.recipe.add_ingredient("bob-logistic-robot-4", {"advanced-processing-unit", 1}) + else + bobmods.lib.recipe.add_ingredient("bob-logistic-robot-4", {"processing-unit", 1}) + end +end + +if data.raw.item["robot-brain-construction-4"] and data.raw.item["robot-tool-construction-4"] then + bobmods.lib.recipe.add_ingredient("bob-construction-robot-4", {"robot-brain-construction-4", 1}) + bobmods.lib.recipe.add_ingredient("bob-construction-robot-4", {"robot-tool-construction-4", 1}) +else + if data.raw.item["advanced-processing-unit"] then + bobmods.lib.recipe.add_ingredient("bob-construction-robot-4", {"advanced-processing-unit", 1}) + else + bobmods.lib.recipe.add_ingredient("bob-construction-robot-4", {"processing-unit", 1}) + end +end + diff --git a/boblogistics_0.14.0/prototypes/recipe/robots-recipe.lua b/boblogistics_0.14.2/prototypes/recipe/robots-recipe.lua similarity index 93% rename from boblogistics_0.14.0/prototypes/recipe/robots-recipe.lua rename to boblogistics_0.14.2/prototypes/recipe/robots-recipe.lua index 2bcc56e..f16bb57 100644 --- a/boblogistics_0.14.0/prototypes/recipe/robots-recipe.lua +++ b/boblogistics_0.14.2/prototypes/recipe/robots-recipe.lua @@ -1,69 +1,69 @@ -data:extend( -{ - { - type = "recipe", - name = "bob-logistic-robot-2", - enabled = "false", - ingredients = - { - }, - result = "bob-logistic-robot-2" - }, - - { - type = "recipe", - name = "bob-logistic-robot-3", - enabled = "false", - ingredients = - { - }, - result = "bob-logistic-robot-3" - }, - - { - type = "recipe", - name = "bob-logistic-robot-4", - enabled = "false", - ingredients = - { - }, - result = "bob-logistic-robot-4" - }, - - - { - type = "recipe", - name = "bob-construction-robot-2", - enabled = "false", - ingredients = - { - }, - result = "bob-construction-robot-2" - }, - - { - type = "recipe", - name = "bob-construction-robot-3", - enabled = "false", - ingredients = - { - }, - result = "bob-construction-robot-3" - }, - - { - type = "recipe", - name = "bob-construction-robot-4", - enabled = "false", - ingredients = - { - }, - result = "bob-construction-robot-4" - }, -} -) - - - - - +data:extend( +{ + { + type = "recipe", + name = "bob-logistic-robot-2", + enabled = "false", + ingredients = + { + }, + result = "bob-logistic-robot-2" + }, + + { + type = "recipe", + name = "bob-logistic-robot-3", + enabled = "false", + ingredients = + { + }, + result = "bob-logistic-robot-3" + }, + + { + type = "recipe", + name = "bob-logistic-robot-4", + enabled = "false", + ingredients = + { + }, + result = "bob-logistic-robot-4" + }, + + + { + type = "recipe", + name = "bob-construction-robot-2", + enabled = "false", + ingredients = + { + }, + result = "bob-construction-robot-2" + }, + + { + type = "recipe", + name = "bob-construction-robot-3", + enabled = "false", + ingredients = + { + }, + result = "bob-construction-robot-3" + }, + + { + type = "recipe", + name = "bob-construction-robot-4", + enabled = "false", + ingredients = + { + }, + result = "bob-construction-robot-4" + }, +} +) + + + + + diff --git a/boblogistics_0.14.0/prototypes/recipe/storage-tank-recipe-updates.lua b/boblogistics_0.14.2/prototypes/recipe/storage-tank-recipe-updates.lua similarity index 97% rename from boblogistics_0.14.0/prototypes/recipe/storage-tank-recipe-updates.lua rename to boblogistics_0.14.2/prototypes/recipe/storage-tank-recipe-updates.lua index a4655a6..a7df0fb 100644 --- a/boblogistics_0.14.0/prototypes/recipe/storage-tank-recipe-updates.lua +++ b/boblogistics_0.14.2/prototypes/recipe/storage-tank-recipe-updates.lua @@ -1,15 +1,15 @@ -if data.raw.item["invar-alloy"] then - bobmods.lib.recipe.replace_ingredient("storage-tank-2", "steel-plate", "invar-alloy") - bobmods.lib.tech.add_prerequisite("bob-fluid-handling-2", "invar-processing") -end - -if data.raw.item["titanium-plate"] then - bobmods.lib.recipe.replace_ingredient("storage-tank-3", "steel-plate", "titanium-plate") - bobmods.lib.tech.add_prerequisite("bob-fluid-handling-3", "titanium-processing") -end - -if data.raw.item["nitinol-alloy"] then - bobmods.lib.recipe.replace_ingredient("storage-tank-4", "steel-plate", "nitinol-alloy") - bobmods.lib.tech.add_prerequisite("bob-fluid-handling-4", "nitinol-processing") -end - +if data.raw.item["invar-alloy"] then + bobmods.lib.recipe.replace_ingredient("storage-tank-2", "steel-plate", "invar-alloy") + bobmods.lib.tech.add_prerequisite("bob-fluid-handling-2", "invar-processing") +end + +if data.raw.item["titanium-plate"] then + bobmods.lib.recipe.replace_ingredient("storage-tank-3", "steel-plate", "titanium-plate") + bobmods.lib.tech.add_prerequisite("bob-fluid-handling-3", "titanium-processing") +end + +if data.raw.item["nitinol-alloy"] then + bobmods.lib.recipe.replace_ingredient("storage-tank-4", "steel-plate", "nitinol-alloy") + bobmods.lib.tech.add_prerequisite("bob-fluid-handling-4", "nitinol-processing") +end + diff --git a/boblogistics_0.14.0/prototypes/recipe/storage-tank-recipe.lua b/boblogistics_0.14.2/prototypes/recipe/storage-tank-recipe.lua similarity index 94% rename from boblogistics_0.14.0/prototypes/recipe/storage-tank-recipe.lua rename to boblogistics_0.14.2/prototypes/recipe/storage-tank-recipe.lua index 5df4e90..fb0e204 100644 --- a/boblogistics_0.14.0/prototypes/recipe/storage-tank-recipe.lua +++ b/boblogistics_0.14.2/prototypes/recipe/storage-tank-recipe.lua @@ -1,43 +1,43 @@ -data:extend( -{ - { - type = "recipe", - name = "storage-tank-2", - energy_required = 4, - enabled = "false", - ingredients = - { - {"storage-tank", 1}, - {"steel-plate", 20}, - }, - result= "storage-tank-2" - }, - - { - type = "recipe", - name = "storage-tank-3", - energy_required = 5, - enabled = "false", - ingredients = - { - {"storage-tank-2", 1}, - {"steel-plate", 20}, - }, - result= "storage-tank-3" - }, - - { - type = "recipe", - name = "storage-tank-4", - energy_required = 6, - enabled = "false", - ingredients = - { - {"storage-tank-3", 1}, - {"steel-plate", 20}, - }, - result= "storage-tank-4" - }, -} -) - +data:extend( +{ + { + type = "recipe", + name = "storage-tank-2", + energy_required = 4, + enabled = "false", + ingredients = + { + {"storage-tank", 1}, + {"steel-plate", 20}, + }, + result= "storage-tank-2" + }, + + { + type = "recipe", + name = "storage-tank-3", + energy_required = 5, + enabled = "false", + ingredients = + { + {"storage-tank-2", 1}, + {"steel-plate", 20}, + }, + result= "storage-tank-3" + }, + + { + type = "recipe", + name = "storage-tank-4", + energy_required = 6, + enabled = "false", + ingredients = + { + {"storage-tank-3", 1}, + {"steel-plate", 20}, + }, + result= "storage-tank-4" + }, +} +) + diff --git a/boblogistics_0.14.2/prototypes/recipe/train-recipe-updates.lua b/boblogistics_0.14.2/prototypes/recipe/train-recipe-updates.lua new file mode 100644 index 0000000..0ba3add --- /dev/null +++ b/boblogistics_0.14.2/prototypes/recipe/train-recipe-updates.lua @@ -0,0 +1,47 @@ +if data.raw.item["invar-alloy"] then + bobmods.lib.recipe.replace_ingredient("bob-diesel-locomotive-2", "steel-plate", "invar-alloy") + bobmods.lib.recipe.replace_ingredient("bob-cargo-wagon-2", "steel-plate", "invar-alloy") + bobmods.lib.tech.add_prerequisite("bob-railway-2", "invar-processing") +end + +if data.raw.item["steel-bearing"] then + bobmods.lib.recipe.add_new_ingredient("bob-diesel-locomotive-2", {"steel-bearing", 16}) + bobmods.lib.recipe.add_new_ingredient("bob-cargo-wagon-2", {"steel-bearing", 8}) +else + bobmods.lib.recipe.add_new_ingredient("bob-diesel-locomotive-2", {"iron-gear-wheel", 10}) + bobmods.lib.recipe.add_new_ingredient("bob-cargo-wagon-2", {"iron-gear-wheel", 8}) +end + +if data.raw.item["steel-gear-wheel"] then + bobmods.lib.recipe.replace_ingredient("bob-diesel-locomotive-2", "iron-gear-wheel", "steel-gear-wheel") + bobmods.lib.recipe.replace_ingredient("bob-cargo-wagon-2", "iron-gear-wheel", "steel-gear-wheel") +end + + + +if data.raw.item["titanium-plate"] then + bobmods.lib.recipe.replace_ingredient("bob-diesel-locomotive-3", "steel-plate", "titanium-plate") + bobmods.lib.recipe.replace_ingredient("bob-cargo-wagon-3", "steel-plate", "titanium-plate") + bobmods.lib.tech.add_prerequisite("bob-railway-3", "titanium-processing") + + bobmods.lib.recipe.replace_ingredient("bob-armoured-diesel-locomotive", "steel-plate", "titanium-plate") + bobmods.lib.recipe.replace_ingredient("bob-armoured-cargo-wagon", "steel-plate", "titanium-plate") + bobmods.lib.tech.add_prerequisite("bob-armoured-railway", "titanium-processing") +end + +if data.raw.item["titanium-bearing"] then + bobmods.lib.recipe.add_new_ingredient("bob-diesel-locomotive-3", {"titanium-bearing", 16}) + bobmods.lib.recipe.add_new_ingredient("bob-cargo-wagon-3", {"titanium-bearing", 8}) +else + bobmods.lib.recipe.add_new_ingredient("bob-diesel-locomotive-3", {"iron-gear-wheel", 10}) + bobmods.lib.recipe.add_new_ingredient("bob-cargo-wagon-3", {"iron-gear-wheel", 8}) +end + +if data.raw.item["titanium-gear-wheel"] then + bobmods.lib.recipe.replace_ingredient("bob-diesel-locomotive-3", "iron-gear-wheel", "titanium-gear-wheel") + bobmods.lib.recipe.replace_ingredient("bob-cargo-wagon-3", "iron-gear-wheel", "titanium-gear-wheel") +end + + + + diff --git a/boblogistics_0.14.0/prototypes/recipe/train-recipe.lua b/boblogistics_0.14.2/prototypes/recipe/train-recipe.lua similarity index 62% rename from boblogistics_0.14.0/prototypes/recipe/train-recipe.lua rename to boblogistics_0.14.2/prototypes/recipe/train-recipe.lua index 2960105..3c8ea18 100644 --- a/boblogistics_0.14.0/prototypes/recipe/train-recipe.lua +++ b/boblogistics_0.14.2/prototypes/recipe/train-recipe.lua @@ -1,86 +1,86 @@ -data:extend( -{ - { - type = "recipe", - name = "diesel-locomotive-2", - enabled = "false", - ingredients = - { - {"diesel-locomotive", 1}, - {"advanced-circuit", 5}, - {"steel-plate", 10}, - {"iron-gear-wheel", 20}, - }, - result = "diesel-locomotive-2" - }, - - { - type = "recipe", - name = "diesel-locomotive-3", - enabled = "false", - ingredients = - { - {"diesel-locomotive-2", 1}, - {"processing-unit", 5}, - {"steel-plate", 10}, - {"iron-gear-wheel", 20}, - }, - result = "diesel-locomotive-3" - }, - - - { - type = "recipe", - name = "armoured-diesel-locomotive", - enabled = "false", - ingredients = - { - {"diesel-locomotive", 1}, - {"steel-plate", 25}, - }, - result = "armoured-diesel-locomotive" - }, - - - { - type = "recipe", - name = "cargo-wagon-2", - enabled = "false", - ingredients = - { - {"cargo-wagon", 1}, - {"steel-plate", 20}, - {"iron-gear-wheel", 12}, - }, - result = "cargo-wagon-2" - }, - - { - type = "recipe", - name = "cargo-wagon-3", - enabled = "false", - ingredients = - { - {"cargo-wagon-2", 1}, - {"steel-plate", 20}, - {"iron-gear-wheel", 12}, - }, - result = "cargo-wagon-3" - }, - - - { - type = "recipe", - name = "armoured-cargo-wagon", - enabled = "false", - ingredients = - { - {"cargo-wagon", 1}, - {"steel-plate", 25}, - }, - result = "armoured-cargo-wagon" - }, -} -) - - +data:extend( +{ + { + type = "recipe", + name = "bob-diesel-locomotive-2", + enabled = "false", + ingredients = + { + {"diesel-locomotive", 1}, + {"advanced-circuit", 5}, + {"steel-plate", 10}, + {"iron-gear-wheel", 20}, + }, + result = "bob-diesel-locomotive-2" + }, + + { + type = "recipe", + name = "bob-diesel-locomotive-3", + enabled = "false", + ingredients = + { + {"bob-diesel-locomotive-2", 1}, + {"processing-unit", 5}, + {"steel-plate", 10}, + {"iron-gear-wheel", 20}, + }, + result = "bob-diesel-locomotive-3" + }, + + + { + type = "recipe", + name = "bob-armoured-diesel-locomotive", + enabled = "false", + ingredients = + { + {"diesel-locomotive", 1}, + {"steel-plate", 25}, + }, + result = "bob-armoured-diesel-locomotive" + }, + + + { + type = "recipe", + name = "bob-cargo-wagon-2", + enabled = "false", + ingredients = + { + {"cargo-wagon", 1}, + {"steel-plate", 20}, + {"iron-gear-wheel", 12}, + }, + result = "bob-cargo-wagon-2" + }, + + { + type = "recipe", + name = "bob-cargo-wagon-3", + enabled = "false", + ingredients = + { + {"bob-cargo-wagon-2", 1}, + {"steel-plate", 20}, + {"iron-gear-wheel", 12}, + }, + result = "bob-cargo-wagon-3" + }, + + + { + type = "recipe", + name = "bob-armoured-cargo-wagon", + enabled = "false", + ingredients = + { + {"cargo-wagon", 1}, + {"steel-plate", 25}, + }, + result = "bob-armoured-cargo-wagon" + }, +} +) + + diff --git a/boblogistics_0.14.0/prototypes/robot-frames.lua b/boblogistics_0.14.2/prototypes/robot-frames.lua similarity index 95% rename from boblogistics_0.14.0/prototypes/robot-frames.lua rename to boblogistics_0.14.2/prototypes/robot-frames.lua index d0861e1..b2d161a 100644 --- a/boblogistics_0.14.0/prototypes/robot-frames.lua +++ b/boblogistics_0.14.2/prototypes/robot-frames.lua @@ -1,172 +1,172 @@ -data.raw.item["flying-robot-frame"].order = "j[flying-robot-frame-1]" -data.raw.item["flying-robot-frame"].subgroup = "bob-robot-parts" - -data:extend( -{ - { - type = "item", - name = "flying-robot-frame-2", - icon = "__boblogistics__/graphics/icons/flying-robot-frame-2.png", - flags = {"goes-to-main-inventory"}, - subgroup = "bob-robot-parts", - order = "j[flying-robot-frame-2]", - stack_size = 50 - }, - { - type = "item", - name = "flying-robot-frame-3", - icon = "__boblogistics__/graphics/icons/flying-robot-frame-3.png", - flags = {"goes-to-main-inventory"}, - subgroup = "bob-robot-parts", - order = "j[flying-robot-frame-3]", - stack_size = 50 - }, - { - type = "item", - name = "flying-robot-frame-4", - icon = "__boblogistics__/graphics/icons/flying-robot-frame-4.png", - flags = {"goes-to-main-inventory"}, - subgroup = "bob-robot-parts", - order = "j[flying-robot-frame-4]", - stack_size = 50 - }, - - { - type = "recipe", - name = "flying-robot-frame-2", - enabled = false, - energy_required = 20, - ingredients = - { - {"electric-engine-unit", 1}, - {"battery", 2}, - {"steel-plate", 1}, - {"advanced-circuit", 3} - }, - result = "flying-robot-frame-2", - }, - { - type = "recipe", - name = "flying-robot-frame-3", - enabled = false, - energy_required = 20, - ingredients = - { - {"electric-engine-unit", 1}, - {"battery", 2}, - {"steel-plate", 1}, - {"processing-unit", 3} - }, - result = "flying-robot-frame-3", - }, - { - type = "recipe", - name = "flying-robot-frame-4", - enabled = false, - energy_required = 20, - ingredients = - { - {"electric-engine-unit", 1}, - {"battery", 2}, - {"steel-plate", 1}, - {"processing-unit", 3} - }, - result = "flying-robot-frame-4", - }, -} -) - - -data:extend( -{ - { - type = "technology", - name = "bob-robotics-2", - icon = "__base__/graphics/technology/robotics.png", - effects = - { - { - type = "unlock-recipe", - recipe = "flying-robot-frame-2" - }, - }, - prerequisites = - { - "robotics", - }, - unit = - { - count = 150, - ingredients = - { - {"science-pack-1", 1}, - {"science-pack-2", 1}, - }, - time = 30 - }, - upgrade = true, - order = "c-i-a", - }, - - { - type = "technology", - name = "bob-robotics-3", - icon = "__base__/graphics/technology/robotics.png", - effects = - { - { - type = "unlock-recipe", - recipe = "flying-robot-frame-3" - }, - }, - prerequisites = - { - "bob-robotics-2", - }, - unit = - { - count = 150, - ingredients = - { - {"science-pack-1", 1}, - {"science-pack-2", 1}, - {"science-pack-3", 1}, - }, - time = 30 - }, - upgrade = true, - order = "c-i-b", - }, - - { - type = "technology", - name = "bob-robotics-4", - icon = "__base__/graphics/technology/robotics.png", - effects = - { - { - type = "unlock-recipe", - recipe = "flying-robot-frame-4" - }, - }, - prerequisites = - { - "bob-robotics-3", - }, - unit = - { - count = 150, - ingredients = - { - {"science-pack-1", 1}, - {"science-pack-2", 1}, - {"science-pack-3", 1}, - {"alien-science-pack", 1} - }, - time = 30 - }, - upgrade = true, - order = "c-i-c", - }, -} -) +data.raw.item["flying-robot-frame"].order = "j[flying-robot-frame-1]" +data.raw.item["flying-robot-frame"].subgroup = "bob-robot-parts" + +data:extend( +{ + { + type = "item", + name = "flying-robot-frame-2", + icon = "__boblogistics__/graphics/icons/flying-robot-frame-2.png", + flags = {"goes-to-main-inventory"}, + subgroup = "bob-robot-parts", + order = "j[flying-robot-frame-2]", + stack_size = 50 + }, + { + type = "item", + name = "flying-robot-frame-3", + icon = "__boblogistics__/graphics/icons/flying-robot-frame-3.png", + flags = {"goes-to-main-inventory"}, + subgroup = "bob-robot-parts", + order = "j[flying-robot-frame-3]", + stack_size = 50 + }, + { + type = "item", + name = "flying-robot-frame-4", + icon = "__boblogistics__/graphics/icons/flying-robot-frame-4.png", + flags = {"goes-to-main-inventory"}, + subgroup = "bob-robot-parts", + order = "j[flying-robot-frame-4]", + stack_size = 50 + }, + + { + type = "recipe", + name = "flying-robot-frame-2", + enabled = false, + energy_required = 20, + ingredients = + { + {"electric-engine-unit", 1}, + {"battery", 2}, + {"steel-plate", 1}, + {"advanced-circuit", 3} + }, + result = "flying-robot-frame-2", + }, + { + type = "recipe", + name = "flying-robot-frame-3", + enabled = false, + energy_required = 20, + ingredients = + { + {"electric-engine-unit", 1}, + {"battery", 2}, + {"steel-plate", 1}, + {"processing-unit", 3} + }, + result = "flying-robot-frame-3", + }, + { + type = "recipe", + name = "flying-robot-frame-4", + enabled = false, + energy_required = 20, + ingredients = + { + {"electric-engine-unit", 1}, + {"battery", 2}, + {"steel-plate", 1}, + {"processing-unit", 3} + }, + result = "flying-robot-frame-4", + }, +} +) + + +data:extend( +{ + { + type = "technology", + name = "bob-robotics-2", + icon = "__base__/graphics/technology/robotics.png", + effects = + { + { + type = "unlock-recipe", + recipe = "flying-robot-frame-2" + }, + }, + prerequisites = + { + "robotics", + }, + unit = + { + count = 150, + ingredients = + { + {"science-pack-1", 1}, + {"science-pack-2", 1}, + }, + time = 30 + }, + upgrade = true, + order = "c-i-a", + }, + + { + type = "technology", + name = "bob-robotics-3", + icon = "__base__/graphics/technology/robotics.png", + effects = + { + { + type = "unlock-recipe", + recipe = "flying-robot-frame-3" + }, + }, + prerequisites = + { + "bob-robotics-2", + }, + unit = + { + count = 150, + ingredients = + { + {"science-pack-1", 1}, + {"science-pack-2", 1}, + {"science-pack-3", 1}, + }, + time = 30 + }, + upgrade = true, + order = "c-i-b", + }, + + { + type = "technology", + name = "bob-robotics-4", + icon = "__base__/graphics/technology/robotics.png", + effects = + { + { + type = "unlock-recipe", + recipe = "flying-robot-frame-4" + }, + }, + prerequisites = + { + "bob-robotics-3", + }, + unit = + { + count = 150, + ingredients = + { + {"science-pack-1", 1}, + {"science-pack-2", 1}, + {"science-pack-3", 1}, + {"alien-science-pack", 1} + }, + time = 30 + }, + upgrade = true, + order = "c-i-c", + }, +} +) diff --git a/boblogistics_0.14.0/prototypes/robot-parts.lua b/boblogistics_0.14.2/prototypes/robot-parts.lua similarity index 95% rename from boblogistics_0.14.0/prototypes/robot-parts.lua rename to boblogistics_0.14.2/prototypes/robot-parts.lua index 9a96797..e074d4d 100644 --- a/boblogistics_0.14.0/prototypes/robot-parts.lua +++ b/boblogistics_0.14.2/prototypes/robot-parts.lua @@ -1,354 +1,354 @@ -data:extend( -{ - { - type = "item", - name = "robot-brain-logistic", - icon = "__boblogistics__/graphics/icons/robot-brain-logistic.png", - flags = {"goes-to-main-inventory"}, - subgroup = "bob-robot-parts", - order = "r[robot-brain-logistic-1]", - stack_size = 100 - }, - - { - type = "item", - name = "robot-brain-logistic-2", - icon = "__boblogistics__/graphics/icons/robot-brain-logistic-2.png", - flags = {"goes-to-main-inventory"}, - subgroup = "bob-robot-parts", - order = "r[robot-brain-logistic-2]", - stack_size = 100 - }, - - { - type = "item", - name = "robot-brain-logistic-3", - icon = "__boblogistics__/graphics/icons/robot-brain-logistic-3.png", - flags = {"goes-to-main-inventory"}, - subgroup = "bob-robot-parts", - order = "r[robot-brain-logistic-3]", - stack_size = 100 - }, - - { - type = "item", - name = "robot-brain-logistic-4", - icon = "__boblogistics__/graphics/icons/robot-brain-logistic-4.png", - flags = {"goes-to-main-inventory"}, - subgroup = "bob-robot-parts", - order = "r[robot-brain-logistic-4]", - stack_size = 100 - }, - - - { - type = "item", - name = "robot-brain-construction", - icon = "__boblogistics__/graphics/icons/robot-brain-construction.png", - flags = {"goes-to-main-inventory"}, - subgroup = "bob-robot-parts", - order = "r[robot-brain-construction-1]", - stack_size = 100 - }, - - { - type = "item", - name = "robot-brain-construction-2", - icon = "__boblogistics__/graphics/icons/robot-brain-construction-2.png", - flags = {"goes-to-main-inventory"}, - subgroup = "bob-robot-parts", - order = "r[robot-brain-construction-2]", - stack_size = 100 - }, - - { - type = "item", - name = "robot-brain-construction-3", - icon = "__boblogistics__/graphics/icons/robot-brain-construction-3.png", - flags = {"goes-to-main-inventory"}, - subgroup = "bob-robot-parts", - order = "r[robot-brain-construction-3]", - stack_size = 100 - }, - - { - type = "item", - name = "robot-brain-construction-4", - icon = "__boblogistics__/graphics/icons/robot-brain-construction-4.png", - flags = {"goes-to-main-inventory"}, - subgroup = "bob-robot-parts", - order = "r[robot-brain-construction-4]", - stack_size = 100 - }, - - - { - type = "item", - name = "robot-tool-construction", - icon = "__boblogistics__/graphics/icons/robot-tool-construction.png", - flags = {"goes-to-main-inventory"}, - subgroup = "bob-robot-parts", - order = "r[robot-tool-construction-1]", - stack_size = 100 - }, - - { - type = "item", - name = "robot-tool-construction-2", - icon = "__boblogistics__/graphics/icons/robot-tool-construction.png", - flags = {"goes-to-main-inventory"}, - subgroup = "bob-robot-parts", - order = "r[robot-tool-construction-2]", - stack_size = 100 - }, - - { - type = "item", - name = "robot-tool-construction-3", - icon = "__boblogistics__/graphics/icons/robot-tool-construction.png", - flags = {"goes-to-main-inventory"}, - subgroup = "bob-robot-parts", - order = "r[robot-tool-construction-3]", - stack_size = 100 - }, - - { - type = "item", - name = "robot-tool-construction-4", - icon = "__boblogistics__/graphics/icons/robot-tool-construction.png", - flags = {"goes-to-main-inventory"}, - subgroup = "bob-robot-parts", - order = "r[robot-tool-construction-4]", - stack_size = 100 - }, - - - { - type = "item", - name = "robot-tool-logistic", - icon = "__boblogistics__/graphics/icons/robot-tool-logistic.png", - flags = {"goes-to-main-inventory"}, - subgroup = "bob-robot-parts", - order = "r[robot-tool-logistic-1]", - stack_size = 100 - }, - - { - type = "item", - name = "robot-tool-logistic-2", - icon = "__boblogistics__/graphics/icons/robot-tool-logistic.png", - flags = {"goes-to-main-inventory"}, - subgroup = "bob-robot-parts", - order = "r[robot-tool-logistic-2]", - stack_size = 100 - }, - - { - type = "item", - name = "robot-tool-logistic-3", - icon = "__boblogistics__/graphics/icons/robot-tool-logistic.png", - flags = {"goes-to-main-inventory"}, - subgroup = "bob-robot-parts", - order = "r[robot-tool-logistic-3]", - stack_size = 100 - }, - - { - type = "item", - name = "robot-tool-logistic-4", - icon = "__boblogistics__/graphics/icons/robot-tool-logistic.png", - flags = {"goes-to-main-inventory"}, - subgroup = "bob-robot-parts", - order = "r[robot-tool-logistic-4]", - stack_size = 100 - }, -} -) - - - -data:extend( -{ - { - type = "recipe", - name = "robot-brain-logistic", - energy_required = 5, - enabled = false, - ingredients = - { - }, - result = "robot-brain-logistic", - }, - - { - type = "recipe", - name = "robot-brain-logistic-2", - energy_required = 10, - enabled = false, - ingredients = - { - }, - result = "robot-brain-logistic-2", - }, - - { - type = "recipe", - name = "robot-brain-logistic-3", - energy_required = 15, - enabled = false, - ingredients = - { - }, - result = "robot-brain-logistic-3", - }, - - { - type = "recipe", - name = "robot-brain-logistic-4", - energy_required = 20, - enabled = false, - ingredients = - { - }, - result = "robot-brain-logistic-4", - }, - - - { - type = "recipe", - name = "robot-brain-construction", - energy_required = 5, - enabled = false, - ingredients = - { - }, - result = "robot-brain-construction", - }, - - { - type = "recipe", - name = "robot-brain-construction-2", - energy_required = 10, - enabled = false, - ingredients = - { - }, - result = "robot-brain-construction-2", - }, - - { - type = "recipe", - name = "robot-brain-construction-3", - energy_required = 15, - enabled = false, - ingredients = - { - }, - result = "robot-brain-construction-3", - }, - - { - type = "recipe", - name = "robot-brain-construction-4", - energy_required = 20, - enabled = false, - ingredients = - { - }, - result = "robot-brain-construction-4", - }, - - - { - type = "recipe", - name = "robot-tool-logistic", - energy_required = 1, - enabled = false, - ingredients = - { - }, - result = "robot-tool-logistic", - }, - - { - type = "recipe", - name = "robot-tool-logistic-2", - energy_required = 2, - enabled = false, - ingredients = - { - }, - result = "robot-tool-logistic-2", - }, - - { - type = "recipe", - name = "robot-tool-logistic-3", - energy_required = 3, - enabled = false, - ingredients = - { - }, - result = "robot-tool-logistic-3", - }, - - { - type = "recipe", - name = "robot-tool-logistic-4", - energy_required = 4, - enabled = false, - ingredients = - { - }, - result = "robot-tool-logistic-4", - }, - - - { - type = "recipe", - name = "robot-tool-construction", - energy_required = 1, - enabled = false, - ingredients = - { - }, - result = "robot-tool-construction", - }, - - { - type = "recipe", - name = "robot-tool-construction-2", - energy_required = 2, - enabled = false, - ingredients = - { - }, - result = "robot-tool-construction-2", - }, - - { - type = "recipe", - name = "robot-tool-construction-3", - energy_required = 3, - enabled = false, - ingredients = - { - }, - result = "robot-tool-construction-3", - }, - - { - type = "recipe", - name = "robot-tool-construction-4", - energy_required = 4, - enabled = false, - ingredients = - { - }, - result = "robot-tool-construction-4", - }, -} -) - - - +data:extend( +{ + { + type = "item", + name = "robot-brain-logistic", + icon = "__boblogistics__/graphics/icons/robot-brain-logistic.png", + flags = {"goes-to-main-inventory"}, + subgroup = "bob-robot-parts", + order = "r[robot-brain-logistic-1]", + stack_size = 100 + }, + + { + type = "item", + name = "robot-brain-logistic-2", + icon = "__boblogistics__/graphics/icons/robot-brain-logistic-2.png", + flags = {"goes-to-main-inventory"}, + subgroup = "bob-robot-parts", + order = "r[robot-brain-logistic-2]", + stack_size = 100 + }, + + { + type = "item", + name = "robot-brain-logistic-3", + icon = "__boblogistics__/graphics/icons/robot-brain-logistic-3.png", + flags = {"goes-to-main-inventory"}, + subgroup = "bob-robot-parts", + order = "r[robot-brain-logistic-3]", + stack_size = 100 + }, + + { + type = "item", + name = "robot-brain-logistic-4", + icon = "__boblogistics__/graphics/icons/robot-brain-logistic-4.png", + flags = {"goes-to-main-inventory"}, + subgroup = "bob-robot-parts", + order = "r[robot-brain-logistic-4]", + stack_size = 100 + }, + + + { + type = "item", + name = "robot-brain-construction", + icon = "__boblogistics__/graphics/icons/robot-brain-construction.png", + flags = {"goes-to-main-inventory"}, + subgroup = "bob-robot-parts", + order = "r[robot-brain-construction-1]", + stack_size = 100 + }, + + { + type = "item", + name = "robot-brain-construction-2", + icon = "__boblogistics__/graphics/icons/robot-brain-construction-2.png", + flags = {"goes-to-main-inventory"}, + subgroup = "bob-robot-parts", + order = "r[robot-brain-construction-2]", + stack_size = 100 + }, + + { + type = "item", + name = "robot-brain-construction-3", + icon = "__boblogistics__/graphics/icons/robot-brain-construction-3.png", + flags = {"goes-to-main-inventory"}, + subgroup = "bob-robot-parts", + order = "r[robot-brain-construction-3]", + stack_size = 100 + }, + + { + type = "item", + name = "robot-brain-construction-4", + icon = "__boblogistics__/graphics/icons/robot-brain-construction-4.png", + flags = {"goes-to-main-inventory"}, + subgroup = "bob-robot-parts", + order = "r[robot-brain-construction-4]", + stack_size = 100 + }, + + + { + type = "item", + name = "robot-tool-construction", + icon = "__boblogistics__/graphics/icons/robot-tool-construction.png", + flags = {"goes-to-main-inventory"}, + subgroup = "bob-robot-parts", + order = "r[robot-tool-construction-1]", + stack_size = 100 + }, + + { + type = "item", + name = "robot-tool-construction-2", + icon = "__boblogistics__/graphics/icons/robot-tool-construction.png", + flags = {"goes-to-main-inventory"}, + subgroup = "bob-robot-parts", + order = "r[robot-tool-construction-2]", + stack_size = 100 + }, + + { + type = "item", + name = "robot-tool-construction-3", + icon = "__boblogistics__/graphics/icons/robot-tool-construction.png", + flags = {"goes-to-main-inventory"}, + subgroup = "bob-robot-parts", + order = "r[robot-tool-construction-3]", + stack_size = 100 + }, + + { + type = "item", + name = "robot-tool-construction-4", + icon = "__boblogistics__/graphics/icons/robot-tool-construction.png", + flags = {"goes-to-main-inventory"}, + subgroup = "bob-robot-parts", + order = "r[robot-tool-construction-4]", + stack_size = 100 + }, + + + { + type = "item", + name = "robot-tool-logistic", + icon = "__boblogistics__/graphics/icons/robot-tool-logistic.png", + flags = {"goes-to-main-inventory"}, + subgroup = "bob-robot-parts", + order = "r[robot-tool-logistic-1]", + stack_size = 100 + }, + + { + type = "item", + name = "robot-tool-logistic-2", + icon = "__boblogistics__/graphics/icons/robot-tool-logistic.png", + flags = {"goes-to-main-inventory"}, + subgroup = "bob-robot-parts", + order = "r[robot-tool-logistic-2]", + stack_size = 100 + }, + + { + type = "item", + name = "robot-tool-logistic-3", + icon = "__boblogistics__/graphics/icons/robot-tool-logistic.png", + flags = {"goes-to-main-inventory"}, + subgroup = "bob-robot-parts", + order = "r[robot-tool-logistic-3]", + stack_size = 100 + }, + + { + type = "item", + name = "robot-tool-logistic-4", + icon = "__boblogistics__/graphics/icons/robot-tool-logistic.png", + flags = {"goes-to-main-inventory"}, + subgroup = "bob-robot-parts", + order = "r[robot-tool-logistic-4]", + stack_size = 100 + }, +} +) + + + +data:extend( +{ + { + type = "recipe", + name = "robot-brain-logistic", + energy_required = 5, + enabled = false, + ingredients = + { + }, + result = "robot-brain-logistic", + }, + + { + type = "recipe", + name = "robot-brain-logistic-2", + energy_required = 10, + enabled = false, + ingredients = + { + }, + result = "robot-brain-logistic-2", + }, + + { + type = "recipe", + name = "robot-brain-logistic-3", + energy_required = 15, + enabled = false, + ingredients = + { + }, + result = "robot-brain-logistic-3", + }, + + { + type = "recipe", + name = "robot-brain-logistic-4", + energy_required = 20, + enabled = false, + ingredients = + { + }, + result = "robot-brain-logistic-4", + }, + + + { + type = "recipe", + name = "robot-brain-construction", + energy_required = 5, + enabled = false, + ingredients = + { + }, + result = "robot-brain-construction", + }, + + { + type = "recipe", + name = "robot-brain-construction-2", + energy_required = 10, + enabled = false, + ingredients = + { + }, + result = "robot-brain-construction-2", + }, + + { + type = "recipe", + name = "robot-brain-construction-3", + energy_required = 15, + enabled = false, + ingredients = + { + }, + result = "robot-brain-construction-3", + }, + + { + type = "recipe", + name = "robot-brain-construction-4", + energy_required = 20, + enabled = false, + ingredients = + { + }, + result = "robot-brain-construction-4", + }, + + + { + type = "recipe", + name = "robot-tool-logistic", + energy_required = 1, + enabled = false, + ingredients = + { + }, + result = "robot-tool-logistic", + }, + + { + type = "recipe", + name = "robot-tool-logistic-2", + energy_required = 2, + enabled = false, + ingredients = + { + }, + result = "robot-tool-logistic-2", + }, + + { + type = "recipe", + name = "robot-tool-logistic-3", + energy_required = 3, + enabled = false, + ingredients = + { + }, + result = "robot-tool-logistic-3", + }, + + { + type = "recipe", + name = "robot-tool-logistic-4", + energy_required = 4, + enabled = false, + ingredients = + { + }, + result = "robot-tool-logistic-4", + }, + + + { + type = "recipe", + name = "robot-tool-construction", + energy_required = 1, + enabled = false, + ingredients = + { + }, + result = "robot-tool-construction", + }, + + { + type = "recipe", + name = "robot-tool-construction-2", + energy_required = 2, + enabled = false, + ingredients = + { + }, + result = "robot-tool-construction-2", + }, + + { + type = "recipe", + name = "robot-tool-construction-3", + energy_required = 3, + enabled = false, + ingredients = + { + }, + result = "robot-tool-construction-3", + }, + + { + type = "recipe", + name = "robot-tool-construction-4", + energy_required = 4, + enabled = false, + ingredients = + { + }, + result = "robot-tool-construction-4", + }, +} +) + + + diff --git a/boblogistics_0.14.0/prototypes/styles.lua b/boblogistics_0.14.2/prototypes/styles.lua similarity index 95% rename from boblogistics_0.14.0/prototypes/styles.lua rename to boblogistics_0.14.2/prototypes/styles.lua index 1fe463b..f628424 100644 --- a/boblogistics_0.14.0/prototypes/styles.lua +++ b/boblogistics_0.14.2/prototypes/styles.lua @@ -1,106 +1,106 @@ -data.raw["gui-style"]["default"]["bob-table"] = -{ - type = "table_style", - cell_spacing = 0, - horizontal_spacing = 0, - vertical_spacing = 0 -} - -data.raw["gui-style"]["default"]["bob-logistics-inserter-button"] = -{ - type = "checkbox_style", - font = "default", - font_color = {r=1, g=1, b=1}, ---[[ - top_padding = 0, - right_padding = 0, - bottom_padding = 0, - left_padding = 0, - width = 32, - height = 32, -]]-- - default_background = - { - filename = "__boblogistics__/graphics/gui/inserter-button.png", - priority = "extra-high-no-scale", - scale = 2, - x = 0, - width = 32, - height = 32 - }, - hovered_background = - { - filename = "__boblogistics__/graphics/gui/inserter-button.png", - priority = "extra-high-no-scale", - scale = 2, - x = 32, - width = 32, - height = 32 - }, - clicked_background = - { - filename = "__boblogistics__/graphics/gui/inserter-button.png", - priority = "extra-high-no-scale", - scale = 2, - x = 64, - width = 32, - height = 32 - }, - checked = - { - filename = "__boblogistics__/graphics/gui/inserter-button.png", - priority = "extra-high-no-scale", - x = 96, - width = 32, - height = 32 - } -} - -data.raw["gui-style"]["default"]["bob-logistics-checkbox"] = -{ - type = "checkbox_style", - font = "default", - font_color = {r=1, g=1, b=1}, ---[[ - top_padding = 0, - right_padding = 0, - bottom_padding = 0, - left_padding = 0, - width = 16, - height = 16, - default_background = -]]-- - { - filename = "__boblogistics__/graphics/gui/checkbox.png", - priority = "extra-high-no-scale", - x = 0, - width = 16, - height = 16 - }, - hovered_background = - { - filename = "__boblogistics__/graphics/gui/checkbox.png", - priority = "extra-high-no-scale", - x = 16, - width = 16, - height = 16 - }, - clicked_background = - { - filename = "__boblogistics__/graphics/gui/checkbox.png", - priority = "extra-high-no-scale", - x = 32, - width = 16, - height = 16 - }, - checked = - { - filename = "__boblogistics__/graphics/gui/checkbox.png", - priority = "extra-high-no-scale", - x = 48, - width = 16, - height = 16 - } -} - - +data.raw["gui-style"]["default"]["bob-table"] = +{ + type = "table_style", + cell_spacing = 0, + horizontal_spacing = 0, + vertical_spacing = 0 +} + +data.raw["gui-style"]["default"]["bob-logistics-inserter-button"] = +{ + type = "checkbox_style", + font = "default", + font_color = {r=1, g=1, b=1}, +--[[ + top_padding = 0, + right_padding = 0, + bottom_padding = 0, + left_padding = 0, + width = 32, + height = 32, +]]-- + default_background = + { + filename = "__boblogistics__/graphics/gui/inserter-button.png", + priority = "extra-high-no-scale", + scale = 2, + x = 0, + width = 32, + height = 32 + }, + hovered_background = + { + filename = "__boblogistics__/graphics/gui/inserter-button.png", + priority = "extra-high-no-scale", + scale = 2, + x = 32, + width = 32, + height = 32 + }, + clicked_background = + { + filename = "__boblogistics__/graphics/gui/inserter-button.png", + priority = "extra-high-no-scale", + scale = 2, + x = 64, + width = 32, + height = 32 + }, + checked = + { + filename = "__boblogistics__/graphics/gui/inserter-button.png", + priority = "extra-high-no-scale", + x = 96, + width = 32, + height = 32 + } +} + +data.raw["gui-style"]["default"]["bob-logistics-checkbox"] = +{ + type = "checkbox_style", + font = "default", + font_color = {r=1, g=1, b=1}, +--[[ + top_padding = 0, + right_padding = 0, + bottom_padding = 0, + left_padding = 0, + width = 16, + height = 16, + default_background = +]]-- + { + filename = "__boblogistics__/graphics/gui/checkbox.png", + priority = "extra-high-no-scale", + x = 0, + width = 16, + height = 16 + }, + hovered_background = + { + filename = "__boblogistics__/graphics/gui/checkbox.png", + priority = "extra-high-no-scale", + x = 16, + width = 16, + height = 16 + }, + clicked_background = + { + filename = "__boblogistics__/graphics/gui/checkbox.png", + priority = "extra-high-no-scale", + x = 32, + width = 16, + height = 16 + }, + checked = + { + filename = "__boblogistics__/graphics/gui/checkbox.png", + priority = "extra-high-no-scale", + x = 48, + width = 16, + height = 16 + } +} + + diff --git a/boblogistics_0.14.0/prototypes/technology-inserter.lua b/boblogistics_0.14.2/prototypes/technology-inserter.lua similarity index 94% rename from boblogistics_0.14.0/prototypes/technology-inserter.lua rename to boblogistics_0.14.2/prototypes/technology-inserter.lua index 4b1839c..509d32c 100644 --- a/boblogistics_0.14.0/prototypes/technology-inserter.lua +++ b/boblogistics_0.14.2/prototypes/technology-inserter.lua @@ -1,204 +1,204 @@ -data:extend( -{ - { - type = "technology", - name = "inserter-stack-size-bonus-1", - icon = "__base__/graphics/technology/inserter-capacity.png", - icon_size = 128, - effects = - { - { - type = "inserter-stack-size-bonus", - modifier = 1 - } - }, - prerequisites = {"logistics"}, - unit = - { - count = 50, - ingredients = - { - {"science-pack-1", 1}, - {"science-pack-2", 1} - }, - time = 30 - }, - upgrade = true, - order = "c-o-a", - }, - { - type = "technology", - name = "inserter-stack-size-bonus-2", - icon = "__base__/graphics/technology/inserter-capacity.png", - icon_size = 128, - effects = - { - { - type = "inserter-stack-size-bonus", - modifier = 1 - } - }, - prerequisites = {"inserter-stack-size-bonus-1"}, - unit = - { - count = 100, - ingredients = - { - {"science-pack-1", 1}, - {"science-pack-2", 1} - }, - time = 30 - }, - upgrade = true, - order = "c-o-b", - }, - { - type = "technology", - name = "inserter-stack-size-bonus-3", - icon = "__base__/graphics/technology/inserter-capacity.png", - icon_size = 128, - effects = - { - { - type = "inserter-stack-size-bonus", - modifier = 1 - } - }, - prerequisites = {"inserter-stack-size-bonus-2"}, - unit = - { - count = 200, - ingredients = - { - {"science-pack-1", 1}, - {"science-pack-2", 1}, - {"science-pack-3", 1} - }, - time = 30 - }, - upgrade = true, - order = "c-o-c" - }, - { - type = "technology", - name = "inserter-stack-size-bonus-4", - icon = "__base__/graphics/technology/inserter-capacity.png", - icon_size = 128, - effects = - { - { - type = "inserter-stack-size-bonus", - modifier = 1 - } - }, - prerequisites = {"inserter-stack-size-bonus-3"}, - unit = - { - count = 300, - ingredients = - { - {"science-pack-1", 1}, - {"science-pack-2", 1}, - {"science-pack-3", 1}, - {"alien-science-pack", 2} - }, - time = 30 - }, - upgrade = true, - order = "c-o-d" - }, -} -) - - -if not data.raw.technology["long-inserters-1"] then -data:extend( -{ - { - type = "technology", - name = "long-inserters-1", - icon = "__boblogistics__/graphics/icons/technology/long-inserters.png", - icon_size = 128, - effects = - { - }, - prerequisites = - { - "automation", - }, - unit = - { - count = 20, - ingredients = - { - {"science-pack-1", 1}, - }, - time = 15 - }, - order = "a-f-a-1", - }, -} -) -end - -if not data.raw.technology["near-inserters"] then -data:extend( -{ - { - type = "technology", - name = "near-inserters", - icon = "__boblogistics__/graphics/icons/technology/near-inserters.png", - icon_size = 128, - effects = - { - }, - prerequisites = - { - "logistics", - }, - unit = - { - count = 25, - ingredients = - { - {"science-pack-1", 1}, - {"science-pack-2", 1}, - }, - time = 15 - }, - order = "a-f-b-1", - }, -} -) -end -if not data.raw.technology["more-inserters-1"] then -data:extend( -{ - { - type = "technology", - name = "more-inserters-1", - icon = "__boblogistics__/graphics/icons/technology/more-inserters.png", - icon_size = 128, - effects = - { - }, - prerequisites = - { - "electronics", - }, - unit = - { - count = 50, - ingredients = - { - {"science-pack-1", 1}, - {"science-pack-2", 1}, - }, - time = 15 - }, - order = "a-f-c-1", - }, -} -) -end - +data:extend( +{ + { + type = "technology", + name = "inserter-stack-size-bonus-1", + icon = "__base__/graphics/technology/inserter-capacity.png", + icon_size = 128, + effects = + { + { + type = "inserter-stack-size-bonus", + modifier = 1 + } + }, + prerequisites = {"logistics"}, + unit = + { + count = 50, + ingredients = + { + {"science-pack-1", 1}, + {"science-pack-2", 1} + }, + time = 30 + }, + upgrade = true, + order = "c-o-a", + }, + { + type = "technology", + name = "inserter-stack-size-bonus-2", + icon = "__base__/graphics/technology/inserter-capacity.png", + icon_size = 128, + effects = + { + { + type = "inserter-stack-size-bonus", + modifier = 1 + } + }, + prerequisites = {"inserter-stack-size-bonus-1"}, + unit = + { + count = 100, + ingredients = + { + {"science-pack-1", 1}, + {"science-pack-2", 1} + }, + time = 30 + }, + upgrade = true, + order = "c-o-b", + }, + { + type = "technology", + name = "inserter-stack-size-bonus-3", + icon = "__base__/graphics/technology/inserter-capacity.png", + icon_size = 128, + effects = + { + { + type = "inserter-stack-size-bonus", + modifier = 1 + } + }, + prerequisites = {"inserter-stack-size-bonus-2"}, + unit = + { + count = 200, + ingredients = + { + {"science-pack-1", 1}, + {"science-pack-2", 1}, + {"science-pack-3", 1} + }, + time = 30 + }, + upgrade = true, + order = "c-o-c" + }, + { + type = "technology", + name = "inserter-stack-size-bonus-4", + icon = "__base__/graphics/technology/inserter-capacity.png", + icon_size = 128, + effects = + { + { + type = "inserter-stack-size-bonus", + modifier = 1 + } + }, + prerequisites = {"inserter-stack-size-bonus-3"}, + unit = + { + count = 300, + ingredients = + { + {"science-pack-1", 1}, + {"science-pack-2", 1}, + {"science-pack-3", 1}, + {"alien-science-pack", 2} + }, + time = 30 + }, + upgrade = true, + order = "c-o-d" + }, +} +) + + +if not data.raw.technology["long-inserters-1"] then +data:extend( +{ + { + type = "technology", + name = "long-inserters-1", + icon = "__boblogistics__/graphics/icons/technology/long-inserters.png", + icon_size = 128, + effects = + { + }, + prerequisites = + { + "automation", + }, + unit = + { + count = 20, + ingredients = + { + {"science-pack-1", 1}, + }, + time = 15 + }, + order = "a-f-a-1", + }, +} +) +end + +if not data.raw.technology["near-inserters"] then +data:extend( +{ + { + type = "technology", + name = "near-inserters", + icon = "__boblogistics__/graphics/icons/technology/near-inserters.png", + icon_size = 128, + effects = + { + }, + prerequisites = + { + "logistics", + }, + unit = + { + count = 25, + ingredients = + { + {"science-pack-1", 1}, + {"science-pack-2", 1}, + }, + time = 15 + }, + order = "a-f-b-1", + }, +} +) +end +if not data.raw.technology["more-inserters-1"] then +data:extend( +{ + { + type = "technology", + name = "more-inserters-1", + icon = "__boblogistics__/graphics/icons/technology/more-inserters.png", + icon_size = 128, + effects = + { + }, + prerequisites = + { + "electronics", + }, + unit = + { + count = 50, + ingredients = + { + {"science-pack-1", 1}, + {"science-pack-2", 1}, + }, + time = 15 + }, + order = "a-f-c-1", + }, +} +) +end + diff --git a/boblogistics_0.14.0/prototypes/technology-logistics.lua b/boblogistics_0.14.2/prototypes/technology-logistics.lua similarity index 95% rename from boblogistics_0.14.0/prototypes/technology-logistics.lua rename to boblogistics_0.14.2/prototypes/technology-logistics.lua index 227049d..53ddc09 100644 --- a/boblogistics_0.14.0/prototypes/technology-logistics.lua +++ b/boblogistics_0.14.2/prototypes/technology-logistics.lua @@ -1,315 +1,315 @@ -data.raw.technology["character-logistic-slots-4"].unit.ingredients = {{"science-pack-1", 1}, {"science-pack-2", 1}, {"science-pack-3", 1}} -data.raw.technology["character-logistic-slots-4"].unit.count = 200 -data.raw.technology["toolbelt"].upgrade = "true" - -data:extend( -{ - { - type = "technology", - name = "toolbelt-2", - icon = "__base__/graphics/technology/toolbelt.png", - effects = - { - { - type = "num-quick-bars", - modifier = 1 - } - }, - prerequisites = {"toolbelt"}, - unit = - { - count = 100, - ingredients = - { - {"science-pack-1", 1}, - {"science-pack-2", 1}, - {"science-pack-3", 1} - }, - time = 30 - }, - upgrade = "true", - order = "c-k-m-a" - }, - - { - type = "technology", - name = "toolbelt-3", - icon = "__base__/graphics/technology/toolbelt.png", - effects = - { - { - type = "num-quick-bars", - modifier = 1 - } - }, - prerequisites = {"toolbelt-2"}, - unit = - { - count = 150, - ingredients = - { - {"science-pack-1", 1}, - {"science-pack-2", 1}, - {"science-pack-3", 1}, - {"alien-science-pack", 1}, - }, - time = 30 - }, - upgrade = "true", - order = "c-k-m-b" - }, - - - { - type = "technology", - name = "character-logistic-slots-5", - icon = "__base__/graphics/technology/character-logistic-slots.png", - effects = - { - { - type = "character-logistic-slots", - modifier = 5 - } - }, - prerequisites = {"character-logistic-slots-4"}, - unit = - { - count = 200, - ingredients = - { - {"science-pack-1", 1}, - {"science-pack-2", 1}, - {"science-pack-3", 1}, - {"alien-science-pack", 1}, - }, - time = 30 - }, - upgrade = "true", - order = "c-k-e-e" - }, - - { - type = "technology", - name = "character-logistic-slots-6", - icon = "__base__/graphics/technology/character-logistic-slots.png", - effects = - { - { - type = "character-logistic-slots", - modifier = 5 - } - }, - prerequisites = {"character-logistic-slots-5"}, - unit = - { - count = 250, - ingredients = - { - {"science-pack-1", 1}, - {"science-pack-2", 1}, - {"science-pack-3", 1}, - {"alien-science-pack", 1}, - }, - time = 30 - }, - upgrade = "true", - order = "c-k-e-f" - }, - - { - type = "technology", - name = "character-logistic-slots-7", - icon = "__base__/graphics/technology/character-logistic-slots.png", - effects = - { - { - type = "character-logistic-slots", - modifier = 5 - } - }, - prerequisites = {"character-logistic-slots-6"}, - unit = - { - count = 300, - ingredients = - { - {"science-pack-1", 1}, - {"science-pack-2", 1}, - {"science-pack-3", 1}, - {"alien-science-pack", 1} - }, - time = 30 - }, - upgrade = "true", - order = "c-k-e-g" - }, - - { - type = "technology", - name = "character-logistic-slots-8", - icon = "__base__/graphics/technology/character-logistic-slots.png", - effects = - { - { - type = "character-logistic-slots", - modifier = 5 - } - }, - prerequisites = {"character-logistic-slots-7"}, - unit = - { - count = 350, - ingredients = - { - {"science-pack-1", 1}, - {"science-pack-2", 1}, - {"science-pack-3", 1}, - {"alien-science-pack", 1} - }, - time = 30 - }, - upgrade = "true", - order = "c-k-e-h" - }, - - { - type = "technology", - name = "character-logistic-slots-9", - icon = "__base__/graphics/technology/character-logistic-slots.png", - effects = - { - { - type = "character-logistic-slots", - modifier = 5 - } - }, - prerequisites = {"character-logistic-slots-8"}, - unit = - { - count = 400, - ingredients = - { - {"science-pack-1", 1}, - {"science-pack-2", 1}, - {"science-pack-3", 1}, - {"alien-science-pack", 1} - }, - time = 30 - }, - upgrade = "true", - order = "c-k-e-i" - }, - - { - type = "technology", - name = "character-logistic-slots-10", - icon = "__base__/graphics/technology/character-logistic-slots.png", - effects = - { - { - type = "character-logistic-slots", - modifier = 5 - } - }, - prerequisites = {"character-logistic-slots-9"}, - unit = - { - count = 450, - ingredients = - { - {"science-pack-1", 1}, - {"science-pack-2", 1}, - {"science-pack-3", 1}, - {"alien-science-pack", 1} - }, - time = 30 - }, - upgrade = "true", - order = "c-k-e-j" - }, - - - - { - type = "technology", - name = "character-inventory-slots-1", - icon = "__boblogistics__/graphics/icons/technology/character-inventory-slots.png", - icon_size = 128, - effects = - { - { - type = "character-inventory-slots-bonus", - modifier = 10 - } - }, - unit = - { - count = 100, - ingredients = - { - {"science-pack-1", 1}, - {"science-pack-2", 1}, - }, - time = 30 - }, - upgrade = "true", - order = "c-k-f-a" - }, - { - type = "technology", - name = "character-inventory-slots-2", - icon = "__boblogistics__/graphics/icons/technology/character-inventory-slots.png", - icon_size = 128, - effects = - { - { - type = "character-inventory-slots-bonus", - modifier = 10 - } - }, - prerequisites = {"character-inventory-slots-1"}, - unit = - { - count = 150, - ingredients = - { - {"science-pack-1", 1}, - {"science-pack-2", 1}, - {"science-pack-3", 1}, - }, - time = 30 - }, - upgrade = "true", - order = "c-k-f-b" - }, - { - type = "technology", - name = "character-inventory-slots-3", - icon = "__boblogistics__/graphics/icons/technology/character-inventory-slots.png", - icon_size = 128, - effects = - { - { - type = "character-inventory-slots-bonus", - modifier = 10 - } - }, - prerequisites = {"character-inventory-slots-2"}, - unit = - { - count = 200, - ingredients = - { - {"science-pack-1", 1}, - {"science-pack-2", 1}, - {"science-pack-3", 1}, - {"alien-science-pack", 1} - }, - time = 30 - }, - upgrade = "true", - order = "c-k-f-c" - }, -} -) - +data.raw.technology["character-logistic-slots-4"].unit.ingredients = {{"science-pack-1", 1}, {"science-pack-2", 1}, {"science-pack-3", 1}} +data.raw.technology["character-logistic-slots-4"].unit.count = 200 +data.raw.technology["toolbelt"].upgrade = "true" + +data:extend( +{ + { + type = "technology", + name = "toolbelt-2", + icon = "__base__/graphics/technology/toolbelt.png", + effects = + { + { + type = "num-quick-bars", + modifier = 1 + } + }, + prerequisites = {"toolbelt"}, + unit = + { + count = 100, + ingredients = + { + {"science-pack-1", 1}, + {"science-pack-2", 1}, + {"science-pack-3", 1} + }, + time = 30 + }, + upgrade = "true", + order = "c-k-m-a" + }, + + { + type = "technology", + name = "toolbelt-3", + icon = "__base__/graphics/technology/toolbelt.png", + effects = + { + { + type = "num-quick-bars", + modifier = 1 + } + }, + prerequisites = {"toolbelt-2"}, + unit = + { + count = 150, + ingredients = + { + {"science-pack-1", 1}, + {"science-pack-2", 1}, + {"science-pack-3", 1}, + {"alien-science-pack", 1}, + }, + time = 30 + }, + upgrade = "true", + order = "c-k-m-b" + }, + + + { + type = "technology", + name = "character-logistic-slots-5", + icon = "__base__/graphics/technology/character-logistic-slots.png", + effects = + { + { + type = "character-logistic-slots", + modifier = 5 + } + }, + prerequisites = {"character-logistic-slots-4"}, + unit = + { + count = 200, + ingredients = + { + {"science-pack-1", 1}, + {"science-pack-2", 1}, + {"science-pack-3", 1}, + {"alien-science-pack", 1}, + }, + time = 30 + }, + upgrade = "true", + order = "c-k-e-e" + }, + + { + type = "technology", + name = "character-logistic-slots-6", + icon = "__base__/graphics/technology/character-logistic-slots.png", + effects = + { + { + type = "character-logistic-slots", + modifier = 5 + } + }, + prerequisites = {"character-logistic-slots-5"}, + unit = + { + count = 250, + ingredients = + { + {"science-pack-1", 1}, + {"science-pack-2", 1}, + {"science-pack-3", 1}, + {"alien-science-pack", 1}, + }, + time = 30 + }, + upgrade = "true", + order = "c-k-e-f" + }, + + { + type = "technology", + name = "character-logistic-slots-7", + icon = "__base__/graphics/technology/character-logistic-slots.png", + effects = + { + { + type = "character-logistic-slots", + modifier = 5 + } + }, + prerequisites = {"character-logistic-slots-6"}, + unit = + { + count = 300, + ingredients = + { + {"science-pack-1", 1}, + {"science-pack-2", 1}, + {"science-pack-3", 1}, + {"alien-science-pack", 1} + }, + time = 30 + }, + upgrade = "true", + order = "c-k-e-g" + }, + + { + type = "technology", + name = "character-logistic-slots-8", + icon = "__base__/graphics/technology/character-logistic-slots.png", + effects = + { + { + type = "character-logistic-slots", + modifier = 5 + } + }, + prerequisites = {"character-logistic-slots-7"}, + unit = + { + count = 350, + ingredients = + { + {"science-pack-1", 1}, + {"science-pack-2", 1}, + {"science-pack-3", 1}, + {"alien-science-pack", 1} + }, + time = 30 + }, + upgrade = "true", + order = "c-k-e-h" + }, + + { + type = "technology", + name = "character-logistic-slots-9", + icon = "__base__/graphics/technology/character-logistic-slots.png", + effects = + { + { + type = "character-logistic-slots", + modifier = 5 + } + }, + prerequisites = {"character-logistic-slots-8"}, + unit = + { + count = 400, + ingredients = + { + {"science-pack-1", 1}, + {"science-pack-2", 1}, + {"science-pack-3", 1}, + {"alien-science-pack", 1} + }, + time = 30 + }, + upgrade = "true", + order = "c-k-e-i" + }, + + { + type = "technology", + name = "character-logistic-slots-10", + icon = "__base__/graphics/technology/character-logistic-slots.png", + effects = + { + { + type = "character-logistic-slots", + modifier = 5 + } + }, + prerequisites = {"character-logistic-slots-9"}, + unit = + { + count = 450, + ingredients = + { + {"science-pack-1", 1}, + {"science-pack-2", 1}, + {"science-pack-3", 1}, + {"alien-science-pack", 1} + }, + time = 30 + }, + upgrade = "true", + order = "c-k-e-j" + }, + + + + { + type = "technology", + name = "character-inventory-slots-1", + icon = "__boblogistics__/graphics/icons/technology/character-inventory-slots.png", + icon_size = 128, + effects = + { + { + type = "character-inventory-slots-bonus", + modifier = 10 + } + }, + unit = + { + count = 100, + ingredients = + { + {"science-pack-1", 1}, + {"science-pack-2", 1}, + }, + time = 30 + }, + upgrade = "true", + order = "c-k-f-a" + }, + { + type = "technology", + name = "character-inventory-slots-2", + icon = "__boblogistics__/graphics/icons/technology/character-inventory-slots.png", + icon_size = 128, + effects = + { + { + type = "character-inventory-slots-bonus", + modifier = 10 + } + }, + prerequisites = {"character-inventory-slots-1"}, + unit = + { + count = 150, + ingredients = + { + {"science-pack-1", 1}, + {"science-pack-2", 1}, + {"science-pack-3", 1}, + }, + time = 30 + }, + upgrade = "true", + order = "c-k-f-b" + }, + { + type = "technology", + name = "character-inventory-slots-3", + icon = "__boblogistics__/graphics/icons/technology/character-inventory-slots.png", + icon_size = 128, + effects = + { + { + type = "character-inventory-slots-bonus", + modifier = 10 + } + }, + prerequisites = {"character-inventory-slots-2"}, + unit = + { + count = 200, + ingredients = + { + {"science-pack-1", 1}, + {"science-pack-2", 1}, + {"science-pack-3", 1}, + {"alien-science-pack", 1} + }, + time = 30 + }, + upgrade = "true", + order = "c-k-f-c" + }, +} +) + diff --git a/boblogistics_0.14.0/prototypes/technology-updates.lua b/boblogistics_0.14.2/prototypes/technology-updates.lua similarity index 97% rename from boblogistics_0.14.0/prototypes/technology-updates.lua rename to boblogistics_0.14.2/prototypes/technology-updates.lua index 7a23c27..778efd2 100644 --- a/boblogistics_0.14.0/prototypes/technology-updates.lua +++ b/boblogistics_0.14.2/prototypes/technology-updates.lua @@ -1,190 +1,190 @@ -if data.raw.technology["bob-robotics-2"] then - bobmods.lib.tech.add_prerequisite("bob-robots-1", "bob-robotics-2") - bobmods.lib.tech.add_prerequisite("bob-robotics-2", "aluminium-processing") -else - bobmods.lib.tech.add_prerequisite("bob-robots-1", "aluminium-processing") -end - - - -if data.raw.technology["bob-robotics-3"] then - bobmods.lib.tech.add_prerequisite("bob-robots-2", "bob-robotics-3") - bobmods.lib.tech.add_prerequisite("bob-robotics-3", "advanced-electronics-2") - bobmods.lib.tech.add_prerequisite("bob-robotics-3", "titanium-processing") -else - bobmods.lib.tech.add_prerequisite("bob-robots-2", "advanced-electronics-2") - bobmods.lib.tech.add_prerequisite("bob-robots-2", "titanium-processing") -end - -bobmods.lib.tech.add_prerequisite("bob-robo-modular-3", "advanced-electronics-2") - -if data.raw.item["lithium-ion-battery"] and data.raw.technology["battery-2"] then - if data.raw.technology["bob-robotics-3"] then - bobmods.lib.tech.add_prerequisite("bob-robotics-3", "battery-2") - else - bobmods.lib.tech.add_prerequisite("bob-robots-2", "battery-2") - end -end - - - -if data.raw.technology["bob-robotics-4"] then - bobmods.lib.tech.add_prerequisite("bob-robots-3", "bob-robotics-4") - bobmods.lib.tech.add_prerequisite("bob-robotics-4", "advanced-electronics-3") - bobmods.lib.tech.add_prerequisite("bob-robotics-4", "ceramics") -else - bobmods.lib.tech.add_prerequisite("bob-robots-3", "advanced-electronics-3") - bobmods.lib.tech.add_prerequisite("bob-robots-3", "ceramics") -end - -if data.raw.item["silver-zinc-battery"] and data.raw.technology["battery-3"] then - if data.raw.technology["bob-robotics-4"] then - bobmods.lib.tech.add_prerequisite("bob-robotics-4", "battery-3") - else - bobmods.lib.tech.add_prerequisite("bob-robots-3", "battery-3") - end -end - - -if bobmods.logistics.RoboportRecipeUpdate then - bobmods.lib.tech.remove_recipe_unlock("construction-robotics", "roboport") - bobmods.lib.tech.remove_recipe_unlock("logistic-robotics", "roboport") -end - --- fix a difficulty shift. -bobmods.lib.tech.replace_prerequisite("robotics", "advanced-electronics-2", "advanced-electronics") - - -if data.raw.tool["science-pack-4"] then - bobmods.lib.tech.replace_science_pack("bob-robots-3", "alien-science-pack", "science-pack-4") - bobmods.lib.tech.replace_science_pack("bob-robo-modular-4", "alien-science-pack", "science-pack-4") - bobmods.lib.tech.replace_science_pack("toolbelt-3", "alien-science-pack", "science-pack-4") - bobmods.lib.tech.replace_science_pack("logistic-system-2", "alien-science-pack", "science-pack-4") - bobmods.lib.tech.replace_science_pack("character-logistic-slots-5", "alien-science-pack", "science-pack-4") - bobmods.lib.tech.replace_science_pack("character-logistic-slots-6", "alien-science-pack", "science-pack-4") - bobmods.lib.tech.replace_science_pack("character-inventory-slots-3", "alien-science-pack", "science-pack-4") - - bobmods.lib.tech.add_new_science_pack("character-logistic-slots-7", "science-pack-4", 1) - - if data.raw.technology["bob-logistics-5"] then - bobmods.lib.tech.replace_science_pack("bob-logistics-5", "alien-science-pack", "science-pack-4") - end - if data.raw.technology["bob-robotics-3"] then - bobmods.lib.tech.replace_science_pack("bob-robotics-3", "alien-science-pack", "science-pack-4") - end - bobmods.lib.tech.replace_science_pack("inserter-stack-size-bonus-4", "alien-science-pack", "science-pack-4") -end - -if - data.raw.tool["science-pack-gold"] and - data.raw.tool["alien-science-pack-blue"] and - data.raw.tool["alien-science-pack-orange"] and - data.raw.tool["alien-science-pack-purple"] and - data.raw.tool["alien-science-pack-yellow"] and - data.raw.tool["alien-science-pack-green"] and - data.raw.tool["alien-science-pack-red"] -then - data.raw.technology["character-logistic-slots-8"].unit.ingredients = {{"science-pack-gold", 1},{"alien-science-pack", 1},{"alien-science-pack-blue", 1},{"alien-science-pack-orange", 1}} - data.raw.technology["character-logistic-slots-9"].unit.ingredients = {{"science-pack-gold", 1},{"alien-science-pack", 1},{"alien-science-pack-purple", 1},{"alien-science-pack-yellow", 1}} - data.raw.technology["character-logistic-slots-10"].unit.ingredients = {{"science-pack-gold", 1},{"alien-science-pack", 1},{"alien-science-pack-green", 1},{"alien-science-pack-red", 1}} -else - if data.raw.tool["science-pack-4"] then - bobmods.lib.tech.add_new_science_pack("character-logistic-slots-8", "science-pack-4", 1) - bobmods.lib.tech.add_new_science_pack("character-logistic-slots-9", "science-pack-4", 1) - bobmods.lib.tech.add_new_science_pack("character-logistic-slots-10", "science-pack-4", 1) - end -end - - -bobmods.lib.tech.add_recipe_unlock("logistic-robotics", "robot-brain-logistic") -bobmods.lib.tech.add_recipe_unlock("logistic-robotics", "robot-tool-logistic") - -bobmods.lib.tech.add_recipe_unlock("construction-robotics", "robot-brain-construction") -bobmods.lib.tech.add_recipe_unlock("construction-robotics", "robot-tool-construction") - -bobmods.lib.tech.add_recipe_unlock("bob-robots-1", "robot-brain-logistic-2") -bobmods.lib.tech.add_recipe_unlock("bob-robots-1", "robot-tool-logistic-2") -bobmods.lib.tech.add_recipe_unlock("bob-robots-1", "robot-brain-construction-2") -bobmods.lib.tech.add_recipe_unlock("bob-robots-1", "robot-tool-construction-2") - -bobmods.lib.tech.add_recipe_unlock("bob-robots-2", "robot-brain-logistic-3") -bobmods.lib.tech.add_recipe_unlock("bob-robots-2", "robot-tool-logistic-3") -bobmods.lib.tech.add_recipe_unlock("bob-robots-2", "robot-brain-construction-3") -bobmods.lib.tech.add_recipe_unlock("bob-robots-2", "robot-tool-construction-3") - -bobmods.lib.tech.add_recipe_unlock("bob-robots-3", "robot-brain-logistic-4") -bobmods.lib.tech.add_recipe_unlock("bob-robots-3", "robot-tool-logistic-4") -bobmods.lib.tech.add_recipe_unlock("bob-robots-3", "robot-brain-construction-4") -bobmods.lib.tech.add_recipe_unlock("bob-robots-3", "robot-tool-construction-4") - - - -bobmods.lib.tech.add_recipe_unlock("steel-processing", "steel-pipe") -bobmods.lib.tech.add_recipe_unlock("steel-processing", "steel-pipe-to-ground") - -bobmods.lib.tech.add_recipe_unlock("plastics", "plastic-pipe") -bobmods.lib.tech.add_recipe_unlock("plastics", "plastic-pipe-to-ground") - - -if data.raw.technology["alloy-processing-1"] then - bobmods.lib.tech.add_recipe_unlock("alloy-processing-1", "bronze-pipe") - bobmods.lib.tech.add_recipe_unlock("alloy-processing-1", "bronze-pipe-to-ground") -end - -if data.raw.technology["zinc-processing"] then - bobmods.lib.tech.add_recipe_unlock("zinc-processing", "brass-pipe") - bobmods.lib.tech.add_recipe_unlock("zinc-processing", "brass-pipe-to-ground") -end - -if data.raw.technology["titanium-processing"] then - bobmods.lib.tech.add_recipe_unlock("titanium-processing", "titanium-pipe") - bobmods.lib.tech.add_recipe_unlock("titanium-processing", "titanium-pipe-to-ground") -end - -if data.raw.technology["tungsten-processing"] then - bobmods.lib.tech.add_recipe_unlock("tungsten-processing", "tungsten-pipe") - bobmods.lib.tech.add_recipe_unlock("tungsten-processing", "tungsten-pipe-to-ground") -end - -if data.raw.technology["ceramics"] then - bobmods.lib.tech.add_recipe_unlock("ceramics", "ceramic-pipe") - bobmods.lib.tech.add_recipe_unlock("ceramics", "ceramic-pipe-to-ground") -end - - - -if data.raw.technology["lava-smelting-05"] then - bobmods.lib.tech.add_recipe_unlock("lava-smelting-05", "tungsten-pipe") - bobmods.lib.tech.add_recipe_unlock("lava-smelting-05", "tungsten-pipe-to-ground") -end - -if data.raw.technology["lava-smelting-06"] then - bobmods.lib.tech.add_recipe_unlock("lava-smelting-06", "bronze-pipe") - bobmods.lib.tech.add_recipe_unlock("lava-smelting-06", "bronze-pipe-to-ground") - - bobmods.lib.tech.add_recipe_unlock("lava-smelting-06", "brass-pipe") - bobmods.lib.tech.add_recipe_unlock("lava-smelting-06", "brass-pipe-to-ground") -end - - - -local function remove_inserter_stack_size_bonus(technology) - 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 == "inserter-stack-size-bonus" then - table.remove(data.raw.technology[technology].effects,i) - end - end - end -end - -remove_inserter_stack_size_bonus("inserter-capacity-bonus-2") -remove_inserter_stack_size_bonus("inserter-capacity-bonus-7") - -for i = 1, 7 do - data.raw.technology["inserter-capacity-bonus-" .. i].icon = "__boblogistics__/graphics/icons/technology/stack-inserter-capacity.png" - data.raw.technology["inserter-capacity-bonus-" .. i].icon_size = 128 -end - - - +if data.raw.technology["bob-robotics-2"] then + bobmods.lib.tech.add_prerequisite("bob-robots-1", "bob-robotics-2") + bobmods.lib.tech.add_prerequisite("bob-robotics-2", "aluminium-processing") +else + bobmods.lib.tech.add_prerequisite("bob-robots-1", "aluminium-processing") +end + + + +if data.raw.technology["bob-robotics-3"] then + bobmods.lib.tech.add_prerequisite("bob-robots-2", "bob-robotics-3") + bobmods.lib.tech.add_prerequisite("bob-robotics-3", "advanced-electronics-2") + bobmods.lib.tech.add_prerequisite("bob-robotics-3", "titanium-processing") +else + bobmods.lib.tech.add_prerequisite("bob-robots-2", "advanced-electronics-2") + bobmods.lib.tech.add_prerequisite("bob-robots-2", "titanium-processing") +end + +bobmods.lib.tech.add_prerequisite("bob-robo-modular-3", "advanced-electronics-2") + +if data.raw.item["lithium-ion-battery"] and data.raw.technology["battery-2"] then + if data.raw.technology["bob-robotics-3"] then + bobmods.lib.tech.add_prerequisite("bob-robotics-3", "battery-2") + else + bobmods.lib.tech.add_prerequisite("bob-robots-2", "battery-2") + end +end + + + +if data.raw.technology["bob-robotics-4"] then + bobmods.lib.tech.add_prerequisite("bob-robots-3", "bob-robotics-4") + bobmods.lib.tech.add_prerequisite("bob-robotics-4", "advanced-electronics-3") + bobmods.lib.tech.add_prerequisite("bob-robotics-4", "ceramics") +else + bobmods.lib.tech.add_prerequisite("bob-robots-3", "advanced-electronics-3") + bobmods.lib.tech.add_prerequisite("bob-robots-3", "ceramics") +end + +if data.raw.item["silver-zinc-battery"] and data.raw.technology["battery-3"] then + if data.raw.technology["bob-robotics-4"] then + bobmods.lib.tech.add_prerequisite("bob-robotics-4", "battery-3") + else + bobmods.lib.tech.add_prerequisite("bob-robots-3", "battery-3") + end +end + + +if bobmods.logistics.RoboportRecipeUpdate then + bobmods.lib.tech.remove_recipe_unlock("construction-robotics", "roboport") + bobmods.lib.tech.remove_recipe_unlock("logistic-robotics", "roboport") +end + +-- fix a difficulty shift. +bobmods.lib.tech.replace_prerequisite("robotics", "advanced-electronics-2", "advanced-electronics") + + +if data.raw.tool["science-pack-4"] then + bobmods.lib.tech.replace_science_pack("bob-robots-3", "alien-science-pack", "science-pack-4") + bobmods.lib.tech.replace_science_pack("bob-robo-modular-4", "alien-science-pack", "science-pack-4") + bobmods.lib.tech.replace_science_pack("toolbelt-3", "alien-science-pack", "science-pack-4") + bobmods.lib.tech.replace_science_pack("logistic-system-2", "alien-science-pack", "science-pack-4") + bobmods.lib.tech.replace_science_pack("character-logistic-slots-5", "alien-science-pack", "science-pack-4") + bobmods.lib.tech.replace_science_pack("character-logistic-slots-6", "alien-science-pack", "science-pack-4") + bobmods.lib.tech.replace_science_pack("character-inventory-slots-3", "alien-science-pack", "science-pack-4") + + bobmods.lib.tech.add_new_science_pack("character-logistic-slots-7", "science-pack-4", 1) + + if data.raw.technology["bob-logistics-5"] then + bobmods.lib.tech.replace_science_pack("bob-logistics-5", "alien-science-pack", "science-pack-4") + end + if data.raw.technology["bob-robotics-3"] then + bobmods.lib.tech.replace_science_pack("bob-robotics-3", "alien-science-pack", "science-pack-4") + end + bobmods.lib.tech.replace_science_pack("inserter-stack-size-bonus-4", "alien-science-pack", "science-pack-4") +end + +if + data.raw.tool["science-pack-gold"] and + data.raw.tool["alien-science-pack-blue"] and + data.raw.tool["alien-science-pack-orange"] and + data.raw.tool["alien-science-pack-purple"] and + data.raw.tool["alien-science-pack-yellow"] and + data.raw.tool["alien-science-pack-green"] and + data.raw.tool["alien-science-pack-red"] +then + data.raw.technology["character-logistic-slots-8"].unit.ingredients = {{"science-pack-gold", 1},{"alien-science-pack", 1},{"alien-science-pack-blue", 1},{"alien-science-pack-orange", 1}} + data.raw.technology["character-logistic-slots-9"].unit.ingredients = {{"science-pack-gold", 1},{"alien-science-pack", 1},{"alien-science-pack-purple", 1},{"alien-science-pack-yellow", 1}} + data.raw.technology["character-logistic-slots-10"].unit.ingredients = {{"science-pack-gold", 1},{"alien-science-pack", 1},{"alien-science-pack-green", 1},{"alien-science-pack-red", 1}} +else + if data.raw.tool["science-pack-4"] then + bobmods.lib.tech.add_new_science_pack("character-logistic-slots-8", "science-pack-4", 1) + bobmods.lib.tech.add_new_science_pack("character-logistic-slots-9", "science-pack-4", 1) + bobmods.lib.tech.add_new_science_pack("character-logistic-slots-10", "science-pack-4", 1) + end +end + + +bobmods.lib.tech.add_recipe_unlock("logistic-robotics", "robot-brain-logistic") +bobmods.lib.tech.add_recipe_unlock("logistic-robotics", "robot-tool-logistic") + +bobmods.lib.tech.add_recipe_unlock("construction-robotics", "robot-brain-construction") +bobmods.lib.tech.add_recipe_unlock("construction-robotics", "robot-tool-construction") + +bobmods.lib.tech.add_recipe_unlock("bob-robots-1", "robot-brain-logistic-2") +bobmods.lib.tech.add_recipe_unlock("bob-robots-1", "robot-tool-logistic-2") +bobmods.lib.tech.add_recipe_unlock("bob-robots-1", "robot-brain-construction-2") +bobmods.lib.tech.add_recipe_unlock("bob-robots-1", "robot-tool-construction-2") + +bobmods.lib.tech.add_recipe_unlock("bob-robots-2", "robot-brain-logistic-3") +bobmods.lib.tech.add_recipe_unlock("bob-robots-2", "robot-tool-logistic-3") +bobmods.lib.tech.add_recipe_unlock("bob-robots-2", "robot-brain-construction-3") +bobmods.lib.tech.add_recipe_unlock("bob-robots-2", "robot-tool-construction-3") + +bobmods.lib.tech.add_recipe_unlock("bob-robots-3", "robot-brain-logistic-4") +bobmods.lib.tech.add_recipe_unlock("bob-robots-3", "robot-tool-logistic-4") +bobmods.lib.tech.add_recipe_unlock("bob-robots-3", "robot-brain-construction-4") +bobmods.lib.tech.add_recipe_unlock("bob-robots-3", "robot-tool-construction-4") + + + +bobmods.lib.tech.add_recipe_unlock("steel-processing", "steel-pipe") +bobmods.lib.tech.add_recipe_unlock("steel-processing", "steel-pipe-to-ground") + +bobmods.lib.tech.add_recipe_unlock("plastics", "plastic-pipe") +bobmods.lib.tech.add_recipe_unlock("plastics", "plastic-pipe-to-ground") + + +if data.raw.technology["alloy-processing-1"] then + bobmods.lib.tech.add_recipe_unlock("alloy-processing-1", "bronze-pipe") + bobmods.lib.tech.add_recipe_unlock("alloy-processing-1", "bronze-pipe-to-ground") +end + +if data.raw.technology["zinc-processing"] then + bobmods.lib.tech.add_recipe_unlock("zinc-processing", "brass-pipe") + bobmods.lib.tech.add_recipe_unlock("zinc-processing", "brass-pipe-to-ground") +end + +if data.raw.technology["titanium-processing"] then + bobmods.lib.tech.add_recipe_unlock("titanium-processing", "titanium-pipe") + bobmods.lib.tech.add_recipe_unlock("titanium-processing", "titanium-pipe-to-ground") +end + +if data.raw.technology["tungsten-processing"] then + bobmods.lib.tech.add_recipe_unlock("tungsten-processing", "tungsten-pipe") + bobmods.lib.tech.add_recipe_unlock("tungsten-processing", "tungsten-pipe-to-ground") +end + +if data.raw.technology["ceramics"] then + bobmods.lib.tech.add_recipe_unlock("ceramics", "ceramic-pipe") + bobmods.lib.tech.add_recipe_unlock("ceramics", "ceramic-pipe-to-ground") +end + + + +if data.raw.technology["lava-smelting-05"] then + bobmods.lib.tech.add_recipe_unlock("lava-smelting-05", "tungsten-pipe") + bobmods.lib.tech.add_recipe_unlock("lava-smelting-05", "tungsten-pipe-to-ground") +end + +if data.raw.technology["lava-smelting-06"] then + bobmods.lib.tech.add_recipe_unlock("lava-smelting-06", "bronze-pipe") + bobmods.lib.tech.add_recipe_unlock("lava-smelting-06", "bronze-pipe-to-ground") + + bobmods.lib.tech.add_recipe_unlock("lava-smelting-06", "brass-pipe") + bobmods.lib.tech.add_recipe_unlock("lava-smelting-06", "brass-pipe-to-ground") +end + + + +local function remove_inserter_stack_size_bonus(technology) + 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 == "inserter-stack-size-bonus" then + table.remove(data.raw.technology[technology].effects,i) + end + end + end +end + +remove_inserter_stack_size_bonus("inserter-capacity-bonus-2") +remove_inserter_stack_size_bonus("inserter-capacity-bonus-7") + +for i = 1, 7 do + data.raw.technology["inserter-capacity-bonus-" .. i].icon = "__boblogistics__/graphics/icons/technology/stack-inserter-capacity.png" + data.raw.technology["inserter-capacity-bonus-" .. i].icon_size = 128 +end + + + diff --git a/boblogistics_0.14.0/prototypes/technology.lua b/boblogistics_0.14.2/prototypes/technology.lua similarity index 92% rename from boblogistics_0.14.0/prototypes/technology.lua rename to boblogistics_0.14.2/prototypes/technology.lua index 21b2515..a9ec8ba 100644 --- a/boblogistics_0.14.0/prototypes/technology.lua +++ b/boblogistics_0.14.2/prototypes/technology.lua @@ -1,612 +1,612 @@ -data.raw.technology["fluid-handling"].upgrade = "true" - -data:extend( -{ - { - type = "technology", - name = "bob-fluid-handling-2", - icon = "__base__/graphics/technology/fluid-handling.png", - prerequisites = - { - "fluid-handling" - }, - effects = - { - { - type = "unlock-recipe", - recipe = "storage-tank-2" - }, - { - type = "unlock-recipe", - recipe = "small-pump-2" - }, - }, - unit = - { - count = 50, - ingredients = - { - {"science-pack-1", 1}, - {"science-pack-2", 1} - }, - time = 30 - }, - upgrade = "true", - order = "d-a-a-2" - }, - - { - type = "technology", - name = "bob-fluid-handling-3", - icon = "__base__/graphics/technology/fluid-handling.png", - prerequisites = - { - "bob-fluid-handling-2" - }, - effects = - { - { - type = "unlock-recipe", - recipe = "storage-tank-3" - }, - { - type = "unlock-recipe", - recipe = "small-pump-3" - }, - }, - unit = - { - count = 75, - ingredients = - { - {"science-pack-1", 1}, - {"science-pack-2", 1}, - {"science-pack-3", 1} - }, - time = 30 - }, - upgrade = "true", - order = "d-a-a-3" - }, - - { - type = "technology", - name = "bob-fluid-handling-4", - icon = "__base__/graphics/technology/fluid-handling.png", - prerequisites = - { - "bob-fluid-handling-3" - }, - effects = - { - { - type = "unlock-recipe", - recipe = "storage-tank-4" - }, - { - type = "unlock-recipe", - recipe = "small-pump-4" - }, - }, - unit = - { - count = 100, - ingredients = - { - {"science-pack-1", 1}, - {"science-pack-2", 1}, - {"science-pack-3", 1} - }, - time = 30 - }, - upgrade = "true", - order = "d-a-a-4" - }, -} -) - - -data:extend( -{ - { - type = "technology", - name = "bob-railway-2", - icon = "__base__/graphics/technology/railway.png", - effects = - { - { - type = "unlock-recipe", - recipe = "diesel-locomotive-2" - }, - { - type = "unlock-recipe", - recipe = "cargo-wagon-2" - }, - }, - prerequisites = - { - "railway", - "advanced-electronics", - "automated-rail-transportation", - }, - unit = - { - count = 100, - ingredients = - { - {"science-pack-1", 2}, - {"science-pack-2", 1}, - }, - time = 20 - }, - upgrade = true, - order = "c-g-a-2", - }, - - { - type = "technology", - name = "bob-railway-3", - icon = "__base__/graphics/technology/railway.png", - effects = - { - { - type = "unlock-recipe", - recipe = "diesel-locomotive-3" - }, - { - type = "unlock-recipe", - recipe = "cargo-wagon-3" - }, - }, - prerequisites = - { - "bob-railway-2", - "advanced-electronics-2", - }, - unit = - { - count = 100, - ingredients = - { - {"science-pack-1", 2}, - {"science-pack-2", 1}, - {"science-pack-3", 1}, - }, - time = 20 - }, - upgrade = true, - order = "c-g-a-3", - }, - - - { - type = "technology", - name = "bob-armoured-railway", - icon = "__base__/graphics/technology/railway.png", - effects = - { - { - type = "unlock-recipe", - recipe = "armoured-diesel-locomotive" - }, - { - type = "unlock-recipe", - recipe = "armoured-cargo-wagon" - }, - }, - prerequisites = - { - "railway", - "automated-rail-transportation" - }, - unit = - { - count = 70, - ingredients = - { - {"science-pack-1", 2}, - {"science-pack-2", 1}, - {"science-pack-3", 1}, - }, - time = 20 - }, - upgrade = true, - order = "c-g-a-a", - }, -} -) - - -data:extend( -{ - { - type = "technology", - name = "bob-robots-1", - icon = "__boblogistics__/graphics/icons/technology/robotics-2.png", - effects = - { - { - type = "unlock-recipe", - recipe = "bob-logistic-robot-2" - }, - { - type = "unlock-recipe", - recipe = "bob-construction-robot-2" - }, ---[[ - { - type = "ghost-time-to-live", - modifier = 60 * 60 * 10 - }, -]]-- - }, - prerequisites = - { - "construction-robotics", - "logistic-robotics", - }, - unit = - { - count = 75, - ingredients = - { - {"science-pack-1", 1}, - {"science-pack-2", 1}, - }, - time = 30 - }, - upgrade = true, - order = "c-k-a-a", - }, - - { - type = "technology", - name = "bob-robots-2", - icon = "__boblogistics__/graphics/icons/technology/robotics-3.png", - effects = - { - { - type = "unlock-recipe", - recipe = "bob-logistic-robot-3" - }, - { - type = "unlock-recipe", - recipe = "bob-construction-robot-3" - }, - }, - prerequisites = - { - "bob-robots-1", - }, - unit = - { - count = 75, - ingredients = - { - {"science-pack-1", 1}, - {"science-pack-2", 1}, - {"science-pack-3", 1}, - }, - time = 30 - }, - upgrade = true, - order = "c-k-a-b", - }, - - { - type = "technology", - name = "bob-robots-3", - icon = "__boblogistics__/graphics/icons/technology/robotics-4.png", - effects = - { - { - type = "unlock-recipe", - recipe = "bob-logistic-robot-4" - }, - { - type = "unlock-recipe", - recipe = "bob-construction-robot-4" - }, - }, - prerequisites = - { - "bob-robots-2", - }, - unit = - { - count = 100, - ingredients = - { - {"science-pack-1", 1}, - {"science-pack-2", 1}, - {"science-pack-3", 1}, - {"alien-science-pack", 1} - }, - time = 30 - }, - upgrade = true, - order = "c-k-a-c", - }, - - - - { - type = "technology", - name = "bob-robo-modular-1", - icon = "__boblogistics__/graphics/icons/technology/modular-roboport.png", - effects = - { - { - type = "unlock-recipe", - recipe = "roboport" - }, - { - type = "unlock-recipe", - recipe = "bob-robochest" - }, - { - type = "unlock-recipe", - recipe = "bob-logistic-zone-expander" - }, - { - type = "unlock-recipe", - recipe = "bob-robo-charge-port" - }, - { - type = "unlock-recipe", - recipe = "bob-robo-charge-port-large" - }, - { - type = "unlock-recipe", - recipe = "bob-logistic-zone-interface" - }, - { - type = "unlock-recipe", - recipe = "roboport-antenna-1" - }, - { - type = "unlock-recipe", - recipe = "roboport-chargepad-1" - }, - { - type = "unlock-recipe", - recipe = "roboport-door-1" - }, - }, - prerequisites = - { - "robotics", - "flying", - }, - unit = - { - count = 50, - ingredients = - { - {"science-pack-1", 1}, - {"science-pack-2", 1}, - }, - time = 30 - }, - upgrade = true, - order = "c-k-b-a", - }, - - { - type = "technology", - name = "bob-robo-modular-2", - icon = "__boblogistics__/graphics/icons/technology/modular-roboport-2.png", - effects = - { - { - type = "unlock-recipe", - recipe = "bob-roboport-2" - }, - { - type = "unlock-recipe", - recipe = "bob-robochest-2" - }, - { - type = "unlock-recipe", - recipe = "bob-logistic-zone-expander-2" - }, - { - type = "unlock-recipe", - recipe = "bob-robo-charge-port-2" - }, - { - type = "unlock-recipe", - recipe = "bob-robo-charge-port-large-2" - }, - { - type = "unlock-recipe", - recipe = "roboport-antenna-2" - }, - { - type = "unlock-recipe", - recipe = "roboport-chargepad-2" - }, - { - type = "unlock-recipe", - recipe = "roboport-door-2" - }, - }, - prerequisites = - { - "bob-robo-modular-1", - }, - unit = - { - count = 75, - ingredients = - { - {"science-pack-1", 1}, - {"science-pack-2", 1}, - }, - time = 30 - }, - upgrade = true, - order = "c-k-b-a", - }, - - { - type = "technology", - name = "bob-robo-modular-3", - icon = "__boblogistics__/graphics/icons/technology/modular-roboport-3.png", - effects = - { - { - type = "unlock-recipe", - recipe = "bob-roboport-3" - }, - { - type = "unlock-recipe", - recipe = "bob-robochest-3" - }, - { - type = "unlock-recipe", - recipe = "bob-logistic-zone-expander-3" - }, - { - type = "unlock-recipe", - recipe = "bob-robo-charge-port-3" - }, - { - type = "unlock-recipe", - recipe = "bob-robo-charge-port-large-3" - }, - { - type = "unlock-recipe", - recipe = "roboport-antenna-3" - }, - { - type = "unlock-recipe", - recipe = "roboport-chargepad-3" - }, - { - type = "unlock-recipe", - recipe = "roboport-door-3" - }, - }, - prerequisites = - { - "bob-robo-modular-2", - }, - unit = - { - count = 75, - ingredients = - { - {"science-pack-1", 1}, - {"science-pack-2", 1}, - {"science-pack-3", 1}, - }, - time = 30 - }, - upgrade = true, - order = "c-k-b-c", - }, - - { - type = "technology", - name = "bob-robo-modular-4", - icon = "__boblogistics__/graphics/icons/technology/modular-roboport-4.png", - effects = - { - { - type = "unlock-recipe", - recipe = "bob-roboport-4" - }, - { - type = "unlock-recipe", - recipe = "bob-robochest-4" - }, - { - type = "unlock-recipe", - recipe = "bob-logistic-zone-expander-4" - }, - { - type = "unlock-recipe", - recipe = "bob-robo-charge-port-4" - }, - { - type = "unlock-recipe", - recipe = "bob-robo-charge-port-large-4" - }, - { - type = "unlock-recipe", - recipe = "roboport-antenna-4" - }, - { - type = "unlock-recipe", - recipe = "roboport-chargepad-4" - }, - { - type = "unlock-recipe", - recipe = "roboport-door-4" - }, - }, - prerequisites = - { - "bob-robo-modular-3", - }, - unit = - { - count = 100, - ingredients = - { - {"science-pack-1", 1}, - {"science-pack-2", 1}, - {"science-pack-3", 1}, - {"alien-science-pack", 1} - }, - time = 30 - }, - upgrade = true, - order = "c-k-b-d", - }, - - { - type = "technology", - name = "logistic-system-2", - icon = "__base__/graphics/technology/logistic-system.png", - effects = - { - { - type = "unlock-recipe", - recipe = "logistic-chest-passive-provider-2" - }, - { - type = "unlock-recipe", - recipe = "logistic-chest-active-provider-2" - }, - { - type = "unlock-recipe", - recipe = "logistic-chest-storage-2" - }, - { - type = "unlock-recipe", - recipe = "logistic-chest-requester-2" - } - }, - prerequisites = { "logistic-system"}, - unit = { - count = 150, - ingredients = { - {"science-pack-1", 1}, - {"science-pack-2", 1}, - {"science-pack-3", 1}, - {"alien-science-pack", 1} - }, - time = 30 - }, - upgrade = true, - order = "c-k-d-a", - }, -} -) - - - - - +data.raw.technology["fluid-handling"].upgrade = "true" + +data:extend( +{ + { + type = "technology", + name = "bob-fluid-handling-2", + icon = "__base__/graphics/technology/fluid-handling.png", + prerequisites = + { + "fluid-handling" + }, + effects = + { + { + type = "unlock-recipe", + recipe = "storage-tank-2" + }, + { + type = "unlock-recipe", + recipe = "small-pump-2" + }, + }, + unit = + { + count = 50, + ingredients = + { + {"science-pack-1", 1}, + {"science-pack-2", 1} + }, + time = 30 + }, + upgrade = "true", + order = "d-a-a-2" + }, + + { + type = "technology", + name = "bob-fluid-handling-3", + icon = "__base__/graphics/technology/fluid-handling.png", + prerequisites = + { + "bob-fluid-handling-2" + }, + effects = + { + { + type = "unlock-recipe", + recipe = "storage-tank-3" + }, + { + type = "unlock-recipe", + recipe = "small-pump-3" + }, + }, + unit = + { + count = 75, + ingredients = + { + {"science-pack-1", 1}, + {"science-pack-2", 1}, + {"science-pack-3", 1} + }, + time = 30 + }, + upgrade = "true", + order = "d-a-a-3" + }, + + { + type = "technology", + name = "bob-fluid-handling-4", + icon = "__base__/graphics/technology/fluid-handling.png", + prerequisites = + { + "bob-fluid-handling-3" + }, + effects = + { + { + type = "unlock-recipe", + recipe = "storage-tank-4" + }, + { + type = "unlock-recipe", + recipe = "small-pump-4" + }, + }, + unit = + { + count = 100, + ingredients = + { + {"science-pack-1", 1}, + {"science-pack-2", 1}, + {"science-pack-3", 1} + }, + time = 30 + }, + upgrade = "true", + order = "d-a-a-4" + }, +} +) + + +data:extend( +{ + { + type = "technology", + name = "bob-railway-2", + icon = "__base__/graphics/technology/railway.png", + effects = + { + { + type = "unlock-recipe", + recipe = "bob-diesel-locomotive-2" + }, + { + type = "unlock-recipe", + recipe = "bob-cargo-wagon-2" + }, + }, + prerequisites = + { + "railway", + "advanced-electronics", + "automated-rail-transportation", + }, + unit = + { + count = 100, + ingredients = + { + {"science-pack-1", 2}, + {"science-pack-2", 1}, + }, + time = 20 + }, + upgrade = true, + order = "c-g-a-2", + }, + + { + type = "technology", + name = "bob-railway-3", + icon = "__base__/graphics/technology/railway.png", + effects = + { + { + type = "unlock-recipe", + recipe = "bob-diesel-locomotive-3" + }, + { + type = "unlock-recipe", + recipe = "bob-cargo-wagon-3" + }, + }, + prerequisites = + { + "bob-railway-2", + "advanced-electronics-2", + }, + unit = + { + count = 100, + ingredients = + { + {"science-pack-1", 2}, + {"science-pack-2", 1}, + {"science-pack-3", 1}, + }, + time = 20 + }, + upgrade = true, + order = "c-g-a-3", + }, + + + { + type = "technology", + name = "bob-armoured-railway", + icon = "__base__/graphics/technology/railway.png", + effects = + { + { + type = "unlock-recipe", + recipe = "bob-armoured-diesel-locomotive" + }, + { + type = "unlock-recipe", + recipe = "bob-armoured-cargo-wagon" + }, + }, + prerequisites = + { + "railway", + "automated-rail-transportation" + }, + unit = + { + count = 70, + ingredients = + { + {"science-pack-1", 2}, + {"science-pack-2", 1}, + {"science-pack-3", 1}, + }, + time = 20 + }, + upgrade = true, + order = "c-g-a-a", + }, +} +) + + +data:extend( +{ + { + type = "technology", + name = "bob-robots-1", + icon = "__boblogistics__/graphics/icons/technology/robotics-2.png", + effects = + { + { + type = "unlock-recipe", + recipe = "bob-logistic-robot-2" + }, + { + type = "unlock-recipe", + recipe = "bob-construction-robot-2" + }, +--[[ + { + type = "ghost-time-to-live", + modifier = 60 * 60 * 10 + }, +]]-- + }, + prerequisites = + { + "construction-robotics", + "logistic-robotics", + }, + unit = + { + count = 75, + ingredients = + { + {"science-pack-1", 1}, + {"science-pack-2", 1}, + }, + time = 30 + }, + upgrade = true, + order = "c-k-a-a", + }, + + { + type = "technology", + name = "bob-robots-2", + icon = "__boblogistics__/graphics/icons/technology/robotics-3.png", + effects = + { + { + type = "unlock-recipe", + recipe = "bob-logistic-robot-3" + }, + { + type = "unlock-recipe", + recipe = "bob-construction-robot-3" + }, + }, + prerequisites = + { + "bob-robots-1", + }, + unit = + { + count = 75, + ingredients = + { + {"science-pack-1", 1}, + {"science-pack-2", 1}, + {"science-pack-3", 1}, + }, + time = 30 + }, + upgrade = true, + order = "c-k-a-b", + }, + + { + type = "technology", + name = "bob-robots-3", + icon = "__boblogistics__/graphics/icons/technology/robotics-4.png", + effects = + { + { + type = "unlock-recipe", + recipe = "bob-logistic-robot-4" + }, + { + type = "unlock-recipe", + recipe = "bob-construction-robot-4" + }, + }, + prerequisites = + { + "bob-robots-2", + }, + unit = + { + count = 100, + ingredients = + { + {"science-pack-1", 1}, + {"science-pack-2", 1}, + {"science-pack-3", 1}, + {"alien-science-pack", 1} + }, + time = 30 + }, + upgrade = true, + order = "c-k-a-c", + }, + + + + { + type = "technology", + name = "bob-robo-modular-1", + icon = "__boblogistics__/graphics/icons/technology/modular-roboport.png", + effects = + { + { + type = "unlock-recipe", + recipe = "roboport" + }, + { + type = "unlock-recipe", + recipe = "bob-robochest" + }, + { + type = "unlock-recipe", + recipe = "bob-logistic-zone-expander" + }, + { + type = "unlock-recipe", + recipe = "bob-robo-charge-port" + }, + { + type = "unlock-recipe", + recipe = "bob-robo-charge-port-large" + }, + { + type = "unlock-recipe", + recipe = "bob-logistic-zone-interface" + }, + { + type = "unlock-recipe", + recipe = "roboport-antenna-1" + }, + { + type = "unlock-recipe", + recipe = "roboport-chargepad-1" + }, + { + type = "unlock-recipe", + recipe = "roboport-door-1" + }, + }, + prerequisites = + { + "robotics", + "flying", + }, + unit = + { + count = 50, + ingredients = + { + {"science-pack-1", 1}, + {"science-pack-2", 1}, + }, + time = 30 + }, + upgrade = true, + order = "c-k-b-a", + }, + + { + type = "technology", + name = "bob-robo-modular-2", + icon = "__boblogistics__/graphics/icons/technology/modular-roboport-2.png", + effects = + { + { + type = "unlock-recipe", + recipe = "bob-roboport-2" + }, + { + type = "unlock-recipe", + recipe = "bob-robochest-2" + }, + { + type = "unlock-recipe", + recipe = "bob-logistic-zone-expander-2" + }, + { + type = "unlock-recipe", + recipe = "bob-robo-charge-port-2" + }, + { + type = "unlock-recipe", + recipe = "bob-robo-charge-port-large-2" + }, + { + type = "unlock-recipe", + recipe = "roboport-antenna-2" + }, + { + type = "unlock-recipe", + recipe = "roboport-chargepad-2" + }, + { + type = "unlock-recipe", + recipe = "roboport-door-2" + }, + }, + prerequisites = + { + "bob-robo-modular-1", + }, + unit = + { + count = 75, + ingredients = + { + {"science-pack-1", 1}, + {"science-pack-2", 1}, + }, + time = 30 + }, + upgrade = true, + order = "c-k-b-a", + }, + + { + type = "technology", + name = "bob-robo-modular-3", + icon = "__boblogistics__/graphics/icons/technology/modular-roboport-3.png", + effects = + { + { + type = "unlock-recipe", + recipe = "bob-roboport-3" + }, + { + type = "unlock-recipe", + recipe = "bob-robochest-3" + }, + { + type = "unlock-recipe", + recipe = "bob-logistic-zone-expander-3" + }, + { + type = "unlock-recipe", + recipe = "bob-robo-charge-port-3" + }, + { + type = "unlock-recipe", + recipe = "bob-robo-charge-port-large-3" + }, + { + type = "unlock-recipe", + recipe = "roboport-antenna-3" + }, + { + type = "unlock-recipe", + recipe = "roboport-chargepad-3" + }, + { + type = "unlock-recipe", + recipe = "roboport-door-3" + }, + }, + prerequisites = + { + "bob-robo-modular-2", + }, + unit = + { + count = 75, + ingredients = + { + {"science-pack-1", 1}, + {"science-pack-2", 1}, + {"science-pack-3", 1}, + }, + time = 30 + }, + upgrade = true, + order = "c-k-b-c", + }, + + { + type = "technology", + name = "bob-robo-modular-4", + icon = "__boblogistics__/graphics/icons/technology/modular-roboport-4.png", + effects = + { + { + type = "unlock-recipe", + recipe = "bob-roboport-4" + }, + { + type = "unlock-recipe", + recipe = "bob-robochest-4" + }, + { + type = "unlock-recipe", + recipe = "bob-logistic-zone-expander-4" + }, + { + type = "unlock-recipe", + recipe = "bob-robo-charge-port-4" + }, + { + type = "unlock-recipe", + recipe = "bob-robo-charge-port-large-4" + }, + { + type = "unlock-recipe", + recipe = "roboport-antenna-4" + }, + { + type = "unlock-recipe", + recipe = "roboport-chargepad-4" + }, + { + type = "unlock-recipe", + recipe = "roboport-door-4" + }, + }, + prerequisites = + { + "bob-robo-modular-3", + }, + unit = + { + count = 100, + ingredients = + { + {"science-pack-1", 1}, + {"science-pack-2", 1}, + {"science-pack-3", 1}, + {"alien-science-pack", 1} + }, + time = 30 + }, + upgrade = true, + order = "c-k-b-d", + }, + + { + type = "technology", + name = "logistic-system-2", + icon = "__base__/graphics/technology/logistic-system.png", + effects = + { + { + type = "unlock-recipe", + recipe = "logistic-chest-passive-provider-2" + }, + { + type = "unlock-recipe", + recipe = "logistic-chest-active-provider-2" + }, + { + type = "unlock-recipe", + recipe = "logistic-chest-storage-2" + }, + { + type = "unlock-recipe", + recipe = "logistic-chest-requester-2" + } + }, + prerequisites = { "logistic-system"}, + unit = { + count = 150, + ingredients = { + {"science-pack-1", 1}, + {"science-pack-2", 1}, + {"science-pack-3", 1}, + {"alien-science-pack", 1} + }, + time = 30 + }, + upgrade = true, + order = "c-k-d-a", + }, +} +) + + + + + diff --git a/boblogistics_0.14.0/prototypes/valves.lua b/boblogistics_0.14.2/prototypes/valves.lua similarity index 96% rename from boblogistics_0.14.0/prototypes/valves.lua rename to boblogistics_0.14.2/prototypes/valves.lua index 54b567b..65e4841 100644 --- a/boblogistics_0.14.0/prototypes/valves.lua +++ b/boblogistics_0.14.2/prototypes/valves.lua @@ -1,174 +1,174 @@ -data:extend( -{ - { - type = "item", - name = "valve", - icon = "__boblogistics__/graphics/icons/pipe/valve.png", - flags = {"goes-to-quickbar"}, - subgroup = "energy-pipe-distribution", - order = "a[pipe]-c[valve]", - place_result = "valve", - stack_size = 50 - }, - { - type = "recipe", - name = "valve", - energy_required = 2, --- enabled = false, - ingredients = - { - {"iron-plate", 1}, - {"pipe", 1} - }, - result= "valve" - }, - { - type = "pipe-to-ground", - name = "valve", - icon = "__boblogistics__/graphics/icons/pipe/valve.png", - flags = {"placeable-neutral", "player-creation"}, - minable = {hardness = 0.2, mining_time = 0.5, result = "valve"}, - max_health = 50, - fast_replaceable_group = "pipe", - corpse = "small-remnants", - resistances = - { - { - type = "fire", - percent = 80 - } - }, - 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, --- base_level = 0.8, - pipe_covers = pipecoverspictures(), - pipe_connections = - { - { - position = {0, -1}, - type="output" - }, - { - position = {0, 1}, - type="input" - } - }, - }, - underground_sprite = - { - filename = "__core__/graphics/arrows/underground-lines.png", - priority = "high", - width = 32, - height = 32 - }, - vehicle_impact_sound = { filename = "__base__/sound/car-metal-impact.ogg", volume = 0.65 }, - pictures = - { - up = - { - layers = - { - { - filename = "__base__/graphics/entity/pipe/pipe-straight-vertical.png", - priority = "extra-high", - width = 44, - height = 42 - }, - { - filename = "__boblogistics__/graphics/entity/small-pump/pipe-arrow-up.png", - width = 46, - height = 56, - shift = {0.09375, 0.03125}, - }, - { - filename = "__boblogistics__/graphics/entity/small-pump/pipe-arrow-up-mask.png", - width = 46, - height = 56, - shift = {0.09375, 0.03125}, - tint = {r = 0, g = 0, b = 1, a = 1} - } - } - }, - down = - { - layers = - { - { - filename = "__base__/graphics/entity/pipe/pipe-straight-vertical.png", - priority = "extra-high", - width = 44, - height = 42 - }, - { - filename = "__boblogistics__/graphics/entity/small-pump/pipe-arrow-down.png", - width = 61, - height = 58, - shift = {0.421875, -0.125}, - }, - { - filename = "__boblogistics__/graphics/entity/small-pump/pipe-arrow-down-mask.png", - width = 61, - height = 58, - shift = {0.421875, -0.125}, - tint = {r = 0, g = 0, b = 1, a = 1} - } - } - }, - left = - { - layers = - { - { - filename = "__base__/graphics/entity/pipe/pipe-straight-horizontal.png", - priority = "extra-high", - width = 32, - height = 42 - }, - { - filename = "__boblogistics__/graphics/entity/small-pump/pipe-arrow-left.png", - width = 56, - height = 44, - shift = {0.3125, 0.0625}, - }, - { - filename = "__boblogistics__/graphics/entity/small-pump/pipe-arrow-left-mask.png", - width = 56, - height = 44, - shift = {0.3125, 0.0625}, - tint = {r = 0, g = 0, b = 1, a = 1} - } - } - }, - right = - { - layers = - { - { - filename = "__base__/graphics/entity/pipe/pipe-straight-horizontal.png", - priority = "extra-high", - width = 32, - height = 42 - }, - { - filename = "__boblogistics__/graphics/entity/small-pump/pipe-arrow-right.png", - width = 51, - height = 56, - shift = {0.265625, -0.21875}, - }, - { - filename = "__boblogistics__/graphics/entity/small-pump/pipe-arrow-right-mask.png", - width = 51, - height = 56, - shift = {0.265625, -0.21875}, - tint = {r = 0, g = 0, b = 1, a = 1} - } - } - }, - } - }, -} -) - +data:extend( +{ + { + type = "item", + name = "valve", + icon = "__boblogistics__/graphics/icons/pipe/valve.png", + flags = {"goes-to-quickbar"}, + subgroup = "energy-pipe-distribution", + order = "a[pipe]-c[valve]", + place_result = "valve", + stack_size = 50 + }, + { + type = "recipe", + name = "valve", + energy_required = 2, +-- enabled = false, + ingredients = + { + {"iron-plate", 1}, + {"pipe", 1} + }, + result= "valve" + }, + { + type = "pipe-to-ground", + name = "valve", + icon = "__boblogistics__/graphics/icons/pipe/valve.png", + flags = {"placeable-neutral", "player-creation"}, + minable = {hardness = 0.2, mining_time = 0.5, result = "valve"}, + max_health = 50, + fast_replaceable_group = "pipe", + corpse = "small-remnants", + resistances = + { + { + type = "fire", + percent = 80 + } + }, + 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, +-- base_level = 0.8, + pipe_covers = pipecoverspictures(), + pipe_connections = + { + { + position = {0, -1}, + type="output" + }, + { + position = {0, 1}, + type="input" + } + }, + }, + underground_sprite = + { + filename = "__core__/graphics/arrows/underground-lines.png", + priority = "high", + width = 32, + height = 32 + }, + vehicle_impact_sound = { filename = "__base__/sound/car-metal-impact.ogg", volume = 0.65 }, + pictures = + { + up = + { + layers = + { + { + filename = "__base__/graphics/entity/pipe/pipe-straight-vertical.png", + priority = "extra-high", + width = 44, + height = 42 + }, + { + filename = "__boblogistics__/graphics/entity/small-pump/pipe-arrow-up.png", + width = 46, + height = 56, + shift = {0.09375, 0.03125}, + }, + { + filename = "__boblogistics__/graphics/entity/small-pump/pipe-arrow-up-mask.png", + width = 46, + height = 56, + shift = {0.09375, 0.03125}, + tint = {r = 0, g = 0, b = 1, a = 1} + } + } + }, + down = + { + layers = + { + { + filename = "__base__/graphics/entity/pipe/pipe-straight-vertical.png", + priority = "extra-high", + width = 44, + height = 42 + }, + { + filename = "__boblogistics__/graphics/entity/small-pump/pipe-arrow-down.png", + width = 61, + height = 58, + shift = {0.421875, -0.125}, + }, + { + filename = "__boblogistics__/graphics/entity/small-pump/pipe-arrow-down-mask.png", + width = 61, + height = 58, + shift = {0.421875, -0.125}, + tint = {r = 0, g = 0, b = 1, a = 1} + } + } + }, + left = + { + layers = + { + { + filename = "__base__/graphics/entity/pipe/pipe-straight-horizontal.png", + priority = "extra-high", + width = 32, + height = 42 + }, + { + filename = "__boblogistics__/graphics/entity/small-pump/pipe-arrow-left.png", + width = 56, + height = 44, + shift = {0.3125, 0.0625}, + }, + { + filename = "__boblogistics__/graphics/entity/small-pump/pipe-arrow-left-mask.png", + width = 56, + height = 44, + shift = {0.3125, 0.0625}, + tint = {r = 0, g = 0, b = 1, a = 1} + } + } + }, + right = + { + layers = + { + { + filename = "__base__/graphics/entity/pipe/pipe-straight-horizontal.png", + priority = "extra-high", + width = 32, + height = 42 + }, + { + filename = "__boblogistics__/graphics/entity/small-pump/pipe-arrow-right.png", + width = 51, + height = 56, + shift = {0.265625, -0.21875}, + }, + { + filename = "__boblogistics__/graphics/entity/small-pump/pipe-arrow-right-mask.png", + width = 51, + height = 56, + shift = {0.265625, -0.21875}, + tint = {r = 0, g = 0, b = 1, a = 1} + } + } + }, + } + }, +} +) + diff --git a/bobtechsave_0.14.0/control.lua b/bobtechsave_0.14.1/control.lua similarity index 89% rename from bobtechsave_0.14.0/control.lua rename to bobtechsave_0.14.1/control.lua index d2eece8..edf771b 100644 --- a/bobtechsave_0.14.0/control.lua +++ b/bobtechsave_0.14.1/control.lua @@ -1,87 +1,89 @@ -if not bobmods then bobmods = {} end -if not bobmods.techsave then bobmods.techsave = {} end - - -if not global then global = {} end -if not global.techsave then global.techsave = {} end -if not global.techsave.force then global.techsave.force = {} end - - -function bobmods.techsave.create_force(force) - if not global.techsave.force[force.name] then - global.techsave.force[force.name] = {} - end - if not global.techsave.force[force.name].research_progress then - global.techsave.force[force.name].research_progress = {} - end -end - -function bobmods.techsave.technology_cleanup(force) - if global.techsave.force[force.name].research_progress ~= nil then - local newtable = {} - for index, research in pairs(global.techsave.force[force.name].research_progress) do - if game.forces[force.name].technologies[index] then - newtable[index] = research - end - end - global.techsave.force[force.name].research_progress = newtable - end -end - - -function bobmods.techsave.on_tick(event) - for index, force in pairs(game.forces) do - if force.current_research ~= nil then - if global.techsave.force[force.name] then - global.techsave.force[force.name].research_progress[force.current_research.name] = force.research_progress - else - bobmods.techsave.create_force(force) - end - end - end -end - -function bobmods.techsave.on_research_started(event) - if event.research.force.current_research then - if global.techsave.force[event.research.force.name] and global.techsave.force[event.research.force.name].research_progress[event.research.name] then - event.research.force.research_progress = global.techsave.force[event.research.force.name].research_progress[event.research.name] - end - end -end - -function bobmods.techsave.on_research_finished(event) - if global.techsave.force[event.research.force.name] and global.techsave.force[event.research.force.name].research_progress[event.research.name] then - global.techsave.force[event.research.force.name].research_progress[event.research.name] = nil - end -end - -function bobmods.techsave.on_configuration_changed(event) - for index, force in pairs(game.forces) do - bobmods.techsave.create_force(force) - bobmods.techsave.technology_cleanup(force) - end -end - -function bobmods.techsave.on_force_created(event) - bobmods.techsave.create_force(event.force) -end - -function bobmods.techsave.on_forces_merging(event) - local newtable = {} - for index, force in pairs(global.techsave.force) do - if game.forces[index] and index ~= event.source.name then - newtable[index] = force - end - end - global.techsave.force = newtable -end - - -script.on_event(defines.events.on_tick, bobmods.techsave.on_tick) -script.on_event(defines.events.on_research_started, bobmods.techsave.on_research_started) -script.on_event(defines.events.on_research_finished, bobmods.techsave.on_research_finished) -script.on_configuration_changed(bobmods.techsave.on_configuration_changed) -script.on_event(defines.events.on_force_created, bobmods.techsave.on_force_created) -script.on_event(defines.events.on_forces_merging, bobmods.techsave.on_forces_merging) - - +if not bobmods then bobmods = {} end +if not bobmods.techsave then bobmods.techsave = {} end + + +if not global then global = {} end +if not global.techsave then global.techsave = {} end +if not global.techsave.force then global.techsave.force = {} end + + +function bobmods.techsave.create_force(force) + if not global.techsave.force[force.name] then + global.techsave.force[force.name] = {} + end + if not global.techsave.force[force.name].research_progress then + global.techsave.force[force.name].research_progress = {} + end +end + +function bobmods.techsave.technology_cleanup(force) + if global.techsave.force[force.name].research_progress ~= nil then + local newtable = {} + for index, research in pairs(global.techsave.force[force.name].research_progress) do + if game.forces[force.name].technologies[index] then + newtable[index] = research + end + end + global.techsave.force[force.name].research_progress = newtable + end +end + + +function bobmods.techsave.on_tick(event) + for index, force in pairs(game.forces) do + if force.current_research ~= nil then + if not global.techsave.force[force.name] then + bobmods.techsave.create_force(force) + end + if force.research_progress > 1 then + force.research_progress = 1 + end + global.techsave.force[force.name].research_progress[force.current_research.name] = force.research_progress + end + end +end + +function bobmods.techsave.on_research_started(event) + if event.research.force.current_research then + if global.techsave.force[event.research.force.name] and global.techsave.force[event.research.force.name].research_progress[event.research.name] then + event.research.force.research_progress = global.techsave.force[event.research.force.name].research_progress[event.research.name] + end + end +end + +function bobmods.techsave.on_research_finished(event) + if global.techsave.force[event.research.force.name] and global.techsave.force[event.research.force.name].research_progress[event.research.name] then + global.techsave.force[event.research.force.name].research_progress[event.research.name] = nil + end +end + +function bobmods.techsave.on_configuration_changed(event) + for index, force in pairs(game.forces) do + bobmods.techsave.create_force(force) + bobmods.techsave.technology_cleanup(force) + end +end + +function bobmods.techsave.on_force_created(event) + bobmods.techsave.create_force(event.force) +end + +function bobmods.techsave.on_forces_merging(event) + local newtable = {} + for index, force in pairs(global.techsave.force) do + if game.forces[index] and index ~= event.source.name then + newtable[index] = force + end + end + global.techsave.force = newtable +end + + +script.on_event(defines.events.on_tick, bobmods.techsave.on_tick) +script.on_event(defines.events.on_research_started, bobmods.techsave.on_research_started) +script.on_event(defines.events.on_research_finished, bobmods.techsave.on_research_finished) +script.on_configuration_changed(bobmods.techsave.on_configuration_changed) +script.on_event(defines.events.on_force_created, bobmods.techsave.on_force_created) +script.on_event(defines.events.on_forces_merging, bobmods.techsave.on_forces_merging) + + diff --git a/bobtechsave_0.14.0/info.json b/bobtechsave_0.14.1/info.json similarity index 91% rename from bobtechsave_0.14.0/info.json rename to bobtechsave_0.14.1/info.json index fd070ae..e8d0c13 100644 --- a/bobtechsave_0.14.0/info.json +++ b/bobtechsave_0.14.1/info.json @@ -1,11 +1,11 @@ -{ - "name": "bobtechsave", - "version": "0.14.0", - "factorio_version": "0.14", - "title": "Bob's Research Progress Saver", - "author": "Bobingabout", - "contact": "robertagius@hotmail.com", - "homepage": "https://forums.factorio.com/viewforum.php?f=51", - "description": "A mod to keep track of partially researched technologies.", - "dependencies": ["base >= 0.14.0"] -} +{ + "name": "bobtechsave", + "version": "0.14.1", + "factorio_version": "0.14", + "title": "Bob's Research Progress Saver", + "author": "Bobingabout", + "contact": "robertagius@hotmail.com", + "homepage": "https://forums.factorio.com/viewforum.php?f=51", + "description": "A mod to keep track of partially researched technologies.", + "dependencies": ["base >= 0.14.0"] +} diff --git a/bobwarfare_0.14.0/migrations/bobwarfare_0.12.0.lua b/bobwarfare_0.14.0/migrations/bobwarfare_0.12.0.lua deleted file mode 100644 index 897eec4..0000000 --- a/bobwarfare_0.14.0/migrations/bobwarfare_0.12.0.lua +++ /dev/null @@ -1,25 +0,0 @@ -game.reload_script() - -for index, force in pairs(game.forces) do - force.reset_recipes() - force.reset_technologies() - - if force.technologies["military-3"].researched then - force.recipes["rifle"].enabled = true - force.recipes["sniper-rifle"].enabled = true - end - if force.technologies["rocketry"].researched then - force.recipes["rocket-engine"].enabled = true - end - - if force.technologies["bob-laser-rifle"].researched then - force.recipes["laser-rifle-battery-case"].enabled = true - end - - local modifier = force.get_turret_attack_modifier("gun-turret") - force.set_turret_attack_modifier("bob-gun-turret-2", modifier) - force.set_turret_attack_modifier("bob-gun-turret-3", modifier) - force.set_turret_attack_modifier("bob-gun-turret-4", modifier) - force.set_turret_attack_modifier("bob-gun-turret-5", modifier) -end - diff --git a/bobwarfare_0.14.0/migrations/bobwarfare_0.13.1.json b/bobwarfare_0.14.0/migrations/bobwarfare_0.13.1.json deleted file mode 100644 index 1628c6f..0000000 --- a/bobwarfare_0.14.0/migrations/bobwarfare_0.13.1.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "item": - [ - ["impact-bullet-projectile", "electric-bullet-projectile"] - ], - "recipe": - [ - ["impact-bullet-projectile", "electric-bullet-projectile"] - ] -} - diff --git a/bobwarfare_0.14.0/data-updates.lua b/bobwarfare_0.14.1/data-updates.lua similarity index 97% rename from bobwarfare_0.14.0/data-updates.lua rename to bobwarfare_0.14.1/data-updates.lua index b602bc3..44eab1e 100644 --- a/bobwarfare_0.14.0/data-updates.lua +++ b/bobwarfare_0.14.1/data-updates.lua @@ -1,8 +1,8 @@ -require("prototypes.overides") -require("prototypes.recipe.recipe-updates") -require("prototypes.technology.technology-updates") -require("prototypes.productivity-limitations") - -if bobmods.warfare.RobotUpdate == true then - require("prototypes.robots-updates") -end +require("prototypes.overides") +require("prototypes.recipe.recipe-updates") +require("prototypes.technology.technology-updates") +require("prototypes.productivity-limitations") + +if bobmods.warfare.RobotUpdate == true then + require("prototypes.robots-updates") +end diff --git a/bobwarfare_0.14.0/data.lua b/bobwarfare_0.14.1/data.lua similarity index 96% rename from bobwarfare_0.14.0/data.lua rename to bobwarfare_0.14.1/data.lua index 427c357..80b6466 100644 --- a/bobwarfare_0.14.0/data.lua +++ b/bobwarfare_0.14.1/data.lua @@ -1,121 +1,122 @@ -if not bobmods then bobmods = {} end -if not bobmods.warfare then bobmods.warfare = {} end - -bobmods.warfare.TankCannonResearch = true -bobmods.warfare.FlyingRobotFrames = true -bobmods.warfare.RobotParts = true -bobmods.warfare.RobotRequirePrevious = true -bobmods.warfare.RobotUpdate = true -bobmods.warfare.EnableVehicleGrids = true - - -if bobmods.config and bobmods.config.warfare then - if bobmods.config.warfare.TankCannonResearch ~= nil then - bobmods.warfare.TankCannonResearch = bobmods.config.warfare.TankCannonResearch - end - if bobmods.config.warfare.RobotUpdate ~= nil then - bobmods.warfare.RobotUpdate = bobmods.config.warfare.RobotUpdate - end -end - - -if bobmods.config and bobmods.config.logistics and bobmods.config.logistics.FlyingRobotFrames ~= nil then - bobmods.warfare.FlyingRobotFrames = bobmods.config.logistics.FlyingRobotFrames -elseif bobmods.logistics and bobmods.logistics.FlyingRobotFrames ~= nil then - bobmods.warfare.FlyingRobotFrames = bobmods.logistics.FlyingRobotFrames -end - -if bobmods.config and bobmods.config.logistics and bobmods.config.logistics.RobotParts ~= nil then - bobmods.warfare.RobotParts = bobmods.config.logistics.RobotParts -elseif bobmods.logistics and bobmods.logistics.RobotParts ~= nil then - bobmods.warfare.RobotParts = bobmods.logistics.RobotParts -end - -if bobmods.config and bobmods.config.logistics and bobmods.config.logistics.RobotRequirePrevious ~= nil then - bobmods.warfare.RobotRequirePrevious = bobmods.config.logistics.RobotRequirePrevious -elseif bobmods.logistics and bobmods.logistics.RobotRequirePrevious ~= nil then - bobmods.warfare.RobotRequirePrevious = bobmods.logistics.RobotRequirePrevious -end - -if bobmods.config then - if bobmods.config.EnableVehicleGrids ~= nil then - bobmods.warfare.EnableVehicleGrids = bobmods.config.EnableVehicleGrids - end -end - - -require("prototypes.damage-type") -require("prototypes.category") - - -require("prototypes.item.fluid") -require("prototypes.item.parts") -require("prototypes.item.gun") -require("prototypes.item.ammo") -require("prototypes.item.mine") -require("prototypes.item.armor") -require("prototypes.item.drone") -require("prototypes.item.wall") -require("prototypes.item.equipment") -require("prototypes.item.turrets") -require("prototypes.item.tank") -require("prototypes.item.radar") - -require("prototypes.recipe.fluid-recipe") -require("prototypes.recipe.parts-recipe") -require("prototypes.recipe.gun-recipe") -require("prototypes.recipe.ammo-recipe") -require("prototypes.recipe.mine-recipe") -require("prototypes.recipe.armor-recipe") -require("prototypes.recipe.drone") -require("prototypes.recipe.wall") -require("prototypes.recipe.equipment") -require("prototypes.recipe.turrets") -require("prototypes.recipe.tank") -require("prototypes.recipe.radar-recipe") - -require("prototypes.entity.effects") -require("prototypes.entity.projectiles") -require("prototypes.entity.mine") -require("prototypes.entity.drone") -require("prototypes.entity.wall") -require("prototypes.entity.turrets") -require("prototypes.entity.tank") -require("prototypes.entity.radar") - -require("prototypes.equipment.equipment") -require("prototypes.equipment.equipment-grid") - -require("prototypes.technology.technology") -require("prototypes.technology.gun") -require("prototypes.technology.ammo") -require("prototypes.technology.armor") -require("prototypes.technology.mine") -require("prototypes.technology.drone") -require("prototypes.technology.wall") -require("prototypes.technology.equipment") -require("prototypes.technology.laser-rifle-upgrades") -require("prototypes.technology.turrets") -require("prototypes.technology.sniper-turret-upgrades") -require("prototypes.technology.rocket-upgrades") -require("prototypes.technology.tank") -require("prototypes.technology.radar") - - -if bobmods.warfare.RobotUpdate == true then - require("prototypes.robots") - if bobmods.warfare.RobotParts == true then - require("prototypes.robot-parts") - end -end - - - -if bobmods.warfare.TankCannonResearch == true then - require("prototypes.technology.tank-cannon-upgrades") - require("prototypes.technology.tank-artillery-upgrades") -end - -if bobmods.warfare.EnableVehicleGrids then - data.raw.car.tank.equipment_grid = "bob-tank" -end +if not bobmods then bobmods = {} end +if not bobmods.warfare then bobmods.warfare = {} end + +bobmods.warfare.TankCannonResearch = true +bobmods.warfare.FlyingRobotFrames = true +bobmods.warfare.RobotParts = true +bobmods.warfare.RobotRequirePrevious = true +bobmods.warfare.RobotUpdate = true +bobmods.warfare.EnableVehicleGrids = true + + +if bobmods.config and bobmods.config.warfare then + if bobmods.config.warfare.TankCannonResearch ~= nil then + bobmods.warfare.TankCannonResearch = bobmods.config.warfare.TankCannonResearch + end + if bobmods.config.warfare.RobotUpdate ~= nil then + bobmods.warfare.RobotUpdate = bobmods.config.warfare.RobotUpdate + end +end + + +if bobmods.config and bobmods.config.logistics and bobmods.config.logistics.FlyingRobotFrames ~= nil then + bobmods.warfare.FlyingRobotFrames = bobmods.config.logistics.FlyingRobotFrames +elseif bobmods.logistics and bobmods.logistics.FlyingRobotFrames ~= nil then + bobmods.warfare.FlyingRobotFrames = bobmods.logistics.FlyingRobotFrames +end + +if bobmods.config and bobmods.config.logistics and bobmods.config.logistics.RobotParts ~= nil then + bobmods.warfare.RobotParts = bobmods.config.logistics.RobotParts +elseif bobmods.logistics and bobmods.logistics.RobotParts ~= nil then + bobmods.warfare.RobotParts = bobmods.logistics.RobotParts +end + +if bobmods.config and bobmods.config.logistics and bobmods.config.logistics.RobotRequirePrevious ~= nil then + bobmods.warfare.RobotRequirePrevious = bobmods.config.logistics.RobotRequirePrevious +elseif bobmods.logistics and bobmods.logistics.RobotRequirePrevious ~= nil then + bobmods.warfare.RobotRequirePrevious = bobmods.logistics.RobotRequirePrevious +end + +if bobmods.config then + if bobmods.config.EnableVehicleGrids ~= nil then + bobmods.warfare.EnableVehicleGrids = bobmods.config.EnableVehicleGrids + end +end + + +require("prototypes.damage-type") +require("prototypes.category") + + +require("prototypes.item.fluid") +require("prototypes.item.parts") +require("prototypes.item.gun") +require("prototypes.item.ammo") +require("prototypes.item.mine") +require("prototypes.item.armor") +require("prototypes.item.drone") +require("prototypes.item.wall") +require("prototypes.item.equipment") +require("prototypes.item.turrets") +require("prototypes.item.tank") +require("prototypes.item.radar") + +require("prototypes.recipe.fluid-recipe") +require("prototypes.recipe.parts-recipe") +require("prototypes.recipe.gun-recipe") +require("prototypes.recipe.ammo-recipe") +require("prototypes.recipe.mine-recipe") +require("prototypes.recipe.armor-recipe") +require("prototypes.recipe.drone") +require("prototypes.recipe.wall") +require("prototypes.recipe.equipment") +require("prototypes.recipe.turrets") +require("prototypes.recipe.tank") +require("prototypes.recipe.radar-recipe") + +require("prototypes.entity.effects") +require("prototypes.entity.projectiles") +require("prototypes.entity.mine") +require("prototypes.entity.drone") +require("prototypes.entity.wall") +require("prototypes.entity.turrets") +require("prototypes.entity.tank") +require("prototypes.entity.radar") + +require("prototypes.equipment.equipment") +require("prototypes.equipment.equipment-grid") + +require("prototypes.technology.technology") +require("prototypes.technology.gun") +require("prototypes.technology.ammo") +require("prototypes.technology.armor") +require("prototypes.technology.mine") +require("prototypes.technology.drone") +require("prototypes.technology.wall") +require("prototypes.technology.equipment") +require("prototypes.technology.laser-rifle-upgrades") +require("prototypes.technology.turrets") +require("prototypes.technology.sniper-turret-upgrades") +require("prototypes.technology.rocket-upgrades") +require("prototypes.technology.tank") +require("prototypes.technology.radar") + + +if bobmods.warfare.RobotUpdate == true then + require("prototypes.robots") + if bobmods.warfare.RobotParts == true then + require("prototypes.robot-parts") + end +end + + + +if bobmods.warfare.TankCannonResearch == true then + require("prototypes.technology.tank-cannon-upgrades") + require("prototypes.technology.tank-artillery-upgrades") +end + +if bobmods.warfare.EnableVehicleGrids then + data.raw.car.car.equipment_grid = "bob-car" + data.raw.car.tank.equipment_grid = "bob-tank" +end diff --git a/bobwarfare_0.14.0/graphics/entities/beam/beam-body-1.png b/bobwarfare_0.14.1/graphics/entities/beam/beam-body-1.png similarity index 100% rename from bobwarfare_0.14.0/graphics/entities/beam/beam-body-1.png rename to bobwarfare_0.14.1/graphics/entities/beam/beam-body-1.png diff --git a/bobwarfare_0.14.0/graphics/entities/beam/beam-body-2.png b/bobwarfare_0.14.1/graphics/entities/beam/beam-body-2.png similarity index 100% rename from bobwarfare_0.14.0/graphics/entities/beam/beam-body-2.png rename to bobwarfare_0.14.1/graphics/entities/beam/beam-body-2.png diff --git a/bobwarfare_0.14.0/graphics/entities/beam/beam-body-3.png b/bobwarfare_0.14.1/graphics/entities/beam/beam-body-3.png similarity index 100% rename from bobwarfare_0.14.0/graphics/entities/beam/beam-body-3.png rename to bobwarfare_0.14.1/graphics/entities/beam/beam-body-3.png diff --git a/bobwarfare_0.14.0/graphics/entities/beam/beam-body-4.png b/bobwarfare_0.14.1/graphics/entities/beam/beam-body-4.png similarity index 100% rename from bobwarfare_0.14.0/graphics/entities/beam/beam-body-4.png rename to bobwarfare_0.14.1/graphics/entities/beam/beam-body-4.png diff --git a/bobwarfare_0.14.0/graphics/entities/beam/beam-body-5.png b/bobwarfare_0.14.1/graphics/entities/beam/beam-body-5.png similarity index 100% rename from bobwarfare_0.14.0/graphics/entities/beam/beam-body-5.png rename to bobwarfare_0.14.1/graphics/entities/beam/beam-body-5.png diff --git a/bobwarfare_0.14.0/graphics/entities/beam/beam-body-6.png b/bobwarfare_0.14.1/graphics/entities/beam/beam-body-6.png similarity index 100% rename from bobwarfare_0.14.0/graphics/entities/beam/beam-body-6.png rename to bobwarfare_0.14.1/graphics/entities/beam/beam-body-6.png diff --git a/bobwarfare_0.14.0/graphics/entities/beam/beam-head.png b/bobwarfare_0.14.1/graphics/entities/beam/beam-head.png similarity index 100% rename from bobwarfare_0.14.0/graphics/entities/beam/beam-head.png rename to bobwarfare_0.14.1/graphics/entities/beam/beam-head.png diff --git a/bobwarfare_0.14.0/graphics/entities/beam/beam-tail.png b/bobwarfare_0.14.1/graphics/entities/beam/beam-tail.png similarity index 100% rename from bobwarfare_0.14.0/graphics/entities/beam/beam-tail.png rename to bobwarfare_0.14.1/graphics/entities/beam/beam-tail.png diff --git a/bobwarfare_0.14.0/graphics/entities/fire.png b/bobwarfare_0.14.1/graphics/entities/fire.png similarity index 100% rename from bobwarfare_0.14.0/graphics/entities/fire.png rename to bobwarfare_0.14.1/graphics/entities/fire.png diff --git a/bobwarfare_0.14.0/graphics/entities/laser-bubble.png b/bobwarfare_0.14.1/graphics/entities/laser-bubble.png similarity index 100% rename from bobwarfare_0.14.0/graphics/entities/laser-bubble.png rename to bobwarfare_0.14.1/graphics/entities/laser-bubble.png diff --git a/bobwarfare_0.14.0/graphics/entities/projectiles/acid-projectile-green.png b/bobwarfare_0.14.1/graphics/entities/projectiles/acid-projectile-green.png similarity index 100% rename from bobwarfare_0.14.0/graphics/entities/projectiles/acid-projectile-green.png rename to bobwarfare_0.14.1/graphics/entities/projectiles/acid-projectile-green.png diff --git a/bobwarfare_0.14.0/graphics/entities/projectiles/acid-projectile-red.png b/bobwarfare_0.14.1/graphics/entities/projectiles/acid-projectile-red.png similarity index 100% rename from bobwarfare_0.14.0/graphics/entities/projectiles/acid-projectile-red.png rename to bobwarfare_0.14.1/graphics/entities/projectiles/acid-projectile-red.png diff --git a/bobwarfare_0.14.0/graphics/entities/projectiles/acid-projectile-shadow.png b/bobwarfare_0.14.1/graphics/entities/projectiles/acid-projectile-shadow.png similarity index 100% rename from bobwarfare_0.14.0/graphics/entities/projectiles/acid-projectile-shadow.png rename to bobwarfare_0.14.1/graphics/entities/projectiles/acid-projectile-shadow.png diff --git a/bobwarfare_0.14.0/graphics/entities/projectiles/acid-projectile-yellow.png b/bobwarfare_0.14.1/graphics/entities/projectiles/acid-projectile-yellow.png similarity index 100% rename from bobwarfare_0.14.0/graphics/entities/projectiles/acid-projectile-yellow.png rename to bobwarfare_0.14.1/graphics/entities/projectiles/acid-projectile-yellow.png diff --git a/bobwarfare_0.14.0/graphics/entities/projectiles/acid-rocket.png b/bobwarfare_0.14.1/graphics/entities/projectiles/acid-rocket.png similarity index 100% rename from bobwarfare_0.14.0/graphics/entities/projectiles/acid-rocket.png rename to bobwarfare_0.14.1/graphics/entities/projectiles/acid-rocket.png diff --git a/bobwarfare_0.14.0/graphics/entities/projectiles/electric-rocket.png b/bobwarfare_0.14.1/graphics/entities/projectiles/electric-rocket.png similarity index 100% rename from bobwarfare_0.14.0/graphics/entities/projectiles/electric-rocket.png rename to bobwarfare_0.14.1/graphics/entities/projectiles/electric-rocket.png diff --git a/bobwarfare_0.14.0/graphics/entities/projectiles/explosive-rocket.png b/bobwarfare_0.14.1/graphics/entities/projectiles/explosive-rocket.png similarity index 100% rename from bobwarfare_0.14.0/graphics/entities/projectiles/explosive-rocket.png rename to bobwarfare_0.14.1/graphics/entities/projectiles/explosive-rocket.png diff --git a/bobwarfare_0.14.0/graphics/entities/projectiles/flame-rocket.png b/bobwarfare_0.14.1/graphics/entities/projectiles/flame-rocket.png similarity index 100% rename from bobwarfare_0.14.0/graphics/entities/projectiles/flame-rocket.png rename to bobwarfare_0.14.1/graphics/entities/projectiles/flame-rocket.png diff --git a/bobwarfare_0.14.0/graphics/entities/projectiles/laser.png b/bobwarfare_0.14.1/graphics/entities/projectiles/laser.png similarity index 100% rename from bobwarfare_0.14.0/graphics/entities/projectiles/laser.png rename to bobwarfare_0.14.1/graphics/entities/projectiles/laser.png diff --git a/bobwarfare_0.14.0/graphics/entities/projectiles/piercing-rocket.png b/bobwarfare_0.14.1/graphics/entities/projectiles/piercing-rocket.png similarity index 100% rename from bobwarfare_0.14.0/graphics/entities/projectiles/piercing-rocket.png rename to bobwarfare_0.14.1/graphics/entities/projectiles/piercing-rocket.png diff --git a/bobwarfare_0.14.0/graphics/entities/projectiles/poison-rocket.png b/bobwarfare_0.14.1/graphics/entities/projectiles/poison-rocket.png similarity index 100% rename from bobwarfare_0.14.0/graphics/entities/projectiles/poison-rocket.png rename to bobwarfare_0.14.1/graphics/entities/projectiles/poison-rocket.png diff --git a/bobwarfare_0.14.0/graphics/entities/projectiles/rocket-shadow.png b/bobwarfare_0.14.1/graphics/entities/projectiles/rocket-shadow.png similarity index 100% rename from bobwarfare_0.14.0/graphics/entities/projectiles/rocket-shadow.png rename to bobwarfare_0.14.1/graphics/entities/projectiles/rocket-shadow.png diff --git a/bobwarfare_0.14.0/graphics/entities/projectiles/rocket.png b/bobwarfare_0.14.1/graphics/entities/projectiles/rocket.png similarity index 100% rename from bobwarfare_0.14.0/graphics/entities/projectiles/rocket.png rename to bobwarfare_0.14.1/graphics/entities/projectiles/rocket.png diff --git a/bobwarfare_0.14.0/graphics/entities/projectiles/shotgun-shot.png b/bobwarfare_0.14.1/graphics/entities/projectiles/shotgun-shot.png similarity index 100% rename from bobwarfare_0.14.0/graphics/entities/projectiles/shotgun-shot.png rename to bobwarfare_0.14.1/graphics/entities/projectiles/shotgun-shot.png diff --git a/bobwarfare_0.14.0/graphics/entities/reinforced-wall/wall-corner-left-down-shadow.png b/bobwarfare_0.14.1/graphics/entities/reinforced-wall/wall-corner-left-down-shadow.png similarity index 100% rename from bobwarfare_0.14.0/graphics/entities/reinforced-wall/wall-corner-left-down-shadow.png rename to bobwarfare_0.14.1/graphics/entities/reinforced-wall/wall-corner-left-down-shadow.png diff --git a/bobwarfare_0.14.0/graphics/entities/reinforced-wall/wall-corner-left-down.png b/bobwarfare_0.14.1/graphics/entities/reinforced-wall/wall-corner-left-down.png similarity index 100% rename from bobwarfare_0.14.0/graphics/entities/reinforced-wall/wall-corner-left-down.png rename to bobwarfare_0.14.1/graphics/entities/reinforced-wall/wall-corner-left-down.png diff --git a/bobwarfare_0.14.0/graphics/entities/reinforced-wall/wall-corner-right-down-shadow.png b/bobwarfare_0.14.1/graphics/entities/reinforced-wall/wall-corner-right-down-shadow.png similarity index 100% rename from bobwarfare_0.14.0/graphics/entities/reinforced-wall/wall-corner-right-down-shadow.png rename to bobwarfare_0.14.1/graphics/entities/reinforced-wall/wall-corner-right-down-shadow.png diff --git a/bobwarfare_0.14.0/graphics/entities/reinforced-wall/wall-corner-right-down.png b/bobwarfare_0.14.1/graphics/entities/reinforced-wall/wall-corner-right-down.png similarity index 100% rename from bobwarfare_0.14.0/graphics/entities/reinforced-wall/wall-corner-right-down.png rename to bobwarfare_0.14.1/graphics/entities/reinforced-wall/wall-corner-right-down.png diff --git a/bobwarfare_0.14.0/graphics/entities/reinforced-wall/wall-ending-left-shadow.png b/bobwarfare_0.14.1/graphics/entities/reinforced-wall/wall-ending-left-shadow.png similarity index 100% rename from bobwarfare_0.14.0/graphics/entities/reinforced-wall/wall-ending-left-shadow.png rename to bobwarfare_0.14.1/graphics/entities/reinforced-wall/wall-ending-left-shadow.png diff --git a/bobwarfare_0.14.0/graphics/entities/reinforced-wall/wall-ending-left.png b/bobwarfare_0.14.1/graphics/entities/reinforced-wall/wall-ending-left.png similarity index 100% rename from bobwarfare_0.14.0/graphics/entities/reinforced-wall/wall-ending-left.png rename to bobwarfare_0.14.1/graphics/entities/reinforced-wall/wall-ending-left.png diff --git a/bobwarfare_0.14.0/graphics/entities/reinforced-wall/wall-ending-right-shadow.png b/bobwarfare_0.14.1/graphics/entities/reinforced-wall/wall-ending-right-shadow.png similarity index 100% rename from bobwarfare_0.14.0/graphics/entities/reinforced-wall/wall-ending-right-shadow.png rename to bobwarfare_0.14.1/graphics/entities/reinforced-wall/wall-ending-right-shadow.png diff --git a/bobwarfare_0.14.0/graphics/entities/reinforced-wall/wall-ending-right.png b/bobwarfare_0.14.1/graphics/entities/reinforced-wall/wall-ending-right.png similarity index 100% rename from bobwarfare_0.14.0/graphics/entities/reinforced-wall/wall-ending-right.png rename to bobwarfare_0.14.1/graphics/entities/reinforced-wall/wall-ending-right.png diff --git a/bobwarfare_0.14.0/graphics/entities/reinforced-wall/wall-single-shadow.png b/bobwarfare_0.14.1/graphics/entities/reinforced-wall/wall-single-shadow.png similarity index 100% rename from bobwarfare_0.14.0/graphics/entities/reinforced-wall/wall-single-shadow.png rename to bobwarfare_0.14.1/graphics/entities/reinforced-wall/wall-single-shadow.png diff --git a/bobwarfare_0.14.0/graphics/entities/reinforced-wall/wall-single.png b/bobwarfare_0.14.1/graphics/entities/reinforced-wall/wall-single.png similarity index 100% rename from bobwarfare_0.14.0/graphics/entities/reinforced-wall/wall-single.png rename to bobwarfare_0.14.1/graphics/entities/reinforced-wall/wall-single.png diff --git a/bobwarfare_0.14.0/graphics/entities/reinforced-wall/wall-straight-horizontal-1.png b/bobwarfare_0.14.1/graphics/entities/reinforced-wall/wall-straight-horizontal-1.png similarity index 100% rename from bobwarfare_0.14.0/graphics/entities/reinforced-wall/wall-straight-horizontal-1.png rename to bobwarfare_0.14.1/graphics/entities/reinforced-wall/wall-straight-horizontal-1.png diff --git a/bobwarfare_0.14.0/graphics/entities/reinforced-wall/wall-straight-horizontal-2.png b/bobwarfare_0.14.1/graphics/entities/reinforced-wall/wall-straight-horizontal-2.png similarity index 100% rename from bobwarfare_0.14.0/graphics/entities/reinforced-wall/wall-straight-horizontal-2.png rename to bobwarfare_0.14.1/graphics/entities/reinforced-wall/wall-straight-horizontal-2.png diff --git a/bobwarfare_0.14.0/graphics/entities/reinforced-wall/wall-straight-horizontal-3.png b/bobwarfare_0.14.1/graphics/entities/reinforced-wall/wall-straight-horizontal-3.png similarity index 100% rename from bobwarfare_0.14.0/graphics/entities/reinforced-wall/wall-straight-horizontal-3.png rename to bobwarfare_0.14.1/graphics/entities/reinforced-wall/wall-straight-horizontal-3.png diff --git a/bobwarfare_0.14.0/graphics/entities/reinforced-wall/wall-straight-horizontal-shadow.png b/bobwarfare_0.14.1/graphics/entities/reinforced-wall/wall-straight-horizontal-shadow.png similarity index 100% rename from bobwarfare_0.14.0/graphics/entities/reinforced-wall/wall-straight-horizontal-shadow.png rename to bobwarfare_0.14.1/graphics/entities/reinforced-wall/wall-straight-horizontal-shadow.png diff --git a/bobwarfare_0.14.0/graphics/entities/reinforced-wall/wall-straight-vertical-1.png b/bobwarfare_0.14.1/graphics/entities/reinforced-wall/wall-straight-vertical-1.png similarity index 100% rename from bobwarfare_0.14.0/graphics/entities/reinforced-wall/wall-straight-vertical-1.png rename to bobwarfare_0.14.1/graphics/entities/reinforced-wall/wall-straight-vertical-1.png diff --git a/bobwarfare_0.14.0/graphics/entities/reinforced-wall/wall-straight-vertical-2.png b/bobwarfare_0.14.1/graphics/entities/reinforced-wall/wall-straight-vertical-2.png similarity index 100% rename from bobwarfare_0.14.0/graphics/entities/reinforced-wall/wall-straight-vertical-2.png rename to bobwarfare_0.14.1/graphics/entities/reinforced-wall/wall-straight-vertical-2.png diff --git a/bobwarfare_0.14.0/graphics/entities/reinforced-wall/wall-straight-vertical-3.png b/bobwarfare_0.14.1/graphics/entities/reinforced-wall/wall-straight-vertical-3.png similarity index 100% rename from bobwarfare_0.14.0/graphics/entities/reinforced-wall/wall-straight-vertical-3.png rename to bobwarfare_0.14.1/graphics/entities/reinforced-wall/wall-straight-vertical-3.png diff --git a/bobwarfare_0.14.0/graphics/entities/reinforced-wall/wall-straight-vertical-shadow.png b/bobwarfare_0.14.1/graphics/entities/reinforced-wall/wall-straight-vertical-shadow.png similarity index 100% rename from bobwarfare_0.14.0/graphics/entities/reinforced-wall/wall-straight-vertical-shadow.png rename to bobwarfare_0.14.1/graphics/entities/reinforced-wall/wall-straight-vertical-shadow.png diff --git a/bobwarfare_0.14.0/graphics/entities/reinforced-wall/wall-t-down-shadow.png b/bobwarfare_0.14.1/graphics/entities/reinforced-wall/wall-t-down-shadow.png similarity index 100% rename from bobwarfare_0.14.0/graphics/entities/reinforced-wall/wall-t-down-shadow.png rename to bobwarfare_0.14.1/graphics/entities/reinforced-wall/wall-t-down-shadow.png diff --git a/bobwarfare_0.14.0/graphics/entities/reinforced-wall/wall-t-down.png b/bobwarfare_0.14.1/graphics/entities/reinforced-wall/wall-t-down.png similarity index 100% rename from bobwarfare_0.14.0/graphics/entities/reinforced-wall/wall-t-down.png rename to bobwarfare_0.14.1/graphics/entities/reinforced-wall/wall-t-down.png diff --git a/bobwarfare_0.14.0/graphics/entities/robots/combat-robot-capsule-shadow.png b/bobwarfare_0.14.1/graphics/entities/robots/combat-robot-capsule-shadow.png similarity index 100% rename from bobwarfare_0.14.0/graphics/entities/robots/combat-robot-capsule-shadow.png rename to bobwarfare_0.14.1/graphics/entities/robots/combat-robot-capsule-shadow.png diff --git a/bobwarfare_0.14.0/graphics/entities/robots/construction-robot-2.png b/bobwarfare_0.14.1/graphics/entities/robots/construction-robot-2.png similarity index 100% rename from bobwarfare_0.14.0/graphics/entities/robots/construction-robot-2.png rename to bobwarfare_0.14.1/graphics/entities/robots/construction-robot-2.png diff --git a/bobwarfare_0.14.0/graphics/entities/robots/construction-robot-3.png b/bobwarfare_0.14.1/graphics/entities/robots/construction-robot-3.png similarity index 100% rename from bobwarfare_0.14.0/graphics/entities/robots/construction-robot-3.png rename to bobwarfare_0.14.1/graphics/entities/robots/construction-robot-3.png diff --git a/bobwarfare_0.14.0/graphics/entities/robots/construction-robot-4.png b/bobwarfare_0.14.1/graphics/entities/robots/construction-robot-4.png similarity index 100% rename from bobwarfare_0.14.0/graphics/entities/robots/construction-robot-4.png rename to bobwarfare_0.14.1/graphics/entities/robots/construction-robot-4.png diff --git a/bobwarfare_0.14.0/graphics/entities/robots/construction-robot.png b/bobwarfare_0.14.1/graphics/entities/robots/construction-robot.png similarity index 100% rename from bobwarfare_0.14.0/graphics/entities/robots/construction-robot.png rename to bobwarfare_0.14.1/graphics/entities/robots/construction-robot.png diff --git a/bobwarfare_0.14.0/graphics/entities/robots/defender-capsule.png b/bobwarfare_0.14.1/graphics/entities/robots/defender-capsule.png similarity index 100% rename from bobwarfare_0.14.0/graphics/entities/robots/defender-capsule.png rename to bobwarfare_0.14.1/graphics/entities/robots/defender-capsule.png diff --git a/bobwarfare_0.14.0/graphics/entities/robots/defender.png b/bobwarfare_0.14.1/graphics/entities/robots/defender.png similarity index 100% rename from bobwarfare_0.14.0/graphics/entities/robots/defender.png rename to bobwarfare_0.14.1/graphics/entities/robots/defender.png diff --git a/bobwarfare_0.14.0/graphics/entities/robots/destroyer-capsule.png b/bobwarfare_0.14.1/graphics/entities/robots/destroyer-capsule.png similarity index 100% rename from bobwarfare_0.14.0/graphics/entities/robots/destroyer-capsule.png rename to bobwarfare_0.14.1/graphics/entities/robots/destroyer-capsule.png diff --git a/bobwarfare_0.14.0/graphics/entities/robots/destroyer.png b/bobwarfare_0.14.1/graphics/entities/robots/destroyer.png similarity index 100% rename from bobwarfare_0.14.0/graphics/entities/robots/destroyer.png rename to bobwarfare_0.14.1/graphics/entities/robots/destroyer.png diff --git a/bobwarfare_0.14.0/graphics/entities/robots/distractor-capsule.png b/bobwarfare_0.14.1/graphics/entities/robots/distractor-capsule.png similarity index 100% rename from bobwarfare_0.14.0/graphics/entities/robots/distractor-capsule.png rename to bobwarfare_0.14.1/graphics/entities/robots/distractor-capsule.png diff --git a/bobwarfare_0.14.0/graphics/entities/robots/distractor.png b/bobwarfare_0.14.1/graphics/entities/robots/distractor.png similarity index 100% rename from bobwarfare_0.14.0/graphics/entities/robots/distractor.png rename to bobwarfare_0.14.1/graphics/entities/robots/distractor.png diff --git a/bobwarfare_0.14.0/graphics/entities/robots/laser-robot-capsule.png b/bobwarfare_0.14.1/graphics/entities/robots/laser-robot-capsule.png similarity index 100% rename from bobwarfare_0.14.0/graphics/entities/robots/laser-robot-capsule.png rename to bobwarfare_0.14.1/graphics/entities/robots/laser-robot-capsule.png diff --git a/bobwarfare_0.14.0/graphics/entities/robots/laser-robot.png b/bobwarfare_0.14.1/graphics/entities/robots/laser-robot.png similarity index 100% rename from bobwarfare_0.14.0/graphics/entities/robots/laser-robot.png rename to bobwarfare_0.14.1/graphics/entities/robots/laser-robot.png diff --git a/bobwarfare_0.14.0/graphics/entities/robots/logistic-robot-2.png b/bobwarfare_0.14.1/graphics/entities/robots/logistic-robot-2.png similarity index 100% rename from bobwarfare_0.14.0/graphics/entities/robots/logistic-robot-2.png rename to bobwarfare_0.14.1/graphics/entities/robots/logistic-robot-2.png diff --git a/bobwarfare_0.14.0/graphics/entities/robots/logistic-robot-3.png b/bobwarfare_0.14.1/graphics/entities/robots/logistic-robot-3.png similarity index 100% rename from bobwarfare_0.14.0/graphics/entities/robots/logistic-robot-3.png rename to bobwarfare_0.14.1/graphics/entities/robots/logistic-robot-3.png diff --git a/bobwarfare_0.14.0/graphics/entities/robots/logistic-robot-4.png b/bobwarfare_0.14.1/graphics/entities/robots/logistic-robot-4.png similarity index 100% rename from bobwarfare_0.14.0/graphics/entities/robots/logistic-robot-4.png rename to bobwarfare_0.14.1/graphics/entities/robots/logistic-robot-4.png diff --git a/bobwarfare_0.14.0/graphics/entities/robots/logistic-robot.png b/bobwarfare_0.14.1/graphics/entities/robots/logistic-robot.png similarity index 100% rename from bobwarfare_0.14.0/graphics/entities/robots/logistic-robot.png rename to bobwarfare_0.14.1/graphics/entities/robots/logistic-robot.png diff --git a/bobwarfare_0.14.0/graphics/entities/robots/robot-shadow.png b/bobwarfare_0.14.1/graphics/entities/robots/robot-shadow.png similarity index 100% rename from bobwarfare_0.14.0/graphics/entities/robots/robot-shadow.png rename to bobwarfare_0.14.1/graphics/entities/robots/robot-shadow.png diff --git a/bobwarfare_0.14.0/graphics/equipment/1x2 blue equipment frame.pspimage b/bobwarfare_0.14.1/graphics/equipment/1x2 blue equipment frame.pspimage similarity index 100% rename from bobwarfare_0.14.0/graphics/equipment/1x2 blue equipment frame.pspimage rename to bobwarfare_0.14.1/graphics/equipment/1x2 blue equipment frame.pspimage diff --git a/bobwarfare_0.14.0/graphics/equipment/2x2 blue equipment frame.pspimage b/bobwarfare_0.14.1/graphics/equipment/2x2 blue equipment frame.pspimage similarity index 100% rename from bobwarfare_0.14.0/graphics/equipment/2x2 blue equipment frame.pspimage rename to bobwarfare_0.14.1/graphics/equipment/2x2 blue equipment frame.pspimage diff --git a/bobwarfare_0.14.0/graphics/equipment/2x2 red equipment frame.pspimage b/bobwarfare_0.14.1/graphics/equipment/2x2 red equipment frame.pspimage similarity index 100% rename from bobwarfare_0.14.0/graphics/equipment/2x2 red equipment frame.pspimage rename to bobwarfare_0.14.1/graphics/equipment/2x2 red equipment frame.pspimage diff --git a/bobwarfare_0.14.0/graphics/equipment/2x3 red equipment frame.pspimage b/bobwarfare_0.14.1/graphics/equipment/2x3 red equipment frame.pspimage similarity index 100% rename from bobwarfare_0.14.0/graphics/equipment/2x3 red equipment frame.pspimage rename to bobwarfare_0.14.1/graphics/equipment/2x3 red equipment frame.pspimage diff --git a/bobwarfare_0.14.0/graphics/equipment/4x4 blue equipment frame.pspimage b/bobwarfare_0.14.1/graphics/equipment/4x4 blue equipment frame.pspimage similarity index 100% rename from bobwarfare_0.14.0/graphics/equipment/4x4 blue equipment frame.pspimage rename to bobwarfare_0.14.1/graphics/equipment/4x4 blue equipment frame.pspimage diff --git a/bobwarfare_0.14.0/graphics/equipment/battery-mk3-equipment.png b/bobwarfare_0.14.1/graphics/equipment/battery-mk3-equipment.png similarity index 100% rename from bobwarfare_0.14.0/graphics/equipment/battery-mk3-equipment.png rename to bobwarfare_0.14.1/graphics/equipment/battery-mk3-equipment.png diff --git a/bobwarfare_0.14.0/graphics/equipment/battery-mk4-equipment.png b/bobwarfare_0.14.1/graphics/equipment/battery-mk4-equipment.png similarity index 100% rename from bobwarfare_0.14.0/graphics/equipment/battery-mk4-equipment.png rename to bobwarfare_0.14.1/graphics/equipment/battery-mk4-equipment.png diff --git a/bobwarfare_0.14.0/graphics/equipment/battery-mk5-equipment.png b/bobwarfare_0.14.1/graphics/equipment/battery-mk5-equipment.png similarity index 100% rename from bobwarfare_0.14.0/graphics/equipment/battery-mk5-equipment.png rename to bobwarfare_0.14.1/graphics/equipment/battery-mk5-equipment.png diff --git a/bobwarfare_0.14.0/graphics/equipment/battery-mk6-equipment.png b/bobwarfare_0.14.1/graphics/equipment/battery-mk6-equipment.png similarity index 100% rename from bobwarfare_0.14.0/graphics/equipment/battery-mk6-equipment.png rename to bobwarfare_0.14.1/graphics/equipment/battery-mk6-equipment.png diff --git a/bobwarfare_0.14.0/graphics/equipment/combat-robot-dispenser-equipment.png b/bobwarfare_0.14.1/graphics/equipment/combat-robot-dispenser-equipment.png similarity index 100% rename from bobwarfare_0.14.0/graphics/equipment/combat-robot-dispenser-equipment.png rename to bobwarfare_0.14.1/graphics/equipment/combat-robot-dispenser-equipment.png diff --git a/bobwarfare_0.14.0/graphics/equipment/defender-robot-dispenser-equipment.png b/bobwarfare_0.14.1/graphics/equipment/defender-robot-dispenser-equipment.png similarity index 100% rename from bobwarfare_0.14.0/graphics/equipment/defender-robot-dispenser-equipment.png rename to bobwarfare_0.14.1/graphics/equipment/defender-robot-dispenser-equipment.png diff --git a/bobwarfare_0.14.0/graphics/equipment/destroyer-robot-dispenser-equipment.png b/bobwarfare_0.14.1/graphics/equipment/destroyer-robot-dispenser-equipment.png similarity index 100% rename from bobwarfare_0.14.0/graphics/equipment/destroyer-robot-dispenser-equipment.png rename to bobwarfare_0.14.1/graphics/equipment/destroyer-robot-dispenser-equipment.png diff --git a/bobwarfare_0.14.0/graphics/equipment/energy-shield-mk3-equipment.png b/bobwarfare_0.14.1/graphics/equipment/energy-shield-mk3-equipment.png similarity index 100% rename from bobwarfare_0.14.0/graphics/equipment/energy-shield-mk3-equipment.png rename to bobwarfare_0.14.1/graphics/equipment/energy-shield-mk3-equipment.png diff --git a/bobwarfare_0.14.0/graphics/equipment/energy-shield-mk4-equipment.png b/bobwarfare_0.14.1/graphics/equipment/energy-shield-mk4-equipment.png similarity index 100% rename from bobwarfare_0.14.0/graphics/equipment/energy-shield-mk4-equipment.png rename to bobwarfare_0.14.1/graphics/equipment/energy-shield-mk4-equipment.png diff --git a/bobwarfare_0.14.0/graphics/equipment/energy-shield-mk5-equipment.png b/bobwarfare_0.14.1/graphics/equipment/energy-shield-mk5-equipment.png similarity index 100% rename from bobwarfare_0.14.0/graphics/equipment/energy-shield-mk5-equipment.png rename to bobwarfare_0.14.1/graphics/equipment/energy-shield-mk5-equipment.png diff --git a/bobwarfare_0.14.0/graphics/equipment/energy-shield-mk6-equipment.png b/bobwarfare_0.14.1/graphics/equipment/energy-shield-mk6-equipment.png similarity index 100% rename from bobwarfare_0.14.0/graphics/equipment/energy-shield-mk6-equipment.png rename to bobwarfare_0.14.1/graphics/equipment/energy-shield-mk6-equipment.png diff --git a/bobwarfare_0.14.0/graphics/equipment/exoskeleton-equipment.png b/bobwarfare_0.14.1/graphics/equipment/exoskeleton-equipment.png similarity index 100% rename from bobwarfare_0.14.0/graphics/equipment/exoskeleton-equipment.png rename to bobwarfare_0.14.1/graphics/equipment/exoskeleton-equipment.png diff --git a/bobwarfare_0.14.0/graphics/equipment/fusion-reactor-equipment-2.png b/bobwarfare_0.14.1/graphics/equipment/fusion-reactor-equipment-2.png similarity index 100% rename from bobwarfare_0.14.0/graphics/equipment/fusion-reactor-equipment-2.png rename to bobwarfare_0.14.1/graphics/equipment/fusion-reactor-equipment-2.png diff --git a/bobwarfare_0.14.0/graphics/equipment/fusion-reactor-equipment-3.png b/bobwarfare_0.14.1/graphics/equipment/fusion-reactor-equipment-3.png similarity index 100% rename from bobwarfare_0.14.0/graphics/equipment/fusion-reactor-equipment-3.png rename to bobwarfare_0.14.1/graphics/equipment/fusion-reactor-equipment-3.png diff --git a/bobwarfare_0.14.0/graphics/equipment/fusion-reactor-equipment-4.png b/bobwarfare_0.14.1/graphics/equipment/fusion-reactor-equipment-4.png similarity index 100% rename from bobwarfare_0.14.0/graphics/equipment/fusion-reactor-equipment-4.png rename to bobwarfare_0.14.1/graphics/equipment/fusion-reactor-equipment-4.png diff --git a/bobwarfare_0.14.0/graphics/equipment/fusion-reactor-equipment.png b/bobwarfare_0.14.1/graphics/equipment/fusion-reactor-equipment.png similarity index 100% rename from bobwarfare_0.14.0/graphics/equipment/fusion-reactor-equipment.png rename to bobwarfare_0.14.1/graphics/equipment/fusion-reactor-equipment.png diff --git a/bobwarfare_0.14.0/graphics/equipment/fusion-reactor-equipment.pspimage b/bobwarfare_0.14.1/graphics/equipment/fusion-reactor-equipment.pspimage similarity index 100% rename from bobwarfare_0.14.0/graphics/equipment/fusion-reactor-equipment.pspimage rename to bobwarfare_0.14.1/graphics/equipment/fusion-reactor-equipment.pspimage diff --git a/bobwarfare_0.14.0/graphics/equipment/night-vision-equipment.png b/bobwarfare_0.14.1/graphics/equipment/night-vision-equipment.png similarity index 100% rename from bobwarfare_0.14.0/graphics/equipment/night-vision-equipment.png rename to bobwarfare_0.14.1/graphics/equipment/night-vision-equipment.png diff --git a/bobwarfare_0.14.0/graphics/equipment/personal-laser-defense-equipment-2.png b/bobwarfare_0.14.1/graphics/equipment/personal-laser-defense-equipment-2.png similarity index 100% rename from bobwarfare_0.14.0/graphics/equipment/personal-laser-defense-equipment-2.png rename to bobwarfare_0.14.1/graphics/equipment/personal-laser-defense-equipment-2.png diff --git a/bobwarfare_0.14.0/graphics/equipment/personal-laser-defense-equipment-3.png b/bobwarfare_0.14.1/graphics/equipment/personal-laser-defense-equipment-3.png similarity index 100% rename from bobwarfare_0.14.0/graphics/equipment/personal-laser-defense-equipment-3.png rename to bobwarfare_0.14.1/graphics/equipment/personal-laser-defense-equipment-3.png diff --git a/bobwarfare_0.14.0/graphics/equipment/personal-laser-defense-equipment-4.png b/bobwarfare_0.14.1/graphics/equipment/personal-laser-defense-equipment-4.png similarity index 100% rename from bobwarfare_0.14.0/graphics/equipment/personal-laser-defense-equipment-4.png rename to bobwarfare_0.14.1/graphics/equipment/personal-laser-defense-equipment-4.png diff --git a/bobwarfare_0.14.0/graphics/equipment/personal-laser-defense-equipment-5.png b/bobwarfare_0.14.1/graphics/equipment/personal-laser-defense-equipment-5.png similarity index 100% rename from bobwarfare_0.14.0/graphics/equipment/personal-laser-defense-equipment-5.png rename to bobwarfare_0.14.1/graphics/equipment/personal-laser-defense-equipment-5.png diff --git a/bobwarfare_0.14.0/graphics/equipment/personal-laser-defense-equipment-6.png b/bobwarfare_0.14.1/graphics/equipment/personal-laser-defense-equipment-6.png similarity index 100% rename from bobwarfare_0.14.0/graphics/equipment/personal-laser-defense-equipment-6.png rename to bobwarfare_0.14.1/graphics/equipment/personal-laser-defense-equipment-6.png diff --git a/bobwarfare_0.14.0/graphics/equipment/solar-panel-equipment-2.png b/bobwarfare_0.14.1/graphics/equipment/solar-panel-equipment-2.png similarity index 100% rename from bobwarfare_0.14.0/graphics/equipment/solar-panel-equipment-2.png rename to bobwarfare_0.14.1/graphics/equipment/solar-panel-equipment-2.png diff --git a/bobwarfare_0.14.0/graphics/equipment/solar-panel-equipment-3.png b/bobwarfare_0.14.1/graphics/equipment/solar-panel-equipment-3.png similarity index 100% rename from bobwarfare_0.14.0/graphics/equipment/solar-panel-equipment-3.png rename to bobwarfare_0.14.1/graphics/equipment/solar-panel-equipment-3.png diff --git a/bobwarfare_0.14.0/graphics/equipment/solar-panel-equipment-4.png b/bobwarfare_0.14.1/graphics/equipment/solar-panel-equipment-4.png similarity index 100% rename from bobwarfare_0.14.0/graphics/equipment/solar-panel-equipment-4.png rename to bobwarfare_0.14.1/graphics/equipment/solar-panel-equipment-4.png diff --git a/bobwarfare_0.14.0/graphics/equipment/solar-panel-equipment.png b/bobwarfare_0.14.1/graphics/equipment/solar-panel-equipment.png similarity index 100% rename from bobwarfare_0.14.0/graphics/equipment/solar-panel-equipment.png rename to bobwarfare_0.14.1/graphics/equipment/solar-panel-equipment.png diff --git a/bobwarfare_0.14.0/graphics/icons/acid-bullet-magazine.png b/bobwarfare_0.14.1/graphics/icons/acid-bullet-magazine.png similarity index 100% rename from bobwarfare_0.14.0/graphics/icons/acid-bullet-magazine.png rename to bobwarfare_0.14.1/graphics/icons/acid-bullet-magazine.png diff --git a/bobwarfare_0.14.0/graphics/icons/acid-bullet-projectile.png b/bobwarfare_0.14.1/graphics/icons/acid-bullet-projectile.png similarity index 100% rename from bobwarfare_0.14.0/graphics/icons/acid-bullet-projectile.png rename to bobwarfare_0.14.1/graphics/icons/acid-bullet-projectile.png diff --git a/bobwarfare_0.14.0/graphics/icons/acid-bullet.png b/bobwarfare_0.14.1/graphics/icons/acid-bullet.png similarity index 100% rename from bobwarfare_0.14.0/graphics/icons/acid-bullet.png rename to bobwarfare_0.14.1/graphics/icons/acid-bullet.png diff --git a/bobwarfare_0.14.0/graphics/icons/acid-rocket.png b/bobwarfare_0.14.1/graphics/icons/acid-rocket.png similarity index 100% rename from bobwarfare_0.14.0/graphics/icons/acid-rocket.png rename to bobwarfare_0.14.1/graphics/icons/acid-rocket.png diff --git a/bobwarfare_0.14.0/graphics/icons/ap-bullet-magazine-old.png b/bobwarfare_0.14.1/graphics/icons/ap-bullet-magazine-old.png similarity index 100% rename from bobwarfare_0.14.0/graphics/icons/ap-bullet-magazine-old.png rename to bobwarfare_0.14.1/graphics/icons/ap-bullet-magazine-old.png diff --git a/bobwarfare_0.14.0/graphics/icons/ap-bullet-magazine.png b/bobwarfare_0.14.1/graphics/icons/ap-bullet-magazine.png similarity index 100% rename from bobwarfare_0.14.0/graphics/icons/ap-bullet-magazine.png rename to bobwarfare_0.14.1/graphics/icons/ap-bullet-magazine.png diff --git a/bobwarfare_0.14.0/graphics/icons/ap-bullet-projectile.png b/bobwarfare_0.14.1/graphics/icons/ap-bullet-projectile.png similarity index 100% rename from bobwarfare_0.14.0/graphics/icons/ap-bullet-projectile.png rename to bobwarfare_0.14.1/graphics/icons/ap-bullet-projectile.png diff --git a/bobwarfare_0.14.0/graphics/icons/ap-bullet.png b/bobwarfare_0.14.1/graphics/icons/ap-bullet.png similarity index 100% rename from bobwarfare_0.14.0/graphics/icons/ap-bullet.png rename to bobwarfare_0.14.1/graphics/icons/ap-bullet.png diff --git a/bobwarfare_0.14.0/graphics/icons/battery-mk3-equipment.png b/bobwarfare_0.14.1/graphics/icons/battery-mk3-equipment.png similarity index 100% rename from bobwarfare_0.14.0/graphics/icons/battery-mk3-equipment.png rename to bobwarfare_0.14.1/graphics/icons/battery-mk3-equipment.png diff --git a/bobwarfare_0.14.0/graphics/icons/battery-mk4-equipment.png b/bobwarfare_0.14.1/graphics/icons/battery-mk4-equipment.png similarity index 100% rename from bobwarfare_0.14.0/graphics/icons/battery-mk4-equipment.png rename to bobwarfare_0.14.1/graphics/icons/battery-mk4-equipment.png diff --git a/bobwarfare_0.14.0/graphics/icons/battery-mk5-equipment.png b/bobwarfare_0.14.1/graphics/icons/battery-mk5-equipment.png similarity index 100% rename from bobwarfare_0.14.0/graphics/icons/battery-mk5-equipment.png rename to bobwarfare_0.14.1/graphics/icons/battery-mk5-equipment.png diff --git a/bobwarfare_0.14.0/graphics/icons/battery-mk6-equipment.png b/bobwarfare_0.14.1/graphics/icons/battery-mk6-equipment.png similarity index 100% rename from bobwarfare_0.14.0/graphics/icons/battery-mk6-equipment.png rename to bobwarfare_0.14.1/graphics/icons/battery-mk6-equipment.png diff --git a/bobwarfare_0.14.0/graphics/icons/bullet-casing.png b/bobwarfare_0.14.1/graphics/icons/bullet-casing.png similarity index 100% rename from bobwarfare_0.14.0/graphics/icons/bullet-casing.png rename to bobwarfare_0.14.1/graphics/icons/bullet-casing.png diff --git a/bobwarfare_0.14.0/graphics/icons/bullet-magazine.png b/bobwarfare_0.14.1/graphics/icons/bullet-magazine.png similarity index 100% rename from bobwarfare_0.14.0/graphics/icons/bullet-magazine.png rename to bobwarfare_0.14.1/graphics/icons/bullet-magazine.png diff --git a/bobwarfare_0.14.0/graphics/icons/bullet-projectile.png b/bobwarfare_0.14.1/graphics/icons/bullet-projectile.png similarity index 100% rename from bobwarfare_0.14.0/graphics/icons/bullet-projectile.png rename to bobwarfare_0.14.1/graphics/icons/bullet-projectile.png diff --git a/bobwarfare_0.14.0/graphics/icons/bullet.png b/bobwarfare_0.14.1/graphics/icons/bullet.png similarity index 100% rename from bobwarfare_0.14.0/graphics/icons/bullet.png rename to bobwarfare_0.14.1/graphics/icons/bullet.png diff --git a/bobwarfare_0.14.0/graphics/icons/cordite.png b/bobwarfare_0.14.1/graphics/icons/cordite.png similarity index 100% rename from bobwarfare_0.14.0/graphics/icons/cordite.png rename to bobwarfare_0.14.1/graphics/icons/cordite.png diff --git a/bobwarfare_0.14.0/graphics/icons/defender-capsule.png b/bobwarfare_0.14.1/graphics/icons/defender-capsule.png similarity index 100% rename from bobwarfare_0.14.0/graphics/icons/defender-capsule.png rename to bobwarfare_0.14.1/graphics/icons/defender-capsule.png diff --git a/bobwarfare_0.14.0/graphics/icons/defender.png b/bobwarfare_0.14.1/graphics/icons/defender.png similarity index 100% rename from bobwarfare_0.14.0/graphics/icons/defender.png rename to bobwarfare_0.14.1/graphics/icons/defender.png diff --git a/bobwarfare_0.14.0/graphics/icons/destroyer-capsule.png b/bobwarfare_0.14.1/graphics/icons/destroyer-capsule.png similarity index 100% rename from bobwarfare_0.14.0/graphics/icons/destroyer-capsule.png rename to bobwarfare_0.14.1/graphics/icons/destroyer-capsule.png diff --git a/bobwarfare_0.14.0/graphics/icons/destroyer.png b/bobwarfare_0.14.1/graphics/icons/destroyer.png similarity index 100% rename from bobwarfare_0.14.0/graphics/icons/destroyer.png rename to bobwarfare_0.14.1/graphics/icons/destroyer.png diff --git a/bobwarfare_0.14.0/graphics/icons/distractor-capsule.png b/bobwarfare_0.14.1/graphics/icons/distractor-capsule.png similarity index 100% rename from bobwarfare_0.14.0/graphics/icons/distractor-capsule.png rename to bobwarfare_0.14.1/graphics/icons/distractor-capsule.png diff --git a/bobwarfare_0.14.0/graphics/icons/distractor.png b/bobwarfare_0.14.1/graphics/icons/distractor.png similarity index 100% rename from bobwarfare_0.14.0/graphics/icons/distractor.png rename to bobwarfare_0.14.1/graphics/icons/distractor.png diff --git a/bobwarfare_0.14.0/graphics/icons/electric-bullet-magazine.png b/bobwarfare_0.14.1/graphics/icons/electric-bullet-magazine.png similarity index 100% rename from bobwarfare_0.14.0/graphics/icons/electric-bullet-magazine.png rename to bobwarfare_0.14.1/graphics/icons/electric-bullet-magazine.png diff --git a/bobwarfare_0.14.0/graphics/icons/electric-bullet-projectile.png b/bobwarfare_0.14.1/graphics/icons/electric-bullet-projectile.png similarity index 100% rename from bobwarfare_0.14.0/graphics/icons/electric-bullet-projectile.png rename to bobwarfare_0.14.1/graphics/icons/electric-bullet-projectile.png diff --git a/bobwarfare_0.14.0/graphics/icons/electric-bullet.png b/bobwarfare_0.14.1/graphics/icons/electric-bullet.png similarity index 100% rename from bobwarfare_0.14.0/graphics/icons/electric-bullet.png rename to bobwarfare_0.14.1/graphics/icons/electric-bullet.png diff --git a/bobwarfare_0.14.0/graphics/icons/electric-rocket.png b/bobwarfare_0.14.1/graphics/icons/electric-rocket.png similarity index 100% rename from bobwarfare_0.14.0/graphics/icons/electric-rocket.png rename to bobwarfare_0.14.1/graphics/icons/electric-rocket.png diff --git a/bobwarfare_0.14.0/graphics/icons/energy-shield-mk3-equipment.png b/bobwarfare_0.14.1/graphics/icons/energy-shield-mk3-equipment.png similarity index 100% rename from bobwarfare_0.14.0/graphics/icons/energy-shield-mk3-equipment.png rename to bobwarfare_0.14.1/graphics/icons/energy-shield-mk3-equipment.png diff --git a/bobwarfare_0.14.0/graphics/icons/energy-shield-mk4-equipment.png b/bobwarfare_0.14.1/graphics/icons/energy-shield-mk4-equipment.png similarity index 100% rename from bobwarfare_0.14.0/graphics/icons/energy-shield-mk4-equipment.png rename to bobwarfare_0.14.1/graphics/icons/energy-shield-mk4-equipment.png diff --git a/bobwarfare_0.14.0/graphics/icons/energy-shield-mk5-equipment.png b/bobwarfare_0.14.1/graphics/icons/energy-shield-mk5-equipment.png similarity index 100% rename from bobwarfare_0.14.0/graphics/icons/energy-shield-mk5-equipment.png rename to bobwarfare_0.14.1/graphics/icons/energy-shield-mk5-equipment.png diff --git a/bobwarfare_0.14.0/graphics/icons/energy-shield-mk6-equipment.png b/bobwarfare_0.14.1/graphics/icons/energy-shield-mk6-equipment.png similarity index 100% rename from bobwarfare_0.14.0/graphics/icons/energy-shield-mk6-equipment.png rename to bobwarfare_0.14.1/graphics/icons/energy-shield-mk6-equipment.png diff --git a/bobwarfare_0.14.0/graphics/icons/explosive-rocket.png b/bobwarfare_0.14.1/graphics/icons/explosive-rocket.png similarity index 100% rename from bobwarfare_0.14.0/graphics/icons/explosive-rocket.png rename to bobwarfare_0.14.1/graphics/icons/explosive-rocket.png diff --git a/bobwarfare_0.14.0/graphics/icons/flame-bullet-magazine.png b/bobwarfare_0.14.1/graphics/icons/flame-bullet-magazine.png similarity index 100% rename from bobwarfare_0.14.0/graphics/icons/flame-bullet-magazine.png rename to bobwarfare_0.14.1/graphics/icons/flame-bullet-magazine.png diff --git a/bobwarfare_0.14.0/graphics/icons/flame-bullet-projectile.png b/bobwarfare_0.14.1/graphics/icons/flame-bullet-projectile.png similarity index 100% rename from bobwarfare_0.14.0/graphics/icons/flame-bullet-projectile.png rename to bobwarfare_0.14.1/graphics/icons/flame-bullet-projectile.png diff --git a/bobwarfare_0.14.0/graphics/icons/flame-bullet.png b/bobwarfare_0.14.1/graphics/icons/flame-bullet.png similarity index 100% rename from bobwarfare_0.14.0/graphics/icons/flame-bullet.png rename to bobwarfare_0.14.1/graphics/icons/flame-bullet.png diff --git a/bobwarfare_0.14.0/graphics/icons/flame-rocket.png b/bobwarfare_0.14.1/graphics/icons/flame-rocket.png similarity index 100% rename from bobwarfare_0.14.0/graphics/icons/flame-rocket.png rename to bobwarfare_0.14.1/graphics/icons/flame-rocket.png diff --git a/bobwarfare_0.14.0/graphics/icons/fusion-reactor-equipment-2.png b/bobwarfare_0.14.1/graphics/icons/fusion-reactor-equipment-2.png similarity index 100% rename from bobwarfare_0.14.0/graphics/icons/fusion-reactor-equipment-2.png rename to bobwarfare_0.14.1/graphics/icons/fusion-reactor-equipment-2.png diff --git a/bobwarfare_0.14.0/graphics/icons/fusion-reactor-equipment-3.png b/bobwarfare_0.14.1/graphics/icons/fusion-reactor-equipment-3.png similarity index 100% rename from bobwarfare_0.14.0/graphics/icons/fusion-reactor-equipment-3.png rename to bobwarfare_0.14.1/graphics/icons/fusion-reactor-equipment-3.png diff --git a/bobwarfare_0.14.0/graphics/icons/fusion-reactor-equipment-4.png b/bobwarfare_0.14.1/graphics/icons/fusion-reactor-equipment-4.png similarity index 100% rename from bobwarfare_0.14.0/graphics/icons/fusion-reactor-equipment-4.png rename to bobwarfare_0.14.1/graphics/icons/fusion-reactor-equipment-4.png diff --git a/bobwarfare_0.14.0/graphics/icons/gatling-gun.png b/bobwarfare_0.14.1/graphics/icons/gatling-gun.png similarity index 100% rename from bobwarfare_0.14.0/graphics/icons/gatling-gun.png rename to bobwarfare_0.14.1/graphics/icons/gatling-gun.png diff --git a/bobwarfare_0.14.0/graphics/icons/glycerol.png b/bobwarfare_0.14.1/graphics/icons/glycerol.png similarity index 100% rename from bobwarfare_0.14.0/graphics/icons/glycerol.png rename to bobwarfare_0.14.1/graphics/icons/glycerol.png diff --git a/bobwarfare_0.14.0/graphics/icons/gun-cotton.png b/bobwarfare_0.14.1/graphics/icons/gun-cotton.png similarity index 100% rename from bobwarfare_0.14.0/graphics/icons/gun-cotton.png rename to bobwarfare_0.14.1/graphics/icons/gun-cotton.png diff --git a/bobwarfare_0.14.0/graphics/icons/he-bullet-magazine.png b/bobwarfare_0.14.1/graphics/icons/he-bullet-magazine.png similarity index 100% rename from bobwarfare_0.14.0/graphics/icons/he-bullet-magazine.png rename to bobwarfare_0.14.1/graphics/icons/he-bullet-magazine.png diff --git a/bobwarfare_0.14.0/graphics/icons/he-bullet-projectile.png b/bobwarfare_0.14.1/graphics/icons/he-bullet-projectile.png similarity index 100% rename from bobwarfare_0.14.0/graphics/icons/he-bullet-projectile.png rename to bobwarfare_0.14.1/graphics/icons/he-bullet-projectile.png diff --git a/bobwarfare_0.14.0/graphics/icons/he-bullet.png b/bobwarfare_0.14.1/graphics/icons/he-bullet.png similarity index 100% rename from bobwarfare_0.14.0/graphics/icons/he-bullet.png rename to bobwarfare_0.14.1/graphics/icons/he-bullet.png diff --git a/bobwarfare_0.14.0/graphics/icons/heavy-armor-2.png b/bobwarfare_0.14.1/graphics/icons/heavy-armor-2.png similarity index 100% rename from bobwarfare_0.14.0/graphics/icons/heavy-armor-2.png rename to bobwarfare_0.14.1/graphics/icons/heavy-armor-2.png diff --git a/bobwarfare_0.14.0/graphics/icons/heavy-armor-3.png b/bobwarfare_0.14.1/graphics/icons/heavy-armor-3.png similarity index 100% rename from bobwarfare_0.14.0/graphics/icons/heavy-armor-3.png rename to bobwarfare_0.14.1/graphics/icons/heavy-armor-3.png diff --git a/bobwarfare_0.14.0/graphics/icons/laser-rifle-battery-amethyst.png b/bobwarfare_0.14.1/graphics/icons/laser-rifle-battery-amethyst.png similarity index 100% rename from bobwarfare_0.14.0/graphics/icons/laser-rifle-battery-amethyst.png rename to bobwarfare_0.14.1/graphics/icons/laser-rifle-battery-amethyst.png diff --git a/bobwarfare_0.14.0/graphics/icons/laser-rifle-battery-case.png b/bobwarfare_0.14.1/graphics/icons/laser-rifle-battery-case.png similarity index 100% rename from bobwarfare_0.14.0/graphics/icons/laser-rifle-battery-case.png rename to bobwarfare_0.14.1/graphics/icons/laser-rifle-battery-case.png diff --git a/bobwarfare_0.14.0/graphics/icons/laser-rifle-battery-diamond.png b/bobwarfare_0.14.1/graphics/icons/laser-rifle-battery-diamond.png similarity index 100% rename from bobwarfare_0.14.0/graphics/icons/laser-rifle-battery-diamond.png rename to bobwarfare_0.14.1/graphics/icons/laser-rifle-battery-diamond.png diff --git a/bobwarfare_0.14.0/graphics/icons/laser-rifle-battery-emerald.png b/bobwarfare_0.14.1/graphics/icons/laser-rifle-battery-emerald.png similarity index 100% rename from bobwarfare_0.14.0/graphics/icons/laser-rifle-battery-emerald.png rename to bobwarfare_0.14.1/graphics/icons/laser-rifle-battery-emerald.png diff --git a/bobwarfare_0.14.0/graphics/icons/laser-rifle-battery-glass.png b/bobwarfare_0.14.1/graphics/icons/laser-rifle-battery-glass.png similarity index 100% rename from bobwarfare_0.14.0/graphics/icons/laser-rifle-battery-glass.png rename to bobwarfare_0.14.1/graphics/icons/laser-rifle-battery-glass.png diff --git a/bobwarfare_0.14.0/graphics/icons/laser-rifle-battery-ruby.png b/bobwarfare_0.14.1/graphics/icons/laser-rifle-battery-ruby.png similarity index 100% rename from bobwarfare_0.14.0/graphics/icons/laser-rifle-battery-ruby.png rename to bobwarfare_0.14.1/graphics/icons/laser-rifle-battery-ruby.png diff --git a/bobwarfare_0.14.0/graphics/icons/laser-rifle-battery-sapphire.png b/bobwarfare_0.14.1/graphics/icons/laser-rifle-battery-sapphire.png similarity index 100% rename from bobwarfare_0.14.0/graphics/icons/laser-rifle-battery-sapphire.png rename to bobwarfare_0.14.1/graphics/icons/laser-rifle-battery-sapphire.png diff --git a/bobwarfare_0.14.0/graphics/icons/laser-rifle-battery-topaz.png b/bobwarfare_0.14.1/graphics/icons/laser-rifle-battery-topaz.png similarity index 100% rename from bobwarfare_0.14.0/graphics/icons/laser-rifle-battery-topaz.png rename to bobwarfare_0.14.1/graphics/icons/laser-rifle-battery-topaz.png diff --git a/bobwarfare_0.14.0/graphics/icons/laser-rifle.png b/bobwarfare_0.14.1/graphics/icons/laser-rifle.png similarity index 100% rename from bobwarfare_0.14.0/graphics/icons/laser-rifle.png rename to bobwarfare_0.14.1/graphics/icons/laser-rifle.png diff --git a/bobwarfare_0.14.0/graphics/icons/laser-robot-capsule.png b/bobwarfare_0.14.1/graphics/icons/laser-robot-capsule.png similarity index 100% rename from bobwarfare_0.14.0/graphics/icons/laser-robot-capsule.png rename to bobwarfare_0.14.1/graphics/icons/laser-robot-capsule.png diff --git a/bobwarfare_0.14.0/graphics/icons/laser-robot.png b/bobwarfare_0.14.1/graphics/icons/laser-robot.png similarity index 100% rename from bobwarfare_0.14.0/graphics/icons/laser-robot.png rename to bobwarfare_0.14.1/graphics/icons/laser-robot.png diff --git a/bobwarfare_0.14.0/graphics/icons/magazine.png b/bobwarfare_0.14.1/graphics/icons/magazine.png similarity index 100% rename from bobwarfare_0.14.0/graphics/icons/magazine.png rename to bobwarfare_0.14.1/graphics/icons/magazine.png diff --git a/bobwarfare_0.14.0/graphics/icons/missile-warhead-acid.png b/bobwarfare_0.14.1/graphics/icons/missile-warhead-acid.png similarity index 100% rename from bobwarfare_0.14.0/graphics/icons/missile-warhead-acid.png rename to bobwarfare_0.14.1/graphics/icons/missile-warhead-acid.png diff --git a/bobwarfare_0.14.0/graphics/icons/missile-warhead-electric.png b/bobwarfare_0.14.1/graphics/icons/missile-warhead-electric.png similarity index 100% rename from bobwarfare_0.14.0/graphics/icons/missile-warhead-electric.png rename to bobwarfare_0.14.1/graphics/icons/missile-warhead-electric.png diff --git a/bobwarfare_0.14.0/graphics/icons/missile-warhead-explosive.png b/bobwarfare_0.14.1/graphics/icons/missile-warhead-explosive.png similarity index 100% rename from bobwarfare_0.14.0/graphics/icons/missile-warhead-explosive.png rename to bobwarfare_0.14.1/graphics/icons/missile-warhead-explosive.png diff --git a/bobwarfare_0.14.0/graphics/icons/missile-warhead-fire.png b/bobwarfare_0.14.1/graphics/icons/missile-warhead-fire.png similarity index 100% rename from bobwarfare_0.14.0/graphics/icons/missile-warhead-fire.png rename to bobwarfare_0.14.1/graphics/icons/missile-warhead-fire.png diff --git a/bobwarfare_0.14.0/graphics/icons/missile-warhead-pierce.png b/bobwarfare_0.14.1/graphics/icons/missile-warhead-pierce.png similarity index 100% rename from bobwarfare_0.14.0/graphics/icons/missile-warhead-pierce.png rename to bobwarfare_0.14.1/graphics/icons/missile-warhead-pierce.png diff --git a/bobwarfare_0.14.0/graphics/icons/missile-warhead-poison.png b/bobwarfare_0.14.1/graphics/icons/missile-warhead-poison.png similarity index 100% rename from bobwarfare_0.14.0/graphics/icons/missile-warhead-poison.png rename to bobwarfare_0.14.1/graphics/icons/missile-warhead-poison.png diff --git a/bobwarfare_0.14.0/graphics/icons/missile-warhead.png b/bobwarfare_0.14.1/graphics/icons/missile-warhead.png similarity index 100% rename from bobwarfare_0.14.0/graphics/icons/missile-warhead.png rename to bobwarfare_0.14.1/graphics/icons/missile-warhead.png diff --git a/bobwarfare_0.14.0/graphics/icons/nitroglycerin.png b/bobwarfare_0.14.1/graphics/icons/nitroglycerin.png similarity index 100% rename from bobwarfare_0.14.0/graphics/icons/nitroglycerin.png rename to bobwarfare_0.14.1/graphics/icons/nitroglycerin.png diff --git a/bobwarfare_0.14.0/graphics/icons/personal-laser-defense-equipment-2.png b/bobwarfare_0.14.1/graphics/icons/personal-laser-defense-equipment-2.png similarity index 100% rename from bobwarfare_0.14.0/graphics/icons/personal-laser-defense-equipment-2.png rename to bobwarfare_0.14.1/graphics/icons/personal-laser-defense-equipment-2.png diff --git a/bobwarfare_0.14.0/graphics/icons/personal-laser-defense-equipment-3.png b/bobwarfare_0.14.1/graphics/icons/personal-laser-defense-equipment-3.png similarity index 100% rename from bobwarfare_0.14.0/graphics/icons/personal-laser-defense-equipment-3.png rename to bobwarfare_0.14.1/graphics/icons/personal-laser-defense-equipment-3.png diff --git a/bobwarfare_0.14.0/graphics/icons/personal-laser-defense-equipment-4.png b/bobwarfare_0.14.1/graphics/icons/personal-laser-defense-equipment-4.png similarity index 100% rename from bobwarfare_0.14.0/graphics/icons/personal-laser-defense-equipment-4.png rename to bobwarfare_0.14.1/graphics/icons/personal-laser-defense-equipment-4.png diff --git a/bobwarfare_0.14.0/graphics/icons/personal-laser-defense-equipment-5.png b/bobwarfare_0.14.1/graphics/icons/personal-laser-defense-equipment-5.png similarity index 100% rename from bobwarfare_0.14.0/graphics/icons/personal-laser-defense-equipment-5.png rename to bobwarfare_0.14.1/graphics/icons/personal-laser-defense-equipment-5.png diff --git a/bobwarfare_0.14.0/graphics/icons/personal-laser-defense-equipment-6.png b/bobwarfare_0.14.1/graphics/icons/personal-laser-defense-equipment-6.png similarity index 100% rename from bobwarfare_0.14.0/graphics/icons/personal-laser-defense-equipment-6.png rename to bobwarfare_0.14.1/graphics/icons/personal-laser-defense-equipment-6.png diff --git a/bobwarfare_0.14.0/graphics/icons/petroleum-jelly.png b/bobwarfare_0.14.1/graphics/icons/petroleum-jelly.png similarity index 100% rename from bobwarfare_0.14.0/graphics/icons/petroleum-jelly.png rename to bobwarfare_0.14.1/graphics/icons/petroleum-jelly.png diff --git a/bobwarfare_0.14.0/graphics/icons/piercing-rocket.png b/bobwarfare_0.14.1/graphics/icons/piercing-rocket.png similarity index 100% rename from bobwarfare_0.14.0/graphics/icons/piercing-rocket.png rename to bobwarfare_0.14.1/graphics/icons/piercing-rocket.png diff --git a/bobwarfare_0.14.0/graphics/icons/poison-bullet-magazine.png b/bobwarfare_0.14.1/graphics/icons/poison-bullet-magazine.png similarity index 100% rename from bobwarfare_0.14.0/graphics/icons/poison-bullet-magazine.png rename to bobwarfare_0.14.1/graphics/icons/poison-bullet-magazine.png diff --git a/bobwarfare_0.14.0/graphics/icons/poison-bullet-projectile.png b/bobwarfare_0.14.1/graphics/icons/poison-bullet-projectile.png similarity index 100% rename from bobwarfare_0.14.0/graphics/icons/poison-bullet-projectile.png rename to bobwarfare_0.14.1/graphics/icons/poison-bullet-projectile.png diff --git a/bobwarfare_0.14.0/graphics/icons/poison-bullet.png b/bobwarfare_0.14.1/graphics/icons/poison-bullet.png similarity index 100% rename from bobwarfare_0.14.0/graphics/icons/poison-bullet.png rename to bobwarfare_0.14.1/graphics/icons/poison-bullet.png diff --git a/bobwarfare_0.14.0/graphics/icons/poison-rocket.png b/bobwarfare_0.14.1/graphics/icons/poison-rocket.png similarity index 100% rename from bobwarfare_0.14.0/graphics/icons/poison-rocket.png rename to bobwarfare_0.14.1/graphics/icons/poison-rocket.png diff --git a/bobwarfare_0.14.0/graphics/icons/power-armor-mk3.png b/bobwarfare_0.14.1/graphics/icons/power-armor-mk3.png similarity index 100% rename from bobwarfare_0.14.0/graphics/icons/power-armor-mk3.png rename to bobwarfare_0.14.1/graphics/icons/power-armor-mk3.png diff --git a/bobwarfare_0.14.0/graphics/icons/power-armor-mk4.png b/bobwarfare_0.14.1/graphics/icons/power-armor-mk4.png similarity index 100% rename from bobwarfare_0.14.0/graphics/icons/power-armor-mk4.png rename to bobwarfare_0.14.1/graphics/icons/power-armor-mk4.png diff --git a/bobwarfare_0.14.0/graphics/icons/power-armor-mk5.png b/bobwarfare_0.14.1/graphics/icons/power-armor-mk5.png similarity index 100% rename from bobwarfare_0.14.0/graphics/icons/power-armor-mk5.png rename to bobwarfare_0.14.1/graphics/icons/power-armor-mk5.png diff --git a/bobwarfare_0.14.0/graphics/icons/reinforced-wall.png b/bobwarfare_0.14.1/graphics/icons/reinforced-wall.png similarity index 100% rename from bobwarfare_0.14.0/graphics/icons/reinforced-wall.png rename to bobwarfare_0.14.1/graphics/icons/reinforced-wall.png diff --git a/bobwarfare_0.14.0/graphics/icons/rifle.png b/bobwarfare_0.14.1/graphics/icons/rifle.png similarity index 100% rename from bobwarfare_0.14.0/graphics/icons/rifle.png rename to bobwarfare_0.14.1/graphics/icons/rifle.png diff --git a/bobwarfare_0.14.0/graphics/icons/robot-brain-combat-2.png b/bobwarfare_0.14.1/graphics/icons/robot-brain-combat-2.png similarity index 100% rename from bobwarfare_0.14.0/graphics/icons/robot-brain-combat-2.png rename to bobwarfare_0.14.1/graphics/icons/robot-brain-combat-2.png diff --git a/bobwarfare_0.14.0/graphics/icons/robot-brain-combat-3.png b/bobwarfare_0.14.1/graphics/icons/robot-brain-combat-3.png similarity index 100% rename from bobwarfare_0.14.0/graphics/icons/robot-brain-combat-3.png rename to bobwarfare_0.14.1/graphics/icons/robot-brain-combat-3.png diff --git a/bobwarfare_0.14.0/graphics/icons/robot-brain-combat-4.png b/bobwarfare_0.14.1/graphics/icons/robot-brain-combat-4.png similarity index 100% rename from bobwarfare_0.14.0/graphics/icons/robot-brain-combat-4.png rename to bobwarfare_0.14.1/graphics/icons/robot-brain-combat-4.png diff --git a/bobwarfare_0.14.0/graphics/icons/robot-brain-combat.png b/bobwarfare_0.14.1/graphics/icons/robot-brain-combat.png similarity index 100% rename from bobwarfare_0.14.0/graphics/icons/robot-brain-combat.png rename to bobwarfare_0.14.1/graphics/icons/robot-brain-combat.png diff --git a/bobwarfare_0.14.0/graphics/icons/robot-tool-combat.png b/bobwarfare_0.14.1/graphics/icons/robot-tool-combat.png similarity index 100% rename from bobwarfare_0.14.0/graphics/icons/robot-tool-combat.png rename to bobwarfare_0.14.1/graphics/icons/robot-tool-combat.png diff --git a/bobwarfare_0.14.0/graphics/icons/rocket-body.png b/bobwarfare_0.14.1/graphics/icons/rocket-body.png similarity index 100% rename from bobwarfare_0.14.0/graphics/icons/rocket-body.png rename to bobwarfare_0.14.1/graphics/icons/rocket-body.png diff --git a/bobwarfare_0.14.0/graphics/icons/rocket-engine.png b/bobwarfare_0.14.1/graphics/icons/rocket-engine.png similarity index 100% rename from bobwarfare_0.14.0/graphics/icons/rocket-engine.png rename to bobwarfare_0.14.1/graphics/icons/rocket-engine.png diff --git a/bobwarfare_0.14.0/graphics/icons/rocket.png b/bobwarfare_0.14.1/graphics/icons/rocket.png similarity index 100% rename from bobwarfare_0.14.0/graphics/icons/rocket.png rename to bobwarfare_0.14.1/graphics/icons/rocket.png diff --git a/bobwarfare_0.14.0/graphics/icons/shot.png b/bobwarfare_0.14.1/graphics/icons/shot.png similarity index 100% rename from bobwarfare_0.14.0/graphics/icons/shot.png rename to bobwarfare_0.14.1/graphics/icons/shot.png diff --git a/bobwarfare_0.14.0/graphics/icons/shotgun-acid-shell.png b/bobwarfare_0.14.1/graphics/icons/shotgun-acid-shell.png similarity index 100% rename from bobwarfare_0.14.0/graphics/icons/shotgun-acid-shell.png rename to bobwarfare_0.14.1/graphics/icons/shotgun-acid-shell.png diff --git a/bobwarfare_0.14.0/graphics/icons/shotgun-ap-shell.png b/bobwarfare_0.14.1/graphics/icons/shotgun-ap-shell.png similarity index 100% rename from bobwarfare_0.14.0/graphics/icons/shotgun-ap-shell.png rename to bobwarfare_0.14.1/graphics/icons/shotgun-ap-shell.png diff --git a/bobwarfare_0.14.0/graphics/icons/shotgun-electric-shell.png b/bobwarfare_0.14.1/graphics/icons/shotgun-electric-shell.png similarity index 100% rename from bobwarfare_0.14.0/graphics/icons/shotgun-electric-shell.png rename to bobwarfare_0.14.1/graphics/icons/shotgun-electric-shell.png diff --git a/bobwarfare_0.14.0/graphics/icons/shotgun-explosive-shell.png b/bobwarfare_0.14.1/graphics/icons/shotgun-explosive-shell.png similarity index 100% rename from bobwarfare_0.14.0/graphics/icons/shotgun-explosive-shell.png rename to bobwarfare_0.14.1/graphics/icons/shotgun-explosive-shell.png diff --git a/bobwarfare_0.14.0/graphics/icons/shotgun-flame-shell.png b/bobwarfare_0.14.1/graphics/icons/shotgun-flame-shell.png similarity index 100% rename from bobwarfare_0.14.0/graphics/icons/shotgun-flame-shell.png rename to bobwarfare_0.14.1/graphics/icons/shotgun-flame-shell.png diff --git a/bobwarfare_0.14.0/graphics/icons/shotgun-poison-shell.png b/bobwarfare_0.14.1/graphics/icons/shotgun-poison-shell.png similarity index 100% rename from bobwarfare_0.14.0/graphics/icons/shotgun-poison-shell.png rename to bobwarfare_0.14.1/graphics/icons/shotgun-poison-shell.png diff --git a/bobwarfare_0.14.0/graphics/icons/shotgun-shell-casing.png b/bobwarfare_0.14.1/graphics/icons/shotgun-shell-casing.png similarity index 100% rename from bobwarfare_0.14.0/graphics/icons/shotgun-shell-casing.png rename to bobwarfare_0.14.1/graphics/icons/shotgun-shell-casing.png diff --git a/bobwarfare_0.14.0/graphics/icons/shotgun-shell.png b/bobwarfare_0.14.1/graphics/icons/shotgun-shell.png similarity index 100% rename from bobwarfare_0.14.0/graphics/icons/shotgun-shell.png rename to bobwarfare_0.14.1/graphics/icons/shotgun-shell.png diff --git a/bobwarfare_0.14.0/graphics/icons/sniper-rifle.png b/bobwarfare_0.14.1/graphics/icons/sniper-rifle.png similarity index 100% rename from bobwarfare_0.14.0/graphics/icons/sniper-rifle.png rename to bobwarfare_0.14.1/graphics/icons/sniper-rifle.png diff --git a/bobwarfare_0.14.0/graphics/icons/solar-panel-equipment-2.png b/bobwarfare_0.14.1/graphics/icons/solar-panel-equipment-2.png similarity index 100% rename from bobwarfare_0.14.0/graphics/icons/solar-panel-equipment-2.png rename to bobwarfare_0.14.1/graphics/icons/solar-panel-equipment-2.png diff --git a/bobwarfare_0.14.0/graphics/icons/solar-panel-equipment-3.png b/bobwarfare_0.14.1/graphics/icons/solar-panel-equipment-3.png similarity index 100% rename from bobwarfare_0.14.0/graphics/icons/solar-panel-equipment-3.png rename to bobwarfare_0.14.1/graphics/icons/solar-panel-equipment-3.png diff --git a/bobwarfare_0.14.0/graphics/icons/solar-panel-equipment-4.png b/bobwarfare_0.14.1/graphics/icons/solar-panel-equipment-4.png similarity index 100% rename from bobwarfare_0.14.0/graphics/icons/solar-panel-equipment-4.png rename to bobwarfare_0.14.1/graphics/icons/solar-panel-equipment-4.png diff --git a/bobwarfare_0.14.0/graphics/icons/sulfuric-nitric-acid.png b/bobwarfare_0.14.1/graphics/icons/sulfuric-nitric-acid.png similarity index 100% rename from bobwarfare_0.14.0/graphics/icons/sulfuric-nitric-acid.png rename to bobwarfare_0.14.1/graphics/icons/sulfuric-nitric-acid.png diff --git a/bobwarfare_0.14.0/graphics/icons/tank-artillery.png b/bobwarfare_0.14.1/graphics/icons/tank-artillery.png similarity index 100% rename from bobwarfare_0.14.0/graphics/icons/tank-artillery.png rename to bobwarfare_0.14.1/graphics/icons/tank-artillery.png diff --git a/bobwarfare_0.14.0/graphics/icons/tank-laser.png b/bobwarfare_0.14.1/graphics/icons/tank-laser.png similarity index 100% rename from bobwarfare_0.14.0/graphics/icons/tank-laser.png rename to bobwarfare_0.14.1/graphics/icons/tank-laser.png diff --git a/bobwarfare_0.14.0/graphics/icons/technology/battery-mk3-equipment.png b/bobwarfare_0.14.1/graphics/icons/technology/battery-mk3-equipment.png similarity index 100% rename from bobwarfare_0.14.0/graphics/icons/technology/battery-mk3-equipment.png rename to bobwarfare_0.14.1/graphics/icons/technology/battery-mk3-equipment.png diff --git a/bobwarfare_0.14.0/graphics/icons/technology/battery-mk4-equipment.png b/bobwarfare_0.14.1/graphics/icons/technology/battery-mk4-equipment.png similarity index 100% rename from bobwarfare_0.14.0/graphics/icons/technology/battery-mk4-equipment.png rename to bobwarfare_0.14.1/graphics/icons/technology/battery-mk4-equipment.png diff --git a/bobwarfare_0.14.0/graphics/icons/technology/battery-mk5-equipment.png b/bobwarfare_0.14.1/graphics/icons/technology/battery-mk5-equipment.png similarity index 100% rename from bobwarfare_0.14.0/graphics/icons/technology/battery-mk5-equipment.png rename to bobwarfare_0.14.1/graphics/icons/technology/battery-mk5-equipment.png diff --git a/bobwarfare_0.14.0/graphics/icons/technology/battery-mk6-equipment.png b/bobwarfare_0.14.1/graphics/icons/technology/battery-mk6-equipment.png similarity index 100% rename from bobwarfare_0.14.0/graphics/icons/technology/battery-mk6-equipment.png rename to bobwarfare_0.14.1/graphics/icons/technology/battery-mk6-equipment.png diff --git a/bobwarfare_0.14.0/graphics/icons/technology/cordite.png b/bobwarfare_0.14.1/graphics/icons/technology/cordite.png similarity index 100% rename from bobwarfare_0.14.0/graphics/icons/technology/cordite.png rename to bobwarfare_0.14.1/graphics/icons/technology/cordite.png diff --git a/bobwarfare_0.14.0/graphics/icons/technology/damage.png b/bobwarfare_0.14.1/graphics/icons/technology/damage.png similarity index 100% rename from bobwarfare_0.14.0/graphics/icons/technology/damage.png rename to bobwarfare_0.14.1/graphics/icons/technology/damage.png diff --git a/bobwarfare_0.14.0/graphics/icons/technology/damage.pspimage b/bobwarfare_0.14.1/graphics/icons/technology/damage.pspimage similarity index 100% rename from bobwarfare_0.14.0/graphics/icons/technology/damage.pspimage rename to bobwarfare_0.14.1/graphics/icons/technology/damage.pspimage diff --git a/bobwarfare_0.14.0/graphics/icons/technology/energy-shield-mk3-equipment.png b/bobwarfare_0.14.1/graphics/icons/technology/energy-shield-mk3-equipment.png similarity index 100% rename from bobwarfare_0.14.0/graphics/icons/technology/energy-shield-mk3-equipment.png rename to bobwarfare_0.14.1/graphics/icons/technology/energy-shield-mk3-equipment.png diff --git a/bobwarfare_0.14.0/graphics/icons/technology/energy-shield-mk4-equipment.png b/bobwarfare_0.14.1/graphics/icons/technology/energy-shield-mk4-equipment.png similarity index 100% rename from bobwarfare_0.14.0/graphics/icons/technology/energy-shield-mk4-equipment.png rename to bobwarfare_0.14.1/graphics/icons/technology/energy-shield-mk4-equipment.png diff --git a/bobwarfare_0.14.0/graphics/icons/technology/energy-shield-mk5-equipment.png b/bobwarfare_0.14.1/graphics/icons/technology/energy-shield-mk5-equipment.png similarity index 100% rename from bobwarfare_0.14.0/graphics/icons/technology/energy-shield-mk5-equipment.png rename to bobwarfare_0.14.1/graphics/icons/technology/energy-shield-mk5-equipment.png diff --git a/bobwarfare_0.14.0/graphics/icons/technology/energy-shield-mk6-equipment.png b/bobwarfare_0.14.1/graphics/icons/technology/energy-shield-mk6-equipment.png similarity index 100% rename from bobwarfare_0.14.0/graphics/icons/technology/energy-shield-mk6-equipment.png rename to bobwarfare_0.14.1/graphics/icons/technology/energy-shield-mk6-equipment.png diff --git a/bobwarfare_0.14.0/graphics/icons/technology/exoskeleton-equipment.png b/bobwarfare_0.14.1/graphics/icons/technology/exoskeleton-equipment.png similarity index 100% rename from bobwarfare_0.14.0/graphics/icons/technology/exoskeleton-equipment.png rename to bobwarfare_0.14.1/graphics/icons/technology/exoskeleton-equipment.png diff --git a/bobwarfare_0.14.0/graphics/icons/technology/fusion-reactor-equipment-2.png b/bobwarfare_0.14.1/graphics/icons/technology/fusion-reactor-equipment-2.png similarity index 100% rename from bobwarfare_0.14.0/graphics/icons/technology/fusion-reactor-equipment-2.png rename to bobwarfare_0.14.1/graphics/icons/technology/fusion-reactor-equipment-2.png diff --git a/bobwarfare_0.14.0/graphics/icons/technology/fusion-reactor-equipment-3.png b/bobwarfare_0.14.1/graphics/icons/technology/fusion-reactor-equipment-3.png similarity index 100% rename from bobwarfare_0.14.0/graphics/icons/technology/fusion-reactor-equipment-3.png rename to bobwarfare_0.14.1/graphics/icons/technology/fusion-reactor-equipment-3.png diff --git a/bobwarfare_0.14.0/graphics/icons/technology/fusion-reactor-equipment-4.png b/bobwarfare_0.14.1/graphics/icons/technology/fusion-reactor-equipment-4.png similarity index 100% rename from bobwarfare_0.14.0/graphics/icons/technology/fusion-reactor-equipment-4.png rename to bobwarfare_0.14.1/graphics/icons/technology/fusion-reactor-equipment-4.png diff --git a/bobwarfare_0.14.0/graphics/icons/technology/fusion-reactor-equipment.png b/bobwarfare_0.14.1/graphics/icons/technology/fusion-reactor-equipment.png similarity index 100% rename from bobwarfare_0.14.0/graphics/icons/technology/fusion-reactor-equipment.png rename to bobwarfare_0.14.1/graphics/icons/technology/fusion-reactor-equipment.png diff --git a/bobwarfare_0.14.0/graphics/icons/technology/laser-rifle-damage.png b/bobwarfare_0.14.1/graphics/icons/technology/laser-rifle-damage.png similarity index 100% rename from bobwarfare_0.14.0/graphics/icons/technology/laser-rifle-damage.png rename to bobwarfare_0.14.1/graphics/icons/technology/laser-rifle-damage.png diff --git a/bobwarfare_0.14.0/graphics/icons/technology/laser-rifle.png b/bobwarfare_0.14.1/graphics/icons/technology/laser-rifle.png similarity index 100% rename from bobwarfare_0.14.0/graphics/icons/technology/laser-rifle.png rename to bobwarfare_0.14.1/graphics/icons/technology/laser-rifle.png diff --git a/bobwarfare_0.14.0/graphics/icons/technology/night-vision-equipment.png b/bobwarfare_0.14.1/graphics/icons/technology/night-vision-equipment.png similarity index 100% rename from bobwarfare_0.14.0/graphics/icons/technology/night-vision-equipment.png rename to bobwarfare_0.14.1/graphics/icons/technology/night-vision-equipment.png diff --git a/bobwarfare_0.14.0/graphics/icons/technology/nitroglycerin.png b/bobwarfare_0.14.1/graphics/icons/technology/nitroglycerin.png similarity index 100% rename from bobwarfare_0.14.0/graphics/icons/technology/nitroglycerin.png rename to bobwarfare_0.14.1/graphics/icons/technology/nitroglycerin.png diff --git a/bobwarfare_0.14.0/graphics/icons/technology/personal-laser-defense-equipment-2.png b/bobwarfare_0.14.1/graphics/icons/technology/personal-laser-defense-equipment-2.png similarity index 100% rename from bobwarfare_0.14.0/graphics/icons/technology/personal-laser-defense-equipment-2.png rename to bobwarfare_0.14.1/graphics/icons/technology/personal-laser-defense-equipment-2.png diff --git a/bobwarfare_0.14.0/graphics/icons/technology/personal-laser-defense-equipment-3.png b/bobwarfare_0.14.1/graphics/icons/technology/personal-laser-defense-equipment-3.png similarity index 100% rename from bobwarfare_0.14.0/graphics/icons/technology/personal-laser-defense-equipment-3.png rename to bobwarfare_0.14.1/graphics/icons/technology/personal-laser-defense-equipment-3.png diff --git a/bobwarfare_0.14.0/graphics/icons/technology/personal-laser-defense-equipment-4.png b/bobwarfare_0.14.1/graphics/icons/technology/personal-laser-defense-equipment-4.png similarity index 100% rename from bobwarfare_0.14.0/graphics/icons/technology/personal-laser-defense-equipment-4.png rename to bobwarfare_0.14.1/graphics/icons/technology/personal-laser-defense-equipment-4.png diff --git a/bobwarfare_0.14.0/graphics/icons/technology/personal-laser-defense-equipment-5.png b/bobwarfare_0.14.1/graphics/icons/technology/personal-laser-defense-equipment-5.png similarity index 100% rename from bobwarfare_0.14.0/graphics/icons/technology/personal-laser-defense-equipment-5.png rename to bobwarfare_0.14.1/graphics/icons/technology/personal-laser-defense-equipment-5.png diff --git a/bobwarfare_0.14.0/graphics/icons/technology/personal-laser-defense-equipment-6.png b/bobwarfare_0.14.1/graphics/icons/technology/personal-laser-defense-equipment-6.png similarity index 100% rename from bobwarfare_0.14.0/graphics/icons/technology/personal-laser-defense-equipment-6.png rename to bobwarfare_0.14.1/graphics/icons/technology/personal-laser-defense-equipment-6.png diff --git a/bobwarfare_0.14.0/graphics/icons/technology/power-armor-mk3.png b/bobwarfare_0.14.1/graphics/icons/technology/power-armor-mk3.png similarity index 100% rename from bobwarfare_0.14.0/graphics/icons/technology/power-armor-mk3.png rename to bobwarfare_0.14.1/graphics/icons/technology/power-armor-mk3.png diff --git a/bobwarfare_0.14.0/graphics/icons/technology/power-armor-mk4.png b/bobwarfare_0.14.1/graphics/icons/technology/power-armor-mk4.png similarity index 100% rename from bobwarfare_0.14.0/graphics/icons/technology/power-armor-mk4.png rename to bobwarfare_0.14.1/graphics/icons/technology/power-armor-mk4.png diff --git a/bobwarfare_0.14.0/graphics/icons/technology/power-armor-mk5.png b/bobwarfare_0.14.1/graphics/icons/technology/power-armor-mk5.png similarity index 100% rename from bobwarfare_0.14.0/graphics/icons/technology/power-armor-mk5.png rename to bobwarfare_0.14.1/graphics/icons/technology/power-armor-mk5.png diff --git a/bobwarfare_0.14.0/graphics/icons/technology/radars.png b/bobwarfare_0.14.1/graphics/icons/technology/radars.png similarity index 100% rename from bobwarfare_0.14.0/graphics/icons/technology/radars.png rename to bobwarfare_0.14.1/graphics/icons/technology/radars.png diff --git a/bobwarfare_0.14.0/graphics/icons/technology/rocket-engine.png b/bobwarfare_0.14.1/graphics/icons/technology/rocket-engine.png similarity index 100% rename from bobwarfare_0.14.0/graphics/icons/technology/rocket-engine.png rename to bobwarfare_0.14.1/graphics/icons/technology/rocket-engine.png diff --git a/bobwarfare_0.14.0/graphics/icons/technology/tank-cannon-damage.png b/bobwarfare_0.14.1/graphics/icons/technology/tank-cannon-damage.png similarity index 100% rename from bobwarfare_0.14.0/graphics/icons/technology/tank-cannon-damage.png rename to bobwarfare_0.14.1/graphics/icons/technology/tank-cannon-damage.png diff --git a/bobwarfare_0.14.0/graphics/icons/technology/tank-cannon.png b/bobwarfare_0.14.1/graphics/icons/technology/tank-cannon.png similarity index 100% rename from bobwarfare_0.14.0/graphics/icons/technology/tank-cannon.png rename to bobwarfare_0.14.1/graphics/icons/technology/tank-cannon.png diff --git a/bobwarfare_0.14.0/graphics/icons/technology/tanks.png b/bobwarfare_0.14.1/graphics/icons/technology/tanks.png similarity index 100% rename from bobwarfare_0.14.0/graphics/icons/technology/tanks.png rename to bobwarfare_0.14.1/graphics/icons/technology/tanks.png diff --git a/bobwarfare_0.14.0/info.json b/bobwarfare_0.14.1/info.json similarity index 92% rename from bobwarfare_0.14.0/info.json rename to bobwarfare_0.14.1/info.json index cf990c2..6b1ddef 100644 --- a/bobwarfare_0.14.0/info.json +++ b/bobwarfare_0.14.1/info.json @@ -1,11 +1,11 @@ -{ - "name": "bobwarfare", - "version": "0.14.0", - "factorio_version": "0.14", - "title": "Bob's Warfare", - "author": "Bobingabout", - "contact": "robertagius@hotmail.com", - "homepage": "https://forums.factorio.com/viewforum.php?f=51", - "description": "Make things for warfare.", - "dependencies": ["base >= 0.14.0", "boblibrary >= 0.14.0", "? bobplates >= 0.14.0", "? boblogistics >= 0.14.0", "? bobconfig >= 0.14.0", "? bobenemies >= 0.14.0"] -} +{ + "name": "bobwarfare", + "version": "0.14.1", + "factorio_version": "0.14", + "title": "Bob's Warfare", + "author": "Bobingabout", + "contact": "robertagius@hotmail.com", + "homepage": "https://forums.factorio.com/viewforum.php?f=51", + "description": "Make things for warfare.", + "dependencies": ["base >= 0.14.0", "boblibrary >= 0.14.0", "? bobplates >= 0.14.0", "? boblogistics >= 0.14.0", "? bobconfig >= 0.14.0", "? bobenemies >= 0.14.0"] +} diff --git a/bobwarfare_0.14.0/locale/en/bobwarfare.cfg b/bobwarfare_0.14.1/locale/en/bobwarfare.cfg similarity index 95% rename from bobwarfare_0.14.0/locale/en/bobwarfare.cfg rename to bobwarfare_0.14.1/locale/en/bobwarfare.cfg index ea2ce17..aa2266d 100644 --- a/bobwarfare_0.14.0/locale/en/bobwarfare.cfg +++ b/bobwarfare_0.14.1/locale/en/bobwarfare.cfg @@ -1,358 +1,360 @@ -[fluid-name] -sulfuric-nitric-acid=Sulfuric and Nitric acid mixture -glycerol=Glycerol -nitroglycerin=Nitroglycerin - - -[item-name] -petroleum-jelly=Petroleum jelly -gun-cotton=Guncotton -cordite=Cordite -magazine=Magazine - -bullet-casing=Bullet casing -bullet-projectile=Bullet projectile -bullet=Bullet -bullet-magazine=Ammo magazine - -ap-bullet-projectile=AP bullet projectile -ap-bullet=AP bullet -ap-bullet-magazine=AP ammo magazine - -he-bullet-projectile=HE bullet projectile -he-bullet=HE bullet -he-bullet-magazine=HE ammo magazine - -acid-bullet-projectile=Acid bullet projectile -acid-bullet=Acid bullet -acid-bullet-magazine=Acid ammo magazine - -flame-bullet-projectile=Flame bullet projectile -flame-bullet=Flame bullet -flame-bullet-magazine=Flame ammo magazine - -poison-bullet-projectile=Poison bullet projectile -poison-bullet=Poison bullet -poison-bullet-magazine=Poison ammo magazine - -impact-bullet-projectile=Impact bullet projectile -impact-bullet=Impact bullet -impact-bullet-magazine=Impact ammo magazine - -electric-bullet-projectile=Electric bullet projectile -electric-bullet=Electric bullet -electric-bullet-magazine=Electric ammo magazine - - -shotgun-shell-casing=Shotgun shell casing -shot=Shotgun pellets - -better-shotgun-shell=Better shotgun shells -shotgun-ap-shell=Shotgun AP shells -shotgun-impact-shell=Shotgun impact shells -shotgun-explosive-shell=Shotgun explosive shells -shotgun-flame-shell=Shotgun flame shells -shotgun-acid-shell=Shotgun acid shells -shotgun-poison-shell=Shotgun poison shells -shotgun-electric-shell=Shotgun electric shells - -scatter-cannon-shell=Scatter cannon shells - -poison-artillery-shell=Poison artillery shells -explosive-artillery-shell=Explosive artillery shells -distractor-artillery-shell=Distractor artillery shells - - -rifle=Rifle - -sniper-rifle=Sniper rifle - -laser-rifle=Laser rifle -laser-rifle-battery-case=Laser rifle battery case - -laser-rifle-battery=Laser rifle battery -laser-rifle-battery-ruby=Ruby laser rifle battery -laser-rifle-battery-sapphire=Sapphire laser rifle battery -laser-rifle-battery-emerald=Emerald laser rifle battery -laser-rifle-battery-amethyst=Amethyst laser rifle battery -laser-rifle-battery-topaz=Topaz laser rifle battery -laser-rifle-battery-diamond=Diamond laser rifle battery - -gatling-gun=Gatling gun - -tank-cannon-2=Tank cannon 2 -tank-cannon-3=Tank cannon 3 - -tank-artillery-1=Tank artillery -tank-artillery-2=Tank artillery 2 - -tank-laser=Tank laser - - -poison-mine=Poison mine -slowdown-mine=Slowdown mine -distractor-mine=Distractor robot mine - -bob-robot-tank=Robotic attack drone - -rocket-engine=Rocket engine -rocket-body=Rocket body - -rocket-warhead=Rocket warhead -piercing-rocket-warhead=Piercing rocket warhead -impact-rocket-warhead=Impact rocket warhead -explosive-rocket-warhead=Explosive rocket warhead -flame-rocket-warhead=Flame rocket warhead -poison-rocket-warhead=Poison rocket warhead -acid-rocket-warhead=Acid rocket warhead -electric-rocket-warhead=Electric rocket warhead - -bob-rocket=Rocket -bob-piercing-rocket=Piercing rocket -bob-impact-rocket=Impact rocket -bob-explosive-rocket=Explosive rocket -bob-flame-rocket=Flame rocket -bob-poison-rocket=Poison rocket -bob-acid-rocket=Acid rocket -bob-electric-rocket=Electric rocket - -bob-power-armor-mk3=Power armor MK3 -bob-power-armor-mk4=Power armor MK4 -bob-power-armor-mk5=Power armor MK5 - -heavy-armor-2=Invar Cobalt-steel armor -heavy-armor-3=Titanium-Ceramic armor - - -reinforced-wall=Re-inforced concrete wall -reinforced-gate=Re-inforced concrete gate - -energy-shield-mk3-equipment=Energy shield MK3 -energy-shield-mk4-equipment=Energy shield MK4 -energy-shield-mk5-equipment=Energy shield MK5 -energy-shield-mk6-equipment=Energy shield MK6 - -battery-mk3-equipment=Battery MK3 -battery-mk4-equipment=Battery MK4 -battery-mk5-equipment=Battery MK5 -battery-mk6-equipment=Battery MK6 - -fusion-reactor-equipment-2=Portable fusion reactor MK2 -fusion-reactor-equipment-3=Portable fusion reactor MK3 -fusion-reactor-equipment-4=Portable fusion reactor MK4 - -night-vision-equipment-2=Night vision MK2 -night-vision-equipment-3=Night vision MK3 - -solar-panel-equipment-2=Portable solar panel MK2 -solar-panel-equipment-3=Portable solar panel MK3 -solar-panel-equipment-4=Portable solar panel MK4 - -personal-laser-defense-equipment-2=Personal laser defense MK2 -personal-laser-defense-equipment-3=Personal laser defense MK3 -personal-laser-defense-equipment-4=Personal laser defense MK4 -personal-laser-defense-equipment-5=Personal laser defense MK5 -personal-laser-defense-equipment-6=Personal laser defense MK6 - -exoskeleton-equipment-2=Exoskeleton equipment MK2 -exoskeleton-equipment-3=Exoskeleton equipment MK3 - - -bob-gun-turret-2=Gun turret MK2 -bob-gun-turret-3=Gun turret MK3 -bob-gun-turret-4=Gun turret MK4 -bob-gun-turret-5=Gun turret MK5 - -bob-sniper-turret-1=Sniper turret MK1 -bob-sniper-turret-2=Sniper turret MK2 -bob-sniper-turret-3=Sniper turret MK3 - -bob-laser-turret-2=Laser turret MK2 -bob-laser-turret-3=Laser turret MK3 -bob-laser-turret-4=Laser turret MK4 -bob-laser-turret-5=Laser turret MK5 - -tank-2=Tank MK2 -tank-3=Tank MK3 - - -radar-2=Radar MK2 -radar-3=Radar MK3 -radar-4=Radar MK4 -radar-5=Radar MK5 - - -robot-brain-combat=Defender robot brain -robot-brain-combat-2=Distractor robot brain -robot-brain-combat-3=Destroyer robot brain -robot-brain-combat-4=Laser robot brain - -robot-tool-combat=Defender robot weapon -robot-tool-combat-2=Distractor robot weapon -robot-tool-combat-3=Destroyer robot weapon -robot-tool-combat-4=Laser robot weapon - -defender-robot=Defender robot -distractor-robot=Distractor robot -destroyer-robot=Destroyer robot -bob-laser-robot=Laser robot - -bob-laser-robot-capsule=Laser robot capsule - - -[entity-name] -bob-robot-tank=Robotic attack drone -bob-laser-robot=Laser robot - -reinforced-wall=Re-inforced concrete wall -reinforced-gate=Re-inforced concrete gate - -poison-mine=Poison mine -slowdown-mine=Slowdown mine -distractor-mine=Distractor robot mine - - -bob-gun-turret-2=Gun turret MK2 -bob-gun-turret-3=Gun turret MK3 -bob-gun-turret-4=Gun turret MK4 -bob-gun-turret-5=Gun turret MK5 - -bob-sniper-turret-1=Sniper turret MK1 -bob-sniper-turret-2=Sniper turret MK2 -bob-sniper-turret-3=Sniper turret MK3 - -bob-laser-turret-2=Laser turret MK2 -bob-laser-turret-3=Laser turret MK3 -bob-laser-turret-4=Laser turret MK4 -bob-laser-turret-5=Laser turret MK5 - -tank-2=Tank MK2 -tank-3=Tank MK3 - - -radar-2=Radar MK2 -radar-3=Radar MK3 -radar-4=Radar MK4 -radar-5=Radar MK5 - - -[recipe-name] - -[damage-type-name] -bob-pierce=Pierce - - -[equipment-name] -energy-shield-mk3-equipment=Energy shield MK3 -energy-shield-mk4-equipment=Energy shield MK4 -energy-shield-mk5-equipment=Energy shield MK5 -energy-shield-mk6-equipment=Energy shield MK6 - -battery-mk3-equipment=Battery MK3 -battery-mk4-equipment=Battery MK4 -battery-mk5-equipment=Battery MK5 -battery-mk6-equipment=Battery MK6 - -fusion-reactor-equipment-2=Portable fusion reactor MK2 -fusion-reactor-equipment-3=Portable fusion reactor MK3 -fusion-reactor-equipment-4=Portable fusion reactor MK4 - -night-vision-equipment-2=Night vision MK2 -night-vision-equipment-3=Night vision MK3 - -solar-panel-equipment-2=Portable solar panel MK2 -solar-panel-equipment-3=Portable solar panel MK3 -solar-panel-equipment-4=Portable solar panel MK4 - -personal-laser-defense-equipment-2=Personal laser defense MK2 -personal-laser-defense-equipment-3=Personal laser defense MK3 -personal-laser-defense-equipment-4=Personal laser defense MK4 -personal-laser-defense-equipment-5=Personal laser defense MK5 -personal-laser-defense-equipment-6=Personal laser defense MK6 - -exoskeleton-equipment-2=exoskeleton equipment MK2 -exoskeleton-equipment-3=exoskeleton equipment MK3 - - -[technology-name] -nitroglycerin-processing=Nitroglycerin processing -cordite-processing=Cordite processing - -bob-bullets=Bullets -bob-ap-bullets=AP bullets -bob-he-bullets=HE bullets -bob-acid-bullets=Acid bullets -bob-flame-bullets=Flame bullets -bob-poison-bullets=Poison bullets -bob-impact-bullets=Impact bullets -bob-electric-bullets=Electric bullets - -bob-shotgun-shells=Better shotgun shells -bob-shotgun-ap-shells=Shotgun AP shells -bob-shotgun-impact-shells=Shotgun impact shells -bob-shotgun-explosive-shells=Shotgun explosive shells -bob-shotgun-flame-shells=Shotgun flame shells -bob-shotgun-acid-shells=Shotgun acid shells -bob-shotgun-poison-shells=Shotgun poison shells -bob-shotgun-electric-shells=Shotgun electric shells - -bob-laser-rifle=Laser rifle -bob-laser-rifle-ammo=Laser rifle ammo -bob-laser-rifle-damage=Laser rifle damage upgrade -bob-laser-rifle-speed=Laser rifle shooting speed upgrade - -bob-tank-cannon-damage=Tank cannon damage upgrade -bob-tank-cannon-speed=Tank cannon shooting speed upgrade - -bob-tank-artillery-damage=Tank artillery damage upgrade -bob-tank-artillery-speed=Tank artillery shooting speed upgrade - - -bob-rocket=Rocket -bob-piercing-rocket=Piercing rocket -bob-impact-rocket=Impact rocket -bob-explosive-rocket=explosive rocket -bob-flame-rocket=Flame rocket -bob-poison-rocket=Poison rocket -bob-acid-rocket=Acid rocket -bob-electric-rocket=Electric rocket - -bob-robot-tanks=Robotic attack drones - -bob-power-armor=Power armor -bob-armor-making=Armor crafting - -reinforced-wall=Re-inforced concrete wall - -poison-mine=Poison mine -slowdown-mine=Slowdown mine -distractor-mine=Distractor robot mine - -bob-turrets=Turrets -bob-laser-turrets=Laser turrets -bob-sniper-turrets=Sniper turrets -bob-sniper-turret-damage=Sniper turret damage upgrade - -radars=Radars - - -[modifier-description] -bob-gun-turret-2-attack-bonus=Gun turret MK2 damage bonus: __1__ -bob-gun-turret-3-attack-bonus=Gun turret MK3 damage bonus: __1__ -bob-gun-turret-4-attack-bonus=Gun turret MK4 damage bonus: __1__ -bob-gun-turret-5-attack-bonus=Gun turret MK5 damage bonus: __1__ - -bob-sniper-turret-1-attack-bonus=Sniper turret MK1 damage bonus: __1__ -bob-sniper-turret-2-attack-bonus=Sniper turret MK2 damage bonus: __1__ -bob-sniper-turret-3-attack-bonus=Sniper turret MK3 damage bonus: __1__ - -laser-rifle-damage-bonus=Laser rifle damage bonus: __1__ -laser-rifle-shooting-speed-bonus=Laser rifle shooting speed bonus: __1__ - -cannon-shell-damage-bonus=Tank cannon damage bonus: __1__ -cannon-shell-shooting-speed-bonus=Tank cannon shooting speed bonus: __1__ - -artillery-shell-damage-bonus=Tank artillery damage bonus: __1__ -artillery-shell-shooting-speed-bonus=Tank artillery shooting speed bonus: __1__ - - +[fluid-name] +sulfuric-nitric-acid=Sulfuric and Nitric acid mixture +glycerol=Glycerol +nitroglycerin=Nitroglycerin + + +[item-name] +petroleum-jelly=Petroleum jelly +gun-cotton=Guncotton +cordite=Cordite +magazine=Magazine + +bullet-casing=Bullet casing +bullet-projectile=Bullet projectile +bullet=Bullet +bullet-magazine=Ammo magazine + +ap-bullet-projectile=AP bullet projectile +ap-bullet=AP bullet +ap-bullet-magazine=AP ammo magazine + +he-bullet-projectile=HE bullet projectile +he-bullet=HE bullet +he-bullet-magazine=HE ammo magazine + +acid-bullet-projectile=Acid bullet projectile +acid-bullet=Acid bullet +acid-bullet-magazine=Acid ammo magazine + +flame-bullet-projectile=Flame bullet projectile +flame-bullet=Flame bullet +flame-bullet-magazine=Flame ammo magazine + +poison-bullet-projectile=Poison bullet projectile +poison-bullet=Poison bullet +poison-bullet-magazine=Poison ammo magazine + +impact-bullet-projectile=Impact bullet projectile +impact-bullet=Impact bullet +impact-bullet-magazine=Impact ammo magazine + +electric-bullet-projectile=Electric bullet projectile +electric-bullet=Electric bullet +electric-bullet-magazine=Electric ammo magazine + + +shotgun-shell-casing=Shotgun shell casing +shot=Shotgun pellets + +better-shotgun-shell=Better shotgun shells +shotgun-ap-shell=Shotgun AP shells +shotgun-impact-shell=Shotgun impact shells +shotgun-explosive-shell=Shotgun explosive shells +shotgun-flame-shell=Shotgun flame shells +shotgun-acid-shell=Shotgun acid shells +shotgun-poison-shell=Shotgun poison shells +shotgun-electric-shell=Shotgun electric shells + +scatter-cannon-shell=Scatter cannon shells + +poison-artillery-shell=Poison artillery shells +explosive-artillery-shell=Explosive artillery shells +distractor-artillery-shell=Distractor artillery shells + + +rifle=Rifle + +sniper-rifle=Sniper rifle + +laser-rifle=Laser rifle +laser-rifle-battery-case=Laser rifle battery case + +laser-rifle-battery=Laser rifle battery +laser-rifle-battery-ruby=Ruby laser rifle battery +laser-rifle-battery-sapphire=Sapphire laser rifle battery +laser-rifle-battery-emerald=Emerald laser rifle battery +laser-rifle-battery-amethyst=Amethyst laser rifle battery +laser-rifle-battery-topaz=Topaz laser rifle battery +laser-rifle-battery-diamond=Diamond laser rifle battery + +gatling-gun=Gatling gun + +tank-cannon-2=Tank cannon 2 +tank-cannon-3=Tank cannon 3 + +tank-artillery-1=Tank artillery +tank-artillery-2=Tank artillery 2 + +tank-laser=Tank laser + + +poison-mine=Poison mine +slowdown-mine=Slowdown mine +distractor-mine=Distractor robot mine + +bob-robot-tank=Robotic attack drone + +rocket-engine=Rocket engine +rocket-body=Rocket body + +rocket-warhead=Rocket warhead +piercing-rocket-warhead=Piercing rocket warhead +impact-rocket-warhead=Impact rocket warhead +explosive-rocket-warhead=Explosive rocket warhead +flame-rocket-warhead=Flame rocket warhead +poison-rocket-warhead=Poison rocket warhead +acid-rocket-warhead=Acid rocket warhead +electric-rocket-warhead=Electric rocket warhead + +bob-rocket=Rocket +bob-piercing-rocket=Piercing rocket +bob-impact-rocket=Impact rocket +bob-explosive-rocket=Explosive rocket +bob-flame-rocket=Flame rocket +bob-poison-rocket=Poison rocket +bob-acid-rocket=Acid rocket +bob-electric-rocket=Electric rocket + +bob-power-armor-mk3=Power armor MK3 +bob-power-armor-mk4=Power armor MK4 +bob-power-armor-mk5=Power armor MK5 + +heavy-armor-2=Invar Cobalt-steel armor +heavy-armor-3=Titanium-Ceramic armor + + +reinforced-wall=Re-inforced concrete wall +reinforced-gate=Re-inforced concrete gate + +energy-shield-mk3-equipment=Energy shield MK3 +energy-shield-mk4-equipment=Energy shield MK4 +energy-shield-mk5-equipment=Energy shield MK5 +energy-shield-mk6-equipment=Energy shield MK6 + +battery-mk3-equipment=Battery MK3 +battery-mk4-equipment=Battery MK4 +battery-mk5-equipment=Battery MK5 +battery-mk6-equipment=Battery MK6 + +fusion-reactor-equipment-2=Portable fusion reactor MK2 +fusion-reactor-equipment-3=Portable fusion reactor MK3 +fusion-reactor-equipment-4=Portable fusion reactor MK4 + +night-vision-equipment-2=Night vision MK2 +night-vision-equipment-3=Night vision MK3 + +solar-panel-equipment-2=Portable solar panel MK2 +solar-panel-equipment-3=Portable solar panel MK3 +solar-panel-equipment-4=Portable solar panel MK4 + +personal-laser-defense-equipment-2=Personal laser defense MK2 +personal-laser-defense-equipment-3=Personal laser defense MK3 +personal-laser-defense-equipment-4=Personal laser defense MK4 +personal-laser-defense-equipment-5=Personal laser defense MK5 +personal-laser-defense-equipment-6=Personal laser defense MK6 + +exoskeleton-equipment-2=Exoskeleton equipment MK2 +exoskeleton-equipment-3=Exoskeleton equipment MK3 + + +bob-gun-turret-2=Gun turret MK2 +bob-gun-turret-3=Gun turret MK3 +bob-gun-turret-4=Gun turret MK4 +bob-gun-turret-5=Gun turret MK5 + +bob-sniper-turret-1=Sniper turret MK1 +bob-sniper-turret-2=Sniper turret MK2 +bob-sniper-turret-3=Sniper turret MK3 + +bob-laser-turret-2=Laser turret MK2 +bob-laser-turret-3=Laser turret MK3 +bob-laser-turret-4=Laser turret MK4 +bob-laser-turret-5=Laser turret MK5 + +bob-tank-2=Tank MK2 +bob-tank-3=Tank MK3 + + +radar-2=Radar MK2 +radar-3=Radar MK3 +radar-4=Radar MK4 +radar-5=Radar MK5 + + +robot-brain-combat=Defender robot brain +robot-brain-combat-2=Distractor robot brain +robot-brain-combat-3=Destroyer robot brain +robot-brain-combat-4=Laser robot brain + +robot-tool-combat=Defender robot weapon +robot-tool-combat-2=Distractor robot weapon +robot-tool-combat-3=Destroyer robot weapon +robot-tool-combat-4=Laser robot weapon + +defender-robot=Defender robot +distractor-robot=Distractor robot +destroyer-robot=Destroyer robot +bob-laser-robot=Laser robot + +bob-laser-robot-capsule=Laser robot capsule + + +[entity-name] +bob-robot-tank=Robotic attack drone +bob-laser-robot=Laser robot + +reinforced-wall=Re-inforced concrete wall +reinforced-gate=Re-inforced concrete gate + +poison-mine=Poison mine +slowdown-mine=Slowdown mine +distractor-mine=Distractor robot mine + + +bob-gun-turret-2=Gun turret MK2 +bob-gun-turret-3=Gun turret MK3 +bob-gun-turret-4=Gun turret MK4 +bob-gun-turret-5=Gun turret MK5 + +bob-sniper-turret-1=Sniper turret MK1 +bob-sniper-turret-2=Sniper turret MK2 +bob-sniper-turret-3=Sniper turret MK3 + +bob-laser-turret-2=Laser turret MK2 +bob-laser-turret-3=Laser turret MK3 +bob-laser-turret-4=Laser turret MK4 +bob-laser-turret-5=Laser turret MK5 + +bob-tank-2=Tank MK2 +bob-tank-3=Tank MK3 + + +radar-2=Radar MK2 +radar-3=Radar MK3 +radar-4=Radar MK4 +radar-5=Radar MK5 + + +[recipe-name] + +[damage-type-name] +bob-pierce=Pierce + + +[equipment-name] +energy-shield-mk3-equipment=Energy shield MK3 +energy-shield-mk4-equipment=Energy shield MK4 +energy-shield-mk5-equipment=Energy shield MK5 +energy-shield-mk6-equipment=Energy shield MK6 + +battery-mk3-equipment=Battery MK3 +battery-mk4-equipment=Battery MK4 +battery-mk5-equipment=Battery MK5 +battery-mk6-equipment=Battery MK6 + +fusion-reactor-equipment-2=Portable fusion reactor MK2 +fusion-reactor-equipment-3=Portable fusion reactor MK3 +fusion-reactor-equipment-4=Portable fusion reactor MK4 + +night-vision-equipment-2=Night vision MK2 +night-vision-equipment-3=Night vision MK3 + +solar-panel-equipment-2=Portable solar panel MK2 +solar-panel-equipment-3=Portable solar panel MK3 +solar-panel-equipment-4=Portable solar panel MK4 + +personal-laser-defense-equipment-2=Personal laser defense MK2 +personal-laser-defense-equipment-3=Personal laser defense MK3 +personal-laser-defense-equipment-4=Personal laser defense MK4 +personal-laser-defense-equipment-5=Personal laser defense MK5 +personal-laser-defense-equipment-6=Personal laser defense MK6 + +exoskeleton-equipment-2=exoskeleton equipment MK2 +exoskeleton-equipment-3=exoskeleton equipment MK3 + + +[technology-name] +nitroglycerin-processing=Nitroglycerin processing +cordite-processing=Cordite processing + +bob-bullets=Bullets +bob-ap-bullets=AP bullets +bob-he-bullets=HE bullets +bob-acid-bullets=Acid bullets +bob-flame-bullets=Flame bullets +bob-poison-bullets=Poison bullets +bob-impact-bullets=Impact bullets +bob-electric-bullets=Electric bullets + +bob-shotgun-shells=Better shotgun shells +bob-shotgun-ap-shells=Shotgun AP shells +bob-shotgun-impact-shells=Shotgun impact shells +bob-shotgun-explosive-shells=Shotgun explosive shells +bob-shotgun-flame-shells=Shotgun flame shells +bob-shotgun-acid-shells=Shotgun acid shells +bob-shotgun-poison-shells=Shotgun poison shells +bob-shotgun-electric-shells=Shotgun electric shells + +bob-laser-rifle=Laser rifle +bob-laser-rifle-ammo=Laser rifle ammo +bob-laser-rifle-damage=Laser rifle damage upgrade +bob-laser-rifle-speed=Laser rifle shooting speed upgrade + +bob-tank-cannon-damage=Tank cannon damage upgrade +bob-tank-cannon-speed=Tank cannon shooting speed upgrade + +bob-tank-artillery-damage=Tank artillery damage upgrade +bob-tank-artillery-speed=Tank artillery shooting speed upgrade + + +bob-rocket=Rocket +bob-piercing-rocket=Piercing rocket +bob-impact-rocket=Impact rocket +bob-explosive-rocket=explosive rocket +bob-flame-rocket=Flame rocket +bob-poison-rocket=Poison rocket +bob-acid-rocket=Acid rocket +bob-electric-rocket=Electric rocket + +bob-robot-tanks=Robotic attack drones + +bob-power-armor=Power armor +bob-armor-making=Armor crafting + +reinforced-wall=Re-inforced concrete wall + +poison-mine=Poison mine +slowdown-mine=Slowdown mine +distractor-mine=Distractor robot mine + +bob-turrets=Turrets +bob-laser-turrets=Laser turrets +bob-sniper-turrets=Sniper turrets +bob-sniper-turret-damage=Sniper turret damage upgrade + +bob-tanks=Tanks + +radars=Radars + + +[modifier-description] +bob-gun-turret-2-attack-bonus=Gun turret MK2 damage bonus: __1__ +bob-gun-turret-3-attack-bonus=Gun turret MK3 damage bonus: __1__ +bob-gun-turret-4-attack-bonus=Gun turret MK4 damage bonus: __1__ +bob-gun-turret-5-attack-bonus=Gun turret MK5 damage bonus: __1__ + +bob-sniper-turret-1-attack-bonus=Sniper turret MK1 damage bonus: __1__ +bob-sniper-turret-2-attack-bonus=Sniper turret MK2 damage bonus: __1__ +bob-sniper-turret-3-attack-bonus=Sniper turret MK3 damage bonus: __1__ + +laser-rifle-damage-bonus=Laser rifle damage bonus: __1__ +laser-rifle-shooting-speed-bonus=Laser rifle shooting speed bonus: __1__ + +cannon-shell-damage-bonus=Tank cannon damage bonus: __1__ +cannon-shell-shooting-speed-bonus=Tank cannon shooting speed bonus: __1__ + +artillery-shell-damage-bonus=Tank artillery damage bonus: __1__ +artillery-shell-shooting-speed-bonus=Tank artillery shooting speed bonus: __1__ + + diff --git a/bobwarfare_0.14.0/migrations/bobwarfare_0.13.0.json b/bobwarfare_0.14.1/migrations/bobwarfare_0.14.0.json similarity index 89% rename from bobwarfare_0.14.0/migrations/bobwarfare_0.13.0.json rename to bobwarfare_0.14.1/migrations/bobwarfare_0.14.0.json index 7aefb01..2ce3382 100644 --- a/bobwarfare_0.14.0/migrations/bobwarfare_0.13.0.json +++ b/bobwarfare_0.14.1/migrations/bobwarfare_0.14.0.json @@ -1,52 +1,54 @@ -{ - "item": - [ - ["basic-exoskeleton-equipment-2", "exoskeleton-equipment-2"], - ["basic-exoskeleton-equipment-3", "exoskeleton-equipment-3"], - ["basic-laser-defense-equipment-2", "personal-laser-defense-equipment-2"], - ["basic-laser-defense-equipment-3", "personal-laser-defense-equipment-3"], - ["basic-laser-defense-equipment-4", "personal-laser-defense-equipment-4"], - ["basic-laser-defense-equipment-5", "personal-laser-defense-equipment-5"], - ["basic-laser-defense-equipment-6", "personal-laser-defense-equipment-6"], - ["impact-bullet-magazine", "electric-bullet-magazine"], - ["impact-bullet", "electric-bullet"], - ["shotgun-impact-shell", "shotgun-electric-shell"], - ["bob-impact-rocket", "bob-electric-rocket"], - ["impact-rocket-warhead", "electric-rocket-warhead"] - ], - "equipment": - [ - ["basic-exoskeleton-equipment-2", "exoskeleton-equipment-2"], - ["basic-exoskeleton-equipment-3", "exoskeleton-equipment-3"], - ["basic-laser-defense-equipment-2", "personal-laser-defense-equipment-2"], - ["basic-laser-defense-equipment-3", "personal-laser-defense-equipment-3"], - ["basic-laser-defense-equipment-4", "personal-laser-defense-equipment-4"], - ["basic-laser-defense-equipment-5", "personal-laser-defense-equipment-5"], - ["basic-laser-defense-equipment-6", "personal-laser-defense-equipment-6"] - ], - "recipe": - [ - ["basic-exoskeleton-equipment-2", "exoskeleton-equipment-2"], - ["basic-exoskeleton-equipment-3", "exoskeleton-equipment-3"], - ["basic-laser-defense-equipment-2", "personal-laser-defense-equipment-2"], - ["basic-laser-defense-equipment-3", "personal-laser-defense-equipment-3"], - ["basic-laser-defense-equipment-4", "personal-laser-defense-equipment-4"], - ["basic-laser-defense-equipment-5", "personal-laser-defense-equipment-5"], - ["basic-laser-defense-equipment-6", "personal-laser-defense-equipment-6"], - ["impact-bullet-magazine", "electric-bullet-magazine"], - ["impact-bullet", "electric-bullet"], - ["shotgun-impact-shell", "shotgun-electric-shell"], - ["bob-impact-rocket", "bob-electric-rocket"], - ["impact-rocket-warhead", "electric-rocket-warhead"] - ], - "technology": - [ - ["basic-exoskeleton-equipment-2", "exoskeleton-equipment-2"], - ["basic-exoskeleton-equipment-3", "exoskeleton-equipment-3"], - ["basic-laser-defense-equipment-2", "personal-laser-defense-equipment-2"], - ["basic-laser-defense-equipment-3", "personal-laser-defense-equipment-3"], - ["basic-laser-defense-equipment-4", "personal-laser-defense-equipment-4"], - ["basic-laser-defense-equipment-5", "personal-laser-defense-equipment-5"], - ["basic-laser-defense-equipment-6", "personal-laser-defense-equipment-6"] - ] -} +{ + "item": + [ + ["basic-exoskeleton-equipment-2", "exoskeleton-equipment-2"], + ["basic-exoskeleton-equipment-3", "exoskeleton-equipment-3"], + ["basic-laser-defense-equipment-2", "personal-laser-defense-equipment-2"], + ["basic-laser-defense-equipment-3", "personal-laser-defense-equipment-3"], + ["basic-laser-defense-equipment-4", "personal-laser-defense-equipment-4"], + ["basic-laser-defense-equipment-5", "personal-laser-defense-equipment-5"], + ["basic-laser-defense-equipment-6", "personal-laser-defense-equipment-6"], + ["impact-bullet-magazine", "electric-bullet-magazine"], + ["impact-bullet", "electric-bullet"], + ["shotgun-impact-shell", "shotgun-electric-shell"], + ["bob-impact-rocket", "bob-electric-rocket"], + ["impact-rocket-warhead", "electric-rocket-warhead"], + ["impact-bullet-projectile", "electric-bullet-projectile"] + ], + "equipment": + [ + ["basic-exoskeleton-equipment-2", "exoskeleton-equipment-2"], + ["basic-exoskeleton-equipment-3", "exoskeleton-equipment-3"], + ["basic-laser-defense-equipment-2", "personal-laser-defense-equipment-2"], + ["basic-laser-defense-equipment-3", "personal-laser-defense-equipment-3"], + ["basic-laser-defense-equipment-4", "personal-laser-defense-equipment-4"], + ["basic-laser-defense-equipment-5", "personal-laser-defense-equipment-5"], + ["basic-laser-defense-equipment-6", "personal-laser-defense-equipment-6"] + ], + "recipe": + [ + ["basic-exoskeleton-equipment-2", "exoskeleton-equipment-2"], + ["basic-exoskeleton-equipment-3", "exoskeleton-equipment-3"], + ["basic-laser-defense-equipment-2", "personal-laser-defense-equipment-2"], + ["basic-laser-defense-equipment-3", "personal-laser-defense-equipment-3"], + ["basic-laser-defense-equipment-4", "personal-laser-defense-equipment-4"], + ["basic-laser-defense-equipment-5", "personal-laser-defense-equipment-5"], + ["basic-laser-defense-equipment-6", "personal-laser-defense-equipment-6"], + ["impact-bullet-magazine", "electric-bullet-magazine"], + ["impact-bullet", "electric-bullet"], + ["shotgun-impact-shell", "shotgun-electric-shell"], + ["bob-impact-rocket", "bob-electric-rocket"], + ["impact-rocket-warhead", "electric-rocket-warhead"], + ["impact-bullet-projectile", "electric-bullet-projectile"] + ], + "technology": + [ + ["basic-exoskeleton-equipment-2", "exoskeleton-equipment-2"], + ["basic-exoskeleton-equipment-3", "exoskeleton-equipment-3"], + ["basic-laser-defense-equipment-2", "personal-laser-defense-equipment-2"], + ["basic-laser-defense-equipment-3", "personal-laser-defense-equipment-3"], + ["basic-laser-defense-equipment-4", "personal-laser-defense-equipment-4"], + ["basic-laser-defense-equipment-5", "personal-laser-defense-equipment-5"], + ["basic-laser-defense-equipment-6", "personal-laser-defense-equipment-6"] + ] +} diff --git a/bobwarfare_0.14.0/migrations/bobwarfare_0.13.3.lua b/bobwarfare_0.14.1/migrations/bobwarfare_0.14.0.lua similarity index 54% rename from bobwarfare_0.14.0/migrations/bobwarfare_0.13.3.lua rename to bobwarfare_0.14.1/migrations/bobwarfare_0.14.0.lua index 841363e..89d9dba 100644 --- a/bobwarfare_0.14.0/migrations/bobwarfare_0.13.3.lua +++ b/bobwarfare_0.14.1/migrations/bobwarfare_0.14.0.lua @@ -1,38 +1,60 @@ -game.reload_script() - -for index, force in pairs(game.forces) do - force.reset_recipes() - force.reset_technologies() - - if force.technologies["combat-robotics"].researched then - force.recipes["defender-robot"].enabled = true - if force.recipes["robot-brain-combat"] then - force.recipes["robot-brain-combat"].enabled = true - end - if force.recipes["robot-tool-combat"] then - force.recipes["robot-tool-combat"].enabled = true - end - end - - if force.technologies["combat-robotics-2"].researched then - force.recipes["distractor-robot"].enabled = true - if force.recipes["robot-brain-combat-2"] then - force.recipes["robot-brain-combat-2"].enabled = true - end - if force.recipes["robot-tool-combat-2"] then - force.recipes["robot-tool-combat-2"].enabled = true - end - end - - if force.technologies["combat-robotics-3"].researched then - force.recipes["destroyer-robot"].enabled = true - if force.recipes["robot-brain-combat-3"] then - force.recipes["robot-brain-combat-3"].enabled = true - end - if force.recipes["robot-tool-combat-3"] then - force.recipes["robot-tool-combat-3"].enabled = true - end - end -end - - +game.reload_script() + +for index, force in pairs(game.forces) do + force.reset_recipes() + force.reset_technologies() + + if force.technologies["military-3"].researched then + force.recipes["rifle"].enabled = true + force.recipes["sniper-rifle"].enabled = true + end + if force.technologies["rocketry"].researched then + force.recipes["rocket-engine"].enabled = true + end + + if force.technologies["bob-laser-rifle"].researched then + force.recipes["laser-rifle-battery-case"].enabled = true + end + + if force.technologies["bob-tanks-3"].researched then + force.recipes["explosive-artillery-shell"].enabled = true + force.recipes["distractor-artillery-shell"].enabled = true + end + + if force.technologies["combat-robotics"].researched then + force.recipes["defender-robot"].enabled = true + if force.recipes["robot-brain-combat"] then + force.recipes["robot-brain-combat"].enabled = true + end + if force.recipes["robot-tool-combat"] then + force.recipes["robot-tool-combat"].enabled = true + end + end + + if force.technologies["combat-robotics-2"].researched then + force.recipes["distractor-robot"].enabled = true + if force.recipes["robot-brain-combat-2"] then + force.recipes["robot-brain-combat-2"].enabled = true + end + if force.recipes["robot-tool-combat-2"] then + force.recipes["robot-tool-combat-2"].enabled = true + end + end + + if force.technologies["combat-robotics-3"].researched then + force.recipes["destroyer-robot"].enabled = true + if force.recipes["robot-brain-combat-3"] then + force.recipes["robot-brain-combat-3"].enabled = true + end + if force.recipes["robot-tool-combat-3"] then + force.recipes["robot-tool-combat-3"].enabled = true + end + end + + local modifier = force.get_turret_attack_modifier("gun-turret") + force.set_turret_attack_modifier("bob-gun-turret-2", modifier) + force.set_turret_attack_modifier("bob-gun-turret-3", modifier) + force.set_turret_attack_modifier("bob-gun-turret-4", modifier) + force.set_turret_attack_modifier("bob-gun-turret-5", modifier) +end + diff --git a/bobwarfare_0.14.1/migrations/bobwarfare_0.14.1.json b/bobwarfare_0.14.1/migrations/bobwarfare_0.14.1.json new file mode 100644 index 0000000..b0c9b5d --- /dev/null +++ b/bobwarfare_0.14.1/migrations/bobwarfare_0.14.1.json @@ -0,0 +1,23 @@ +{ + "item": + [ + ["tank-2", "bob-tank-2"], + ["tank-3", "bob-tank-3"] + ], + "entity": + [ + ["tank-2", "bob-tank-2"], + ["tank-3", "bob-tank-3"] + ], + "recipe": + [ + ["tank-2", "bob-tank-2"], + ["tank-3", "bob-tank-3"] + ], + "technology": + [ + [ "tanks-2", "bob-tanks-2" ], + [ "tanks-3", "bob-tanks-3" ] + ] +} + diff --git a/bobwarfare_0.14.1/migrations/bobwarfare_0.14.1.lua b/bobwarfare_0.14.1/migrations/bobwarfare_0.14.1.lua new file mode 100644 index 0000000..f32f426 --- /dev/null +++ b/bobwarfare_0.14.1/migrations/bobwarfare_0.14.1.lua @@ -0,0 +1,15 @@ +game.reload_script() + +for index, force in pairs(game.forces) do + force.reset_recipes() + force.reset_technologies() + + if force.technologies["bob-tanks-2"].researched then + force.recipes["bob-tank-2"].enabled = true + end + if force.technologies["bob-tanks-3"].researched then + force.recipes["bob-tank-3"].enabled = true + end +end + + diff --git a/bobwarfare_0.14.0/prototypes/category.lua b/bobwarfare_0.14.1/prototypes/category.lua similarity index 95% rename from bobwarfare_0.14.0/prototypes/category.lua rename to bobwarfare_0.14.1/prototypes/category.lua index 52cd851..06f3482 100644 --- a/bobwarfare_0.14.0/prototypes/category.lua +++ b/bobwarfare_0.14.1/prototypes/category.lua @@ -1,103 +1,103 @@ -data:extend( -{ - { - type = "item-subgroup", - name = "bob-resource", - group = "intermediate-products", - order = "b-b" - }, - { - type = "item-subgroup", - name = "bob-ammo-parts", - group = "intermediate-products", - order = "d-a" - }, - { - type = "item-subgroup", - name = "bob-intermediates", - group = "intermediate-products", - order = "e-1" - }, - { - type = "item-subgroup", - name = "bob-robot-parts", - group = "intermediate-products", - order = "e-e" - }, - - { - type = "item-subgroup", - name = "bob-gun", - group = "combat", - order = "a-a" - }, - { - type = "item-subgroup", - name = "bob-ammo", - group = "combat", - order = "b-a" - }, - { - type = "item-subgroup", - name = "bob-capsule", - group = "combat", - order = "c-a" - }, - { - type = "item-subgroup", - name = "bob-combat-robots", - group = "combat", - order = "c-b" - }, - { - type = "item-subgroup", - name = "bob-armor", - group = "combat", - order = "d-a" - }, - { - type = "item-subgroup", - name = "bob-equipment", - group = "combat", - order = "e-a" - }, - { - type = "item-subgroup", - name = "bob-defensive-structure", - group = "combat", - order = "f-a" - }, -} -) - -data:extend( -{ - { - type = "ammo-category", - name = "laser-rifle" - }, - { - type = "ammo-category", - name = "artillery-shell" - }, - { - type = "ammo-category", - name = "tank-laser" - }, - { - type = "ammo-category", - name = "beam-rifle" - }, -} -) - -if data.raw["item-group"]["bob-intermediate-products"] then - data.raw["item-subgroup"]["bob-ammo-parts"].group = "bob-intermediate-products" - data.raw["item-subgroup"]["bob-intermediates"].group = "bob-intermediate-products" - data.raw["item-subgroup"]["bob-robot-parts"].group = "bob-intermediate-products" -end - -if data.raw["item-group"]["bob-resource-products"] then - data.raw["item-subgroup"]["bob-resource"].group = "bob-resource-products" -end - +data:extend( +{ + { + type = "item-subgroup", + name = "bob-resource", + group = "intermediate-products", + order = "b-b" + }, + { + type = "item-subgroup", + name = "bob-ammo-parts", + group = "intermediate-products", + order = "d-a" + }, + { + type = "item-subgroup", + name = "bob-intermediates", + group = "intermediate-products", + order = "e-1" + }, + { + type = "item-subgroup", + name = "bob-robot-parts", + group = "intermediate-products", + order = "e-e" + }, + + { + type = "item-subgroup", + name = "bob-gun", + group = "combat", + order = "a-a" + }, + { + type = "item-subgroup", + name = "bob-ammo", + group = "combat", + order = "b-a" + }, + { + type = "item-subgroup", + name = "bob-capsule", + group = "combat", + order = "c-a" + }, + { + type = "item-subgroup", + name = "bob-combat-robots", + group = "combat", + order = "c-b" + }, + { + type = "item-subgroup", + name = "bob-armor", + group = "combat", + order = "d-a" + }, + { + type = "item-subgroup", + name = "bob-equipment", + group = "combat", + order = "e-a" + }, + { + type = "item-subgroup", + name = "bob-defensive-structure", + group = "combat", + order = "f-a" + }, +} +) + +data:extend( +{ + { + type = "ammo-category", + name = "laser-rifle" + }, + { + type = "ammo-category", + name = "artillery-shell" + }, + { + type = "ammo-category", + name = "tank-laser" + }, + { + type = "ammo-category", + name = "beam-rifle" + }, +} +) + +if data.raw["item-group"]["bob-intermediate-products"] then + data.raw["item-subgroup"]["bob-ammo-parts"].group = "bob-intermediate-products" + data.raw["item-subgroup"]["bob-intermediates"].group = "bob-intermediate-products" + data.raw["item-subgroup"]["bob-robot-parts"].group = "bob-intermediate-products" +end + +if data.raw["item-group"]["bob-resource-products"] then + data.raw["item-subgroup"]["bob-resource"].group = "bob-resource-products" +end + diff --git a/bobwarfare_0.14.0/prototypes/damage-type.lua b/bobwarfare_0.14.1/prototypes/damage-type.lua similarity index 90% rename from bobwarfare_0.14.0/prototypes/damage-type.lua rename to bobwarfare_0.14.1/prototypes/damage-type.lua index f1a3acf..9fd6730 100644 --- a/bobwarfare_0.14.0/prototypes/damage-type.lua +++ b/bobwarfare_0.14.1/prototypes/damage-type.lua @@ -1,8 +1,8 @@ -data:extend( -{ - { - type = "damage-type", - name = "bob-pierce" - }, -} -) +data:extend( +{ + { + type = "damage-type", + name = "bob-pierce" + }, +} +) diff --git a/bobwarfare_0.14.0/prototypes/entity/beams.lua b/bobwarfare_0.14.1/prototypes/entity/beams.lua similarity index 95% rename from bobwarfare_0.14.0/prototypes/entity/beams.lua rename to bobwarfare_0.14.1/prototypes/entity/beams.lua index e4fc3e0..013a959 100644 --- a/bobwarfare_0.14.0/prototypes/entity/beams.lua +++ b/bobwarfare_0.14.1/prototypes/entity/beams.lua @@ -1,105 +1,105 @@ -local beam_blend_mode = "additive-soft" - -data:extend( -{ - { - type = "beam", - name = "bob-electric-beam", - flags = {"not-on-map"}, - width = 0.5, - damage_interval = 20, - working_sound = - { - { - filename = "__base__/sound/fight/electric-beam.ogg", - volume = 0.7 - } - }, - action = - { - type = "direct", - action_delivery = - { - type = "instant", - target_effects = - { - { - type = "damage", - damage = { amount = 10, type = "electric"} - } - } - } - }, - head = - { - filename = "__bobwarfare__/graphics/entities/beam/beam-head.png", - line_length = 16, - width = 45, - height = 39, - frame_count = 16, - animation_speed = 0.5, - blend_mode = beam_blend_mode, - }, - tail = - { - filename = "__bobwarfare__/graphics/entities/beam/beam-tail.png", - line_length = 16, - width = 45, - height = 39, - frame_count = 16, - blend_mode = beam_blend_mode, - }, - body = - { - { - filename = "__bobwarfare__/graphics/entities/beam/beam-body-1.png", - line_length = 16, - width = 45, - height = 39, - frame_count = 16, - blend_mode = beam_blend_mode, - }, - { - filename = "__bobwarfare__/graphics/entities/beam/beam-body-2.png", - line_length = 16, - width = 45, - height = 39, - frame_count = 16, - blend_mode = beam_blend_mode, - }, - { - filename = "__bobwarfare__/graphics/entities/beam/beam-body-3.png", - line_length = 16, - width = 45, - height = 39, - frame_count = 16, - blend_mode = beam_blend_mode, - }, - { - filename = "__bobwarfare__/graphics/entities/beam/beam-body-4.png", - line_length = 16, - width = 45, - height = 39, - frame_count = 16, - blend_mode = beam_blend_mode, - }, - { - filename = "__bobwarfare__/graphics/entities/beam/beam-body-5.png", - line_length = 16, - width = 45, - height = 39, - frame_count = 16, - blend_mode = beam_blend_mode, - }, - { - filename = "__bobwarfare__/graphics/entities/beam/beam-body-6.png", - line_length = 16, - width = 45, - height = 39, - frame_count = 16, - blend_mode = beam_blend_mode, - }, - } - } -} -) +local beam_blend_mode = "additive-soft" + +data:extend( +{ + { + type = "beam", + name = "bob-electric-beam", + flags = {"not-on-map"}, + width = 0.5, + damage_interval = 20, + working_sound = + { + { + filename = "__base__/sound/fight/electric-beam.ogg", + volume = 0.7 + } + }, + action = + { + type = "direct", + action_delivery = + { + type = "instant", + target_effects = + { + { + type = "damage", + damage = { amount = 10, type = "electric"} + } + } + } + }, + head = + { + filename = "__bobwarfare__/graphics/entities/beam/beam-head.png", + line_length = 16, + width = 45, + height = 39, + frame_count = 16, + animation_speed = 0.5, + blend_mode = beam_blend_mode, + }, + tail = + { + filename = "__bobwarfare__/graphics/entities/beam/beam-tail.png", + line_length = 16, + width = 45, + height = 39, + frame_count = 16, + blend_mode = beam_blend_mode, + }, + body = + { + { + filename = "__bobwarfare__/graphics/entities/beam/beam-body-1.png", + line_length = 16, + width = 45, + height = 39, + frame_count = 16, + blend_mode = beam_blend_mode, + }, + { + filename = "__bobwarfare__/graphics/entities/beam/beam-body-2.png", + line_length = 16, + width = 45, + height = 39, + frame_count = 16, + blend_mode = beam_blend_mode, + }, + { + filename = "__bobwarfare__/graphics/entities/beam/beam-body-3.png", + line_length = 16, + width = 45, + height = 39, + frame_count = 16, + blend_mode = beam_blend_mode, + }, + { + filename = "__bobwarfare__/graphics/entities/beam/beam-body-4.png", + line_length = 16, + width = 45, + height = 39, + frame_count = 16, + blend_mode = beam_blend_mode, + }, + { + filename = "__bobwarfare__/graphics/entities/beam/beam-body-5.png", + line_length = 16, + width = 45, + height = 39, + frame_count = 16, + blend_mode = beam_blend_mode, + }, + { + filename = "__bobwarfare__/graphics/entities/beam/beam-body-6.png", + line_length = 16, + width = 45, + height = 39, + frame_count = 16, + blend_mode = beam_blend_mode, + }, + } + } +} +) diff --git a/bobwarfare_0.14.0/prototypes/entity/drone.lua b/bobwarfare_0.14.1/prototypes/entity/drone.lua similarity index 96% rename from bobwarfare_0.14.0/prototypes/entity/drone.lua rename to bobwarfare_0.14.1/prototypes/entity/drone.lua index 962df7c..8a10236 100644 --- a/bobwarfare_0.14.0/prototypes/entity/drone.lua +++ b/bobwarfare_0.14.1/prototypes/entity/drone.lua @@ -1,184 +1,184 @@ -function tankdroneanimation(scale) - return - { - layers = - { - { - width = 139, - height = 110, - frame_count = 2, - scale = scale, - axially_symmetrical = false, - direction_count = 64, - shift = {-0.140625, -0.28125}, - animation_speed = 8, - max_advance = 1, - stripes = - { - { - filename = "__base__/graphics/entity/tank/base-1.png", - width_in_frames = 2, - height_in_frames = 16, - }, - { - filename = "__base__/graphics/entity/tank/base-2.png", - width_in_frames = 2, - height_in_frames = 16, - }, - { - filename = "__base__/graphics/entity/tank/base-3.png", - width_in_frames = 2, - height_in_frames = 16, - }, - { - filename = "__base__/graphics/entity/tank/base-4.png", - width_in_frames = 2, - height_in_frames = 16, - } - } - }, - { - width = 109, - height = 88, - frame_count = 2, - scale = scale, - apply_runtime_tint = true, - axially_symmetrical = false, - direction_count = 64, - shift = {-0.140625, -0.65625}, - max_advance = 1, - line_length = 2, - stripes = util.multiplystripes(2, - { - { - filename = "__base__/graphics/entity/tank/base-mask-1.png", - width_in_frames = 1, - height_in_frames = 22, - }, - { - filename = "__base__/graphics/entity/tank/base-mask-2.png", - width_in_frames = 1, - height_in_frames = 22, - }, - { - filename = "__base__/graphics/entity/tank/base-mask-3.png", - width_in_frames = 1, - height_in_frames = 20, - }, - }) - }, - { - width = 154, - height = 99, - frame_count = 2, - scale = scale, - draw_as_shadow = true, - axially_symmetrical = false, - direction_count = 64, - shift = {0.59375, 0.328125}, - max_advance = 1, - stripes = util.multiplystripes(2, - { - { - filename = "__base__/graphics/entity/tank/base-shadow-1.png", - width_in_frames = 1, - height_in_frames = 16, - }, - { - filename = "__base__/graphics/entity/tank/base-shadow-2.png", - width_in_frames = 1, - height_in_frames = 16, - }, - { - filename = "__base__/graphics/entity/tank/base-shadow-3.png", - width_in_frames = 1, - height_in_frames = 16, - }, - { - filename = "__base__/graphics/entity/tank/base-shadow-4.png", - width_in_frames = 1, - height_in_frames = 16, - } - }) - } - } - } -end - - -data:extend( -{ - { - type = "unit", - name = "bob-robot-tank", - icon = "__base__/graphics/icons/tank.png", - flags = {"pushable", "placeable-player", "placeable-enemy", "placeable-off-grid", "player-creation"}, - minable = {mining_time = 1, result = "bob-robot-tank"}, - max_health = 500, - corpse = "small-remnants", - dying_explosion = "medium-explosion", - resistances = - { - { - type = "fire", - percent = 50 - }, - { - type = "physical", - percent = 30 - }, - { - type = "impact", - percent = 50 - }, - { - type = "explosion", - percent = 30 - }, - { - type = "acid", - percent = 20 - }, - }, - collision_box = {{-0.45, -0.65}, {0.45, 0.65}}, - selection_box = {{-0.45, -0.65}, {0.45, 0.65}}, - distraction_cooldown = 300, - attack_parameters = - { - type = "projectile", - ammo_category = "combat-robot-laser", - cooldown = 20, --45, - damage_modifier = 1, - projectile_center = {0, 0}, - projectile_creation_distance = 0.6, - range = 25, --15, - animation = tankdroneanimation(0.5), - sound = make_laser_sounds(), - ammo_type = - { - type = "projectile", - category = "combat-robot-laser", - action = - { - type = "direct", - action_delivery = - { - { - type = "projectile", - projectile = "laser", --"bob-laser-glass", - starting_speed = 0.28 - }, - } - } - }, - }, - vision_distance = 30, - movement_speed = 0.16, - distance_per_frame = 0.15, - -- in pu - pollution_to_join_attack = 1250, - run_animation = tankdroneanimation(0.5) - }, -} -) - +function tankdroneanimation(scale) + return + { + layers = + { + { + width = 139, + height = 110, + frame_count = 2, + scale = scale, + axially_symmetrical = false, + direction_count = 64, + shift = {-0.140625, -0.28125}, + animation_speed = 8, + max_advance = 1, + stripes = + { + { + filename = "__base__/graphics/entity/tank/base-1.png", + width_in_frames = 2, + height_in_frames = 16, + }, + { + filename = "__base__/graphics/entity/tank/base-2.png", + width_in_frames = 2, + height_in_frames = 16, + }, + { + filename = "__base__/graphics/entity/tank/base-3.png", + width_in_frames = 2, + height_in_frames = 16, + }, + { + filename = "__base__/graphics/entity/tank/base-4.png", + width_in_frames = 2, + height_in_frames = 16, + } + } + }, + { + width = 109, + height = 88, + frame_count = 2, + scale = scale, + apply_runtime_tint = true, + axially_symmetrical = false, + direction_count = 64, + shift = {-0.140625, -0.65625}, + max_advance = 1, + line_length = 2, + stripes = util.multiplystripes(2, + { + { + filename = "__base__/graphics/entity/tank/base-mask-1.png", + width_in_frames = 1, + height_in_frames = 22, + }, + { + filename = "__base__/graphics/entity/tank/base-mask-2.png", + width_in_frames = 1, + height_in_frames = 22, + }, + { + filename = "__base__/graphics/entity/tank/base-mask-3.png", + width_in_frames = 1, + height_in_frames = 20, + }, + }) + }, + { + width = 154, + height = 99, + frame_count = 2, + scale = scale, + draw_as_shadow = true, + axially_symmetrical = false, + direction_count = 64, + shift = {0.59375, 0.328125}, + max_advance = 1, + stripes = util.multiplystripes(2, + { + { + filename = "__base__/graphics/entity/tank/base-shadow-1.png", + width_in_frames = 1, + height_in_frames = 16, + }, + { + filename = "__base__/graphics/entity/tank/base-shadow-2.png", + width_in_frames = 1, + height_in_frames = 16, + }, + { + filename = "__base__/graphics/entity/tank/base-shadow-3.png", + width_in_frames = 1, + height_in_frames = 16, + }, + { + filename = "__base__/graphics/entity/tank/base-shadow-4.png", + width_in_frames = 1, + height_in_frames = 16, + } + }) + } + } + } +end + + +data:extend( +{ + { + type = "unit", + name = "bob-robot-tank", + icon = "__base__/graphics/icons/tank.png", + flags = {"pushable", "placeable-player", "placeable-enemy", "placeable-off-grid", "player-creation"}, + minable = {mining_time = 1, result = "bob-robot-tank"}, + max_health = 500, + corpse = "small-remnants", + dying_explosion = "medium-explosion", + resistances = + { + { + type = "fire", + percent = 50 + }, + { + type = "physical", + percent = 30 + }, + { + type = "impact", + percent = 50 + }, + { + type = "explosion", + percent = 30 + }, + { + type = "acid", + percent = 20 + }, + }, + collision_box = {{-0.45, -0.65}, {0.45, 0.65}}, + selection_box = {{-0.45, -0.65}, {0.45, 0.65}}, + distraction_cooldown = 300, + attack_parameters = + { + type = "projectile", + ammo_category = "combat-robot-laser", + cooldown = 20, --45, + damage_modifier = 1, + projectile_center = {0, 0}, + projectile_creation_distance = 0.6, + range = 25, --15, + animation = tankdroneanimation(0.5), + sound = make_laser_sounds(), + ammo_type = + { + type = "projectile", + category = "combat-robot-laser", + action = + { + type = "direct", + action_delivery = + { + { + type = "projectile", + projectile = "laser", --"bob-laser-glass", + starting_speed = 0.28 + }, + } + } + }, + }, + vision_distance = 30, + movement_speed = 0.16, + distance_per_frame = 0.15, + -- in pu + pollution_to_join_attack = 1250, + run_animation = tankdroneanimation(0.5) + }, +} +) + diff --git a/bobwarfare_0.14.0/prototypes/entity/effects.lua b/bobwarfare_0.14.1/prototypes/entity/effects.lua similarity index 95% rename from bobwarfare_0.14.0/prototypes/entity/effects.lua rename to bobwarfare_0.14.1/prototypes/entity/effects.lua index 77c9b41..c597877 100644 --- a/bobwarfare_0.14.0/prototypes/entity/effects.lua +++ b/bobwarfare_0.14.1/prototypes/entity/effects.lua @@ -1,283 +1,283 @@ -function boblaserbubbleanimation(scale, tint) - return - { - { - filename = "__bobwarfare__/graphics/entities/laser-bubble.png", - scale = scale, - tint = tint, - priority = "extra-high", - width = 8, - height = 8, - frame_count = 5 - } - } -end - - -data:extend( -{ - { - type = "smoke-with-trigger", - name = "small-poison-cloud", - flags = {"not-on-map"}, - show_when_smoke_off = true, - animation = - { - filename = "__base__/graphics/entity/cloud/cloud-45-frames.png", - priority = "low", - width = 256, - height = 256, - frame_count = 45, - animation_speed = 0.5, - line_length = 7, - }, - slow_down_factor = 0, - affected_by_wind = false, - cyclic = true, - duration = 60 * 10, - fade_away_duration = 2 * 60, - spread_duration = 10, - color = { r = 0.2, g = 0.9, b = 0.2 }, - action = - { - type = "direct", - action_delivery = - { - type = "instant", - target_effects = - { - type = "nested-result", - action = - { - type = "area", - perimeter = 4, - entity_flags = {"breaths-air"}, - action_delivery = - { - type = "instant", - target_effects = - { - type = "damage", - damage = { amount = 4, type = "poison"} - } - } - } - } - } - }, - action_frequency = 30 - }, - - { - type = "smoke-with-trigger", - name = "small-fire-cloud", - flags = {"not-on-map"}, - show_when_smoke_off = true, - animation = - { - filename = "__bobwarfare__/graphics/entities/fire.png", - priority = "low", - width = 30, - height = 50, - frame_count = 30, - animation_speed = 1, - line_length = 30, - scale = 3, - }, - slow_down_factor = 0, - affected_by_wind = false, - cyclic = true, - duration = 60 * 10, - fade_away_duration = 2 * 60, - spread_duration = 10, - action = - { - type = "direct", - action_delivery = - { - type = "instant", - target_effects = - { - type = "nested-result", - action = - { - type = "area", - perimeter = 4, - action_delivery = - { - type = "instant", - target_effects = - { - type = "damage", - damage = { amount = 4, type = "fire"} - } - } - } - } - } - }, - action_frequency = 30 - }, - - { - type = "smoke-with-trigger", - name = "poison-artillery-cloud", - flags = {"not-on-map"}, - show_when_smoke_off = true, - animation = - { - filename = "__base__/graphics/entity/cloud/cloud-45-frames.png", - priority = "low", - width = 256, - height = 256, - frame_count = 45, - animation_speed = 0.5, - line_length = 7, - scale = 3, - }, - slow_down_factor = 0, - affected_by_wind = false, - cyclic = true, - duration = 60 * 30, - fade_away_duration = 2 * 60, - spread_duration = 10, - color = { r = 0.2, g = 0.9, b = 0.2 }, - action = - { - type = "direct", - action_delivery = - { - type = "instant", - target_effects = - { - type = "nested-result", - action = - { - type = "area", - perimeter = 11, - entity_flags = {"breaths-air"}, - action_delivery = - { - type = "instant", - target_effects = - { - type = "damage", - damage = { amount = 10, type = "poison"} - } - } - } - } - } - }, - action_frequency = 10 - }, - ---[[ - { - type = "flame-thrower-explosion", - name = "flame-thrower-acid-mist", - flags = {"not-on-map"}, - animation_speed = 1, - animations = - { - { - filename = "__base__/graphics/entity/flame-thrower-explosion/flame-thrower-explosion.png", - priority = "extra-high", - width = 64, - height = 64, - frame_count = 64, - line_length = 8 - } - }, - light = {intensity = 0.2, size = 20}, - slow_down_factor = 0.98, - damage = {amount = 2, type = "acid"} - }, -]]-- - - { - type = "explosion", - name = "bob-laser-bubble-glass", - flags = {"not-on-map"}, - animation_speed = 1, - animations = boblaserbubbleanimation(1, {r=0.8, g=0.8, b=0.8, a=1}), - light = {intensity = 1, size = 10}, - smoke = "smoke-fast", - smoke_count = 2, - smoke_slow_down_factor = 1 - }, - - { - type = "explosion", - name = "bob-laser-bubble-ruby", - flags = {"not-on-map"}, - animation_speed = 1, - animations = boblaserbubbleanimation(1, {r=1, g=0.2, b=0.2, a=1}), - light = {intensity = 1, size = 10}, - smoke = "smoke-fast", - smoke_count = 2, - smoke_slow_down_factor = 1 - }, - - { - type = "explosion", - name = "bob-laser-bubble-sapphire", - flags = {"not-on-map"}, - animation_speed = 1, - animations = boblaserbubbleanimation(1, {r=0.2, g=0.6, b=1, a=1}), - light = {intensity = 1, size = 10}, - smoke = "smoke-fast", - smoke_count = 2, - smoke_slow_down_factor = 1 - }, - - { - type = "explosion", - name = "bob-laser-bubble-emerald", - flags = {"not-on-map"}, - animation_speed = 1, - animations = boblaserbubbleanimation(1, {r=0.3, g=1, b=0.3, a=1}), - light = {intensity = 1, size = 10}, - smoke = "smoke-fast", - smoke_count = 2, - smoke_slow_down_factor = 1 - }, - - { - type = "explosion", - name = "bob-laser-bubble-amethyst", - flags = {"not-on-map"}, - animation_speed = 1, - animations = boblaserbubbleanimation(1, {r=1, g=0.2, b=1, a=1}), - light = {intensity = 1, size = 10}, - smoke = "smoke-fast", - smoke_count = 2, - smoke_slow_down_factor = 1 - }, - - { - type = "explosion", - name = "bob-laser-bubble-topaz", - flags = {"not-on-map"}, - animation_speed = 1, - animations = boblaserbubbleanimation(1, {r=1, g=0.6, b=0.2, a=1}), - light = {intensity = 1, size = 10}, - smoke = "smoke-fast", - smoke_count = 2, - smoke_slow_down_factor = 1 - }, - - { - type = "explosion", - name = "bob-laser-bubble-diamond", - flags = {"not-on-map"}, - animation_speed = 1, - animations = boblaserbubbleanimation(1, {r=1, g=1, b=1, a=1}), - light = {intensity = 1, size = 10}, - smoke = "smoke-fast", - smoke_count = 2, - smoke_slow_down_factor = 1 - }, -} -) - +function boblaserbubbleanimation(scale, tint) + return + { + { + filename = "__bobwarfare__/graphics/entities/laser-bubble.png", + scale = scale, + tint = tint, + priority = "extra-high", + width = 8, + height = 8, + frame_count = 5 + } + } +end + + +data:extend( +{ + { + type = "smoke-with-trigger", + name = "small-poison-cloud", + flags = {"not-on-map"}, + show_when_smoke_off = true, + animation = + { + filename = "__base__/graphics/entity/cloud/cloud-45-frames.png", + priority = "low", + width = 256, + height = 256, + frame_count = 45, + animation_speed = 0.5, + line_length = 7, + }, + slow_down_factor = 0, + affected_by_wind = false, + cyclic = true, + duration = 60 * 10, + fade_away_duration = 2 * 60, + spread_duration = 10, + color = { r = 0.2, g = 0.9, b = 0.2 }, + action = + { + type = "direct", + action_delivery = + { + type = "instant", + target_effects = + { + type = "nested-result", + action = + { + type = "area", + perimeter = 4, + entity_flags = {"breaths-air"}, + action_delivery = + { + type = "instant", + target_effects = + { + type = "damage", + damage = { amount = 4, type = "poison"} + } + } + } + } + } + }, + action_frequency = 30 + }, + + { + type = "smoke-with-trigger", + name = "small-fire-cloud", + flags = {"not-on-map"}, + show_when_smoke_off = true, + animation = + { + filename = "__bobwarfare__/graphics/entities/fire.png", + priority = "low", + width = 30, + height = 50, + frame_count = 30, + animation_speed = 1, + line_length = 30, + scale = 3, + }, + slow_down_factor = 0, + affected_by_wind = false, + cyclic = true, + duration = 60 * 10, + fade_away_duration = 2 * 60, + spread_duration = 10, + action = + { + type = "direct", + action_delivery = + { + type = "instant", + target_effects = + { + type = "nested-result", + action = + { + type = "area", + perimeter = 4, + action_delivery = + { + type = "instant", + target_effects = + { + type = "damage", + damage = { amount = 4, type = "fire"} + } + } + } + } + } + }, + action_frequency = 30 + }, + + { + type = "smoke-with-trigger", + name = "poison-artillery-cloud", + flags = {"not-on-map"}, + show_when_smoke_off = true, + animation = + { + filename = "__base__/graphics/entity/cloud/cloud-45-frames.png", + priority = "low", + width = 256, + height = 256, + frame_count = 45, + animation_speed = 0.5, + line_length = 7, + scale = 3, + }, + slow_down_factor = 0, + affected_by_wind = false, + cyclic = true, + duration = 60 * 30, + fade_away_duration = 2 * 60, + spread_duration = 10, + color = { r = 0.2, g = 0.9, b = 0.2 }, + action = + { + type = "direct", + action_delivery = + { + type = "instant", + target_effects = + { + type = "nested-result", + action = + { + type = "area", + perimeter = 11, + entity_flags = {"breaths-air"}, + action_delivery = + { + type = "instant", + target_effects = + { + type = "damage", + damage = { amount = 10, type = "poison"} + } + } + } + } + } + }, + action_frequency = 10 + }, + +--[[ + { + type = "flame-thrower-explosion", + name = "flame-thrower-acid-mist", + flags = {"not-on-map"}, + animation_speed = 1, + animations = + { + { + filename = "__base__/graphics/entity/flame-thrower-explosion/flame-thrower-explosion.png", + priority = "extra-high", + width = 64, + height = 64, + frame_count = 64, + line_length = 8 + } + }, + light = {intensity = 0.2, size = 20}, + slow_down_factor = 0.98, + damage = {amount = 2, type = "acid"} + }, +]]-- + + { + type = "explosion", + name = "bob-laser-bubble-glass", + flags = {"not-on-map"}, + animation_speed = 1, + animations = boblaserbubbleanimation(1, {r=0.8, g=0.8, b=0.8, a=1}), + light = {intensity = 1, size = 10}, + smoke = "smoke-fast", + smoke_count = 2, + smoke_slow_down_factor = 1 + }, + + { + type = "explosion", + name = "bob-laser-bubble-ruby", + flags = {"not-on-map"}, + animation_speed = 1, + animations = boblaserbubbleanimation(1, {r=1, g=0.2, b=0.2, a=1}), + light = {intensity = 1, size = 10}, + smoke = "smoke-fast", + smoke_count = 2, + smoke_slow_down_factor = 1 + }, + + { + type = "explosion", + name = "bob-laser-bubble-sapphire", + flags = {"not-on-map"}, + animation_speed = 1, + animations = boblaserbubbleanimation(1, {r=0.2, g=0.6, b=1, a=1}), + light = {intensity = 1, size = 10}, + smoke = "smoke-fast", + smoke_count = 2, + smoke_slow_down_factor = 1 + }, + + { + type = "explosion", + name = "bob-laser-bubble-emerald", + flags = {"not-on-map"}, + animation_speed = 1, + animations = boblaserbubbleanimation(1, {r=0.3, g=1, b=0.3, a=1}), + light = {intensity = 1, size = 10}, + smoke = "smoke-fast", + smoke_count = 2, + smoke_slow_down_factor = 1 + }, + + { + type = "explosion", + name = "bob-laser-bubble-amethyst", + flags = {"not-on-map"}, + animation_speed = 1, + animations = boblaserbubbleanimation(1, {r=1, g=0.2, b=1, a=1}), + light = {intensity = 1, size = 10}, + smoke = "smoke-fast", + smoke_count = 2, + smoke_slow_down_factor = 1 + }, + + { + type = "explosion", + name = "bob-laser-bubble-topaz", + flags = {"not-on-map"}, + animation_speed = 1, + animations = boblaserbubbleanimation(1, {r=1, g=0.6, b=0.2, a=1}), + light = {intensity = 1, size = 10}, + smoke = "smoke-fast", + smoke_count = 2, + smoke_slow_down_factor = 1 + }, + + { + type = "explosion", + name = "bob-laser-bubble-diamond", + flags = {"not-on-map"}, + animation_speed = 1, + animations = boblaserbubbleanimation(1, {r=1, g=1, b=1, a=1}), + light = {intensity = 1, size = 10}, + smoke = "smoke-fast", + smoke_count = 2, + smoke_slow_down_factor = 1 + }, +} +) + diff --git a/bobwarfare_0.14.0/prototypes/entity/mine.lua b/bobwarfare_0.14.1/prototypes/entity/mine.lua similarity index 95% rename from bobwarfare_0.14.0/prototypes/entity/mine.lua rename to bobwarfare_0.14.1/prototypes/entity/mine.lua index 1b8ead0..7640dcb 100644 --- a/bobwarfare_0.14.0/prototypes/entity/mine.lua +++ b/bobwarfare_0.14.1/prototypes/entity/mine.lua @@ -1,201 +1,201 @@ -data:extend( -{ - { - type = "land-mine", - name = "poison-mine", - icon = "__base__/graphics/icons/land-mine.png", - flags = - { - "placeable-player", - "placeable-enemy", - "player-creation", - "placeable-off-grid" - }, - minable = {mining_time = 1, result = "poison-mine"}, - max_health = 15, - corpse = "small-remnants", - collision_box = {{-0.4,-0.4}, {0.4, 0.4}}, - selection_box = {{-0.5, -0.5}, {0.5, 0.5}}, - dying_explosion = "explosion-gunshot", - picture_safe = - { - filename = "__base__/graphics/entity/land-mine/land-mine.png", - priority = "medium", - width = 32, - height = 32 - }, - picture_set = - { - filename = "__base__/graphics/entity/land-mine/land-mine-set.png", - priority = "medium", - width = 32, - height = 32 - }, - trigger_radius = 2.5, - action = - { - type = "direct", - action_delivery = - { - type = "instant", - source_effects = - { - { - type = "nested-result", - affects_target = true, - action = - { - type = "area", - perimeter = 6, - collision_mask = { "player-layer" }, - action_delivery = - { - type = "instant", - target_effects = - { - type = "damage", - damage = { amount = 40, type = "poison"} - } - } - }, - }, - { - type = "create-entity", - entity_name = "poison-cloud" - }, - { - type = "damage", - damage = { amount = 1000, type = "explosion"} - } - } - } - }, - }, - - - { - type = "land-mine", - name = "distractor-mine", - icon = "__base__/graphics/icons/land-mine.png", - flags = - { - "placeable-player", - "placeable-enemy", - "player-creation", - "placeable-off-grid" - }, - minable = {mining_time = 1, result = "distractor-mine"}, - max_health = 15, - corpse = "small-remnants", - collision_box = {{-0.4,-0.4}, {0.4, 0.4}}, - selection_box = {{-0.5, -0.5}, {0.5, 0.5}}, - dying_explosion = "explosion-gunshot", - picture_safe = - { - filename = "__base__/graphics/entity/land-mine/land-mine.png", - priority = "medium", - width = 32, - height = 32 - }, - picture_set = - { - filename = "__base__/graphics/entity/land-mine/land-mine-set.png", - priority = "medium", - width = 32, - height = 32 - }, - trigger_radius = 2.5, - action = - { - type = "direct", - action_delivery = - { - type = "instant", - source_effects = - { - { - type = "create-entity", - show_in_tooltip = true, - entity_name = "distractor", --- offsets = {{0.5, -0.5},{-0.5, -0.5},{0, 0.5}} - }, - { - type = "damage", - damage = { amount = 1000, type = "explosion"} - } - } - } - }, - }, - - - { - type = "land-mine", - name = "slowdown-mine", - icon = "__base__/graphics/icons/land-mine.png", - flags = - { - "placeable-player", - "placeable-enemy", - "player-creation", - "placeable-off-grid" - }, - minable = {mining_time = 1, result = "slowdown-mine"}, - max_health = 15, - corpse = "small-remnants", - collision_box = {{-0.4,-0.4}, {0.4, 0.4}}, - selection_box = {{-0.5, -0.5}, {0.5, 0.5}}, - dying_explosion = "explosion-gunshot", - picture_safe = - { - filename = "__base__/graphics/entity/land-mine/land-mine.png", - priority = "medium", - width = 32, - height = 32 - }, - picture_set = - { - filename = "__base__/graphics/entity/land-mine/land-mine-set.png", - priority = "medium", - width = 32, - height = 32 - }, - trigger_radius = 2.5, - action = - { - type = "direct", - action_delivery = - { - type = "instant", - source_effects = - { - { - type = "nested-result", - affects_target = true, - action = - { - type = "area", - perimeter = 9, - action_delivery = - { - type = "instant", - target_effects = - { - type = "create-sticker", - sticker = "slowdown-sticker" - } - } - }, - }, - { - type = "damage", - damage = { amount = 1000, type = "explosion"} - } - } - } - }, - }, -} -) - - +data:extend( +{ + { + type = "land-mine", + name = "poison-mine", + icon = "__base__/graphics/icons/land-mine.png", + flags = + { + "placeable-player", + "placeable-enemy", + "player-creation", + "placeable-off-grid" + }, + minable = {mining_time = 1, result = "poison-mine"}, + max_health = 15, + corpse = "small-remnants", + collision_box = {{-0.4,-0.4}, {0.4, 0.4}}, + selection_box = {{-0.5, -0.5}, {0.5, 0.5}}, + dying_explosion = "explosion-gunshot", + picture_safe = + { + filename = "__base__/graphics/entity/land-mine/land-mine.png", + priority = "medium", + width = 32, + height = 32 + }, + picture_set = + { + filename = "__base__/graphics/entity/land-mine/land-mine-set.png", + priority = "medium", + width = 32, + height = 32 + }, + trigger_radius = 2.5, + action = + { + type = "direct", + action_delivery = + { + type = "instant", + source_effects = + { + { + type = "nested-result", + affects_target = true, + action = + { + type = "area", + perimeter = 6, + collision_mask = { "player-layer" }, + action_delivery = + { + type = "instant", + target_effects = + { + type = "damage", + damage = { amount = 40, type = "poison"} + } + } + }, + }, + { + type = "create-entity", + entity_name = "poison-cloud" + }, + { + type = "damage", + damage = { amount = 1000, type = "explosion"} + } + } + } + }, + }, + + + { + type = "land-mine", + name = "distractor-mine", + icon = "__base__/graphics/icons/land-mine.png", + flags = + { + "placeable-player", + "placeable-enemy", + "player-creation", + "placeable-off-grid" + }, + minable = {mining_time = 1, result = "distractor-mine"}, + max_health = 15, + corpse = "small-remnants", + collision_box = {{-0.4,-0.4}, {0.4, 0.4}}, + selection_box = {{-0.5, -0.5}, {0.5, 0.5}}, + dying_explosion = "explosion-gunshot", + picture_safe = + { + filename = "__base__/graphics/entity/land-mine/land-mine.png", + priority = "medium", + width = 32, + height = 32 + }, + picture_set = + { + filename = "__base__/graphics/entity/land-mine/land-mine-set.png", + priority = "medium", + width = 32, + height = 32 + }, + trigger_radius = 2.5, + action = + { + type = "direct", + action_delivery = + { + type = "instant", + source_effects = + { + { + type = "create-entity", + show_in_tooltip = true, + entity_name = "distractor", +-- offsets = {{0.5, -0.5},{-0.5, -0.5},{0, 0.5}} + }, + { + type = "damage", + damage = { amount = 1000, type = "explosion"} + } + } + } + }, + }, + + + { + type = "land-mine", + name = "slowdown-mine", + icon = "__base__/graphics/icons/land-mine.png", + flags = + { + "placeable-player", + "placeable-enemy", + "player-creation", + "placeable-off-grid" + }, + minable = {mining_time = 1, result = "slowdown-mine"}, + max_health = 15, + corpse = "small-remnants", + collision_box = {{-0.4,-0.4}, {0.4, 0.4}}, + selection_box = {{-0.5, -0.5}, {0.5, 0.5}}, + dying_explosion = "explosion-gunshot", + picture_safe = + { + filename = "__base__/graphics/entity/land-mine/land-mine.png", + priority = "medium", + width = 32, + height = 32 + }, + picture_set = + { + filename = "__base__/graphics/entity/land-mine/land-mine-set.png", + priority = "medium", + width = 32, + height = 32 + }, + trigger_radius = 2.5, + action = + { + type = "direct", + action_delivery = + { + type = "instant", + source_effects = + { + { + type = "nested-result", + affects_target = true, + action = + { + type = "area", + perimeter = 9, + action_delivery = + { + type = "instant", + target_effects = + { + type = "create-sticker", + sticker = "slowdown-sticker" + } + } + }, + }, + { + type = "damage", + damage = { amount = 1000, type = "explosion"} + } + } + } + }, + }, +} +) + + diff --git a/bobwarfare_0.14.0/prototypes/entity/projectiles.lua b/bobwarfare_0.14.1/prototypes/entity/projectiles.lua similarity index 95% rename from bobwarfare_0.14.0/prototypes/entity/projectiles.lua rename to bobwarfare_0.14.1/prototypes/entity/projectiles.lua index f164e15..a3c79f7 100644 --- a/bobwarfare_0.14.0/prototypes/entity/projectiles.lua +++ b/bobwarfare_0.14.1/prototypes/entity/projectiles.lua @@ -1,1273 +1,1273 @@ -function boblaseranimation(scale, tint) - return - { - filename = "__bobwarfare__/graphics/entities/projectiles/laser.png", - scale = scale, - tint = tint, - frame_count = 1, - width = 7, - height = 14, - priority = "high" - } -end - -function boblaseraction(effectname, damage) - return - { - type = "direct", - action_delivery = - { - type = "instant", - target_effects = - { - { - type = "create-entity", - entity_name = effectname - }, - { - type = "damage", - damage = {amount = damage, type = "laser"} - } - } - } - } -end - - -data:extend( -{ - { - type = "projectile", - name = "better-shotgun-projectile", - flags = {"not-on-map"}, - collision_box = {{-0.05, -1}, {0.05, 1}}, - acceleration = 0, - direction_only = true, - action = - { - type = "direct", - action_delivery = - { - type = "instant", - target_effects = - { - type = "damage", - damage = {amount = 8, type = "physical"} - } - } - }, - animation = - { - filename = "__bobwarfare__/graphics/entities/projectiles/shotgun-shot.png", - tint = {r=1, g=1, b=1, a=1}, - frame_count = 1, - width = 3, - height = 50, - priority = "high" - }, - }, - - { - type = "projectile", - name = "shotgun-ap-projectile", - flags = {"not-on-map"}, - collision_box = {{-0.05, -1}, {0.05, 1}}, - acceleration = 0, - direction_only = true, - action = - { - type = "direct", - action_delivery = - { - type = "instant", - target_effects = - { - type = "damage", - damage = {amount = 8, type = "bob-pierce"} - } - } - }, - animation = - { - filename = "__bobwarfare__/graphics/entities/projectiles/shotgun-shot.png", - tint = {r=0.3, g=0.5, b=1.0, a=1}, - frame_count = 1, - width = 3, - height = 50, - priority = "high" - }, - }, - - { - type = "projectile", - name = "shotgun-electric-projectile", - flags = {"not-on-map"}, - collision_box = {{-0.05, -1}, {0.05, 1}}, - acceleration = 0, - direction_only = true, - action = - { - type = "direct", - action_delivery = - { - type = "instant", - target_effects = - { - type = "damage", - damage = {amount = 8, type = "electric"} - } - } - }, - animation = - { - filename = "__bobwarfare__/graphics/entities/projectiles/shotgun-shot.png", - tint = {r=1, g=0.6, b=0.3, a=1}, - frame_count = 1, - width = 3, - height = 50, - priority = "high" - }, - }, - - { - type = "projectile", - name = "shotgun-explosive-projectile", - flags = {"not-on-map"}, - collision_box = {{-0.5, -1}, {0.5, 1}}, - acceleration = 0, - direction_only = true, - action = - { - type = "direct", - action_delivery = - { - type = "instant", - target_effects = - { - { - type = "create-entity", - entity_name = "explosion" - }, - { - type = "nested-result", - action = - { - type = "area", - perimeter = 1, - action_delivery = - { - type = "instant", - target_effects = - { - { - type = "damage", - damage = {amount = 8, type = "explosion"} - }, - } - } - }, - }, - } - } - }, - animation = - { - filename = "__bobwarfare__/graphics/entities/projectiles/acid-projectile-yellow.png", - line_length = 5, - width = 16, - height = 18, - frame_count = 33, - priority = "high" - }, - shadow = - { - filename = "__bobwarfare__/graphics/entities/projectiles/acid-projectile-shadow.png", - line_length = 5, - width = 28, - height = 16, - frame_count = 33, - priority = "high", - shift = {-0.09, 0.395} - }, - rotatable = false - }, - - { - type = "projectile", - name = "shotgun-flame-projectile", - flags = {"not-on-map"}, - collision_box = {{-0.5, -1}, {0.5, 1}}, - acceleration = 0, - direction_only = true, - action = - { - type = "direct", - action_delivery = - { - type = "instant", - target_effects = - { - { - type = "nested-result", - action = - { - type = "area", - perimeter = 1, - action_delivery = - { - type = "instant", - target_effects = - { - { - type = "damage", - damage = {amount = 8, type = "fire"} - }, - } - } - }, - }, - } - } - }, - animation = - { - filename = "__bobwarfare__/graphics/entities/projectiles/acid-projectile-red.png", - line_length = 5, - width = 16, - height = 18, - frame_count = 33, - priority = "high" - }, - shadow = - { - filename = "__bobwarfare__/graphics/entities/projectiles/acid-projectile-shadow.png", - line_length = 5, - width = 28, - height = 16, - frame_count = 33, - priority = "high", - shift = {-0.09, 0.395} - }, - rotatable = false - }, - - { - type = "projectile", - name = "shotgun-acid-projectile", - flags = {"not-on-map"}, - collision_box = {{-0.5, -1}, {0.5, 1}}, - acceleration = 0, - direction_only = true, - action = - { - type = "direct", - action_delivery = - { - type = "instant", - target_effects = - { - { - type = "nested-result", - action = - { - type = "area", - perimeter = 1, - action_delivery = - { - type = "instant", - target_effects = - { - { - type = "damage", - damage = {amount = 8, type = "acid"} - }, - } - } - }, - }, - } - } - }, - animation = - { - filename = "__base__/graphics/entity/acid-projectile-purple/acid-projectile-purple.png", - line_length = 5, - width = 16, - height = 18, - frame_count = 33, - priority = "high" - }, - shadow = - { - filename = "__base__/graphics/entity/acid-projectile-purple/acid-projectile-purple-shadow.png", - line_length = 5, - width = 28, - height = 16, - frame_count = 33, - priority = "high", - shift = {-0.09, 0.395} - }, - rotatable = false - }, - - { - type = "projectile", - name = "shotgun-poison-projectile", - flags = {"not-on-map"}, - collision_box = {{-0.5, -1}, {0.5, 1}}, - acceleration = 0, - direction_only = true, - action = - { - type = "direct", - action_delivery = - { - type = "instant", - target_effects = - { --- { --- type = "create-entity", --- entity_name = "small-poison-cloud" --- }, - { - type = "nested-result", - action = - { - type = "area", - perimeter = 1, - action_delivery = - { - type = "instant", - target_effects = - { - { - type = "damage", - damage = {amount = 8, type = "poison"} - }, - } - } - }, - }, - } - } - }, - animation = - { - filename = "__bobwarfare__/graphics/entities/projectiles/acid-projectile-green.png", - line_length = 5, - width = 16, - height = 18, - frame_count = 33, - priority = "high" - }, - shadow = - { - filename = "__bobwarfare__/graphics/entities/projectiles/acid-projectile-shadow.png", - line_length = 5, - width = 28, - height = 16, - frame_count = 33, - priority = "high", - shift = {-0.09, 0.395} - }, - rotatable = false - }, - - - { - type = "projectile", - name = "bob-laser-glass", - flags = {"not-on-map"}, - acceleration = 0.005, - action = boblaseraction("bob-laser-bubble-glass", 45), - light = {intensity = 0.5, size = 10}, - animation = boblaseranimation(1, {r=0.8, g=0.8, b=0.8, a=1}), - speed = 0.15 - }, - - { - type = "projectile", - name = "bob-laser-ruby", - flags = {"not-on-map"}, - acceleration = 0.005, - action = boblaseraction("bob-laser-bubble-ruby", 60), - light = {intensity = 0.5, size = 10}, - animation = boblaseranimation(1, {r=1, g=0.2, b=0.2, a=1}), - speed = 0.15 - }, - - { - type = "projectile", - name = "bob-laser-sapphire", - flags = {"not-on-map"}, - acceleration = 0.005, - action = boblaseraction("bob-laser-bubble-sapphire", 65), - light = {intensity = 0.5, size = 10}, - animation = boblaseranimation(1, {r=0.2, g=0.6, b=1, a=1}), - speed = 0.15 - }, - - { - type = "projectile", - name = "bob-laser-emerald", - flags = {"not-on-map"}, - acceleration = 0.005, - action = boblaseraction("bob-laser-bubble-emerald", 70), - light = {intensity = 0.5, size = 10}, - animation = boblaseranimation(1, {r=0.3, g=1, b=0.3, a=1}), - speed = 0.15 - }, - - { - type = "projectile", - name = "bob-laser-amethyst", - flags = {"not-on-map"}, - acceleration = 0.005, - action = boblaseraction("bob-laser-bubble-amethyst", 75), - light = {intensity = 0.5, size = 10}, - animation = boblaseranimation(1, {r=0.8, g=0.2, b=1, a=1}), - speed = 0.15 - }, - - { - type = "projectile", - name = "bob-laser-topaz", - flags = {"not-on-map"}, - acceleration = 0.005, - action = boblaseraction("bob-laser-bubble-topaz", 80), - light = {intensity = 0.5, size = 10}, - animation = boblaseranimation(1, {r=1, g=0.6, b=0.2, a=1}), - speed = 0.15 - }, - - { - type = "projectile", - name = "bob-laser-diamond", - flags = {"not-on-map"}, - acceleration = 0.005, - action = boblaseraction("bob-laser-bubble-diamond", 90), - light = {intensity = 0.5, size = 10}, - animation = boblaseranimation(1, {r=1, g=1, b=1, a=1}), - speed = 0.15 - }, - - - { - type = "projectile", - name = "bob-rocket", - flags = {"not-on-map"}, - acceleration = 0.005, - action = - { - type = "direct", - action_delivery = - { - type = "instant", - target_effects = - { - { - type = "create-entity", - entity_name = "explosion" - }, - { - type = "damage", - damage = {amount = 80, type = "explosion"} - }, - { - type = "damage", - damage = {amount = 160, type = "physical"} - }, - { - type = "create-entity", - entity_name = "small-scorchmark", - check_buildability = true - }, - } - } - }, - light = {intensity = 0.5, size = 4}, - animation = - { - filename = "__bobwarfare__/graphics/entities/projectiles/rocket.png", - frame_count = 1, - width = 18, - height = 39, - priority = "high" - }, - shadow = - { - filename = "__bobwarfare__/graphics/entities/projectiles/rocket-shadow.png", - frame_count = 1, - width = 18, - height = 32, - priority = "high" - }, - smoke = - { - { - name = "smoke-fast", - deviation = {0.15, 0.15}, - frequency = 1, - position = {0, 0}, - slow_down_factor = 1, - starting_frame = 3, - starting_frame_deviation = 5, - starting_frame_speed = 0, - starting_frame_speed_deviation = 5 - } - } - }, - - { - type = "projectile", - name = "bob-piercing-rocket", - flags = {"not-on-map"}, - acceleration = 0.005, - action = - { - type = "direct", - action_delivery = - { - type = "instant", - target_effects = - { - { - type = "create-entity", - entity_name = "explosion" - }, - { - type = "damage", - damage = {amount = 80, type = "explosion"} - }, - { - type = "damage", - damage = {amount = 160, type = "bob-pierce"} - }, - { - type = "create-entity", - entity_name = "small-scorchmark", - check_buildability = true - }, - } - } - }, - light = {intensity = 0.5, size = 4}, - animation = - { - filename = "__bobwarfare__/graphics/entities/projectiles/piercing-rocket.png", - frame_count = 1, - width = 18, - height = 39, - priority = "high" - }, - shadow = - { - filename = "__bobwarfare__/graphics/entities/projectiles/rocket-shadow.png", - frame_count = 1, - width = 18, - height = 32, - priority = "high" - }, - smoke = - { - { - name = "smoke-fast", - deviation = {0.15, 0.15}, - frequency = 1, - position = {0, 0}, - slow_down_factor = 1, - starting_frame = 3, - starting_frame_deviation = 5, - starting_frame_speed = 0, - starting_frame_speed_deviation = 5 - } - } - }, - - { - type = "projectile", - name = "bob-electric-rocket", - flags = {"not-on-map"}, - acceleration = 0.005, - action = - { - type = "direct", - action_delivery = - { - type = "instant", - target_effects = - { - { - type = "create-entity", - entity_name = "explosion" - }, - { - type = "damage", - damage = {amount = 80, type = "explosion"} - }, - { - type = "damage", - damage = {amount = 160, type = "electric"} - }, - { - type = "create-entity", - entity_name = "small-scorchmark", - check_buildability = true - }, - } - } - }, - light = {intensity = 0.5, size = 4}, - animation = - { - filename = "__bobwarfare__/graphics/entities/projectiles/electric-rocket.png", - frame_count = 1, - width = 18, - height = 39, - priority = "high" - }, - shadow = - { - filename = "__bobwarfare__/graphics/entities/projectiles/rocket-shadow.png", - frame_count = 1, - width = 18, - height = 32, - priority = "high" - }, - smoke = - { - { - name = "smoke-fast", - deviation = {0.15, 0.15}, - frequency = 1, - position = {0, 0}, - slow_down_factor = 1, - starting_frame = 3, - starting_frame_deviation = 5, - starting_frame_speed = 0, - starting_frame_speed_deviation = 5 - } - } - }, - - { - type = "projectile", - name = "bob-explosive-rocket", - flags = {"not-on-map"}, - acceleration = 0.005, - action = - { - type = "direct", - action_delivery = - { - type = "instant", - target_effects = - { - { - type = "create-entity", - entity_name = "explosion" - }, - { - type = "damage", - damage = {amount = 80, type = "explosion"} - }, - { - type = "nested-result", - action = - { - type = "area", - perimeter = 6.5, - action_delivery = - { - type = "instant", - target_effects = - { - { - type = "damage", - damage = {amount = 120, type = "explosion"} - }, - } - } - }, - }, - { - type = "create-entity", - entity_name = "small-scorchmark", - check_buildability = true - }, - } - } - }, - light = {intensity = 0.5, size = 4}, - animation = - { - filename = "__bobwarfare__/graphics/entities/projectiles/explosive-rocket.png", - frame_count = 1, - width = 18, - height = 39, - priority = "high" - }, - shadow = - { - filename = "__bobwarfare__/graphics/entities/projectiles/rocket-shadow.png", - frame_count = 1, - width = 18, - height = 32, - priority = "high" - }, - smoke = - { - { - name = "smoke-fast", - deviation = {0.15, 0.15}, - frequency = 1, - position = {0, 0}, - slow_down_factor = 1, - starting_frame = 3, - starting_frame_deviation = 5, - starting_frame_speed = 0, - starting_frame_speed_deviation = 5 - } - } - }, - - { - type = "projectile", - name = "bob-flame-rocket", - flags = {"not-on-map"}, - acceleration = 0.005, - action = - { - type = "direct", - action_delivery = - { - type = "instant", - target_effects = - { - { - type = "create-entity", - entity_name = "explosion" - }, - { - type = "damage", - damage = {amount = 80, type = "explosion"} - }, - { - type = "create-entity", - entity_name = "small-fire-cloud" - }, - { - type = "nested-result", - action = - { - type = "area", - perimeter = 6.5, - action_delivery = - { - type = "instant", - target_effects = - { - { - type = "damage", - damage = {amount = 120, type = "fire"} - }, - } - } - }, - }, - { - type = "create-entity", - entity_name = "small-scorchmark", - check_buildability = true - }, - } - } - }, - light = {intensity = 0.5, size = 4}, - animation = - { - filename = "__bobwarfare__/graphics/entities/projectiles/flame-rocket.png", - frame_count = 1, - width = 18, - height = 39, - priority = "high" - }, - shadow = - { - filename = "__bobwarfare__/graphics/entities/projectiles/rocket-shadow.png", - frame_count = 1, - width = 18, - height = 32, - priority = "high" - }, - smoke = - { - { - name = "smoke-fast", - deviation = {0.15, 0.15}, - frequency = 1, - position = {0, 0}, - slow_down_factor = 1, - starting_frame = 3, - starting_frame_deviation = 5, - starting_frame_speed = 0, - starting_frame_speed_deviation = 5 - } - } - }, - - { - type = "projectile", - name = "bob-poison-rocket", - flags = {"not-on-map"}, - acceleration = 0.005, - action = - { - type = "direct", - action_delivery = - { - type = "instant", - target_effects = - { - { - type = "create-entity", - entity_name = "explosion" - }, - { - type = "damage", - damage = {amount = 80, type = "explosion"} - }, - { - type = "create-entity", - entity_name = "small-poison-cloud" - }, - { - type = "nested-result", - action = - { - type = "area", - perimeter = 6.5, - action_delivery = - { - type = "instant", - target_effects = - { - { - type = "damage", - damage = {amount = 120, type = "poison"} - }, - } - } - }, - }, - { - type = "create-entity", - entity_name = "small-scorchmark", - check_buildability = true - }, - } - } - }, - light = {intensity = 0.5, size = 4}, - animation = - { - filename = "__bobwarfare__/graphics/entities/projectiles/poison-rocket.png", - frame_count = 1, - width = 18, - height = 39, - priority = "high" - }, - shadow = - { - filename = "__bobwarfare__/graphics/entities/projectiles/rocket-shadow.png", - frame_count = 1, - width = 18, - height = 32, - priority = "high" - }, - smoke = - { - { - name = "smoke-fast", - deviation = {0.15, 0.15}, - frequency = 1, - position = {0, 0}, - slow_down_factor = 1, - starting_frame = 3, - starting_frame_deviation = 5, - starting_frame_speed = 0, - starting_frame_speed_deviation = 5 - } - } - }, - - { - type = "projectile", - name = "bob-acid-rocket", - flags = {"not-on-map"}, - acceleration = 0.005, - action = - { - type = "direct", - action_delivery = - { - type = "instant", - target_effects = - { - { - type = "create-entity", - entity_name = "explosion" - }, - { - type = "create-entity", - entity_name = "acid-splash-purple" - }, - { - type = "damage", - damage = {amount = 80, type = "explosion"} - }, - { - type = "nested-result", - action = - { - type = "area", - perimeter = 6.5, - action_delivery = - { - type = "instant", - target_effects = - { - { - type = "damage", - damage = {amount = 120, type = "acid"} - }, - } - } - }, - }, - { - type = "create-entity", - entity_name = "small-scorchmark", - check_buildability = true - }, - } - } - }, - light = {intensity = 0.5, size = 4}, - animation = - { - filename = "__bobwarfare__/graphics/entities/projectiles/acid-rocket.png", - frame_count = 1, - width = 18, - height = 39, - priority = "high" - }, - shadow = - { - filename = "__bobwarfare__/graphics/entities/projectiles/rocket-shadow.png", - frame_count = 1, - width = 18, - height = 32, - priority = "high" - }, - smoke = - { - { - name = "smoke-fast", - deviation = {0.15, 0.15}, - frequency = 1, - position = {0, 0}, - slow_down_factor = 1, - starting_frame = 3, - starting_frame_deviation = 5, - starting_frame_speed = 0, - starting_frame_speed_deviation = 5 - } - } - }, - - - { - type = "projectile", - name = "bob-blue-laser", - flags = {"not-on-map"}, - acceleration = 0.005, - action = boblaseraction("bob-laser-bubble-sapphire", 5), - light = {intensity = 0.5, size = 10}, - animation = boblaseranimation(1, {r=0.2, g=0.6, b=1, a=1}), - speed = 0.15 - }, - - { - type = "projectile", - name = "bob-green-laser", - flags = {"not-on-map"}, - acceleration = 0.005, - action = boblaseraction("bob-laser-bubble-emerald", 5), - light = {intensity = 0.5, size = 10}, - animation = boblaseranimation(1, {r=0.3, g=1, b=0.3, a=1}), - speed = 0.15 - }, - - { - type = "projectile", - name = "bob-purple-laser", - flags = {"not-on-map"}, - acceleration = 0.005, - action = boblaseraction("bob-laser-bubble-amethyst", 5), - light = {intensity = 0.5, size = 10}, - animation = boblaseranimation(1, {r=0.8, g=0.2, b=1, a=1}), - speed = 0.15 - }, - - { - type = "projectile", - name = "bob-yellow-laser", - flags = {"not-on-map"}, - acceleration = 0.005, - action = boblaseraction("bob-laser-bubble-topaz", 5), - light = {intensity = 0.5, size = 10}, - animation = boblaseranimation(1, {r=1, g=0.8, b=0.2, a=1}), - speed = 0.15 - }, - - { - type = "projectile", - name = "bob-white-laser", - flags = {"not-on-map"}, - acceleration = 0.005, - action = boblaseraction("bob-laser-bubble-diamond", 5), - light = {intensity = 0.5, size = 10}, - animation = boblaseranimation(1, {r=1, g=1, b=1, a=1}), - speed = 0.15 - }, -} -) - - - - -data:extend( -{ - { - type = "projectile", - name = "cannon-projectile-pellet", - flags = {"not-on-map"}, - collision_box = {{-0.05, -0.25}, {0.05, 0.25}}, - acceleration = 0, - direction_only = true, - piercing_damage = 30, - action = - { - type = "direct", - action_delivery = - { - type = "instant", - target_effects = - { - { - type = "damage", - damage = {amount = 8, type = "physical"} - }, - { - type = "damage", - damage = { amount = 4 , type = "bob-pierce"} - }, - { - type = "damage", - damage = { amount = 2 , type = "explosion"} - } - } - } - }, - animation = - { - filename = "__bobwarfare__/graphics/entities/projectiles/shotgun-shot.png", - tint = {r=1, g=1, b=1, a=0.8}, - frame_count = 1, - width = 3, - height = 50, - priority = "high" - }, - }, - - { - type = "projectile", - name = "poison-artillery-projectile", - flags = {"not-on-map"}, - acceleration = 0.005, - action = - { - { - type = "direct", - action_delivery = - { - type = "instant", - target_effects = - { - { - type = "create-entity", - entity_name = "poison-artillery-cloud" - }, - }, - } - }, - { - type = "area", - perimeter = 11, - action_delivery = - { - type = "instant", - target_effects = - { - { - type = "damage", - damage = {amount = 200, type = "poison"} - }, - { - type = "damage", - damage = {amount = 50, type = "explosion"} - }, - } - } - }, - }, - light = {intensity = 0.5, size = 4}, - animation = - { - filename = "__base__/graphics/entity/poison-capsule/poison-capsule.png", - frame_count = 1, - width = 32, - height = 32, - priority = "high" - }, - shadow = - { - filename = "__base__/graphics/entity/poison-capsule/poison-capsule-shadow.png", - frame_count = 1, - width = 32, - height = 32, - priority = "high" - }, - smoke = capsule_smoke, - }, - - { - type = "projectile", - name = "explosive-artillery-projectile", - flags = {"not-on-map"}, - acceleration = 0.005, - action = - { - { - type = "direct", - action_delivery = - { - type = "instant", - target_effects = - { - { - type = "create-entity", - entity_name = "medium-explosion" - }, - { - type = "create-entity", - entity_name = "small-scorchmark", - check_buildability = true - } - } - } - }, - { - type = "area", - perimeter = 11, - action_delivery = - { - type = "instant", - target_effects = - { - { - type = "damage", - damage = {amount = 300, type = "explosion"} - }, - { - type = "create-entity", - entity_name = "explosion" - } - } - } - } - }, - light = {intensity = 0.5, size = 4}, - animation = - { - filename = "__base__/graphics/entity/bullet/bullet.png", - frame_count = 1, - width = 3, - height = 50, - priority = "high" - }, - smoke = capsule_smoke, - }, - - { - type = "projectile", - name = "distractor-artillery-projectile", - flags = {"not-on-map"}, - acceleration = 0.005, - action = - { - type = "direct", - action_delivery = - { - type = "instant", - target_effects = - { - { - type = "create-entity", - show_in_tooltip = true, - entity_name = "distractor", - offsets = {{0.6, -0.8},{-0.6, -0.8},{0.6, 0.8},{-0.6, 0.8},{1, 0},{-1, 0}} - } - } - }, - { - type = "area", - perimeter = 11, - action_delivery = - { - type = "instant", - target_effects = - { - { - type = "damage", - damage = {amount = 50, type = "explosion"} - } - } - } - } - }, - light = {intensity = 0.5, size = 4}, - animation = - { - filename = "__base__/graphics/entity/combat-robot-capsule/distractor-capsule.png", - frame_count = 1, - width = 32, - height = 32, - priority = "high" - }, - shadow = - { - filename = "__base__/graphics/entity/combat-robot-capsule/combat-robot-capsule-shadow.png", - frame_count = 1, - width = 32, - height = 32, - priority = "high" - }, - smoke = capsule_smoke - }, -} -) - - - +function boblaseranimation(scale, tint) + return + { + filename = "__bobwarfare__/graphics/entities/projectiles/laser.png", + scale = scale, + tint = tint, + frame_count = 1, + width = 7, + height = 14, + priority = "high" + } +end + +function boblaseraction(effectname, damage) + return + { + type = "direct", + action_delivery = + { + type = "instant", + target_effects = + { + { + type = "create-entity", + entity_name = effectname + }, + { + type = "damage", + damage = {amount = damage, type = "laser"} + } + } + } + } +end + + +data:extend( +{ + { + type = "projectile", + name = "better-shotgun-projectile", + flags = {"not-on-map"}, + collision_box = {{-0.05, -1}, {0.05, 1}}, + acceleration = 0, + direction_only = true, + action = + { + type = "direct", + action_delivery = + { + type = "instant", + target_effects = + { + type = "damage", + damage = {amount = 8, type = "physical"} + } + } + }, + animation = + { + filename = "__bobwarfare__/graphics/entities/projectiles/shotgun-shot.png", + tint = {r=1, g=1, b=1, a=1}, + frame_count = 1, + width = 3, + height = 50, + priority = "high" + }, + }, + + { + type = "projectile", + name = "shotgun-ap-projectile", + flags = {"not-on-map"}, + collision_box = {{-0.05, -1}, {0.05, 1}}, + acceleration = 0, + direction_only = true, + action = + { + type = "direct", + action_delivery = + { + type = "instant", + target_effects = + { + type = "damage", + damage = {amount = 8, type = "bob-pierce"} + } + } + }, + animation = + { + filename = "__bobwarfare__/graphics/entities/projectiles/shotgun-shot.png", + tint = {r=0.3, g=0.5, b=1.0, a=1}, + frame_count = 1, + width = 3, + height = 50, + priority = "high" + }, + }, + + { + type = "projectile", + name = "shotgun-electric-projectile", + flags = {"not-on-map"}, + collision_box = {{-0.05, -1}, {0.05, 1}}, + acceleration = 0, + direction_only = true, + action = + { + type = "direct", + action_delivery = + { + type = "instant", + target_effects = + { + type = "damage", + damage = {amount = 8, type = "electric"} + } + } + }, + animation = + { + filename = "__bobwarfare__/graphics/entities/projectiles/shotgun-shot.png", + tint = {r=1, g=0.6, b=0.3, a=1}, + frame_count = 1, + width = 3, + height = 50, + priority = "high" + }, + }, + + { + type = "projectile", + name = "shotgun-explosive-projectile", + flags = {"not-on-map"}, + collision_box = {{-0.5, -1}, {0.5, 1}}, + acceleration = 0, + direction_only = true, + action = + { + type = "direct", + action_delivery = + { + type = "instant", + target_effects = + { + { + type = "create-entity", + entity_name = "explosion" + }, + { + type = "nested-result", + action = + { + type = "area", + perimeter = 1, + action_delivery = + { + type = "instant", + target_effects = + { + { + type = "damage", + damage = {amount = 8, type = "explosion"} + }, + } + } + }, + }, + } + } + }, + animation = + { + filename = "__bobwarfare__/graphics/entities/projectiles/acid-projectile-yellow.png", + line_length = 5, + width = 16, + height = 18, + frame_count = 33, + priority = "high" + }, + shadow = + { + filename = "__bobwarfare__/graphics/entities/projectiles/acid-projectile-shadow.png", + line_length = 5, + width = 28, + height = 16, + frame_count = 33, + priority = "high", + shift = {-0.09, 0.395} + }, + rotatable = false + }, + + { + type = "projectile", + name = "shotgun-flame-projectile", + flags = {"not-on-map"}, + collision_box = {{-0.5, -1}, {0.5, 1}}, + acceleration = 0, + direction_only = true, + action = + { + type = "direct", + action_delivery = + { + type = "instant", + target_effects = + { + { + type = "nested-result", + action = + { + type = "area", + perimeter = 1, + action_delivery = + { + type = "instant", + target_effects = + { + { + type = "damage", + damage = {amount = 8, type = "fire"} + }, + } + } + }, + }, + } + } + }, + animation = + { + filename = "__bobwarfare__/graphics/entities/projectiles/acid-projectile-red.png", + line_length = 5, + width = 16, + height = 18, + frame_count = 33, + priority = "high" + }, + shadow = + { + filename = "__bobwarfare__/graphics/entities/projectiles/acid-projectile-shadow.png", + line_length = 5, + width = 28, + height = 16, + frame_count = 33, + priority = "high", + shift = {-0.09, 0.395} + }, + rotatable = false + }, + + { + type = "projectile", + name = "shotgun-acid-projectile", + flags = {"not-on-map"}, + collision_box = {{-0.5, -1}, {0.5, 1}}, + acceleration = 0, + direction_only = true, + action = + { + type = "direct", + action_delivery = + { + type = "instant", + target_effects = + { + { + type = "nested-result", + action = + { + type = "area", + perimeter = 1, + action_delivery = + { + type = "instant", + target_effects = + { + { + type = "damage", + damage = {amount = 8, type = "acid"} + }, + } + } + }, + }, + } + } + }, + animation = + { + filename = "__base__/graphics/entity/acid-projectile-purple/acid-projectile-purple.png", + line_length = 5, + width = 16, + height = 18, + frame_count = 33, + priority = "high" + }, + shadow = + { + filename = "__base__/graphics/entity/acid-projectile-purple/acid-projectile-purple-shadow.png", + line_length = 5, + width = 28, + height = 16, + frame_count = 33, + priority = "high", + shift = {-0.09, 0.395} + }, + rotatable = false + }, + + { + type = "projectile", + name = "shotgun-poison-projectile", + flags = {"not-on-map"}, + collision_box = {{-0.5, -1}, {0.5, 1}}, + acceleration = 0, + direction_only = true, + action = + { + type = "direct", + action_delivery = + { + type = "instant", + target_effects = + { +-- { +-- type = "create-entity", +-- entity_name = "small-poison-cloud" +-- }, + { + type = "nested-result", + action = + { + type = "area", + perimeter = 1, + action_delivery = + { + type = "instant", + target_effects = + { + { + type = "damage", + damage = {amount = 8, type = "poison"} + }, + } + } + }, + }, + } + } + }, + animation = + { + filename = "__bobwarfare__/graphics/entities/projectiles/acid-projectile-green.png", + line_length = 5, + width = 16, + height = 18, + frame_count = 33, + priority = "high" + }, + shadow = + { + filename = "__bobwarfare__/graphics/entities/projectiles/acid-projectile-shadow.png", + line_length = 5, + width = 28, + height = 16, + frame_count = 33, + priority = "high", + shift = {-0.09, 0.395} + }, + rotatable = false + }, + + + { + type = "projectile", + name = "bob-laser-glass", + flags = {"not-on-map"}, + acceleration = 0.005, + action = boblaseraction("bob-laser-bubble-glass", 45), + light = {intensity = 0.5, size = 10}, + animation = boblaseranimation(1, {r=0.8, g=0.8, b=0.8, a=1}), + speed = 0.15 + }, + + { + type = "projectile", + name = "bob-laser-ruby", + flags = {"not-on-map"}, + acceleration = 0.005, + action = boblaseraction("bob-laser-bubble-ruby", 60), + light = {intensity = 0.5, size = 10}, + animation = boblaseranimation(1, {r=1, g=0.2, b=0.2, a=1}), + speed = 0.15 + }, + + { + type = "projectile", + name = "bob-laser-sapphire", + flags = {"not-on-map"}, + acceleration = 0.005, + action = boblaseraction("bob-laser-bubble-sapphire", 65), + light = {intensity = 0.5, size = 10}, + animation = boblaseranimation(1, {r=0.2, g=0.6, b=1, a=1}), + speed = 0.15 + }, + + { + type = "projectile", + name = "bob-laser-emerald", + flags = {"not-on-map"}, + acceleration = 0.005, + action = boblaseraction("bob-laser-bubble-emerald", 70), + light = {intensity = 0.5, size = 10}, + animation = boblaseranimation(1, {r=0.3, g=1, b=0.3, a=1}), + speed = 0.15 + }, + + { + type = "projectile", + name = "bob-laser-amethyst", + flags = {"not-on-map"}, + acceleration = 0.005, + action = boblaseraction("bob-laser-bubble-amethyst", 75), + light = {intensity = 0.5, size = 10}, + animation = boblaseranimation(1, {r=0.8, g=0.2, b=1, a=1}), + speed = 0.15 + }, + + { + type = "projectile", + name = "bob-laser-topaz", + flags = {"not-on-map"}, + acceleration = 0.005, + action = boblaseraction("bob-laser-bubble-topaz", 80), + light = {intensity = 0.5, size = 10}, + animation = boblaseranimation(1, {r=1, g=0.6, b=0.2, a=1}), + speed = 0.15 + }, + + { + type = "projectile", + name = "bob-laser-diamond", + flags = {"not-on-map"}, + acceleration = 0.005, + action = boblaseraction("bob-laser-bubble-diamond", 90), + light = {intensity = 0.5, size = 10}, + animation = boblaseranimation(1, {r=1, g=1, b=1, a=1}), + speed = 0.15 + }, + + + { + type = "projectile", + name = "bob-rocket", + flags = {"not-on-map"}, + acceleration = 0.005, + action = + { + type = "direct", + action_delivery = + { + type = "instant", + target_effects = + { + { + type = "create-entity", + entity_name = "explosion" + }, + { + type = "damage", + damage = {amount = 80, type = "explosion"} + }, + { + type = "damage", + damage = {amount = 160, type = "physical"} + }, + { + type = "create-entity", + entity_name = "small-scorchmark", + check_buildability = true + }, + } + } + }, + light = {intensity = 0.5, size = 4}, + animation = + { + filename = "__bobwarfare__/graphics/entities/projectiles/rocket.png", + frame_count = 1, + width = 18, + height = 39, + priority = "high" + }, + shadow = + { + filename = "__bobwarfare__/graphics/entities/projectiles/rocket-shadow.png", + frame_count = 1, + width = 18, + height = 32, + priority = "high" + }, + smoke = + { + { + name = "smoke-fast", + deviation = {0.15, 0.15}, + frequency = 1, + position = {0, 0}, + slow_down_factor = 1, + starting_frame = 3, + starting_frame_deviation = 5, + starting_frame_speed = 0, + starting_frame_speed_deviation = 5 + } + } + }, + + { + type = "projectile", + name = "bob-piercing-rocket", + flags = {"not-on-map"}, + acceleration = 0.005, + action = + { + type = "direct", + action_delivery = + { + type = "instant", + target_effects = + { + { + type = "create-entity", + entity_name = "explosion" + }, + { + type = "damage", + damage = {amount = 80, type = "explosion"} + }, + { + type = "damage", + damage = {amount = 160, type = "bob-pierce"} + }, + { + type = "create-entity", + entity_name = "small-scorchmark", + check_buildability = true + }, + } + } + }, + light = {intensity = 0.5, size = 4}, + animation = + { + filename = "__bobwarfare__/graphics/entities/projectiles/piercing-rocket.png", + frame_count = 1, + width = 18, + height = 39, + priority = "high" + }, + shadow = + { + filename = "__bobwarfare__/graphics/entities/projectiles/rocket-shadow.png", + frame_count = 1, + width = 18, + height = 32, + priority = "high" + }, + smoke = + { + { + name = "smoke-fast", + deviation = {0.15, 0.15}, + frequency = 1, + position = {0, 0}, + slow_down_factor = 1, + starting_frame = 3, + starting_frame_deviation = 5, + starting_frame_speed = 0, + starting_frame_speed_deviation = 5 + } + } + }, + + { + type = "projectile", + name = "bob-electric-rocket", + flags = {"not-on-map"}, + acceleration = 0.005, + action = + { + type = "direct", + action_delivery = + { + type = "instant", + target_effects = + { + { + type = "create-entity", + entity_name = "explosion" + }, + { + type = "damage", + damage = {amount = 80, type = "explosion"} + }, + { + type = "damage", + damage = {amount = 160, type = "electric"} + }, + { + type = "create-entity", + entity_name = "small-scorchmark", + check_buildability = true + }, + } + } + }, + light = {intensity = 0.5, size = 4}, + animation = + { + filename = "__bobwarfare__/graphics/entities/projectiles/electric-rocket.png", + frame_count = 1, + width = 18, + height = 39, + priority = "high" + }, + shadow = + { + filename = "__bobwarfare__/graphics/entities/projectiles/rocket-shadow.png", + frame_count = 1, + width = 18, + height = 32, + priority = "high" + }, + smoke = + { + { + name = "smoke-fast", + deviation = {0.15, 0.15}, + frequency = 1, + position = {0, 0}, + slow_down_factor = 1, + starting_frame = 3, + starting_frame_deviation = 5, + starting_frame_speed = 0, + starting_frame_speed_deviation = 5 + } + } + }, + + { + type = "projectile", + name = "bob-explosive-rocket", + flags = {"not-on-map"}, + acceleration = 0.005, + action = + { + type = "direct", + action_delivery = + { + type = "instant", + target_effects = + { + { + type = "create-entity", + entity_name = "explosion" + }, + { + type = "damage", + damage = {amount = 80, type = "explosion"} + }, + { + type = "nested-result", + action = + { + type = "area", + perimeter = 6.5, + action_delivery = + { + type = "instant", + target_effects = + { + { + type = "damage", + damage = {amount = 120, type = "explosion"} + }, + } + } + }, + }, + { + type = "create-entity", + entity_name = "small-scorchmark", + check_buildability = true + }, + } + } + }, + light = {intensity = 0.5, size = 4}, + animation = + { + filename = "__bobwarfare__/graphics/entities/projectiles/explosive-rocket.png", + frame_count = 1, + width = 18, + height = 39, + priority = "high" + }, + shadow = + { + filename = "__bobwarfare__/graphics/entities/projectiles/rocket-shadow.png", + frame_count = 1, + width = 18, + height = 32, + priority = "high" + }, + smoke = + { + { + name = "smoke-fast", + deviation = {0.15, 0.15}, + frequency = 1, + position = {0, 0}, + slow_down_factor = 1, + starting_frame = 3, + starting_frame_deviation = 5, + starting_frame_speed = 0, + starting_frame_speed_deviation = 5 + } + } + }, + + { + type = "projectile", + name = "bob-flame-rocket", + flags = {"not-on-map"}, + acceleration = 0.005, + action = + { + type = "direct", + action_delivery = + { + type = "instant", + target_effects = + { + { + type = "create-entity", + entity_name = "explosion" + }, + { + type = "damage", + damage = {amount = 80, type = "explosion"} + }, + { + type = "create-entity", + entity_name = "small-fire-cloud" + }, + { + type = "nested-result", + action = + { + type = "area", + perimeter = 6.5, + action_delivery = + { + type = "instant", + target_effects = + { + { + type = "damage", + damage = {amount = 120, type = "fire"} + }, + } + } + }, + }, + { + type = "create-entity", + entity_name = "small-scorchmark", + check_buildability = true + }, + } + } + }, + light = {intensity = 0.5, size = 4}, + animation = + { + filename = "__bobwarfare__/graphics/entities/projectiles/flame-rocket.png", + frame_count = 1, + width = 18, + height = 39, + priority = "high" + }, + shadow = + { + filename = "__bobwarfare__/graphics/entities/projectiles/rocket-shadow.png", + frame_count = 1, + width = 18, + height = 32, + priority = "high" + }, + smoke = + { + { + name = "smoke-fast", + deviation = {0.15, 0.15}, + frequency = 1, + position = {0, 0}, + slow_down_factor = 1, + starting_frame = 3, + starting_frame_deviation = 5, + starting_frame_speed = 0, + starting_frame_speed_deviation = 5 + } + } + }, + + { + type = "projectile", + name = "bob-poison-rocket", + flags = {"not-on-map"}, + acceleration = 0.005, + action = + { + type = "direct", + action_delivery = + { + type = "instant", + target_effects = + { + { + type = "create-entity", + entity_name = "explosion" + }, + { + type = "damage", + damage = {amount = 80, type = "explosion"} + }, + { + type = "create-entity", + entity_name = "small-poison-cloud" + }, + { + type = "nested-result", + action = + { + type = "area", + perimeter = 6.5, + action_delivery = + { + type = "instant", + target_effects = + { + { + type = "damage", + damage = {amount = 120, type = "poison"} + }, + } + } + }, + }, + { + type = "create-entity", + entity_name = "small-scorchmark", + check_buildability = true + }, + } + } + }, + light = {intensity = 0.5, size = 4}, + animation = + { + filename = "__bobwarfare__/graphics/entities/projectiles/poison-rocket.png", + frame_count = 1, + width = 18, + height = 39, + priority = "high" + }, + shadow = + { + filename = "__bobwarfare__/graphics/entities/projectiles/rocket-shadow.png", + frame_count = 1, + width = 18, + height = 32, + priority = "high" + }, + smoke = + { + { + name = "smoke-fast", + deviation = {0.15, 0.15}, + frequency = 1, + position = {0, 0}, + slow_down_factor = 1, + starting_frame = 3, + starting_frame_deviation = 5, + starting_frame_speed = 0, + starting_frame_speed_deviation = 5 + } + } + }, + + { + type = "projectile", + name = "bob-acid-rocket", + flags = {"not-on-map"}, + acceleration = 0.005, + action = + { + type = "direct", + action_delivery = + { + type = "instant", + target_effects = + { + { + type = "create-entity", + entity_name = "explosion" + }, + { + type = "create-entity", + entity_name = "acid-splash-purple" + }, + { + type = "damage", + damage = {amount = 80, type = "explosion"} + }, + { + type = "nested-result", + action = + { + type = "area", + perimeter = 6.5, + action_delivery = + { + type = "instant", + target_effects = + { + { + type = "damage", + damage = {amount = 120, type = "acid"} + }, + } + } + }, + }, + { + type = "create-entity", + entity_name = "small-scorchmark", + check_buildability = true + }, + } + } + }, + light = {intensity = 0.5, size = 4}, + animation = + { + filename = "__bobwarfare__/graphics/entities/projectiles/acid-rocket.png", + frame_count = 1, + width = 18, + height = 39, + priority = "high" + }, + shadow = + { + filename = "__bobwarfare__/graphics/entities/projectiles/rocket-shadow.png", + frame_count = 1, + width = 18, + height = 32, + priority = "high" + }, + smoke = + { + { + name = "smoke-fast", + deviation = {0.15, 0.15}, + frequency = 1, + position = {0, 0}, + slow_down_factor = 1, + starting_frame = 3, + starting_frame_deviation = 5, + starting_frame_speed = 0, + starting_frame_speed_deviation = 5 + } + } + }, + + + { + type = "projectile", + name = "bob-blue-laser", + flags = {"not-on-map"}, + acceleration = 0.005, + action = boblaseraction("bob-laser-bubble-sapphire", 5), + light = {intensity = 0.5, size = 10}, + animation = boblaseranimation(1, {r=0.2, g=0.6, b=1, a=1}), + speed = 0.15 + }, + + { + type = "projectile", + name = "bob-green-laser", + flags = {"not-on-map"}, + acceleration = 0.005, + action = boblaseraction("bob-laser-bubble-emerald", 5), + light = {intensity = 0.5, size = 10}, + animation = boblaseranimation(1, {r=0.3, g=1, b=0.3, a=1}), + speed = 0.15 + }, + + { + type = "projectile", + name = "bob-purple-laser", + flags = {"not-on-map"}, + acceleration = 0.005, + action = boblaseraction("bob-laser-bubble-amethyst", 5), + light = {intensity = 0.5, size = 10}, + animation = boblaseranimation(1, {r=0.8, g=0.2, b=1, a=1}), + speed = 0.15 + }, + + { + type = "projectile", + name = "bob-yellow-laser", + flags = {"not-on-map"}, + acceleration = 0.005, + action = boblaseraction("bob-laser-bubble-topaz", 5), + light = {intensity = 0.5, size = 10}, + animation = boblaseranimation(1, {r=1, g=0.8, b=0.2, a=1}), + speed = 0.15 + }, + + { + type = "projectile", + name = "bob-white-laser", + flags = {"not-on-map"}, + acceleration = 0.005, + action = boblaseraction("bob-laser-bubble-diamond", 5), + light = {intensity = 0.5, size = 10}, + animation = boblaseranimation(1, {r=1, g=1, b=1, a=1}), + speed = 0.15 + }, +} +) + + + + +data:extend( +{ + { + type = "projectile", + name = "cannon-projectile-pellet", + flags = {"not-on-map"}, + collision_box = {{-0.05, -0.25}, {0.05, 0.25}}, + acceleration = 0, + direction_only = true, + piercing_damage = 30, + action = + { + type = "direct", + action_delivery = + { + type = "instant", + target_effects = + { + { + type = "damage", + damage = {amount = 8, type = "physical"} + }, + { + type = "damage", + damage = { amount = 4 , type = "bob-pierce"} + }, + { + type = "damage", + damage = { amount = 2 , type = "explosion"} + } + } + } + }, + animation = + { + filename = "__bobwarfare__/graphics/entities/projectiles/shotgun-shot.png", + tint = {r=1, g=1, b=1, a=0.8}, + frame_count = 1, + width = 3, + height = 50, + priority = "high" + }, + }, + + { + type = "projectile", + name = "poison-artillery-projectile", + flags = {"not-on-map"}, + acceleration = 0.005, + action = + { + { + type = "direct", + action_delivery = + { + type = "instant", + target_effects = + { + { + type = "create-entity", + entity_name = "poison-artillery-cloud" + }, + }, + } + }, + { + type = "area", + perimeter = 11, + action_delivery = + { + type = "instant", + target_effects = + { + { + type = "damage", + damage = {amount = 200, type = "poison"} + }, + { + type = "damage", + damage = {amount = 50, type = "explosion"} + }, + } + } + }, + }, + light = {intensity = 0.5, size = 4}, + animation = + { + filename = "__base__/graphics/entity/poison-capsule/poison-capsule.png", + frame_count = 1, + width = 32, + height = 32, + priority = "high" + }, + shadow = + { + filename = "__base__/graphics/entity/poison-capsule/poison-capsule-shadow.png", + frame_count = 1, + width = 32, + height = 32, + priority = "high" + }, + smoke = capsule_smoke, + }, + + { + type = "projectile", + name = "explosive-artillery-projectile", + flags = {"not-on-map"}, + acceleration = 0.005, + action = + { + { + type = "direct", + action_delivery = + { + type = "instant", + target_effects = + { + { + type = "create-entity", + entity_name = "medium-explosion" + }, + { + type = "create-entity", + entity_name = "small-scorchmark", + check_buildability = true + } + } + } + }, + { + type = "area", + perimeter = 11, + action_delivery = + { + type = "instant", + target_effects = + { + { + type = "damage", + damage = {amount = 300, type = "explosion"} + }, + { + type = "create-entity", + entity_name = "explosion" + } + } + } + } + }, + light = {intensity = 0.5, size = 4}, + animation = + { + filename = "__base__/graphics/entity/bullet/bullet.png", + frame_count = 1, + width = 3, + height = 50, + priority = "high" + }, + smoke = capsule_smoke, + }, + + { + type = "projectile", + name = "distractor-artillery-projectile", + flags = {"not-on-map"}, + acceleration = 0.005, + action = + { + type = "direct", + action_delivery = + { + type = "instant", + target_effects = + { + { + type = "create-entity", + show_in_tooltip = true, + entity_name = "distractor", + offsets = {{0.6, -0.8},{-0.6, -0.8},{0.6, 0.8},{-0.6, 0.8},{1, 0},{-1, 0}} + } + } + }, + { + type = "area", + perimeter = 11, + action_delivery = + { + type = "instant", + target_effects = + { + { + type = "damage", + damage = {amount = 50, type = "explosion"} + } + } + } + } + }, + light = {intensity = 0.5, size = 4}, + animation = + { + filename = "__base__/graphics/entity/combat-robot-capsule/distractor-capsule.png", + frame_count = 1, + width = 32, + height = 32, + priority = "high" + }, + shadow = + { + filename = "__base__/graphics/entity/combat-robot-capsule/combat-robot-capsule-shadow.png", + frame_count = 1, + width = 32, + height = 32, + priority = "high" + }, + smoke = capsule_smoke + }, +} +) + + + diff --git a/bobwarfare_0.14.0/prototypes/entity/radar.lua b/bobwarfare_0.14.1/prototypes/entity/radar.lua similarity index 96% rename from bobwarfare_0.14.0/prototypes/entity/radar.lua rename to bobwarfare_0.14.1/prototypes/entity/radar.lua index c086925..657ed0a 100644 --- a/bobwarfare_0.14.0/prototypes/entity/radar.lua +++ b/bobwarfare_0.14.1/prototypes/entity/radar.lua @@ -1,211 +1,211 @@ -data.raw["radar"]["radar"].fast_replaceable_group = "radar" - -data:extend( -{ - { - type = "radar", - name = "radar-2", - icon = "__base__/graphics/icons/radar.png", - flags = {"placeable-player", "player-creation"}, - minable = {hardness = 0.2, mining_time = 0.5, result = "radar-2"}, - fast_replaceable_group = "radar", - max_health = 200, - corpse = "big-remnants", - resistances = - { - { - type = "fire", - percent = 70 - } - }, - collision_box = {{-1.4, -1.4}, {1.4, 1.4}}, - selection_box = {{-1.5, -1.5}, {1.5, 1.5}}, - energy_per_sector = "10MJ", - max_distance_of_sector_revealed = 16, - max_distance_of_nearby_sector_revealed = 5, - energy_per_nearby_scan = "240kJ", - energy_source = - { - type = "electric", - usage_priority = "secondary-input" - }, - energy_usage = "450kW", - pictures = - { - filename = "__base__/graphics/entity/radar/radar.png", - priority = "low", - width = 153, - height = 131, - apply_projection = false, - direction_count = 64, - line_length = 8, - shift = {0.875, -0.34375} - }, - vehicle_impact_sound = { filename = "__base__/sound/car-metal-impact.ogg", volume = 0.65 }, - working_sound = - { - sound = { - { - filename = "__base__/sound/radar.ogg" - } - }, - apparent_volume = 2, - } - }, - - { - type = "radar", - name = "radar-3", - icon = "__base__/graphics/icons/radar.png", - flags = {"placeable-player", "player-creation"}, - minable = {hardness = 0.2, mining_time = 0.5, result = "radar-3"}, - fast_replaceable_group = "radar", - max_health = 250, - corpse = "big-remnants", - resistances = - { - { - type = "fire", - percent = 70 - } - }, - collision_box = {{-1.4, -1.4}, {1.4, 1.4}}, - selection_box = {{-1.5, -1.5}, {1.5, 1.5}}, - energy_per_sector = "10MJ", - max_distance_of_sector_revealed = 18, - max_distance_of_nearby_sector_revealed = 7, - energy_per_nearby_scan = "230kJ", - energy_source = - { - type = "electric", - usage_priority = "secondary-input" - }, - energy_usage = "600kW", - pictures = - { - filename = "__base__/graphics/entity/radar/radar.png", - priority = "low", - width = 153, - height = 131, - apply_projection = false, - direction_count = 64, - line_length = 8, - shift = {0.875, -0.34375} - }, - vehicle_impact_sound = { filename = "__base__/sound/car-metal-impact.ogg", volume = 0.65 }, - working_sound = - { - sound = { - { - filename = "__base__/sound/radar.ogg" - } - }, - apparent_volume = 2, - } - }, - - { - type = "radar", - name = "radar-4", - icon = "__base__/graphics/icons/radar.png", - flags = {"placeable-player", "player-creation"}, - minable = {hardness = 0.2, mining_time = 0.5, result = "radar-4"}, - fast_replaceable_group = "radar", - max_health = 300, - corpse = "big-remnants", - resistances = - { - { - type = "fire", - percent = 70 - } - }, - collision_box = {{-1.4, -1.4}, {1.4, 1.4}}, - selection_box = {{-1.5, -1.5}, {1.5, 1.5}}, - energy_per_sector = "10MJ", - max_distance_of_sector_revealed = 20, - max_distance_of_nearby_sector_revealed = 9, - energy_per_nearby_scan = "220kJ", - energy_source = - { - type = "electric", - usage_priority = "secondary-input" - }, - energy_usage = "750kW", - pictures = - { - filename = "__base__/graphics/entity/radar/radar.png", - priority = "low", - width = 153, - height = 131, - apply_projection = false, - direction_count = 64, - line_length = 8, - shift = {0.875, -0.34375} - }, - vehicle_impact_sound = { filename = "__base__/sound/car-metal-impact.ogg", volume = 0.65 }, - working_sound = - { - sound = { - { - filename = "__base__/sound/radar.ogg" - } - }, - apparent_volume = 2, - } - }, - - { - type = "radar", - name = "radar-5", - icon = "__base__/graphics/icons/radar.png", - flags = {"placeable-player", "player-creation"}, - minable = {hardness = 0.2, mining_time = 0.5, result = "radar-5"}, - fast_replaceable_group = "radar", - max_health = 350, - corpse = "big-remnants", - resistances = - { - { - type = "fire", - percent = 70 - } - }, - collision_box = {{-1.4, -1.4}, {1.4, 1.4}}, - selection_box = {{-1.5, -1.5}, {1.5, 1.5}}, - energy_per_sector = "10MJ", - max_distance_of_sector_revealed = 22, - max_distance_of_nearby_sector_revealed = 11, - energy_per_nearby_scan = "210kJ", - energy_source = - { - type = "electric", - usage_priority = "secondary-input" - }, - energy_usage = "900kW", - pictures = - { - filename = "__base__/graphics/entity/radar/radar.png", - priority = "low", - width = 153, - height = 131, - apply_projection = false, - direction_count = 64, - line_length = 8, - shift = {0.875, -0.34375} - }, - vehicle_impact_sound = { filename = "__base__/sound/car-metal-impact.ogg", volume = 0.65 }, - working_sound = - { - sound = { - { - filename = "__base__/sound/radar.ogg" - } - }, - apparent_volume = 2, - } - }, -} -) - - +data.raw["radar"]["radar"].fast_replaceable_group = "radar" + +data:extend( +{ + { + type = "radar", + name = "radar-2", + icon = "__base__/graphics/icons/radar.png", + flags = {"placeable-player", "player-creation"}, + minable = {hardness = 0.2, mining_time = 0.5, result = "radar-2"}, + fast_replaceable_group = "radar", + max_health = 200, + corpse = "big-remnants", + resistances = + { + { + type = "fire", + percent = 70 + } + }, + collision_box = {{-1.4, -1.4}, {1.4, 1.4}}, + selection_box = {{-1.5, -1.5}, {1.5, 1.5}}, + energy_per_sector = "10MJ", + max_distance_of_sector_revealed = 16, + max_distance_of_nearby_sector_revealed = 5, + energy_per_nearby_scan = "240kJ", + energy_source = + { + type = "electric", + usage_priority = "secondary-input" + }, + energy_usage = "450kW", + pictures = + { + filename = "__base__/graphics/entity/radar/radar.png", + priority = "low", + width = 153, + height = 131, + apply_projection = false, + direction_count = 64, + line_length = 8, + shift = {0.875, -0.34375} + }, + vehicle_impact_sound = { filename = "__base__/sound/car-metal-impact.ogg", volume = 0.65 }, + working_sound = + { + sound = { + { + filename = "__base__/sound/radar.ogg" + } + }, + apparent_volume = 2, + } + }, + + { + type = "radar", + name = "radar-3", + icon = "__base__/graphics/icons/radar.png", + flags = {"placeable-player", "player-creation"}, + minable = {hardness = 0.2, mining_time = 0.5, result = "radar-3"}, + fast_replaceable_group = "radar", + max_health = 250, + corpse = "big-remnants", + resistances = + { + { + type = "fire", + percent = 70 + } + }, + collision_box = {{-1.4, -1.4}, {1.4, 1.4}}, + selection_box = {{-1.5, -1.5}, {1.5, 1.5}}, + energy_per_sector = "10MJ", + max_distance_of_sector_revealed = 18, + max_distance_of_nearby_sector_revealed = 7, + energy_per_nearby_scan = "230kJ", + energy_source = + { + type = "electric", + usage_priority = "secondary-input" + }, + energy_usage = "600kW", + pictures = + { + filename = "__base__/graphics/entity/radar/radar.png", + priority = "low", + width = 153, + height = 131, + apply_projection = false, + direction_count = 64, + line_length = 8, + shift = {0.875, -0.34375} + }, + vehicle_impact_sound = { filename = "__base__/sound/car-metal-impact.ogg", volume = 0.65 }, + working_sound = + { + sound = { + { + filename = "__base__/sound/radar.ogg" + } + }, + apparent_volume = 2, + } + }, + + { + type = "radar", + name = "radar-4", + icon = "__base__/graphics/icons/radar.png", + flags = {"placeable-player", "player-creation"}, + minable = {hardness = 0.2, mining_time = 0.5, result = "radar-4"}, + fast_replaceable_group = "radar", + max_health = 300, + corpse = "big-remnants", + resistances = + { + { + type = "fire", + percent = 70 + } + }, + collision_box = {{-1.4, -1.4}, {1.4, 1.4}}, + selection_box = {{-1.5, -1.5}, {1.5, 1.5}}, + energy_per_sector = "10MJ", + max_distance_of_sector_revealed = 20, + max_distance_of_nearby_sector_revealed = 9, + energy_per_nearby_scan = "220kJ", + energy_source = + { + type = "electric", + usage_priority = "secondary-input" + }, + energy_usage = "750kW", + pictures = + { + filename = "__base__/graphics/entity/radar/radar.png", + priority = "low", + width = 153, + height = 131, + apply_projection = false, + direction_count = 64, + line_length = 8, + shift = {0.875, -0.34375} + }, + vehicle_impact_sound = { filename = "__base__/sound/car-metal-impact.ogg", volume = 0.65 }, + working_sound = + { + sound = { + { + filename = "__base__/sound/radar.ogg" + } + }, + apparent_volume = 2, + } + }, + + { + type = "radar", + name = "radar-5", + icon = "__base__/graphics/icons/radar.png", + flags = {"placeable-player", "player-creation"}, + minable = {hardness = 0.2, mining_time = 0.5, result = "radar-5"}, + fast_replaceable_group = "radar", + max_health = 350, + corpse = "big-remnants", + resistances = + { + { + type = "fire", + percent = 70 + } + }, + collision_box = {{-1.4, -1.4}, {1.4, 1.4}}, + selection_box = {{-1.5, -1.5}, {1.5, 1.5}}, + energy_per_sector = "10MJ", + max_distance_of_sector_revealed = 22, + max_distance_of_nearby_sector_revealed = 11, + energy_per_nearby_scan = "210kJ", + energy_source = + { + type = "electric", + usage_priority = "secondary-input" + }, + energy_usage = "900kW", + pictures = + { + filename = "__base__/graphics/entity/radar/radar.png", + priority = "low", + width = 153, + height = 131, + apply_projection = false, + direction_count = 64, + line_length = 8, + shift = {0.875, -0.34375} + }, + vehicle_impact_sound = { filename = "__base__/sound/car-metal-impact.ogg", volume = 0.65 }, + working_sound = + { + sound = { + { + filename = "__base__/sound/radar.ogg" + } + }, + apparent_volume = 2, + } + }, +} +) + + diff --git a/bobwarfare_0.14.0/prototypes/entity/tank.lua b/bobwarfare_0.14.1/prototypes/entity/tank.lua similarity index 94% rename from bobwarfare_0.14.0/prototypes/entity/tank.lua rename to bobwarfare_0.14.1/prototypes/entity/tank.lua index a889fae..e50d939 100644 --- a/bobwarfare_0.14.0/prototypes/entity/tank.lua +++ b/bobwarfare_0.14.1/prototypes/entity/tank.lua @@ -1,586 +1,586 @@ -data:extend( -{ - { - type = "car", - name = "tank-2", - icon = "__base__/graphics/icons/tank.png", - flags = {"pushable", "placeable-neutral", "player-creation", "placeable-off-grid"}, - minable = {mining_time = 1, result = "tank-2"}, - max_health = 2500, - corpse = "medium-remnants", - dying_explosion = "medium-explosion", - energy_per_hit_point = 0.5, - resistances = - { - { - type = "fire", - decrease = 25, - percent = 60 - }, - { - type = "poison", - decrease = 25, - percent = 60 - }, - { - type = "physical", - decrease = 25, - percent = 45 - }, - { - type = "impact", - decrease = 100, - percent = 75 - }, - { - type = "explosion", - decrease = 25, - percent = 45 - }, - { - type = "acid", - decrease = 25, - percent = 40 - } - }, - collision_box = {{-0.9, -1.3}, {0.9, 1.3}}, - selection_box = {{-0.9, -1.3}, {0.9, 1.3}}, - effectivity = 0.7, - braking_power = "1000kW", - burner = - { - effectivity = 0.85, - fuel_inventory_size = 3, - smoke = - { - { - name = "smoke", - deviation = {0.25, 0.25}, - frequency = 50, - position = {0, 1.5}, - starting_frame = 3, - starting_frame_deviation = 5, - starting_frame_speed = 0, - starting_frame_speed_deviation = 5 - } - } - }, - consumption = "800kW", - terrain_friction_modifier = 0.2, - friction = 0.002, - light = - { - { - type = "oriented", - minimum_darkness = 0.3, - picture = - { - filename = "__core__/graphics/light-cone.png", - priority = "medium", - scale = 2, - width = 200, - height = 200 - }, - shift = {-0.6, -14}, - size = 2, - intensity = 0.6 - }, - { - type = "oriented", - minimum_darkness = 0.3, - picture = - { - filename = "__core__/graphics/light-cone.png", - priority = "medium", - scale = 2, - width = 200, - height = 200 - }, - shift = {0.6, -14}, - size = 2, - intensity = 0.6 - } - }, - animation = - { - layers = - { - { - width = 139, - height = 110, - frame_count = 2, - direction_count = 64, - shift = {-0.140625, -0.28125}, - animation_speed = 8, - max_advance = 1, - tint = {r = 0.7, g = 0.8, b = 1}, - stripes = - { - { - filename = "__base__/graphics/entity/tank/base-1.png", - width_in_frames = 2, - height_in_frames = 16, - }, - { - filename = "__base__/graphics/entity/tank/base-2.png", - width_in_frames = 2, - height_in_frames = 16, - }, - { - filename = "__base__/graphics/entity/tank/base-3.png", - width_in_frames = 2, - height_in_frames = 16, - }, - { - filename = "__base__/graphics/entity/tank/base-4.png", - width_in_frames = 2, - height_in_frames = 16, - } - } - }, - { - width = 109, - height = 88, - frame_count = 2, - apply_runtime_tint = true, - direction_count = 64, - shift = {-0.140625, -0.65625}, - max_advance = 1, - line_length = 2, - stripes = util.multiplystripes(2, - { - { - filename = "__base__/graphics/entity/tank/base-mask-1.png", - width_in_frames = 1, - height_in_frames = 22, - }, - { - filename = "__base__/graphics/entity/tank/base-mask-2.png", - width_in_frames = 1, - height_in_frames = 22, - }, - { - filename = "__base__/graphics/entity/tank/base-mask-3.png", - width_in_frames = 1, - height_in_frames = 20, - }, - }) - }, - { - width = 154, - height = 99, - frame_count = 2, - draw_as_shadow = true, - direction_count = 64, - shift = {0.59375, 0.328125}, - max_advance = 1, - stripes = util.multiplystripes(2, - { - { - filename = "__base__/graphics/entity/tank/base-shadow-1.png", - width_in_frames = 1, - height_in_frames = 16, - }, - { - filename = "__base__/graphics/entity/tank/base-shadow-2.png", - width_in_frames = 1, - height_in_frames = 16, - }, - { - filename = "__base__/graphics/entity/tank/base-shadow-3.png", - width_in_frames = 1, - height_in_frames = 16, - }, - { - filename = "__base__/graphics/entity/tank/base-shadow-4.png", - width_in_frames = 1, - height_in_frames = 16, - } - }) - } - } - }, - turret_animation = - { - layers = - { - { - filename = "__base__/graphics/entity/tank/turret.png", - line_length = 8, - width = 92, - height = 69, - frame_count = 1, - tint = {r = 0.7, g = 0.8, b = 1}, - direction_count = 64, - shift = {-0.15625, -1.07812}, - animation_speed = 8, - }, - { - filename = "__base__/graphics/entity/tank/turret-mask.png", - line_length = 8, - width = 38, - height = 29, - frame_count = 1, - apply_runtime_tint = true, - direction_count = 64, - shift = {-0.15625, -1.23438}, - }, - { - filename = "__base__/graphics/entity/tank/turret-shadow.png", - line_length = 8, - width = 95, - height = 67, - frame_count = 1, - draw_as_shadow = true, - direction_count = 64, - shift = {1.70312, 0.640625}, - } - } - }, - turret_rotation_speed = 0.6 / 60, - turret_return_timeout = 240, - stop_trigger_speed = 0.2, - sound_no_fuel = - { - { - filename = "__base__/sound/fight/tank-no-fuel-1.ogg", - volume = 0.6 - }, - }, - stop_trigger = - { - { - type = "play-sound", - sound = - { - { - filename = "__base__/sound/car-breaks.ogg", - volume = 0.6 - }, - } - }, - }, - sound_minimum_speed = 0.15; - vehicle_impact_sound = { filename = "__base__/sound/car-metal-impact.ogg", volume = 0.65 }, - working_sound = - { - sound = - { - filename = "__base__/sound/fight/tank-engine.ogg", - volume = 0.6 - }, - activate_sound = - { - filename = "__base__/sound/fight/tank-engine-start.ogg", - volume = 0.6 - }, - deactivate_sound = - { - filename = "__base__/sound/fight/tank-engine-stop.ogg", - volume = 0.6 - }, - match_speed_to_activity = true, - }, - open_sound = { filename = "__base__/sound/car-door-open.ogg", volume = 0.7 }, - close_sound = { filename = "__base__/sound/car-door-close.ogg", volume = 0.7 }, - rotation_speed = 0.006, - tank_driving = true, - weight = 20000, - inventory_size = 100, - guns = {"tank-cannon-2", "tank-artillery-1", "gatling-gun"}, - equipment_grid = "tank-2", - }, - - { - type = "car", - name = "tank-3", - icon = "__base__/graphics/icons/tank.png", - flags = {"pushable", "placeable-neutral", "player-creation", "placeable-off-grid"}, - minable = {mining_time = 1, result = "tank-3"}, - max_health = 5000, - corpse = "medium-remnants", - dying_explosion = "medium-explosion", - energy_per_hit_point = 0.5, - resistances = - { - { - type = "fire", - decrease = 35, - percent = 75 - }, - { - type = "poison", - decrease = 35, - percent = 75 - }, - { - type = "physical", - decrease = 35, - percent = 60 - }, - { - type = "impact", - decrease = 100, - percent = 95 - }, - { - type = "explosion", - decrease = 35, - percent = 60 - }, - { - type = "acid", - decrease = 35, - percent = 60 - } - }, - collision_box = {{-0.9, -1.3}, {0.9, 1.3}}, - selection_box = {{-0.9, -1.3}, {0.9, 1.3}}, - effectivity = 0.8, - braking_power = "1200kW", - burner = - { - effectivity = 1, - fuel_inventory_size = 4, - smoke = - { - { - name = "smoke", - deviation = {0.25, 0.25}, - frequency = 50, - position = {0, 1.5}, - starting_frame = 3, - starting_frame_deviation = 5, - starting_frame_speed = 0, - starting_frame_speed_deviation = 5 - } - } - }, - consumption = "1000kW", - terrain_friction_modifier = 0.2, - friction = 0.002, - light = - { - { - type = "oriented", - minimum_darkness = 0.3, - picture = - { - filename = "__core__/graphics/light-cone.png", - priority = "medium", - scale = 2, - width = 200, - height = 200 - }, - shift = {-0.6, -14}, - size = 2, - intensity = 0.6 - }, - { - type = "oriented", - minimum_darkness = 0.3, - picture = - { - filename = "__core__/graphics/light-cone.png", - priority = "medium", - scale = 2, - width = 200, - height = 200 - }, - shift = {0.6, -14}, - size = 2, - intensity = 0.6 - } - }, - animation = - { - layers = - { - { - width = 139, - height = 110, - frame_count = 2, - direction_count = 64, - shift = {-0.140625, -0.28125}, - animation_speed = 8, - max_advance = 1, - tint = {r = 1, g = 0.8, b = 0.7}, - stripes = - { - { - filename = "__base__/graphics/entity/tank/base-1.png", - width_in_frames = 2, - height_in_frames = 16, - }, - { - filename = "__base__/graphics/entity/tank/base-2.png", - width_in_frames = 2, - height_in_frames = 16, - }, - { - filename = "__base__/graphics/entity/tank/base-3.png", - width_in_frames = 2, - height_in_frames = 16, - }, - { - filename = "__base__/graphics/entity/tank/base-4.png", - width_in_frames = 2, - height_in_frames = 16, - } - } - }, - { - width = 109, - height = 88, - frame_count = 2, - apply_runtime_tint = true, - direction_count = 64, - shift = {-0.140625, -0.65625}, - max_advance = 1, - line_length = 2, - stripes = util.multiplystripes(2, - { - { - filename = "__base__/graphics/entity/tank/base-mask-1.png", - width_in_frames = 1, - height_in_frames = 22, - }, - { - filename = "__base__/graphics/entity/tank/base-mask-2.png", - width_in_frames = 1, - height_in_frames = 22, - }, - { - filename = "__base__/graphics/entity/tank/base-mask-3.png", - width_in_frames = 1, - height_in_frames = 20, - }, - }) - }, - { - width = 154, - height = 99, - frame_count = 2, - draw_as_shadow = true, - direction_count = 64, - shift = {0.59375, 0.328125}, - max_advance = 1, - stripes = util.multiplystripes(2, - { - { - filename = "__base__/graphics/entity/tank/base-shadow-1.png", - width_in_frames = 1, - height_in_frames = 16, - }, - { - filename = "__base__/graphics/entity/tank/base-shadow-2.png", - width_in_frames = 1, - height_in_frames = 16, - }, - { - filename = "__base__/graphics/entity/tank/base-shadow-3.png", - width_in_frames = 1, - height_in_frames = 16, - }, - { - filename = "__base__/graphics/entity/tank/base-shadow-4.png", - width_in_frames = 1, - height_in_frames = 16, - } - }) - } - } - }, - turret_animation = - { - layers = - { - { - filename = "__base__/graphics/entity/tank/turret.png", - line_length = 8, - width = 92, - height = 69, - frame_count = 1, - tint = {r = 1, g = 0.8, b = 0.7}, - direction_count = 64, - shift = {-0.15625, -1.07812}, - animation_speed = 8, - }, - { - filename = "__base__/graphics/entity/tank/turret-mask.png", - line_length = 8, - width = 38, - height = 29, - frame_count = 1, - apply_runtime_tint = true, - direction_count = 64, - shift = {-0.15625, -1.23438}, - }, - { - filename = "__base__/graphics/entity/tank/turret-shadow.png", - line_length = 8, - width = 95, - height = 67, - frame_count = 1, - draw_as_shadow = true, - direction_count = 64, - shift = {1.70312, 0.640625}, - } - } - }, - turret_rotation_speed = 1 / 60, - turret_return_timeout = 180, - stop_trigger_speed = 0.2, - sound_no_fuel = - { - { - filename = "__base__/sound/fight/tank-no-fuel-1.ogg", - volume = 0.6 - }, - }, - stop_trigger = - { - { - type = "play-sound", - sound = - { - { - filename = "__base__/sound/car-breaks.ogg", - volume = 0.6 - }, - } - }, - }, - sound_minimum_speed = 0.15; - vehicle_impact_sound = { filename = "__base__/sound/car-metal-impact.ogg", volume = 0.65 }, - working_sound = - { - sound = - { - filename = "__base__/sound/fight/tank-engine.ogg", - volume = 0.6 - }, - activate_sound = - { - filename = "__base__/sound/fight/tank-engine-start.ogg", - volume = 0.6 - }, - deactivate_sound = - { - filename = "__base__/sound/fight/tank-engine-stop.ogg", - volume = 0.6 - }, - match_speed_to_activity = true, - }, - open_sound = { filename = "__base__/sound/car-door-open.ogg", volume = 0.7 }, - close_sound = { filename = "__base__/sound/car-door-close.ogg", volume = 0.7 }, - rotation_speed = 0.01, - tank_driving = true, - weight = 20000, - inventory_size = 100, - guns = {"tank-cannon-3", "tank-artillery-2", "tank-laser", "gatling-gun"}, - equipment_grid = "tank-3", - }, -} -) - +data:extend( +{ + { + type = "car", + name = "bob-tank-2", + icon = "__base__/graphics/icons/tank.png", + flags = {"pushable", "placeable-neutral", "player-creation", "placeable-off-grid"}, + minable = {mining_time = 1, result = "bob-tank-2"}, + max_health = 2500, + corpse = "medium-remnants", + dying_explosion = "medium-explosion", + energy_per_hit_point = 0.5, + resistances = + { + { + type = "fire", + decrease = 25, + percent = 60 + }, + { + type = "poison", + decrease = 25, + percent = 60 + }, + { + type = "physical", + decrease = 25, + percent = 45 + }, + { + type = "impact", + decrease = 100, + percent = 75 + }, + { + type = "explosion", + decrease = 25, + percent = 45 + }, + { + type = "acid", + decrease = 25, + percent = 40 + } + }, + collision_box = {{-0.9, -1.3}, {0.9, 1.3}}, + selection_box = {{-0.9, -1.3}, {0.9, 1.3}}, + effectivity = 0.7, + braking_power = "1000kW", + burner = + { + effectivity = 0.85, + fuel_inventory_size = 3, + smoke = + { + { + name = "smoke", + deviation = {0.25, 0.25}, + frequency = 50, + position = {0, 1.5}, + starting_frame = 3, + starting_frame_deviation = 5, + starting_frame_speed = 0, + starting_frame_speed_deviation = 5 + } + } + }, + consumption = "800kW", + terrain_friction_modifier = 0.2, + friction = 0.002, + light = + { + { + type = "oriented", + minimum_darkness = 0.3, + picture = + { + filename = "__core__/graphics/light-cone.png", + priority = "medium", + scale = 2, + width = 200, + height = 200 + }, + shift = {-0.6, -14}, + size = 2, + intensity = 0.6 + }, + { + type = "oriented", + minimum_darkness = 0.3, + picture = + { + filename = "__core__/graphics/light-cone.png", + priority = "medium", + scale = 2, + width = 200, + height = 200 + }, + shift = {0.6, -14}, + size = 2, + intensity = 0.6 + } + }, + animation = + { + layers = + { + { + width = 139, + height = 110, + frame_count = 2, + direction_count = 64, + shift = {-0.140625, -0.28125}, + animation_speed = 8, + max_advance = 1, + tint = {r = 0.7, g = 0.8, b = 1}, + stripes = + { + { + filename = "__base__/graphics/entity/tank/base-1.png", + width_in_frames = 2, + height_in_frames = 16, + }, + { + filename = "__base__/graphics/entity/tank/base-2.png", + width_in_frames = 2, + height_in_frames = 16, + }, + { + filename = "__base__/graphics/entity/tank/base-3.png", + width_in_frames = 2, + height_in_frames = 16, + }, + { + filename = "__base__/graphics/entity/tank/base-4.png", + width_in_frames = 2, + height_in_frames = 16, + } + } + }, + { + width = 109, + height = 88, + frame_count = 2, + apply_runtime_tint = true, + direction_count = 64, + shift = {-0.140625, -0.65625}, + max_advance = 1, + line_length = 2, + stripes = util.multiplystripes(2, + { + { + filename = "__base__/graphics/entity/tank/base-mask-1.png", + width_in_frames = 1, + height_in_frames = 22, + }, + { + filename = "__base__/graphics/entity/tank/base-mask-2.png", + width_in_frames = 1, + height_in_frames = 22, + }, + { + filename = "__base__/graphics/entity/tank/base-mask-3.png", + width_in_frames = 1, + height_in_frames = 20, + }, + }) + }, + { + width = 154, + height = 99, + frame_count = 2, + draw_as_shadow = true, + direction_count = 64, + shift = {0.59375, 0.328125}, + max_advance = 1, + stripes = util.multiplystripes(2, + { + { + filename = "__base__/graphics/entity/tank/base-shadow-1.png", + width_in_frames = 1, + height_in_frames = 16, + }, + { + filename = "__base__/graphics/entity/tank/base-shadow-2.png", + width_in_frames = 1, + height_in_frames = 16, + }, + { + filename = "__base__/graphics/entity/tank/base-shadow-3.png", + width_in_frames = 1, + height_in_frames = 16, + }, + { + filename = "__base__/graphics/entity/tank/base-shadow-4.png", + width_in_frames = 1, + height_in_frames = 16, + } + }) + } + } + }, + turret_animation = + { + layers = + { + { + filename = "__base__/graphics/entity/tank/turret.png", + line_length = 8, + width = 92, + height = 69, + frame_count = 1, + tint = {r = 0.7, g = 0.8, b = 1}, + direction_count = 64, + shift = {-0.15625, -1.07812}, + animation_speed = 8, + }, + { + filename = "__base__/graphics/entity/tank/turret-mask.png", + line_length = 8, + width = 38, + height = 29, + frame_count = 1, + apply_runtime_tint = true, + direction_count = 64, + shift = {-0.15625, -1.23438}, + }, + { + filename = "__base__/graphics/entity/tank/turret-shadow.png", + line_length = 8, + width = 95, + height = 67, + frame_count = 1, + draw_as_shadow = true, + direction_count = 64, + shift = {1.70312, 0.640625}, + } + } + }, + turret_rotation_speed = 0.6 / 60, + turret_return_timeout = 240, + stop_trigger_speed = 0.2, + sound_no_fuel = + { + { + filename = "__base__/sound/fight/tank-no-fuel-1.ogg", + volume = 0.6 + }, + }, + stop_trigger = + { + { + type = "play-sound", + sound = + { + { + filename = "__base__/sound/car-breaks.ogg", + volume = 0.6 + }, + } + }, + }, + sound_minimum_speed = 0.15; + vehicle_impact_sound = { filename = "__base__/sound/car-metal-impact.ogg", volume = 0.65 }, + working_sound = + { + sound = + { + filename = "__base__/sound/fight/tank-engine.ogg", + volume = 0.6 + }, + activate_sound = + { + filename = "__base__/sound/fight/tank-engine-start.ogg", + volume = 0.6 + }, + deactivate_sound = + { + filename = "__base__/sound/fight/tank-engine-stop.ogg", + volume = 0.6 + }, + match_speed_to_activity = true, + }, + open_sound = { filename = "__base__/sound/car-door-open.ogg", volume = 0.7 }, + close_sound = { filename = "__base__/sound/car-door-close.ogg", volume = 0.7 }, + rotation_speed = 0.006, + tank_driving = true, + weight = 20000, + inventory_size = 100, + guns = {"tank-cannon-2", "tank-artillery-1", "gatling-gun"}, + equipment_grid = "bob-tank-2", + }, + + { + type = "car", + name = "bob-tank-3", + icon = "__base__/graphics/icons/tank.png", + flags = {"pushable", "placeable-neutral", "player-creation", "placeable-off-grid"}, + minable = {mining_time = 1, result = "bob-tank-3"}, + max_health = 5000, + corpse = "medium-remnants", + dying_explosion = "medium-explosion", + energy_per_hit_point = 0.5, + resistances = + { + { + type = "fire", + decrease = 35, + percent = 75 + }, + { + type = "poison", + decrease = 35, + percent = 75 + }, + { + type = "physical", + decrease = 35, + percent = 60 + }, + { + type = "impact", + decrease = 100, + percent = 95 + }, + { + type = "explosion", + decrease = 35, + percent = 60 + }, + { + type = "acid", + decrease = 35, + percent = 60 + } + }, + collision_box = {{-0.9, -1.3}, {0.9, 1.3}}, + selection_box = {{-0.9, -1.3}, {0.9, 1.3}}, + effectivity = 0.8, + braking_power = "1200kW", + burner = + { + effectivity = 1, + fuel_inventory_size = 4, + smoke = + { + { + name = "smoke", + deviation = {0.25, 0.25}, + frequency = 50, + position = {0, 1.5}, + starting_frame = 3, + starting_frame_deviation = 5, + starting_frame_speed = 0, + starting_frame_speed_deviation = 5 + } + } + }, + consumption = "1000kW", + terrain_friction_modifier = 0.2, + friction = 0.002, + light = + { + { + type = "oriented", + minimum_darkness = 0.3, + picture = + { + filename = "__core__/graphics/light-cone.png", + priority = "medium", + scale = 2, + width = 200, + height = 200 + }, + shift = {-0.6, -14}, + size = 2, + intensity = 0.6 + }, + { + type = "oriented", + minimum_darkness = 0.3, + picture = + { + filename = "__core__/graphics/light-cone.png", + priority = "medium", + scale = 2, + width = 200, + height = 200 + }, + shift = {0.6, -14}, + size = 2, + intensity = 0.6 + } + }, + animation = + { + layers = + { + { + width = 139, + height = 110, + frame_count = 2, + direction_count = 64, + shift = {-0.140625, -0.28125}, + animation_speed = 8, + max_advance = 1, + tint = {r = 1, g = 0.8, b = 0.7}, + stripes = + { + { + filename = "__base__/graphics/entity/tank/base-1.png", + width_in_frames = 2, + height_in_frames = 16, + }, + { + filename = "__base__/graphics/entity/tank/base-2.png", + width_in_frames = 2, + height_in_frames = 16, + }, + { + filename = "__base__/graphics/entity/tank/base-3.png", + width_in_frames = 2, + height_in_frames = 16, + }, + { + filename = "__base__/graphics/entity/tank/base-4.png", + width_in_frames = 2, + height_in_frames = 16, + } + } + }, + { + width = 109, + height = 88, + frame_count = 2, + apply_runtime_tint = true, + direction_count = 64, + shift = {-0.140625, -0.65625}, + max_advance = 1, + line_length = 2, + stripes = util.multiplystripes(2, + { + { + filename = "__base__/graphics/entity/tank/base-mask-1.png", + width_in_frames = 1, + height_in_frames = 22, + }, + { + filename = "__base__/graphics/entity/tank/base-mask-2.png", + width_in_frames = 1, + height_in_frames = 22, + }, + { + filename = "__base__/graphics/entity/tank/base-mask-3.png", + width_in_frames = 1, + height_in_frames = 20, + }, + }) + }, + { + width = 154, + height = 99, + frame_count = 2, + draw_as_shadow = true, + direction_count = 64, + shift = {0.59375, 0.328125}, + max_advance = 1, + stripes = util.multiplystripes(2, + { + { + filename = "__base__/graphics/entity/tank/base-shadow-1.png", + width_in_frames = 1, + height_in_frames = 16, + }, + { + filename = "__base__/graphics/entity/tank/base-shadow-2.png", + width_in_frames = 1, + height_in_frames = 16, + }, + { + filename = "__base__/graphics/entity/tank/base-shadow-3.png", + width_in_frames = 1, + height_in_frames = 16, + }, + { + filename = "__base__/graphics/entity/tank/base-shadow-4.png", + width_in_frames = 1, + height_in_frames = 16, + } + }) + } + } + }, + turret_animation = + { + layers = + { + { + filename = "__base__/graphics/entity/tank/turret.png", + line_length = 8, + width = 92, + height = 69, + frame_count = 1, + tint = {r = 1, g = 0.8, b = 0.7}, + direction_count = 64, + shift = {-0.15625, -1.07812}, + animation_speed = 8, + }, + { + filename = "__base__/graphics/entity/tank/turret-mask.png", + line_length = 8, + width = 38, + height = 29, + frame_count = 1, + apply_runtime_tint = true, + direction_count = 64, + shift = {-0.15625, -1.23438}, + }, + { + filename = "__base__/graphics/entity/tank/turret-shadow.png", + line_length = 8, + width = 95, + height = 67, + frame_count = 1, + draw_as_shadow = true, + direction_count = 64, + shift = {1.70312, 0.640625}, + } + } + }, + turret_rotation_speed = 1 / 60, + turret_return_timeout = 180, + stop_trigger_speed = 0.2, + sound_no_fuel = + { + { + filename = "__base__/sound/fight/tank-no-fuel-1.ogg", + volume = 0.6 + }, + }, + stop_trigger = + { + { + type = "play-sound", + sound = + { + { + filename = "__base__/sound/car-breaks.ogg", + volume = 0.6 + }, + } + }, + }, + sound_minimum_speed = 0.15; + vehicle_impact_sound = { filename = "__base__/sound/car-metal-impact.ogg", volume = 0.65 }, + working_sound = + { + sound = + { + filename = "__base__/sound/fight/tank-engine.ogg", + volume = 0.6 + }, + activate_sound = + { + filename = "__base__/sound/fight/tank-engine-start.ogg", + volume = 0.6 + }, + deactivate_sound = + { + filename = "__base__/sound/fight/tank-engine-stop.ogg", + volume = 0.6 + }, + match_speed_to_activity = true, + }, + open_sound = { filename = "__base__/sound/car-door-open.ogg", volume = 0.7 }, + close_sound = { filename = "__base__/sound/car-door-close.ogg", volume = 0.7 }, + rotation_speed = 0.01, + tank_driving = true, + weight = 20000, + inventory_size = 100, + guns = {"tank-cannon-3", "tank-artillery-2", "tank-laser", "gatling-gun"}, + equipment_grid = "bob-tank-3", + }, +} +) + diff --git a/bobwarfare_0.14.0/prototypes/entity/turrets.lua b/bobwarfare_0.14.1/prototypes/entity/turrets.lua similarity index 97% rename from bobwarfare_0.14.0/prototypes/entity/turrets.lua rename to bobwarfare_0.14.1/prototypes/entity/turrets.lua index d185d8f..c25e1bc 100644 --- a/bobwarfare_0.14.0/prototypes/entity/turrets.lua +++ b/bobwarfare_0.14.1/prototypes/entity/turrets.lua @@ -1,463 +1,463 @@ -data.raw["ammo-turret"]["gun-turret"].fast_replaceable_group = "turret" -data.raw["electric-turret"]["laser-turret"].fast_replaceable_group = "turret" - -local black = {r=0, g=0, b=0, a=1} ---local red = {r=1, g=0, b=0, a=1} ---local green = {r=0, g=1, b=0, a=1} ---local yellow = {r=1, g=1, b=0, a=1} ---local blue = {r=0, g=0, b=1, a=1} -local magenta = {r=1, g=0, b=1, a=1} -local cyan = {r=0, g=1, b=1, a=1} -local white = {r=1, g=1, b=1, a=1} - -local orange = {r=1, g=0.5, b=0, a=1} ---local purple = {r=0.7, g=0, b=1, a=1} - -local blue = {r=0.5, g=0.8, b=1, a=1} -local purple = {r=0.8, g=0.5, b=1, a=1} -local yellow = {r=1, g=1, b=0.5, a=1} -local red = {r=1, g=0.5, b=0.5, a=1} -local green = {r=0.5, g=1, b=0.5, a=1} - - - -function bob_gun_turret_extension(inputs) -return -{ - layers = - { - { - filename = "__base__/graphics/entity/gun-turret/gun-turret-gun-extension.png", - priority = "medium", - width = 65, - height = 63, - direction_count = 4, - frame_count = inputs.frame_count and inputs.frame_count or 5, - line_length = inputs.line_length and inputs.line_length or 0, - run_mode = inputs.run_mode and inputs.run_mode or "forward", - shift = {0.078125, -0.859375}, - axially_symmetrical = false - }, - { - filename = "__base__/graphics/entity/gun-turret/gun-turret-gun-extension-mask.png", - tint = inputs.tint and inputs.tint or white, - frame_count = inputs.frame_count and inputs.frame_count or 5, - line_length = inputs.line_length and inputs.line_length or 0, - width = 24, - height = 31, - direction_count = 4, - axially_symmetrical = false, - shift = {0.0625, -0.890625}, - run_mode = inputs.run_mode and inputs.run_mode or "forward", - }, - { - filename = "__base__/graphics/entity/gun-turret/gun-turret-gun-extension-shadow.png", - width = 89, - height = 49, - direction_count = 4, - frame_count = inputs.frame_count and inputs.frame_count or 5, - line_length = inputs.line_length and inputs.line_length or 0, - run_mode = inputs.run_mode and inputs.run_mode or "forward", - shift = {1.26563, 0.015625}, - axially_symmetrical = false, - draw_as_shadow = true - } - } -} -end - -function bob_gun_turret_attack(inputs) -return -{ - layers = - { - { - width = 66, - height = 64, - frame_count = inputs.frame_count and inputs.frame_count or 2, - axially_symmetrical = false, - direction_count = 64, - shift = {0.0625, -0.875}, - stripes = - { - { - filename = "__base__/graphics/entity/gun-turret/gun-turret-gun-1.png", - width_in_frames = inputs.frame_count and inputs.frame_count or 2, - height_in_frames = 32, - }, - { - filename = "__base__/graphics/entity/gun-turret/gun-turret-gun-2.png", - width_in_frames = inputs.frame_count and inputs.frame_count or 2, - height_in_frames = 32, - } - } - }, - { - filename = "__base__/graphics/entity/gun-turret/gun-turret-gun-mask.png", - line_length = inputs.frame_count and inputs.frame_count or 2, - width = 29, - height = 27, - frame_count = inputs.frame_count and inputs.frame_count or 2, - axially_symmetrical = false, - direction_count = 64, - shift = {0.078125, -1.01563}, - tint = inputs.tint and inputs.tint or white, - }, - { - width = 91, - height = 50, - frame_count = inputs.frame_count and inputs.frame_count or 2, - axially_symmetrical = false, - direction_count = 64, - shift = {1.29688, 0}, - draw_as_shadow = true, - stripes = - { - { - filename = "__base__/graphics/entity/gun-turret/gun-turret-gun-shadow-1.png", - width_in_frames = inputs.frame_count and inputs.frame_count or 2, - height_in_frames = 32, - }, - { - filename = "__base__/graphics/entity/gun-turret/gun-turret-gun-shadow-2.png", - width_in_frames = inputs.frame_count and inputs.frame_count or 2, - height_in_frames = 32, - } - } - } - } -} -end - -function bob_gun_turret_base(inputs) -return -{ - layers = - { - { - filename = "__base__/graphics/entity/gun-turret/gun-turret-base.png", - priority = "high", - width = 90, - height = 75, - frame_count = 1, - axially_symmetrical = false, - direction_count = 1, - shift = {0.0625, -0.046875}, - }, - { - filename = "__base__/graphics/entity/gun-turret/gun-turret-base-mask.png", - line_length = 1, - width = 52, - height = 47, - frame_count = 1, - axially_symmetrical = false, - direction_count = 1, - shift = {0.0625, -0.234375}, - tint = inputs.tint and inputs.tint or white, - } - } -} -end - - - -function bob_laser_turret_extension(inputs) -return -{ - layers = - { - laser_turret_extension(inputs), - { - filename = "__base__/graphics/entity/laser-turret/laser-turret-gun-start-mask.png", - tint = inputs.tint and inputs.tint or white, - frame_count = inputs.frame_count and inputs.frame_count or 15, - line_length = inputs.line_length and inputs.line_length or 0, - width = 51, - height = 47, - direction_count = 4, - axially_symmetrical = false, - shift = {0.078125, -1.26563}, - run_mode = inputs.run_mode and inputs.run_mode or "forward", - }, - laser_turret_extension_shadow(inputs) - } -} -end - -function bob_laser_turret_attack(inputs) -return -{ - layers = - { - { - filename = "__base__/graphics/entity/laser-turret/laser-turret-gun.png", - line_length = 8, - width = 68, - height = 68, - frame_count = 1, - axially_symmetrical = false, - direction_count = 64, - shift = {0.0625, -1} - }, - { - filename = "__base__/graphics/entity/laser-turret/laser-turret-gun-mask.png", - line_length = 8, - width = 54, - height = 44, - frame_count = 1, - axially_symmetrical = false, - tint = inputs.tint and inputs.tint or white, - direction_count = 64, - shift = {0.0625, -1.3125}, - }, - { - filename = "__base__/graphics/entity/laser-turret/laser-turret-gun-shadow.png", - line_length = 8, - width = 88, - height = 52, - frame_count = 1, - axially_symmetrical = false, - direction_count = 64, - draw_as_shadow = true, - shift = {1.59375, 0} - } - } -} -end - -function bob_laser_turret_base(inputs) -return -{ - layers = - { - { - filename = "__base__/graphics/entity/laser-turret/laser-turret-base.png", - priority = "high", - width = 98, - height = 82, - frame_count = 1, - axially_symmetrical = false, - direction_count = 1, - shift = { 0.109375, 0.03125 } - }, - { - filename = "__base__/graphics/entity/laser-turret/laser-turret-base-mask.png", - line_length = 1, - width = 54, - height = 46, - frame_count = 1, - axially_symmetrical = false, - tint = inputs.tint and inputs.tint or white, - direction_count = 1, - shift = {0.046875, -0.109375}, - } - } -} -end - - - -function bob_turret_base(inputs) - local anim - if inputs.type == "gun" then - anim = bob_gun_turret_base{tint = inputs.tint} - else - anim = bob_laser_turret_base{tint = inputs.tint} - end - return anim -end - -function bob_turret_attack(inputs) - local anim - if inputs.type == "gun" then - anim = bob_gun_turret_attack(inputs) - else - anim = bob_laser_turret_attack(inputs) - end - return anim -end - -function bob_turret_extension(inputs) - local anim - if inputs.type == "gun" then - anim = bob_gun_turret_extension(inputs) - else - anim = bob_laser_turret_extension(inputs) - end - return anim -end - - -function bob_gun_turret(inputs) -return - { - type = "ammo-turret", - name = inputs.name, - icon = "__base__/graphics/icons/gun-turret.png", - flags = {"placeable-player", "player-creation"}, - minable = {mining_time = 0.5, result = inputs.name}, - max_health = inputs.health, - corpse = "medium-remnants", - collision_box = {{-0.7, -0.7 }, {0.7, 0.7}}, - selection_box = {{-1, -1 }, {1, 1}}, - rotation_speed = 0.015, - preparing_speed = 0.08, - folding_speed = 0.08, - dying_explosion = "medium-explosion", - inventory_size = inputs.inventory_size and inputs.inventory_size or 1, - automated_ammo_count = inputs.automated_ammo_count and inputs.automated_ammo_count or 10, - fast_replaceable_group = "turret", - attacking_speed = 0.5, - folded_animation = bob_turret_extension{frame_count=1, line_length = 1, type = inputs.gun_type, tint = inputs.tint}, - preparing_animation = bob_turret_extension{type = inputs.gun_type, tint = inputs.tint}, - folding_animation = bob_turret_extension{run_mode = "backward", type = inputs.gun_type, tint = inputs.tint}, - prepared_animation = bob_turret_attack{frame_count=1, type = inputs.gun_type, tint = inputs.tint}, - attacking_animation = bob_turret_attack{type = inputs.gun_type, tint = inputs.tint}, - base_picture = inputs.base, - vehicle_impact_sound = { filename = "__base__/sound/car-metal-impact.ogg", volume = 0.65 }, - attack_parameters = - { - type = "projectile", - ammo_category = inputs.ammo_category and inputs.ammo_category or "bullet", - cooldown = inputs.cooldown and inputs.cooldown or 6, - projectile_creation_distance = 1.39375, - projectile_center = {0.0625, -0.0875}, -- same as gun_turret_attack shift - damage_modifier = inputs.damage_modifier and inputs.damage_modifier or 2, - range = inputs.range and inputs.range or 17, - shell_particle = - { - name = "shell-particle", - direction_deviation = 0.1, - speed = 0.1, - speed_deviation = 0.03, - center = {0, 0}, - creation_distance = -1.925, - starting_frame_speed = 0.2, - starting_frame_speed_deviation = 0.1 - }, - sound = make_heavy_gunshot_sounds(), - }, - call_for_help_radius = 40 - } -end - - - - - -function bob_laser_turret(inputs) -return - { - type = "electric-turret", - name = inputs.name, - icon = "__base__/graphics/icons/laser-turret.png", - flags = { "placeable-player", "placeable-enemy", "player-creation"}, - minable = { mining_time = 0.5, result = inputs.name }, - max_health = inputs.health, - corpse = "medium-remnants", - collision_box = {{ -0.7, -0.7}, {0.7, 0.7}}, - selection_box = {{ -1, -1}, {1, 1}}, - dying_explosion = "medium-explosion", - rotation_speed = 0.01, - preparing_speed = 0.05, - folding_speed = 0.05, - fast_replaceable_group = "turret", - energy_source = - { - type = "electric", - buffer_capacity = inputs.buffer_capacity and inputs.buffer_capacity or "801kJ", - input_flow_limit = inputs.input_flow_limit and inputs.input_flow_limit or "4800kW", - drain = inputs.drain and inputs.drain or "24kW", - usage_priority = "primary-input" - }, - folded_animation = bob_laser_turret_extension{frame_count=1, line_length = 1, tint = inputs.tint}, - preparing_animation = bob_laser_turret_extension{tint = inputs.tint}, - folding_animation = bob_laser_turret_extension{run_mode = "backward", tint = inputs.tint}, - prepared_animation = bob_laser_turret_attack{tint = inputs.tint}, - base_picture = inputs.base, - vehicle_impact_sound = { filename = "__base__/sound/car-metal-impact.ogg", volume = 0.65 }, - attack_parameters = - { - type = "projectile", - ammo_category = "electric", - cooldown = inputs.cooldown and inputs.cooldown or 20, - damage_modifier = inputs.damage_modifier and inputs.damage_modifier or 4, - projectile_center = {0, -0.2}, - projectile_creation_distance = 1.4, - range = inputs.range and inputs.range or 25, - ammo_type = - { - type = "projectile", - category = "laser-turret", - energy_consumption = inputs.energy_consumption and inputs.energy_consumption or "800kJ", - action = - { - { - type = "direct", - action_delivery = - { - { - type = "projectile", - projectile = inputs.projectile and inputs.projectile or "laser", - starting_speed = 0.28 - } - } - } - } - }, - sound = make_laser_sounds(), ---[[ - type = "beam", - ammo_category = "electric", - cooldown = inputs.cooldown and inputs.cooldown or 20, - damage_modifier = inputs.damage_modifier and inputs.damage_modifier or 4, - projectile_center = {0, -0.2}, - projectile_creation_distance = 1.4, - range = inputs.range and inputs.range or 25, - ammo_type = - { - type = "beam", - category = "laser-turret", - energy_consumption = inputs.energy_consumption and inputs.energy_consumption or "800kJ", - action = - { - type = "direct", - action_delivery = - { - type = "beam", - beam = "electric-beam", - --projectile = inputs.projectile and inputs.projectile or "laser", - max_length = 25, - duration = 20, - } - } - }, -]]-- - }, - call_for_help_radius = 40 - } -end - - -data:extend( -{ --- bob_gun_turret{name = "gun-turret", health = 400, inventory_size = 1, automated_ammo_count = 10, ammo_category = "bullet", damage_modifier = 2, cooldown = 6, range = 17, tint = white, , base_tint = white}, - bob_gun_turret{name = "bob-gun-turret-2", health = 500, inventory_size = 1, automated_ammo_count = 10, ammo_category = "bullet", damage_modifier = 2.5, cooldown = 6, range = 18, tint = blue, gun_type = "gun", base = bob_turret_base{type = "gun", tint = blue}}, - bob_gun_turret{name = "bob-gun-turret-3", health = 600, inventory_size = 2, automated_ammo_count = 20, ammo_category = "bullet", damage_modifier = 3, cooldown = 6, range = 19, tint = purple, gun_type = "gun", base = bob_turret_base{type = "gun", tint = blue}}, - bob_gun_turret{name = "bob-gun-turret-4", health = 700, inventory_size = 2, automated_ammo_count = 20, ammo_category = "bullet", damage_modifier = 3.5, cooldown = 6, range = 20, tint = green, gun_type = "gun", base = bob_turret_base{type = "gun", tint = blue}}, - bob_gun_turret{name = "bob-gun-turret-5", health = 800, inventory_size = 3, automated_ammo_count = 30, ammo_category = "bullet", damage_modifier = 4, cooldown = 6, range = 20, tint = red, gun_type = "gun", base = bob_turret_base{type = "gun", tint = blue}}, - - bob_gun_turret{name = "bob-sniper-turret-1", health = 400, inventory_size = 1, automated_ammo_count = 10, ammo_category = "bullet", damage_modifier = 25, cooldown = 150, range = 30, tint = blue, gun_type = "laser", base = bob_turret_base{type = "gun", tint = red}}, - bob_gun_turret{name = "bob-sniper-turret-2", health = 600, inventory_size = 1, automated_ammo_count = 10, ammo_category = "bullet", damage_modifier = 30, cooldown = 120, range = 32.5, tint = purple, gun_type = "laser", base = bob_turret_base{type = "gun", tint = red}}, - bob_gun_turret{name = "bob-sniper-turret-3", health = 800, inventory_size = 1, automated_ammo_count = 10, ammo_category = "bullet", damage_modifier = 35, cooldown = 105, range = 35, tint = red, gun_type = "laser", base = bob_turret_base{type = "gun", tint = red}}, - --- bob_laser_turret{name = "laser-turret", health = 1000, buffer_capacity = "801kJ", input_flow_limit = "4800kW", drain = "24kW", energy_consumption = "800kJ", projectile = "laser", damage_modifier = 4, cooldown = 20, range = 25, tint = white, base_tint = white}, - bob_laser_turret{name = "bob-laser-turret-2", health = 1200, buffer_capacity = "2001kJ", input_flow_limit = "8000kW", drain = "30kW", energy_consumption = "1000kJ", projectile = "bob-blue-laser", damage_modifier = 6, cooldown = 20, range = 26.25, tint = blue, base = bob_turret_base{type = "laser", tint = yellow}}, - bob_laser_turret{name = "bob-laser-turret-3", health = 1400, buffer_capacity = "3601kJ", input_flow_limit = "12000kW", drain = "36kW", energy_consumption = "1200kJ", projectile = "bob-green-laser", damage_modifier = 8.4, cooldown = 20, range = 27.5, tint = green, base = bob_turret_base{type = "laser", tint = yellow}}, - bob_laser_turret{name = "bob-laser-turret-4", health = 1600, buffer_capacity = "5601kJ", input_flow_limit = "16800kW", drain = "42kW", energy_consumption = "1400kJ", projectile = "bob-yellow-laser", damage_modifier = 11.2, cooldown = 20, range = 28.75, tint = yellow, base = bob_turret_base{type = "laser", tint = yellow}}, - bob_laser_turret{name = "bob-laser-turret-5", health = 2000, buffer_capacity = "8001kJ", input_flow_limit = "19200kW", drain = "48kW", energy_consumption = "1600kJ", projectile = "bob-white-laser", damage_modifier = 14.4, cooldown = 20, range = 30, tint = red, base = bob_turret_base{type = "laser", tint = yellow}}, -} -) - - - +data.raw["ammo-turret"]["gun-turret"].fast_replaceable_group = "turret" +data.raw["electric-turret"]["laser-turret"].fast_replaceable_group = "turret" + +local black = {r=0, g=0, b=0, a=1} +--local red = {r=1, g=0, b=0, a=1} +--local green = {r=0, g=1, b=0, a=1} +--local yellow = {r=1, g=1, b=0, a=1} +--local blue = {r=0, g=0, b=1, a=1} +local magenta = {r=1, g=0, b=1, a=1} +local cyan = {r=0, g=1, b=1, a=1} +local white = {r=1, g=1, b=1, a=1} + +local orange = {r=1, g=0.5, b=0, a=1} +--local purple = {r=0.7, g=0, b=1, a=1} + +local blue = {r=0.5, g=0.8, b=1, a=1} +local purple = {r=0.8, g=0.5, b=1, a=1} +local yellow = {r=1, g=1, b=0.5, a=1} +local red = {r=1, g=0.5, b=0.5, a=1} +local green = {r=0.5, g=1, b=0.5, a=1} + + + +function bob_gun_turret_extension(inputs) +return +{ + layers = + { + { + filename = "__base__/graphics/entity/gun-turret/gun-turret-gun-extension.png", + priority = "medium", + width = 65, + height = 63, + direction_count = 4, + frame_count = inputs.frame_count and inputs.frame_count or 5, + line_length = inputs.line_length and inputs.line_length or 0, + run_mode = inputs.run_mode and inputs.run_mode or "forward", + shift = {0.078125, -0.859375}, + axially_symmetrical = false + }, + { + filename = "__base__/graphics/entity/gun-turret/gun-turret-gun-extension-mask.png", + tint = inputs.tint and inputs.tint or white, + frame_count = inputs.frame_count and inputs.frame_count or 5, + line_length = inputs.line_length and inputs.line_length or 0, + width = 24, + height = 31, + direction_count = 4, + axially_symmetrical = false, + shift = {0.0625, -0.890625}, + run_mode = inputs.run_mode and inputs.run_mode or "forward", + }, + { + filename = "__base__/graphics/entity/gun-turret/gun-turret-gun-extension-shadow.png", + width = 89, + height = 49, + direction_count = 4, + frame_count = inputs.frame_count and inputs.frame_count or 5, + line_length = inputs.line_length and inputs.line_length or 0, + run_mode = inputs.run_mode and inputs.run_mode or "forward", + shift = {1.26563, 0.015625}, + axially_symmetrical = false, + draw_as_shadow = true + } + } +} +end + +function bob_gun_turret_attack(inputs) +return +{ + layers = + { + { + width = 66, + height = 64, + frame_count = inputs.frame_count and inputs.frame_count or 2, + axially_symmetrical = false, + direction_count = 64, + shift = {0.0625, -0.875}, + stripes = + { + { + filename = "__base__/graphics/entity/gun-turret/gun-turret-gun-1.png", + width_in_frames = inputs.frame_count and inputs.frame_count or 2, + height_in_frames = 32, + }, + { + filename = "__base__/graphics/entity/gun-turret/gun-turret-gun-2.png", + width_in_frames = inputs.frame_count and inputs.frame_count or 2, + height_in_frames = 32, + } + } + }, + { + filename = "__base__/graphics/entity/gun-turret/gun-turret-gun-mask.png", + line_length = inputs.frame_count and inputs.frame_count or 2, + width = 29, + height = 27, + frame_count = inputs.frame_count and inputs.frame_count or 2, + axially_symmetrical = false, + direction_count = 64, + shift = {0.078125, -1.01563}, + tint = inputs.tint and inputs.tint or white, + }, + { + width = 91, + height = 50, + frame_count = inputs.frame_count and inputs.frame_count or 2, + axially_symmetrical = false, + direction_count = 64, + shift = {1.29688, 0}, + draw_as_shadow = true, + stripes = + { + { + filename = "__base__/graphics/entity/gun-turret/gun-turret-gun-shadow-1.png", + width_in_frames = inputs.frame_count and inputs.frame_count or 2, + height_in_frames = 32, + }, + { + filename = "__base__/graphics/entity/gun-turret/gun-turret-gun-shadow-2.png", + width_in_frames = inputs.frame_count and inputs.frame_count or 2, + height_in_frames = 32, + } + } + } + } +} +end + +function bob_gun_turret_base(inputs) +return +{ + layers = + { + { + filename = "__base__/graphics/entity/gun-turret/gun-turret-base.png", + priority = "high", + width = 90, + height = 75, + frame_count = 1, + axially_symmetrical = false, + direction_count = 1, + shift = {0.0625, -0.046875}, + }, + { + filename = "__base__/graphics/entity/gun-turret/gun-turret-base-mask.png", + line_length = 1, + width = 52, + height = 47, + frame_count = 1, + axially_symmetrical = false, + direction_count = 1, + shift = {0.0625, -0.234375}, + tint = inputs.tint and inputs.tint or white, + } + } +} +end + + + +function bob_laser_turret_extension(inputs) +return +{ + layers = + { + laser_turret_extension(inputs), + { + filename = "__base__/graphics/entity/laser-turret/laser-turret-gun-start-mask.png", + tint = inputs.tint and inputs.tint or white, + frame_count = inputs.frame_count and inputs.frame_count or 15, + line_length = inputs.line_length and inputs.line_length or 0, + width = 51, + height = 47, + direction_count = 4, + axially_symmetrical = false, + shift = {0.078125, -1.26563}, + run_mode = inputs.run_mode and inputs.run_mode or "forward", + }, + laser_turret_extension_shadow(inputs) + } +} +end + +function bob_laser_turret_attack(inputs) +return +{ + layers = + { + { + filename = "__base__/graphics/entity/laser-turret/laser-turret-gun.png", + line_length = 8, + width = 68, + height = 68, + frame_count = 1, + axially_symmetrical = false, + direction_count = 64, + shift = {0.0625, -1} + }, + { + filename = "__base__/graphics/entity/laser-turret/laser-turret-gun-mask.png", + line_length = 8, + width = 54, + height = 44, + frame_count = 1, + axially_symmetrical = false, + tint = inputs.tint and inputs.tint or white, + direction_count = 64, + shift = {0.0625, -1.3125}, + }, + { + filename = "__base__/graphics/entity/laser-turret/laser-turret-gun-shadow.png", + line_length = 8, + width = 88, + height = 52, + frame_count = 1, + axially_symmetrical = false, + direction_count = 64, + draw_as_shadow = true, + shift = {1.59375, 0} + } + } +} +end + +function bob_laser_turret_base(inputs) +return +{ + layers = + { + { + filename = "__base__/graphics/entity/laser-turret/laser-turret-base.png", + priority = "high", + width = 98, + height = 82, + frame_count = 1, + axially_symmetrical = false, + direction_count = 1, + shift = { 0.109375, 0.03125 } + }, + { + filename = "__base__/graphics/entity/laser-turret/laser-turret-base-mask.png", + line_length = 1, + width = 54, + height = 46, + frame_count = 1, + axially_symmetrical = false, + tint = inputs.tint and inputs.tint or white, + direction_count = 1, + shift = {0.046875, -0.109375}, + } + } +} +end + + + +function bob_turret_base(inputs) + local anim + if inputs.type == "gun" then + anim = bob_gun_turret_base{tint = inputs.tint} + else + anim = bob_laser_turret_base{tint = inputs.tint} + end + return anim +end + +function bob_turret_attack(inputs) + local anim + if inputs.type == "gun" then + anim = bob_gun_turret_attack(inputs) + else + anim = bob_laser_turret_attack(inputs) + end + return anim +end + +function bob_turret_extension(inputs) + local anim + if inputs.type == "gun" then + anim = bob_gun_turret_extension(inputs) + else + anim = bob_laser_turret_extension(inputs) + end + return anim +end + + +function bob_gun_turret(inputs) +return + { + type = "ammo-turret", + name = inputs.name, + icon = "__base__/graphics/icons/gun-turret.png", + flags = {"placeable-player", "player-creation"}, + minable = {mining_time = 0.5, result = inputs.name}, + max_health = inputs.health, + corpse = "medium-remnants", + collision_box = {{-0.7, -0.7 }, {0.7, 0.7}}, + selection_box = {{-1, -1 }, {1, 1}}, + rotation_speed = 0.015, + preparing_speed = 0.08, + folding_speed = 0.08, + dying_explosion = "medium-explosion", + inventory_size = inputs.inventory_size and inputs.inventory_size or 1, + automated_ammo_count = inputs.automated_ammo_count and inputs.automated_ammo_count or 10, + fast_replaceable_group = "turret", + attacking_speed = 0.5, + folded_animation = bob_turret_extension{frame_count=1, line_length = 1, type = inputs.gun_type, tint = inputs.tint}, + preparing_animation = bob_turret_extension{type = inputs.gun_type, tint = inputs.tint}, + folding_animation = bob_turret_extension{run_mode = "backward", type = inputs.gun_type, tint = inputs.tint}, + prepared_animation = bob_turret_attack{frame_count=1, type = inputs.gun_type, tint = inputs.tint}, + attacking_animation = bob_turret_attack{type = inputs.gun_type, tint = inputs.tint}, + base_picture = inputs.base, + vehicle_impact_sound = { filename = "__base__/sound/car-metal-impact.ogg", volume = 0.65 }, + attack_parameters = + { + type = "projectile", + ammo_category = inputs.ammo_category and inputs.ammo_category or "bullet", + cooldown = inputs.cooldown and inputs.cooldown or 6, + projectile_creation_distance = 1.39375, + projectile_center = {0.0625, -0.0875}, -- same as gun_turret_attack shift + damage_modifier = inputs.damage_modifier and inputs.damage_modifier or 2, + range = inputs.range and inputs.range or 17, + shell_particle = + { + name = "shell-particle", + direction_deviation = 0.1, + speed = 0.1, + speed_deviation = 0.03, + center = {0, 0}, + creation_distance = -1.925, + starting_frame_speed = 0.2, + starting_frame_speed_deviation = 0.1 + }, + sound = make_heavy_gunshot_sounds(), + }, + call_for_help_radius = 40 + } +end + + + + + +function bob_laser_turret(inputs) +return + { + type = "electric-turret", + name = inputs.name, + icon = "__base__/graphics/icons/laser-turret.png", + flags = { "placeable-player", "placeable-enemy", "player-creation"}, + minable = { mining_time = 0.5, result = inputs.name }, + max_health = inputs.health, + corpse = "medium-remnants", + collision_box = {{ -0.7, -0.7}, {0.7, 0.7}}, + selection_box = {{ -1, -1}, {1, 1}}, + dying_explosion = "medium-explosion", + rotation_speed = 0.01, + preparing_speed = 0.05, + folding_speed = 0.05, + fast_replaceable_group = "turret", + energy_source = + { + type = "electric", + buffer_capacity = inputs.buffer_capacity and inputs.buffer_capacity or "801kJ", + input_flow_limit = inputs.input_flow_limit and inputs.input_flow_limit or "4800kW", + drain = inputs.drain and inputs.drain or "24kW", + usage_priority = "primary-input" + }, + folded_animation = bob_laser_turret_extension{frame_count=1, line_length = 1, tint = inputs.tint}, + preparing_animation = bob_laser_turret_extension{tint = inputs.tint}, + folding_animation = bob_laser_turret_extension{run_mode = "backward", tint = inputs.tint}, + prepared_animation = bob_laser_turret_attack{tint = inputs.tint}, + base_picture = inputs.base, + vehicle_impact_sound = { filename = "__base__/sound/car-metal-impact.ogg", volume = 0.65 }, + attack_parameters = + { + type = "projectile", + ammo_category = "electric", + cooldown = inputs.cooldown and inputs.cooldown or 20, + damage_modifier = inputs.damage_modifier and inputs.damage_modifier or 4, + projectile_center = {0, -0.2}, + projectile_creation_distance = 1.4, + range = inputs.range and inputs.range or 25, + ammo_type = + { + type = "projectile", + category = "laser-turret", + energy_consumption = inputs.energy_consumption and inputs.energy_consumption or "800kJ", + action = + { + { + type = "direct", + action_delivery = + { + { + type = "projectile", + projectile = inputs.projectile and inputs.projectile or "laser", + starting_speed = 0.28 + } + } + } + } + }, + sound = make_laser_sounds(), +--[[ + type = "beam", + ammo_category = "electric", + cooldown = inputs.cooldown and inputs.cooldown or 20, + damage_modifier = inputs.damage_modifier and inputs.damage_modifier or 4, + projectile_center = {0, -0.2}, + projectile_creation_distance = 1.4, + range = inputs.range and inputs.range or 25, + ammo_type = + { + type = "beam", + category = "laser-turret", + energy_consumption = inputs.energy_consumption and inputs.energy_consumption or "800kJ", + action = + { + type = "direct", + action_delivery = + { + type = "beam", + beam = "electric-beam", + --projectile = inputs.projectile and inputs.projectile or "laser", + max_length = 25, + duration = 20, + } + } + }, +]]-- + }, + call_for_help_radius = 40 + } +end + + +data:extend( +{ +-- bob_gun_turret{name = "gun-turret", health = 400, inventory_size = 1, automated_ammo_count = 10, ammo_category = "bullet", damage_modifier = 2, cooldown = 6, range = 17, tint = white, , base_tint = white}, + bob_gun_turret{name = "bob-gun-turret-2", health = 500, inventory_size = 1, automated_ammo_count = 10, ammo_category = "bullet", damage_modifier = 2.5, cooldown = 6, range = 18, tint = blue, gun_type = "gun", base = bob_turret_base{type = "gun", tint = blue}}, + bob_gun_turret{name = "bob-gun-turret-3", health = 600, inventory_size = 2, automated_ammo_count = 20, ammo_category = "bullet", damage_modifier = 3, cooldown = 6, range = 19, tint = purple, gun_type = "gun", base = bob_turret_base{type = "gun", tint = blue}}, + bob_gun_turret{name = "bob-gun-turret-4", health = 700, inventory_size = 2, automated_ammo_count = 20, ammo_category = "bullet", damage_modifier = 3.5, cooldown = 6, range = 20, tint = green, gun_type = "gun", base = bob_turret_base{type = "gun", tint = blue}}, + bob_gun_turret{name = "bob-gun-turret-5", health = 800, inventory_size = 3, automated_ammo_count = 30, ammo_category = "bullet", damage_modifier = 4, cooldown = 6, range = 20, tint = red, gun_type = "gun", base = bob_turret_base{type = "gun", tint = blue}}, + + bob_gun_turret{name = "bob-sniper-turret-1", health = 400, inventory_size = 1, automated_ammo_count = 10, ammo_category = "bullet", damage_modifier = 25, cooldown = 150, range = 30, tint = blue, gun_type = "laser", base = bob_turret_base{type = "gun", tint = red}}, + bob_gun_turret{name = "bob-sniper-turret-2", health = 600, inventory_size = 1, automated_ammo_count = 10, ammo_category = "bullet", damage_modifier = 30, cooldown = 120, range = 32.5, tint = purple, gun_type = "laser", base = bob_turret_base{type = "gun", tint = red}}, + bob_gun_turret{name = "bob-sniper-turret-3", health = 800, inventory_size = 1, automated_ammo_count = 10, ammo_category = "bullet", damage_modifier = 35, cooldown = 105, range = 35, tint = red, gun_type = "laser", base = bob_turret_base{type = "gun", tint = red}}, + +-- bob_laser_turret{name = "laser-turret", health = 1000, buffer_capacity = "801kJ", input_flow_limit = "4800kW", drain = "24kW", energy_consumption = "800kJ", projectile = "laser", damage_modifier = 4, cooldown = 20, range = 25, tint = white, base_tint = white}, + bob_laser_turret{name = "bob-laser-turret-2", health = 1200, buffer_capacity = "2001kJ", input_flow_limit = "8000kW", drain = "30kW", energy_consumption = "1000kJ", projectile = "bob-blue-laser", damage_modifier = 6, cooldown = 20, range = 26.25, tint = blue, base = bob_turret_base{type = "laser", tint = yellow}}, + bob_laser_turret{name = "bob-laser-turret-3", health = 1400, buffer_capacity = "3601kJ", input_flow_limit = "12000kW", drain = "36kW", energy_consumption = "1200kJ", projectile = "bob-green-laser", damage_modifier = 8.4, cooldown = 20, range = 27.5, tint = green, base = bob_turret_base{type = "laser", tint = yellow}}, + bob_laser_turret{name = "bob-laser-turret-4", health = 1600, buffer_capacity = "5601kJ", input_flow_limit = "16800kW", drain = "42kW", energy_consumption = "1400kJ", projectile = "bob-yellow-laser", damage_modifier = 11.2, cooldown = 20, range = 28.75, tint = yellow, base = bob_turret_base{type = "laser", tint = yellow}}, + bob_laser_turret{name = "bob-laser-turret-5", health = 2000, buffer_capacity = "8001kJ", input_flow_limit = "19200kW", drain = "48kW", energy_consumption = "1600kJ", projectile = "bob-white-laser", damage_modifier = 14.4, cooldown = 20, range = 30, tint = red, base = bob_turret_base{type = "laser", tint = yellow}}, +} +) + + + diff --git a/bobwarfare_0.14.0/prototypes/entity/wall.lua b/bobwarfare_0.14.1/prototypes/entity/wall.lua similarity index 96% rename from bobwarfare_0.14.0/prototypes/entity/wall.lua rename to bobwarfare_0.14.1/prototypes/entity/wall.lua index 01d1045..763b192 100644 --- a/bobwarfare_0.14.0/prototypes/entity/wall.lua +++ b/bobwarfare_0.14.1/prototypes/entity/wall.lua @@ -1,800 +1,800 @@ -local reinforced_wall_resistances = { - { - type = "physical", - decrease = 10, - percent = 50 - }, - { - type = "impact", - decrease = 50, - percent = 60 - }, - { - type = "explosion", - decrease = 10, - percent = 50 - }, - { - type = "fire", - percent = 100 - }, - { - type = "laser", - percent = 100 - }, - { - type = "poison", - decrease = 10, - percent = 50 - }, - { - type = "acid", - decrease = 10, - percent = 25 - }, - { - type = "electric", - percent = 50 - }, - { - type = "bob-pierce", - decrease = 20, - percent = 25 - } -} - - - -data:extend( -{ - { - type = "wall", - name = "reinforced-wall", - icon = "__bobwarfare__/graphics/icons/reinforced-wall.png", - flags = {"placeable-neutral", "player-creation"}, - collision_box = {{-0.29, -0.29}, {0.29, 0.29}}, - selection_box = {{-0.5, -0.5}, {0.5, 0.5}}, - minable = {mining_time = 1, result = "reinforced-wall"}, - fast_replaceable_group = "wall", - max_health = 750, - repair_speed_modifier = 2, - corpse = "wall-remnants", - repair_sound = { filename = "__base__/sound/manual-repair-simple.ogg" }, - mined_sound = { filename = "__base__/sound/deconstruct-bricks.ogg" }, - -- this kind of code can be used for having walls mirror the effect - -- there can be multiple reaction items - --attack_reaction = - --{ - --{ - ---- how far the mirroring works - --range = 2, - ---- what kind of damage triggers the mirroring - ---- if not present then anything triggers the mirroring - --damage_type = "physical", - ---- caused damage will be multiplied by this and added to the subsequent damages - --reaction_modifier = 0.1, - --action = - --{ - --type = "direct", - --action_delivery = - --{ - --type = "instant", - --target_effects = - --{ - --type = "damage", - ---- always use at least 0.1 damage - --damage = {amount = 0.1, type = "physical"} - --} - --} - --}, - --} - --}, - connected_gate_visualization = - { - filename = "__core__/graphics/arrows/underground-lines.png", - priority = "high", - width = 64, - height = 64, - scale = 0.5 - }, - resistances = reinforced_wall_resistances, - pictures = - { - single = - { - layers = - { - { - filename = "__bobwarfare__/graphics/entities/reinforced-wall/wall-single.png", - priority = "extra-high", - width = 22, - height = 42, - shift = {0, -0.15625} - }, - { - filename = "__bobwarfare__/graphics/entities/reinforced-wall/wall-single-shadow.png", - priority = "extra-high", - width = 47, - height = 32, - shift = {0.359375, 0.5}, - draw_as_shadow = true - } - } - }, - straight_vertical = - { - { - layers = - { - { - filename = "__bobwarfare__/graphics/entities/reinforced-wall/wall-straight-vertical-1.png", - priority = "extra-high", - width = 22, - height = 42, - shift = {0, -0.15625} - }, - { - filename = "__bobwarfare__/graphics/entities/reinforced-wall/wall-straight-vertical-shadow.png", - priority = "extra-high", - width = 47, - height = 60, - shift = {0.390625, 0.625}, - draw_as_shadow = true - } - } - }, - { - layers = - { - { - filename = "__bobwarfare__/graphics/entities/reinforced-wall/wall-straight-vertical-2.png", - priority = "extra-high", - width = 22, - height = 42, - shift = {0, -0.15625} - }, - { - filename = "__bobwarfare__/graphics/entities/reinforced-wall/wall-straight-vertical-shadow.png", - priority = "extra-high", - width = 47, - height = 60, - shift = {0.390625, 0.625}, - draw_as_shadow = true - } - } - }, - { - layers = - { - { - filename = "__bobwarfare__/graphics/entities/reinforced-wall/wall-straight-vertical-3.png", - priority = "extra-high", - width = 22, - height = 42, - shift = {0, -0.15625} - }, - { - filename = "__bobwarfare__/graphics/entities/reinforced-wall/wall-straight-vertical-shadow.png", - priority = "extra-high", - width = 47, - height = 60, - shift = {0.390625, 0.625}, - draw_as_shadow = true - } - } - } - }, - straight_horizontal = - { - { - layers = - { - { - filename = "__bobwarfare__/graphics/entities/reinforced-wall/wall-straight-horizontal-1.png", - priority = "extra-high", - width = 32, - height = 42, - shift = {0, -0.15625} - }, - { - filename = "__bobwarfare__/graphics/entities/reinforced-wall/wall-straight-horizontal-shadow.png", - priority = "extra-high", - width = 59, - height = 32, - shift = {0.421875, 0.5}, - draw_as_shadow = true - } - } - }, - { - layers = - { - { - filename = "__bobwarfare__/graphics/entities/reinforced-wall/wall-straight-horizontal-2.png", - priority = "extra-high", - width = 32, - height = 42, - shift = {0, -0.15625} - }, - { - filename = "__bobwarfare__/graphics/entities/reinforced-wall/wall-straight-horizontal-shadow.png", - priority = "extra-high", - width = 59, - height = 32, - shift = {0.421875, 0.5}, - draw_as_shadow = true - } - } - }, - { - layers = - { - { - filename = "__bobwarfare__/graphics/entities/reinforced-wall/wall-straight-horizontal-3.png", - priority = "extra-high", - width = 32, - height = 42, - shift = {0, -0.15625} - }, - { - filename = "__bobwarfare__/graphics/entities/reinforced-wall/wall-straight-horizontal-shadow.png", - priority = "extra-high", - width = 59, - height = 32, - shift = {0.421875, 0.5}, - draw_as_shadow = true - } - } - } - }, - corner_right_down = - { - layers = - { - { - filename = "__bobwarfare__/graphics/entities/reinforced-wall/wall-corner-right-down.png", - priority = "extra-high", - width = 27, - height = 42, - shift = {0.078125, -0.15625} - }, - { - filename = "__bobwarfare__/graphics/entities/reinforced-wall/wall-corner-right-down-shadow.png", - priority = "extra-high", - width = 53, - height = 61, - shift = {0.484375, 0.640625}, - draw_as_shadow = true - } - } - }, - corner_left_down = - { - layers = - { - { - filename = "__bobwarfare__/graphics/entities/reinforced-wall/wall-corner-left-down.png", - priority = "extra-high", - width = 27, - height = 42, - shift = {-0.078125, -0.15625} - }, - { - filename = "__bobwarfare__/graphics/entities/reinforced-wall/wall-corner-left-down-shadow.png", - priority = "extra-high", - width = 53, - height = 60, - shift = {0.328125, 0.640625}, - draw_as_shadow = true - } - } - }, - t_up = - { - layers = - { - { - filename = "__bobwarfare__/graphics/entities/reinforced-wall/wall-t-down.png", - priority = "extra-high", - width = 32, - height = 42, - shift = {0, -0.15625} - }, - { - filename = "__bobwarfare__/graphics/entities/reinforced-wall/wall-t-down-shadow.png", - priority = "extra-high", - width = 71, - height = 61, - shift = {0.546875, 0.640625}, - draw_as_shadow = true - } - } - }, - ending_right = - { - layers = - { - { - filename = "__bobwarfare__/graphics/entities/reinforced-wall/wall-ending-right.png", - priority = "extra-high", - width = 27, - height = 42, - shift = {0.078125, -0.15625} - }, - { - filename = "__bobwarfare__/graphics/entities/reinforced-wall/wall-ending-right-shadow.png", - priority = "extra-high", - width = 53, - height = 32, - shift = {0.484375, 0.5}, - draw_as_shadow = true - } - } - }, - ending_left = - { - layers = - { - { - filename = "__bobwarfare__/graphics/entities/reinforced-wall/wall-ending-left.png", - priority = "extra-high", - width = 27, - height = 42, - shift = {-0.078125, -0.15625} - }, - { - filename = "__bobwarfare__/graphics/entities/reinforced-wall/wall-ending-left-shadow.png", - priority = "extra-high", - width = 53, - height = 32, - shift = {0.328125, 0.5}, - draw_as_shadow = true - } - } - } - }, - wall_diode_green = - { - filename = "__base__/graphics/entity/gate/wall-diode-green.png", - width = 21, - height = 22, - shift = {0, -0.78125} - }, - wall_diode_green_light = - { - minimum_darkness = 0.3, - color = {g=1}, - shift = {0, -0.78125}, - size = 1, - intensity = 0.3 - }, - wall_diode_red = - { - filename = "__base__/graphics/entity/gate/wall-diode-red.png", - width = 21, - height = 22, - shift = {0, -0.78125} - }, - wall_diode_red_light = - { - minimum_darkness = 0.3, - color = {r=1}, - shift = {0, -0.78125}, - size = 1, - intensity = 0.3 - }, - - circuit_wire_connection_point = - { - shadow = - { - red = {0.890625, 0.828125}, - green = {0.890625, 0.703125} - }, - wire = - { - red = {-0.28125, -0.71875}, - green = {-0.28125, -0.84375} - } - }, - circuit_wire_max_distance = 7.5, - circuit_connector_sprites = get_circuit_connector_sprites({0, -0.59375}, nil, 6), - default_output_signal = "signal-G" - }, - - { - type = "gate", - name = "reinforced-gate", - icon = "__base__/graphics/icons/gate.png", - flags = {"placeable-neutral","placeable-player", "player-creation"}, - fast_replaceable_group = "wall", - minable = {hardness = 0.2, mining_time = 0.5, result = "reinforced-gate"}, - max_health = 750, - corpse = "small-remnants", - collision_box = {{-0.29, -0.29}, {0.29, 0.29}}, - selection_box = {{-0.5, -0.5}, {0.5, 0.5}}, - opening_speed = 0.1, - activation_distance = 3, - timeout_to_close = 5, - resistances = reinforced_wall_resistances, - vertical_animation = - { - layers = - { - { - filename = "__base__/graphics/entity/gate/gate-vertical.png", - line_length = 8, - width = 21, - height = 60, - frame_count = 16, - shift = {0.015625, -0.40625} - }, - { - filename = "__base__/graphics/entity/gate/gate-vertical-shadow.png", - line_length = 8, - width = 41, - height = 50, - frame_count = 16, - shift = {0.328125, 0.3}, - draw_as_shadow = true - } - } - }, - horizontal_animation = - { - layers = - { - { - filename = "__base__/graphics/entity/gate/gate-horizontal.png", - line_length = 8, - width = 32, - height = 36, - frame_count = 16, - shift = {0, -0.21875} - }, - { - filename = "__base__/graphics/entity/gate/gate-horizontal-shadow.png", - line_length = 8, - width = 62, - height = 28, - frame_count = 16, - shift = {0.4375, 0.46875}, - draw_as_shadow = true - } - } - }, - vertical_base = - { - layers = - { - { - filename = "__base__/graphics/entity/gate/gate-base-vertical.png", - width = 32, - height = 32 - }, - { - filename = "__base__/graphics/entity/gate/gate-base-vertical-mask.png", - width = 32, - height = 32, - apply_runtime_tint = true - } - } - }, - horizontal_rail_animation_left = - { - layers = - { - { - filename = "__base__/graphics/entity/gate/gate-rail-horizontal-left.png", - line_length = 8, - width = 32, - height = 47, - frame_count = 16, - shift = {0, -0.140625 + 0.125} - }, - { - filename = "__base__/graphics/entity/gate/gate-rail-horizontal-shadow-left.png", - line_length = 8, - width = 73, - height = 27, - frame_count = 16, - shift = {0.078125, 0.171875 + 0.125}, - draw_as_shadow = true - } - } - }, - horizontal_rail_animation_right = - { - layers = - { - { - filename = "__base__/graphics/entity/gate/gate-rail-horizontal-right.png", - line_length = 8, - width = 32, - height = 43, - frame_count = 16, - shift = {0, -0.203125 + 0.125} - }, - { - filename = "__base__/graphics/entity/gate/gate-rail-horizontal-shadow-right.png", - line_length = 8, - width = 73, - height = 28, - frame_count = 16, - shift = {0.60938, 0.2875 + 0.125}, - draw_as_shadow = true - } - } - }, - vertical_rail_animation_left = - { - layers = - { - { - filename = "__base__/graphics/entity/gate/gate-rail-vertical-left.png", - line_length = 8, - width = 22, - height = 54, - frame_count = 16, - shift = {0, -0.46875} - }, - { - filename = "__base__/graphics/entity/gate/gate-rail-vertical-shadow-left.png", - line_length = 8, - width = 47, - height = 48, - frame_count = 16, - shift = {0.27, -0.16125 + 0.5}, - draw_as_shadow = true - } - } - }, - vertical_rail_animation_right = - { - layers = - { - { - filename = "__base__/graphics/entity/gate/gate-rail-vertical-right.png", - line_length = 8, - width = 22, - height = 55, - frame_count = 16, - shift = {0, -0.453125} - }, - { - filename = "__base__/graphics/entity/gate/gate-rail-vertical-shadow-right.png", - line_length = 8, - width = 47, - height = 47, - frame_count = 16, - shift = {0.27, 0.803125 - 0.5}, - draw_as_shadow = true - } - } - }, - vertical_rail_base = - { - filename = "__base__/graphics/entity/gate/gate-rail-base-vertical.png", - line_length = 8, - width = 64, - height = 64, - frame_count = 16, - shift = {0, 0}, - }, - horizontal_rail_base = - { - filename = "__base__/graphics/entity/gate/gate-rail-base-horizontal.png", - line_length = 8, - width = 64, - height = 45, - frame_count = 16, - shift = {0, -0.015625 + 0.125}, - }, - vertical_rail_base_mask = - { - filename = "__base__/graphics/entity/gate/gate-rail-base-mask-vertical.png", - width = 63, - height = 39, - shift = {0.015625, -0.015625}, - apply_runtime_tint = true - }, - horizontal_rail_base_mask = - { - filename = "__base__/graphics/entity/gate/gate-rail-base-mask-horizontal.png", - width = 53, - height = 45, - shift = {0.015625, -0.015625 + 0.125}, - apply_runtime_tint = true - }, - horizontal_base = - { - layers = - { - { - filename = "__base__/graphics/entity/gate/gate-base-horizontal.png", - width = 32, - height = 23, - shift = {0, 0.125} - }, - { - filename = "__base__/graphics/entity/gate/gate-base-horizontal-mask.png", - width = 32, - height = 23, - apply_runtime_tint = true, - shift = {0, 0.125} - } - } - }, - wall_patch = - { - north = - { - layers = - { - { - filename = "__base__/graphics/entity/gate/wall-patch-north.png", - width = 22, - height = 35, - shift = {0, -0.62 + 1} - }, - { - filename = "__base__/graphics/entity/gate/wall-patch-north-shadow.png", - width = 46, - height = 31, - shift = {0.3, 0.20 + 1}, - draw_as_shadow = true - } - } - }, - east = - { - layers = - { - { - filename = "__base__/graphics/entity/gate/wall-patch-east.png", - width = 11, - height = 40, - shift = {0.328125 - 1, -0.109375} - }, - { - filename = "__base__/graphics/entity/gate/wall-patch-east-shadow.png", - width = 38, - height = 32, - shift = {0.8125 - 1, 0.46875}, - draw_as_shadow = true - } - } - }, - south = - { - layers = - { - { - filename = "__base__/graphics/entity/gate/wall-patch-south.png", - width = 22, - height = 40, - shift = {0, -0.125} - }, - { - filename = "__base__/graphics/entity/gate/wall-patch-south-shadow.png", - width = 48, - height = 25, - shift = {0.3, 0.95}, - draw_as_shadow = true - } - } - }, - west = - { - layers = - { - { - filename = "__base__/graphics/entity/gate/wall-patch-west.png", - width = 11, - height = 40, - shift = {-0.328125 + 1, -0.109375} - }, - { - filename = "__base__/graphics/entity/gate/wall-patch-west-shadow.png", - width = 46, - height = 32, - shift = {0.1875 + 1, 0.46875}, - draw_as_shadow = true - } - } - } - }, - vehicle_impact_sound = { filename = "__base__/sound/car-metal-impact.ogg", volume = 0.65 }, - open_sound = - { - variations = { filename = "__base__/sound/gate1.ogg", volume = 0.5 }, - aggregation = - { - max_count = 1, - remove = true - } - }, - close_sound = - { - variations = { filename = "__base__/sound/gate1.ogg", volume = 0.5 }, - aggregation = - { - max_count = 1, - remove = true - } - }, - }, - - { - type = "corpse", - name = "wall-remnants", - icon = "__base__/graphics/icons/wall-remnants.png", - flags = {"placeable-neutral", "not-on-map"}, - subgroup="remnants", - order="d[remnants]-c[wall]", - selection_box = {{-0.5, -0.5}, {0.5, 0.5}}, - selectable_in_game = false, - time_before_removed = 60 * 60 * 15, -- 15 minutes - final_render_layer = "remnants", - animation = - { - { - width = 36, - height = 36, - frame_count = 1, - direction_count = 1, - filename = "__base__/graphics/entity/stone-wall/remains/wall-remain-01.png" - }, - { - width = 38, - height = 35, - frame_count = 1, - direction_count = 1, - filename = "__base__/graphics/entity/stone-wall/remains/wall-remain-02.png" - }, - { - width = 35, - height = 36, - frame_count = 1, - direction_count = 1, - filename = "__base__/graphics/entity/stone-wall/remains/wall-remain-03.png" - }, - { - width = 41, - height = 36, - frame_count = 1, - direction_count = 1, - filename = "__base__/graphics/entity/stone-wall/remains/wall-remain-04.png" - }, - { - width = 35, - height = 35, - frame_count = 1, - direction_count = 1, - filename = "__base__/graphics/entity/stone-wall/remains/wall-remain-05.png" - }, - { - width = 50, - height = 37, - frame_count = 1, - direction_count = 1, - filename = "__base__/graphics/entity/stone-wall/remains/wall-remain-06.png" - }, - { - width = 54, - height = 40, - frame_count = 1, - direction_count = 1, - filename = "__base__/graphics/entity/stone-wall/remains/wall-remain-07.png" - }, - { - width = 43, - height = 45, - frame_count = 1, - direction_count = 1, - filename = "__base__/graphics/entity/stone-wall/remains/wall-remain-08.png" - } - } - }, -} +local reinforced_wall_resistances = { + { + type = "physical", + decrease = 10, + percent = 50 + }, + { + type = "impact", + decrease = 50, + percent = 60 + }, + { + type = "explosion", + decrease = 10, + percent = 50 + }, + { + type = "fire", + percent = 100 + }, + { + type = "laser", + percent = 100 + }, + { + type = "poison", + decrease = 10, + percent = 50 + }, + { + type = "acid", + decrease = 10, + percent = 25 + }, + { + type = "electric", + percent = 50 + }, + { + type = "bob-pierce", + decrease = 20, + percent = 25 + } +} + + + +data:extend( +{ + { + type = "wall", + name = "reinforced-wall", + icon = "__bobwarfare__/graphics/icons/reinforced-wall.png", + flags = {"placeable-neutral", "player-creation"}, + collision_box = {{-0.29, -0.29}, {0.29, 0.29}}, + selection_box = {{-0.5, -0.5}, {0.5, 0.5}}, + minable = {mining_time = 1, result = "reinforced-wall"}, + fast_replaceable_group = "wall", + max_health = 750, + repair_speed_modifier = 2, + corpse = "wall-remnants", + repair_sound = { filename = "__base__/sound/manual-repair-simple.ogg" }, + mined_sound = { filename = "__base__/sound/deconstruct-bricks.ogg" }, + -- this kind of code can be used for having walls mirror the effect + -- there can be multiple reaction items + --attack_reaction = + --{ + --{ + ---- how far the mirroring works + --range = 2, + ---- what kind of damage triggers the mirroring + ---- if not present then anything triggers the mirroring + --damage_type = "physical", + ---- caused damage will be multiplied by this and added to the subsequent damages + --reaction_modifier = 0.1, + --action = + --{ + --type = "direct", + --action_delivery = + --{ + --type = "instant", + --target_effects = + --{ + --type = "damage", + ---- always use at least 0.1 damage + --damage = {amount = 0.1, type = "physical"} + --} + --} + --}, + --} + --}, + connected_gate_visualization = + { + filename = "__core__/graphics/arrows/underground-lines.png", + priority = "high", + width = 64, + height = 64, + scale = 0.5 + }, + resistances = reinforced_wall_resistances, + pictures = + { + single = + { + layers = + { + { + filename = "__bobwarfare__/graphics/entities/reinforced-wall/wall-single.png", + priority = "extra-high", + width = 22, + height = 42, + shift = {0, -0.15625} + }, + { + filename = "__bobwarfare__/graphics/entities/reinforced-wall/wall-single-shadow.png", + priority = "extra-high", + width = 47, + height = 32, + shift = {0.359375, 0.5}, + draw_as_shadow = true + } + } + }, + straight_vertical = + { + { + layers = + { + { + filename = "__bobwarfare__/graphics/entities/reinforced-wall/wall-straight-vertical-1.png", + priority = "extra-high", + width = 22, + height = 42, + shift = {0, -0.15625} + }, + { + filename = "__bobwarfare__/graphics/entities/reinforced-wall/wall-straight-vertical-shadow.png", + priority = "extra-high", + width = 47, + height = 60, + shift = {0.390625, 0.625}, + draw_as_shadow = true + } + } + }, + { + layers = + { + { + filename = "__bobwarfare__/graphics/entities/reinforced-wall/wall-straight-vertical-2.png", + priority = "extra-high", + width = 22, + height = 42, + shift = {0, -0.15625} + }, + { + filename = "__bobwarfare__/graphics/entities/reinforced-wall/wall-straight-vertical-shadow.png", + priority = "extra-high", + width = 47, + height = 60, + shift = {0.390625, 0.625}, + draw_as_shadow = true + } + } + }, + { + layers = + { + { + filename = "__bobwarfare__/graphics/entities/reinforced-wall/wall-straight-vertical-3.png", + priority = "extra-high", + width = 22, + height = 42, + shift = {0, -0.15625} + }, + { + filename = "__bobwarfare__/graphics/entities/reinforced-wall/wall-straight-vertical-shadow.png", + priority = "extra-high", + width = 47, + height = 60, + shift = {0.390625, 0.625}, + draw_as_shadow = true + } + } + } + }, + straight_horizontal = + { + { + layers = + { + { + filename = "__bobwarfare__/graphics/entities/reinforced-wall/wall-straight-horizontal-1.png", + priority = "extra-high", + width = 32, + height = 42, + shift = {0, -0.15625} + }, + { + filename = "__bobwarfare__/graphics/entities/reinforced-wall/wall-straight-horizontal-shadow.png", + priority = "extra-high", + width = 59, + height = 32, + shift = {0.421875, 0.5}, + draw_as_shadow = true + } + } + }, + { + layers = + { + { + filename = "__bobwarfare__/graphics/entities/reinforced-wall/wall-straight-horizontal-2.png", + priority = "extra-high", + width = 32, + height = 42, + shift = {0, -0.15625} + }, + { + filename = "__bobwarfare__/graphics/entities/reinforced-wall/wall-straight-horizontal-shadow.png", + priority = "extra-high", + width = 59, + height = 32, + shift = {0.421875, 0.5}, + draw_as_shadow = true + } + } + }, + { + layers = + { + { + filename = "__bobwarfare__/graphics/entities/reinforced-wall/wall-straight-horizontal-3.png", + priority = "extra-high", + width = 32, + height = 42, + shift = {0, -0.15625} + }, + { + filename = "__bobwarfare__/graphics/entities/reinforced-wall/wall-straight-horizontal-shadow.png", + priority = "extra-high", + width = 59, + height = 32, + shift = {0.421875, 0.5}, + draw_as_shadow = true + } + } + } + }, + corner_right_down = + { + layers = + { + { + filename = "__bobwarfare__/graphics/entities/reinforced-wall/wall-corner-right-down.png", + priority = "extra-high", + width = 27, + height = 42, + shift = {0.078125, -0.15625} + }, + { + filename = "__bobwarfare__/graphics/entities/reinforced-wall/wall-corner-right-down-shadow.png", + priority = "extra-high", + width = 53, + height = 61, + shift = {0.484375, 0.640625}, + draw_as_shadow = true + } + } + }, + corner_left_down = + { + layers = + { + { + filename = "__bobwarfare__/graphics/entities/reinforced-wall/wall-corner-left-down.png", + priority = "extra-high", + width = 27, + height = 42, + shift = {-0.078125, -0.15625} + }, + { + filename = "__bobwarfare__/graphics/entities/reinforced-wall/wall-corner-left-down-shadow.png", + priority = "extra-high", + width = 53, + height = 60, + shift = {0.328125, 0.640625}, + draw_as_shadow = true + } + } + }, + t_up = + { + layers = + { + { + filename = "__bobwarfare__/graphics/entities/reinforced-wall/wall-t-down.png", + priority = "extra-high", + width = 32, + height = 42, + shift = {0, -0.15625} + }, + { + filename = "__bobwarfare__/graphics/entities/reinforced-wall/wall-t-down-shadow.png", + priority = "extra-high", + width = 71, + height = 61, + shift = {0.546875, 0.640625}, + draw_as_shadow = true + } + } + }, + ending_right = + { + layers = + { + { + filename = "__bobwarfare__/graphics/entities/reinforced-wall/wall-ending-right.png", + priority = "extra-high", + width = 27, + height = 42, + shift = {0.078125, -0.15625} + }, + { + filename = "__bobwarfare__/graphics/entities/reinforced-wall/wall-ending-right-shadow.png", + priority = "extra-high", + width = 53, + height = 32, + shift = {0.484375, 0.5}, + draw_as_shadow = true + } + } + }, + ending_left = + { + layers = + { + { + filename = "__bobwarfare__/graphics/entities/reinforced-wall/wall-ending-left.png", + priority = "extra-high", + width = 27, + height = 42, + shift = {-0.078125, -0.15625} + }, + { + filename = "__bobwarfare__/graphics/entities/reinforced-wall/wall-ending-left-shadow.png", + priority = "extra-high", + width = 53, + height = 32, + shift = {0.328125, 0.5}, + draw_as_shadow = true + } + } + } + }, + wall_diode_green = + { + filename = "__base__/graphics/entity/gate/wall-diode-green.png", + width = 21, + height = 22, + shift = {0, -0.78125} + }, + wall_diode_green_light = + { + minimum_darkness = 0.3, + color = {g=1}, + shift = {0, -0.78125}, + size = 1, + intensity = 0.3 + }, + wall_diode_red = + { + filename = "__base__/graphics/entity/gate/wall-diode-red.png", + width = 21, + height = 22, + shift = {0, -0.78125} + }, + wall_diode_red_light = + { + minimum_darkness = 0.3, + color = {r=1}, + shift = {0, -0.78125}, + size = 1, + intensity = 0.3 + }, + + circuit_wire_connection_point = + { + shadow = + { + red = {0.890625, 0.828125}, + green = {0.890625, 0.703125} + }, + wire = + { + red = {-0.28125, -0.71875}, + green = {-0.28125, -0.84375} + } + }, + circuit_wire_max_distance = 7.5, + circuit_connector_sprites = get_circuit_connector_sprites({0, -0.59375}, nil, 6), + default_output_signal = "signal-G" + }, + + { + type = "gate", + name = "reinforced-gate", + icon = "__base__/graphics/icons/gate.png", + flags = {"placeable-neutral","placeable-player", "player-creation"}, + fast_replaceable_group = "wall", + minable = {hardness = 0.2, mining_time = 0.5, result = "reinforced-gate"}, + max_health = 750, + corpse = "small-remnants", + collision_box = {{-0.29, -0.29}, {0.29, 0.29}}, + selection_box = {{-0.5, -0.5}, {0.5, 0.5}}, + opening_speed = 0.1, + activation_distance = 3, + timeout_to_close = 5, + resistances = reinforced_wall_resistances, + vertical_animation = + { + layers = + { + { + filename = "__base__/graphics/entity/gate/gate-vertical.png", + line_length = 8, + width = 21, + height = 60, + frame_count = 16, + shift = {0.015625, -0.40625} + }, + { + filename = "__base__/graphics/entity/gate/gate-vertical-shadow.png", + line_length = 8, + width = 41, + height = 50, + frame_count = 16, + shift = {0.328125, 0.3}, + draw_as_shadow = true + } + } + }, + horizontal_animation = + { + layers = + { + { + filename = "__base__/graphics/entity/gate/gate-horizontal.png", + line_length = 8, + width = 32, + height = 36, + frame_count = 16, + shift = {0, -0.21875} + }, + { + filename = "__base__/graphics/entity/gate/gate-horizontal-shadow.png", + line_length = 8, + width = 62, + height = 28, + frame_count = 16, + shift = {0.4375, 0.46875}, + draw_as_shadow = true + } + } + }, + vertical_base = + { + layers = + { + { + filename = "__base__/graphics/entity/gate/gate-base-vertical.png", + width = 32, + height = 32 + }, + { + filename = "__base__/graphics/entity/gate/gate-base-vertical-mask.png", + width = 32, + height = 32, + apply_runtime_tint = true + } + } + }, + horizontal_rail_animation_left = + { + layers = + { + { + filename = "__base__/graphics/entity/gate/gate-rail-horizontal-left.png", + line_length = 8, + width = 32, + height = 47, + frame_count = 16, + shift = {0, -0.140625 + 0.125} + }, + { + filename = "__base__/graphics/entity/gate/gate-rail-horizontal-shadow-left.png", + line_length = 8, + width = 73, + height = 27, + frame_count = 16, + shift = {0.078125, 0.171875 + 0.125}, + draw_as_shadow = true + } + } + }, + horizontal_rail_animation_right = + { + layers = + { + { + filename = "__base__/graphics/entity/gate/gate-rail-horizontal-right.png", + line_length = 8, + width = 32, + height = 43, + frame_count = 16, + shift = {0, -0.203125 + 0.125} + }, + { + filename = "__base__/graphics/entity/gate/gate-rail-horizontal-shadow-right.png", + line_length = 8, + width = 73, + height = 28, + frame_count = 16, + shift = {0.60938, 0.2875 + 0.125}, + draw_as_shadow = true + } + } + }, + vertical_rail_animation_left = + { + layers = + { + { + filename = "__base__/graphics/entity/gate/gate-rail-vertical-left.png", + line_length = 8, + width = 22, + height = 54, + frame_count = 16, + shift = {0, -0.46875} + }, + { + filename = "__base__/graphics/entity/gate/gate-rail-vertical-shadow-left.png", + line_length = 8, + width = 47, + height = 48, + frame_count = 16, + shift = {0.27, -0.16125 + 0.5}, + draw_as_shadow = true + } + } + }, + vertical_rail_animation_right = + { + layers = + { + { + filename = "__base__/graphics/entity/gate/gate-rail-vertical-right.png", + line_length = 8, + width = 22, + height = 55, + frame_count = 16, + shift = {0, -0.453125} + }, + { + filename = "__base__/graphics/entity/gate/gate-rail-vertical-shadow-right.png", + line_length = 8, + width = 47, + height = 47, + frame_count = 16, + shift = {0.27, 0.803125 - 0.5}, + draw_as_shadow = true + } + } + }, + vertical_rail_base = + { + filename = "__base__/graphics/entity/gate/gate-rail-base-vertical.png", + line_length = 8, + width = 64, + height = 64, + frame_count = 16, + shift = {0, 0}, + }, + horizontal_rail_base = + { + filename = "__base__/graphics/entity/gate/gate-rail-base-horizontal.png", + line_length = 8, + width = 64, + height = 45, + frame_count = 16, + shift = {0, -0.015625 + 0.125}, + }, + vertical_rail_base_mask = + { + filename = "__base__/graphics/entity/gate/gate-rail-base-mask-vertical.png", + width = 63, + height = 39, + shift = {0.015625, -0.015625}, + apply_runtime_tint = true + }, + horizontal_rail_base_mask = + { + filename = "__base__/graphics/entity/gate/gate-rail-base-mask-horizontal.png", + width = 53, + height = 45, + shift = {0.015625, -0.015625 + 0.125}, + apply_runtime_tint = true + }, + horizontal_base = + { + layers = + { + { + filename = "__base__/graphics/entity/gate/gate-base-horizontal.png", + width = 32, + height = 23, + shift = {0, 0.125} + }, + { + filename = "__base__/graphics/entity/gate/gate-base-horizontal-mask.png", + width = 32, + height = 23, + apply_runtime_tint = true, + shift = {0, 0.125} + } + } + }, + wall_patch = + { + north = + { + layers = + { + { + filename = "__base__/graphics/entity/gate/wall-patch-north.png", + width = 22, + height = 35, + shift = {0, -0.62 + 1} + }, + { + filename = "__base__/graphics/entity/gate/wall-patch-north-shadow.png", + width = 46, + height = 31, + shift = {0.3, 0.20 + 1}, + draw_as_shadow = true + } + } + }, + east = + { + layers = + { + { + filename = "__base__/graphics/entity/gate/wall-patch-east.png", + width = 11, + height = 40, + shift = {0.328125 - 1, -0.109375} + }, + { + filename = "__base__/graphics/entity/gate/wall-patch-east-shadow.png", + width = 38, + height = 32, + shift = {0.8125 - 1, 0.46875}, + draw_as_shadow = true + } + } + }, + south = + { + layers = + { + { + filename = "__base__/graphics/entity/gate/wall-patch-south.png", + width = 22, + height = 40, + shift = {0, -0.125} + }, + { + filename = "__base__/graphics/entity/gate/wall-patch-south-shadow.png", + width = 48, + height = 25, + shift = {0.3, 0.95}, + draw_as_shadow = true + } + } + }, + west = + { + layers = + { + { + filename = "__base__/graphics/entity/gate/wall-patch-west.png", + width = 11, + height = 40, + shift = {-0.328125 + 1, -0.109375} + }, + { + filename = "__base__/graphics/entity/gate/wall-patch-west-shadow.png", + width = 46, + height = 32, + shift = {0.1875 + 1, 0.46875}, + draw_as_shadow = true + } + } + } + }, + vehicle_impact_sound = { filename = "__base__/sound/car-metal-impact.ogg", volume = 0.65 }, + open_sound = + { + variations = { filename = "__base__/sound/gate1.ogg", volume = 0.5 }, + aggregation = + { + max_count = 1, + remove = true + } + }, + close_sound = + { + variations = { filename = "__base__/sound/gate1.ogg", volume = 0.5 }, + aggregation = + { + max_count = 1, + remove = true + } + }, + }, + + { + type = "corpse", + name = "wall-remnants", + icon = "__base__/graphics/icons/wall-remnants.png", + flags = {"placeable-neutral", "not-on-map"}, + subgroup="remnants", + order="d[remnants]-c[wall]", + selection_box = {{-0.5, -0.5}, {0.5, 0.5}}, + selectable_in_game = false, + time_before_removed = 60 * 60 * 15, -- 15 minutes + final_render_layer = "remnants", + animation = + { + { + width = 36, + height = 36, + frame_count = 1, + direction_count = 1, + filename = "__base__/graphics/entity/stone-wall/remains/wall-remain-01.png" + }, + { + width = 38, + height = 35, + frame_count = 1, + direction_count = 1, + filename = "__base__/graphics/entity/stone-wall/remains/wall-remain-02.png" + }, + { + width = 35, + height = 36, + frame_count = 1, + direction_count = 1, + filename = "__base__/graphics/entity/stone-wall/remains/wall-remain-03.png" + }, + { + width = 41, + height = 36, + frame_count = 1, + direction_count = 1, + filename = "__base__/graphics/entity/stone-wall/remains/wall-remain-04.png" + }, + { + width = 35, + height = 35, + frame_count = 1, + direction_count = 1, + filename = "__base__/graphics/entity/stone-wall/remains/wall-remain-05.png" + }, + { + width = 50, + height = 37, + frame_count = 1, + direction_count = 1, + filename = "__base__/graphics/entity/stone-wall/remains/wall-remain-06.png" + }, + { + width = 54, + height = 40, + frame_count = 1, + direction_count = 1, + filename = "__base__/graphics/entity/stone-wall/remains/wall-remain-07.png" + }, + { + width = 43, + height = 45, + frame_count = 1, + direction_count = 1, + filename = "__base__/graphics/entity/stone-wall/remains/wall-remain-08.png" + } + } + }, +} ) \ No newline at end of file diff --git a/bobwarfare_0.14.0/prototypes/equipment/equipment-grid.lua b/bobwarfare_0.14.1/prototypes/equipment/equipment-grid.lua similarity index 59% rename from bobwarfare_0.14.0/prototypes/equipment/equipment-grid.lua rename to bobwarfare_0.14.1/prototypes/equipment/equipment-grid.lua index 1255535..c09acda 100644 --- a/bobwarfare_0.14.0/prototypes/equipment/equipment-grid.lua +++ b/bobwarfare_0.14.1/prototypes/equipment/equipment-grid.lua @@ -1,57 +1,72 @@ -data:extend( -{ - { - type = "equipment-grid", - name = "power-armor-equipment-grid-mk3", - width = 12, - height = 12, - equipment_categories = {"armor"} - }, - { - type = "equipment-grid", - name = "power-armor-equipment-grid-mk4", - width = 14, - height = 14, - equipment_categories = {"armor"} - }, - { - type = "equipment-grid", - name = "power-armor-equipment-grid-mk5", - width = 16, - height = 16, - equipment_categories = {"armor"} - }, - - { - type = "equipment-category", - name = "tank" - }, - { - type = "equipment-category", - name = "armoured-vehicle" - }, - { - type = "equipment-grid", - name = "bob-tank", - width = 10, - height = 2, - equipment_categories = {"tank", "armoured-vehicle"} - }, - { - type = "equipment-grid", - name = "tank-2", - width = 10, - height = 4, - equipment_categories = {"tank", "armoured-vehicle"} - }, - { - type = "equipment-grid", - name = "tank-3", - width = 10, - height = 6, - equipment_categories = {"tank", "armoured-vehicle"} - }, -} -) - - +data:extend( +{ + { + type = "equipment-grid", + name = "power-armor-equipment-grid-mk3", + width = 12, + height = 12, + equipment_categories = {"armor"} + }, + { + type = "equipment-grid", + name = "power-armor-equipment-grid-mk4", + width = 14, + height = 14, + equipment_categories = {"armor"} + }, + { + type = "equipment-grid", + name = "power-armor-equipment-grid-mk5", + width = 16, + height = 16, + equipment_categories = {"armor"} + }, + + { + type = "equipment-category", + name = "car" + }, + { + type = "equipment-category", + name = "tank" + }, + { + type = "equipment-category", + name = "vehicle" + }, + { + type = "equipment-category", + name = "armoured-vehicle" + }, + { + type = "equipment-grid", + name = "bob-car", + width = 8, + height = 2, + equipment_categories = {"car", "vehicle"} + }, + { + type = "equipment-grid", + name = "bob-tank", + width = 10, + height = 2, + equipment_categories = {"tank", "vehicle", "armoured-vehicle"} + }, + { + type = "equipment-grid", + name = "bob-tank-2", + width = 10, + height = 4, + equipment_categories = {"tank", "vehicle", "armoured-vehicle"} + }, + { + type = "equipment-grid", + name = "bob-tank-3", + width = 10, + height = 6, + equipment_categories = {"tank", "vehicle", "armoured-vehicle"} + }, +} +) + + diff --git a/bobwarfare_0.14.0/prototypes/equipment/equipment.lua b/bobwarfare_0.14.1/prototypes/equipment/equipment.lua similarity index 95% rename from bobwarfare_0.14.0/prototypes/equipment/equipment.lua rename to bobwarfare_0.14.1/prototypes/equipment/equipment.lua index d3fac38..974231b 100644 --- a/bobwarfare_0.14.0/prototypes/equipment/equipment.lua +++ b/bobwarfare_0.14.1/prototypes/equipment/equipment.lua @@ -1,649 +1,649 @@ -data:extend( -{ - { - type = "night-vision-equipment", - name = "night-vision-equipment-2", - sprite = - { - filename = "__base__/graphics/equipment/night-vision-equipment.png", - width = 96, - height = 64, - priority = "medium" - }, - shape = - { - width = 3, - height = 2, - type = "full" - }, - energy_source = - { - type = "electric", - buffer_capacity = "180kJ", - input_flow_limit = "360kW", - usage_priority = "primary-input" - }, - energy_input = "15kW", - tint = {r = 0.1, g = 0.1, b = 0, a = 0.2}, - categories = {"armor"} - }, - { - type = "night-vision-equipment", - name = "night-vision-equipment-3", - sprite = - { - filename = "__base__/graphics/equipment/night-vision-equipment.png", - width = 96, - height = 64, - priority = "medium" - }, - shape = - { - width = 3, - height = 2, - type = "full" - }, - energy_source = - { - type = "electric", - buffer_capacity = "240kJ", - input_flow_limit = "480kW", - usage_priority = "primary-input" - }, - energy_input = "20kW", - tint = {r = 0.1, g = 0.1, b = 0.1, a = 0.2}, - categories = {"armor"} - }, -} -) - - --- energy_per_shield MK1 is 20J per shield unit, MK2 is 30J. --- max_shield_value MK1 is 50, MK2 is 150 --- buffer_capacity MK1 is "120J", MK2 is 180J --- input_flow_limit MK1 is "240W", MK2 is 360W - -data.raw["energy-shield-equipment"]["energy-shield-equipment"].max_shield_value = 75 - -data.raw["energy-shield-equipment"]["energy-shield-mk2-equipment"].energy_per_shield = "20kJ" -data.raw["energy-shield-equipment"]["energy-shield-mk2-equipment"].energy_source.input_flow_limit = "240kW" - -data:extend( -{ - { - type = "energy-shield-equipment", - name = "energy-shield-mk3-equipment", - max_shield_value = 300, - energy_per_shield = "20kJ", - energy_source = - { - type = "electric", - buffer_capacity = "240kJ", - input_flow_limit = "480kW", - usage_priority = "primary-input" - }, - shape = - { - width = 2, - height = 2, - type = "full" - }, - sprite = - { - filename = "__bobwarfare__/graphics/equipment/energy-shield-mk3-equipment.png", - width = 64, - height = 64, - priority = "medium" - }, - categories = {"armor"} - }, - - { - type = "energy-shield-equipment", - name = "energy-shield-mk4-equipment", - max_shield_value = 600, - energy_per_shield = "20kJ", - energy_source = - { - type = "electric", - buffer_capacity = "300kJ", - input_flow_limit = "600kW", - usage_priority = "primary-input" - }, - shape = - { - width = 2, - height = 2, - type = "full" - }, - sprite = - { - filename = "__bobwarfare__/graphics/equipment/energy-shield-mk4-equipment.png", - width = 64, - height = 64, - priority = "medium" - }, - categories = {"armor"} - }, - - { - type = "energy-shield-equipment", - name = "energy-shield-mk5-equipment", - max_shield_value = 1200, - energy_per_shield = "20kJ", - energy_source = - { - type = "electric", - buffer_capacity = "360kJ", - input_flow_limit = "720kW", - usage_priority = "primary-input" - }, - shape = - { - width = 2, - height = 2, - type = "full" - }, - sprite = - { - filename = "__bobwarfare__/graphics/equipment/energy-shield-mk5-equipment.png", - width = 64, - height = 64, - priority = "medium" - }, - categories = {"armor"} - }, - - { - type = "energy-shield-equipment", - name = "energy-shield-mk6-equipment", - max_shield_value = 2400, - energy_per_shield = "20kJ", - energy_source = - { - type = "electric", - buffer_capacity = "420kJ", - input_flow_limit = "840kW", - usage_priority = "primary-input" - }, - shape = - { - width = 2, - height = 2, - type = "full" - }, - sprite = - { - filename = "__bobwarfare__/graphics/equipment/energy-shield-mk6-equipment.png", - width = 64, - height = 64, - priority = "medium" - }, - categories = {"armor"} - }, -} -) - -data.raw["battery-equipment"]["battery-mk2-equipment"].energy_source.buffer_capacity = "50MJ" -data.raw["battery-equipment"]["battery-mk2-equipment"].energy_source.input_flow_limit = "500MW" -data.raw["battery-equipment"]["battery-mk2-equipment"].energy_source.output_flow_limit = "500MW" - -data:extend( -{ - { - type = "battery-equipment", - name = "battery-mk3-equipment", - sprite = - { - filename = "__bobwarfare__/graphics/equipment/battery-mk3-equipment.png", - width = 32, - height = 64, - priority = "medium" - }, - shape = - { - width = 1, - height = 2, - type = "full" - }, - energy_source = - { - type = "electric", - buffer_capacity = "120MJ", - input_flow_limit = "1200MW", - output_flow_limit = "1200MW", - usage_priority = "terciary" - }, - categories = {"armor"} - }, - { - type = "battery-equipment", - name = "battery-mk4-equipment", - sprite = - { - filename = "__bobwarfare__/graphics/equipment/battery-mk4-equipment.png", - width = 32, - height = 64, - priority = "medium" - }, - shape = - { - width = 1, - height = 2, - type = "full" - }, - energy_source = - { - type = "electric", - buffer_capacity = "300MJ", - input_flow_limit = "3000MW", - output_flow_limit = "3000MW", - usage_priority = "terciary" - }, - categories = {"armor"} - }, - { - type = "battery-equipment", - name = "battery-mk5-equipment", - sprite = - { - filename = "__bobwarfare__/graphics/equipment/battery-mk5-equipment.png", - width = 32, - height = 64, - priority = "medium" - }, - shape = - { - width = 1, - height = 2, - type = "full" - }, - energy_source = - { - type = "electric", - buffer_capacity = "750MJ", - input_flow_limit = "7500MW", - output_flow_limit = "7500MW", - usage_priority = "terciary" - }, - categories = {"armor"} - }, - { - type = "battery-equipment", - name = "battery-mk6-equipment", - sprite = - { - filename = "__bobwarfare__/graphics/equipment/battery-mk6-equipment.png", - width = 32, - height = 64, - priority = "medium" - }, - shape = - { - width = 1, - height = 2, - type = "full" - }, - energy_source = - { - type = "electric", - buffer_capacity = "1800MJ", - input_flow_limit = "18000MW", - output_flow_limit = "18000MW", - usage_priority = "terciary" - }, - categories = {"armor"} - }, -} -) - - -data:extend( -{ - { - type = "solar-panel-equipment", - name = "solar-panel-equipment-2", - sprite = - { - filename = "__bobwarfare__/graphics/equipment/solar-panel-equipment-2.png", - width = 32, - height = 32, - priority = "medium" - }, - shape = - { - width = 1, - height = 1, - type = "full" - }, - energy_source = - { - type = "electric", - usage_priority = "primary-output" - }, - power = "15kW", - categories = {"armor"} - }, - { - type = "solar-panel-equipment", - name = "solar-panel-equipment-3", - sprite = - { - filename = "__bobwarfare__/graphics/equipment/solar-panel-equipment-3.png", - width = 32, - height = 32, - priority = "medium" - }, - shape = - { - width = 1, - height = 1, - type = "full" - }, - energy_source = - { - type = "electric", - usage_priority = "primary-output" - }, - power = "25kW", - categories = {"armor"} - }, - { - type = "solar-panel-equipment", - name = "solar-panel-equipment-4", - sprite = - { - filename = "__bobwarfare__/graphics/equipment/solar-panel-equipment-4.png", - width = 32, - height = 32, - priority = "medium" - }, - shape = - { - width = 1, - height = 1, - type = "full" - }, - energy_source = - { - type = "electric", - usage_priority = "primary-output" - }, - power = "40kW", - categories = {"armor"} - }, -} -) - - -data:extend( -{ - { - type = "generator-equipment", - name = "fusion-reactor-equipment-2", - sprite = - { - filename = "__bobwarfare__/graphics/equipment/fusion-reactor-equipment-2.png", - width = 128, - height = 128, - priority = "medium" - }, - shape = - { - width = 4, - height = 4, - type = "full" - }, - energy_source = - { - type = "electric", - usage_priority = "primary-output" - }, - power = "1250kW", - categories = {"armor"} - }, - { - type = "generator-equipment", - name = "fusion-reactor-equipment-3", - sprite = - { - filename = "__bobwarfare__/graphics/equipment/fusion-reactor-equipment-3.png", - width = 128, - height = 128, - priority = "medium" - }, - shape = - { - width = 4, - height = 4, - type = "full" - }, - energy_source = - { - type = "electric", - usage_priority = "primary-output" - }, - power = "2000kW", - categories = {"armor"} - }, - { - type = "generator-equipment", - name = "fusion-reactor-equipment-4", - sprite = - { - filename = "__bobwarfare__/graphics/equipment/fusion-reactor-equipment-4.png", - width = 128, - height = 128, - priority = "medium" - }, - shape = - { - width = 4, - height = 4, - type = "full" - }, - energy_source = - { - type = "electric", - usage_priority = "primary-output" - }, - power = "3000kW", - categories = {"armor"} - }, -} -) - - -data:extend( -{ - { - type = "active-defense-equipment", - name = "combat-robot-dispenser-equipment", - sprite = - { - filename = "__bobwarfare__/graphics/equipment/combat-robot-dispenser-equipment.png", - width = 64, - height = 64, - priority = "medium" - }, - shape = - { - width = 2, - height = 2, - type = "full" - }, - energy_source = - { - type = "electric", - usage_priority = "secondary-input", - buffer_capacity = "6MJ" - }, - attack_parameters = - { - type = "projectile", - ammo_category = "electric", - cooldown = 60 * 15, - damage_modifier = 1, - projectile_center = {0, 0}, - projectile_creation_distance = 0.6, - range = 10, - ammo_type = - { - type = "projectile", - category = "electric", - energy_consumption = "5MJ", - action = - { - { - type = "direct", - action_delivery = - { - type = "instant", - source_effects = - { - { - type = "create-entity", - show_in_tooltip = true, - entity_name = "distractor", - }, - } - } - } - } - } - }, - automatic = true, - categories = {"armor"} - }, -} -) - - -function bob_personal_laser_defense_equipment(name, sprite, buffer_capacity, energy_consumption, projectile, damage_modifier, cooldown, range) -return - { - type = "active-defense-equipment", - name = name, - sprite = - { - filename = sprite, - width = 64, - height = 96, - priority = "medium" - }, - shape = - { - width = 2, - height = 3, - type = "full" - }, - energy_source = - { - type = "electric", - usage_priority = "secondary-input", - buffer_capacity = buffer_capacity - }, - attack_parameters = - { - type = "projectile", - ammo_category = "electric", - cooldown = cooldown, - damage_modifier = damage_modifier, - projectile_center = {0, 0}, - projectile_creation_distance = 0.6, - range = range, - sound = make_laser_sounds(), - ammo_type = - { - type = "projectile", - category = "electric", - energy_consumption = energy_consumption, - projectile = projectile, - speed = 1, - action = - { - { - type = "direct", - action_delivery = - { - { - type = "projectile", - projectile = projectile, - starting_speed = 0.28 - } - } - } - } - } - }, - automatic = true, - categories = {"armor"} - } -end - -data:extend( -{ --- bob_personal_laser_defense_equipment(name, sprite, buffer_capacity, energy_consumption, projectile, damage_modifier, cooldown, range) - bob_personal_laser_defense_equipment("personal-laser-defense-equipment-2", "__bobwarfare__/graphics/equipment/personal-laser-defense-equipment-2.png", "260kJ", "125kJ", "bob-green-laser", 1.5, 15, 16), - bob_personal_laser_defense_equipment("personal-laser-defense-equipment-3", "__bobwarfare__/graphics/equipment/personal-laser-defense-equipment-3.png", "460kJ", "150kJ", "bob-blue-laser", 2.1, 12, 17), - bob_personal_laser_defense_equipment("personal-laser-defense-equipment-4", "__bobwarfare__/graphics/equipment/personal-laser-defense-equipment-4.png", "710kJ", "175kJ", "bob-purple-laser", 2.8, 10, 18), - bob_personal_laser_defense_equipment("personal-laser-defense-equipment-5", "__bobwarfare__/graphics/equipment/personal-laser-defense-equipment-5.png", "1010kJ", "200kJ", "bob-yellow-laser", 3.6, 8.5, 19), - bob_personal_laser_defense_equipment("personal-laser-defense-equipment-6", "__bobwarfare__/graphics/equipment/personal-laser-defense-equipment-6.png", "1360kJ", "225kJ", "bob-white-laser", 4.5, 7.5, 20), -} -) - - -data:extend( -{ - { - type = "movement-bonus-equipment", - name = "exoskeleton-equipment-2", - sprite = - { - filename = "__base__/graphics/equipment/exoskeleton-equipment.png", - width = 64, - height = 128, - priority = "medium" - }, - shape = - { - width = 2, - height = 4, - type = "full" - }, - energy_source = - { - type = "electric", - usage_priority = "secondary-input" - }, - energy_consumption = "300kW", - movement_bonus = 0.45, - categories = {"armor"} - }, - { - type = "movement-bonus-equipment", - name = "exoskeleton-equipment-3", - sprite = - { - filename = "__base__/graphics/equipment/exoskeleton-equipment.png", - width = 64, - height = 128, - priority = "medium" - }, - shape = - { - width = 2, - height = 4, - type = "full" - }, - energy_source = - { - type = "electric", - usage_priority = "secondary-input" - }, - energy_consumption = "400kW", - movement_bonus = 0.6, - categories = {"armor"} - }, -} -) +data:extend( +{ + { + type = "night-vision-equipment", + name = "night-vision-equipment-2", + sprite = + { + filename = "__base__/graphics/equipment/night-vision-equipment.png", + width = 96, + height = 64, + priority = "medium" + }, + shape = + { + width = 3, + height = 2, + type = "full" + }, + energy_source = + { + type = "electric", + buffer_capacity = "180kJ", + input_flow_limit = "360kW", + usage_priority = "primary-input" + }, + energy_input = "15kW", + tint = {r = 0.1, g = 0.1, b = 0, a = 0.2}, + categories = {"armor"} + }, + { + type = "night-vision-equipment", + name = "night-vision-equipment-3", + sprite = + { + filename = "__base__/graphics/equipment/night-vision-equipment.png", + width = 96, + height = 64, + priority = "medium" + }, + shape = + { + width = 3, + height = 2, + type = "full" + }, + energy_source = + { + type = "electric", + buffer_capacity = "240kJ", + input_flow_limit = "480kW", + usage_priority = "primary-input" + }, + energy_input = "20kW", + tint = {r = 0.1, g = 0.1, b = 0.1, a = 0.2}, + categories = {"armor"} + }, +} +) + + +-- energy_per_shield MK1 is 20J per shield unit, MK2 is 30J. +-- max_shield_value MK1 is 50, MK2 is 150 +-- buffer_capacity MK1 is "120J", MK2 is 180J +-- input_flow_limit MK1 is "240W", MK2 is 360W + +data.raw["energy-shield-equipment"]["energy-shield-equipment"].max_shield_value = 75 + +data.raw["energy-shield-equipment"]["energy-shield-mk2-equipment"].energy_per_shield = "20kJ" +data.raw["energy-shield-equipment"]["energy-shield-mk2-equipment"].energy_source.input_flow_limit = "240kW" + +data:extend( +{ + { + type = "energy-shield-equipment", + name = "energy-shield-mk3-equipment", + max_shield_value = 300, + energy_per_shield = "20kJ", + energy_source = + { + type = "electric", + buffer_capacity = "240kJ", + input_flow_limit = "480kW", + usage_priority = "primary-input" + }, + shape = + { + width = 2, + height = 2, + type = "full" + }, + sprite = + { + filename = "__bobwarfare__/graphics/equipment/energy-shield-mk3-equipment.png", + width = 64, + height = 64, + priority = "medium" + }, + categories = {"armor"} + }, + + { + type = "energy-shield-equipment", + name = "energy-shield-mk4-equipment", + max_shield_value = 600, + energy_per_shield = "20kJ", + energy_source = + { + type = "electric", + buffer_capacity = "300kJ", + input_flow_limit = "600kW", + usage_priority = "primary-input" + }, + shape = + { + width = 2, + height = 2, + type = "full" + }, + sprite = + { + filename = "__bobwarfare__/graphics/equipment/energy-shield-mk4-equipment.png", + width = 64, + height = 64, + priority = "medium" + }, + categories = {"armor"} + }, + + { + type = "energy-shield-equipment", + name = "energy-shield-mk5-equipment", + max_shield_value = 1200, + energy_per_shield = "20kJ", + energy_source = + { + type = "electric", + buffer_capacity = "360kJ", + input_flow_limit = "720kW", + usage_priority = "primary-input" + }, + shape = + { + width = 2, + height = 2, + type = "full" + }, + sprite = + { + filename = "__bobwarfare__/graphics/equipment/energy-shield-mk5-equipment.png", + width = 64, + height = 64, + priority = "medium" + }, + categories = {"armor"} + }, + + { + type = "energy-shield-equipment", + name = "energy-shield-mk6-equipment", + max_shield_value = 2400, + energy_per_shield = "20kJ", + energy_source = + { + type = "electric", + buffer_capacity = "420kJ", + input_flow_limit = "840kW", + usage_priority = "primary-input" + }, + shape = + { + width = 2, + height = 2, + type = "full" + }, + sprite = + { + filename = "__bobwarfare__/graphics/equipment/energy-shield-mk6-equipment.png", + width = 64, + height = 64, + priority = "medium" + }, + categories = {"armor"} + }, +} +) + +data.raw["battery-equipment"]["battery-mk2-equipment"].energy_source.buffer_capacity = "50MJ" +data.raw["battery-equipment"]["battery-mk2-equipment"].energy_source.input_flow_limit = "500MW" +data.raw["battery-equipment"]["battery-mk2-equipment"].energy_source.output_flow_limit = "500MW" + +data:extend( +{ + { + type = "battery-equipment", + name = "battery-mk3-equipment", + sprite = + { + filename = "__bobwarfare__/graphics/equipment/battery-mk3-equipment.png", + width = 32, + height = 64, + priority = "medium" + }, + shape = + { + width = 1, + height = 2, + type = "full" + }, + energy_source = + { + type = "electric", + buffer_capacity = "120MJ", + input_flow_limit = "1200MW", + output_flow_limit = "1200MW", + usage_priority = "terciary" + }, + categories = {"armor"} + }, + { + type = "battery-equipment", + name = "battery-mk4-equipment", + sprite = + { + filename = "__bobwarfare__/graphics/equipment/battery-mk4-equipment.png", + width = 32, + height = 64, + priority = "medium" + }, + shape = + { + width = 1, + height = 2, + type = "full" + }, + energy_source = + { + type = "electric", + buffer_capacity = "300MJ", + input_flow_limit = "3000MW", + output_flow_limit = "3000MW", + usage_priority = "terciary" + }, + categories = {"armor"} + }, + { + type = "battery-equipment", + name = "battery-mk5-equipment", + sprite = + { + filename = "__bobwarfare__/graphics/equipment/battery-mk5-equipment.png", + width = 32, + height = 64, + priority = "medium" + }, + shape = + { + width = 1, + height = 2, + type = "full" + }, + energy_source = + { + type = "electric", + buffer_capacity = "750MJ", + input_flow_limit = "7500MW", + output_flow_limit = "7500MW", + usage_priority = "terciary" + }, + categories = {"armor"} + }, + { + type = "battery-equipment", + name = "battery-mk6-equipment", + sprite = + { + filename = "__bobwarfare__/graphics/equipment/battery-mk6-equipment.png", + width = 32, + height = 64, + priority = "medium" + }, + shape = + { + width = 1, + height = 2, + type = "full" + }, + energy_source = + { + type = "electric", + buffer_capacity = "1800MJ", + input_flow_limit = "18000MW", + output_flow_limit = "18000MW", + usage_priority = "terciary" + }, + categories = {"armor"} + }, +} +) + + +data:extend( +{ + { + type = "solar-panel-equipment", + name = "solar-panel-equipment-2", + sprite = + { + filename = "__bobwarfare__/graphics/equipment/solar-panel-equipment-2.png", + width = 32, + height = 32, + priority = "medium" + }, + shape = + { + width = 1, + height = 1, + type = "full" + }, + energy_source = + { + type = "electric", + usage_priority = "primary-output" + }, + power = "15kW", + categories = {"armor"} + }, + { + type = "solar-panel-equipment", + name = "solar-panel-equipment-3", + sprite = + { + filename = "__bobwarfare__/graphics/equipment/solar-panel-equipment-3.png", + width = 32, + height = 32, + priority = "medium" + }, + shape = + { + width = 1, + height = 1, + type = "full" + }, + energy_source = + { + type = "electric", + usage_priority = "primary-output" + }, + power = "25kW", + categories = {"armor"} + }, + { + type = "solar-panel-equipment", + name = "solar-panel-equipment-4", + sprite = + { + filename = "__bobwarfare__/graphics/equipment/solar-panel-equipment-4.png", + width = 32, + height = 32, + priority = "medium" + }, + shape = + { + width = 1, + height = 1, + type = "full" + }, + energy_source = + { + type = "electric", + usage_priority = "primary-output" + }, + power = "40kW", + categories = {"armor"} + }, +} +) + + +data:extend( +{ + { + type = "generator-equipment", + name = "fusion-reactor-equipment-2", + sprite = + { + filename = "__bobwarfare__/graphics/equipment/fusion-reactor-equipment-2.png", + width = 128, + height = 128, + priority = "medium" + }, + shape = + { + width = 4, + height = 4, + type = "full" + }, + energy_source = + { + type = "electric", + usage_priority = "primary-output" + }, + power = "1250kW", + categories = {"armor"} + }, + { + type = "generator-equipment", + name = "fusion-reactor-equipment-3", + sprite = + { + filename = "__bobwarfare__/graphics/equipment/fusion-reactor-equipment-3.png", + width = 128, + height = 128, + priority = "medium" + }, + shape = + { + width = 4, + height = 4, + type = "full" + }, + energy_source = + { + type = "electric", + usage_priority = "primary-output" + }, + power = "2000kW", + categories = {"armor"} + }, + { + type = "generator-equipment", + name = "fusion-reactor-equipment-4", + sprite = + { + filename = "__bobwarfare__/graphics/equipment/fusion-reactor-equipment-4.png", + width = 128, + height = 128, + priority = "medium" + }, + shape = + { + width = 4, + height = 4, + type = "full" + }, + energy_source = + { + type = "electric", + usage_priority = "primary-output" + }, + power = "3000kW", + categories = {"armor"} + }, +} +) + + +data:extend( +{ + { + type = "active-defense-equipment", + name = "combat-robot-dispenser-equipment", + sprite = + { + filename = "__bobwarfare__/graphics/equipment/combat-robot-dispenser-equipment.png", + width = 64, + height = 64, + priority = "medium" + }, + shape = + { + width = 2, + height = 2, + type = "full" + }, + energy_source = + { + type = "electric", + usage_priority = "secondary-input", + buffer_capacity = "6MJ" + }, + attack_parameters = + { + type = "projectile", + ammo_category = "electric", + cooldown = 60 * 15, + damage_modifier = 1, + projectile_center = {0, 0}, + projectile_creation_distance = 0.6, + range = 10, + ammo_type = + { + type = "projectile", + category = "electric", + energy_consumption = "5MJ", + action = + { + { + type = "direct", + action_delivery = + { + type = "instant", + source_effects = + { + { + type = "create-entity", + show_in_tooltip = true, + entity_name = "distractor", + }, + } + } + } + } + } + }, + automatic = true, + categories = {"armor"} + }, +} +) + + +function bob_personal_laser_defense_equipment(name, sprite, buffer_capacity, energy_consumption, projectile, damage_modifier, cooldown, range) +return + { + type = "active-defense-equipment", + name = name, + sprite = + { + filename = sprite, + width = 64, + height = 96, + priority = "medium" + }, + shape = + { + width = 2, + height = 3, + type = "full" + }, + energy_source = + { + type = "electric", + usage_priority = "secondary-input", + buffer_capacity = buffer_capacity + }, + attack_parameters = + { + type = "projectile", + ammo_category = "electric", + cooldown = cooldown, + damage_modifier = damage_modifier, + projectile_center = {0, 0}, + projectile_creation_distance = 0.6, + range = range, + sound = make_laser_sounds(), + ammo_type = + { + type = "projectile", + category = "electric", + energy_consumption = energy_consumption, + projectile = projectile, + speed = 1, + action = + { + { + type = "direct", + action_delivery = + { + { + type = "projectile", + projectile = projectile, + starting_speed = 0.28 + } + } + } + } + } + }, + automatic = true, + categories = {"armor"} + } +end + +data:extend( +{ +-- bob_personal_laser_defense_equipment(name, sprite, buffer_capacity, energy_consumption, projectile, damage_modifier, cooldown, range) + bob_personal_laser_defense_equipment("personal-laser-defense-equipment-2", "__bobwarfare__/graphics/equipment/personal-laser-defense-equipment-2.png", "260kJ", "125kJ", "bob-green-laser", 1.5, 15, 16), + bob_personal_laser_defense_equipment("personal-laser-defense-equipment-3", "__bobwarfare__/graphics/equipment/personal-laser-defense-equipment-3.png", "460kJ", "150kJ", "bob-blue-laser", 2.1, 12, 17), + bob_personal_laser_defense_equipment("personal-laser-defense-equipment-4", "__bobwarfare__/graphics/equipment/personal-laser-defense-equipment-4.png", "710kJ", "175kJ", "bob-purple-laser", 2.8, 10, 18), + bob_personal_laser_defense_equipment("personal-laser-defense-equipment-5", "__bobwarfare__/graphics/equipment/personal-laser-defense-equipment-5.png", "1010kJ", "200kJ", "bob-yellow-laser", 3.6, 8.5, 19), + bob_personal_laser_defense_equipment("personal-laser-defense-equipment-6", "__bobwarfare__/graphics/equipment/personal-laser-defense-equipment-6.png", "1360kJ", "225kJ", "bob-white-laser", 4.5, 7.5, 20), +} +) + + +data:extend( +{ + { + type = "movement-bonus-equipment", + name = "exoskeleton-equipment-2", + sprite = + { + filename = "__base__/graphics/equipment/exoskeleton-equipment.png", + width = 64, + height = 128, + priority = "medium" + }, + shape = + { + width = 2, + height = 4, + type = "full" + }, + energy_source = + { + type = "electric", + usage_priority = "secondary-input" + }, + energy_consumption = "300kW", + movement_bonus = 0.45, + categories = {"armor"} + }, + { + type = "movement-bonus-equipment", + name = "exoskeleton-equipment-3", + sprite = + { + filename = "__base__/graphics/equipment/exoskeleton-equipment.png", + width = 64, + height = 128, + priority = "medium" + }, + shape = + { + width = 2, + height = 4, + type = "full" + }, + energy_source = + { + type = "electric", + usage_priority = "secondary-input" + }, + energy_consumption = "400kW", + movement_bonus = 0.6, + categories = {"armor"} + }, +} +) diff --git a/bobwarfare_0.14.0/prototypes/item/ammo.lua b/bobwarfare_0.14.1/prototypes/item/ammo.lua similarity index 95% rename from bobwarfare_0.14.0/prototypes/item/ammo.lua rename to bobwarfare_0.14.1/prototypes/item/ammo.lua index 176c080..316ee64 100644 --- a/bobwarfare_0.14.0/prototypes/item/ammo.lua +++ b/bobwarfare_0.14.1/prototypes/item/ammo.lua @@ -1,1023 +1,1023 @@ -function boblaserammo(catagory, projectile) - return - { - type = "projectile", - category = catagory, - action = - { - type = "direct", - action_delivery = - { - { - type = "projectile", - projectile = projectile, - starting_speed = 0.28 - }, - } - } - } -end - -function bobmissileammo(catagory, projectile) - return - { - category = catagory, - action = - { - type = "direct", - action_delivery = - { - type = "projectile", - projectile = projectile, - starting_speed = 0.1, - source_effects = - { - type = "create-entity", - entity_name = "explosion-gunshot" - } - } - } - } -end - - - -data:extend( -{ - { - type = "ammo", - name = "bullet-magazine", - icon = "__bobwarfare__/graphics/icons/bullet-magazine.png", - flags = {"goes-to-main-inventory"}, - subgroup = "bob-ammo", - order = "a[basic-clips]-a[bullet-magazine]", - stack_size = 100, - magazine_size = 25, - ammo_type = - { - category = "bullet", - action = - { - { - type = "direct", - action_delivery = - { - { - type = "instant", - source_effects = - { - { - type = "create-entity", - entity_name = "explosion-gunshot" - } - }, - target_effects = - { - { - type = "create-entity", - entity_name = "explosion-gunshot" - }, - { - type = "damage", - damage = { amount = 15, type = "physical"} - } - } - } - } - } - } - }, - }, - - { - type = "ammo", - name = "ap-bullet-magazine", - icon = "__bobwarfare__/graphics/icons/ap-bullet-magazine.png", - flags = {"goes-to-main-inventory"}, - subgroup = "bob-ammo", - order = "a[basic-clips]-b[bullet-magazine-ap]", - stack_size = 100, - magazine_size = 25, - ammo_type = - { - category = "bullet", - action = - { - type = "direct", - action_delivery = - { - type = "instant", - source_effects = - { - type = "create-entity", - entity_name = "explosion-gunshot" - }, - target_effects = - { - { - type = "create-entity", - entity_name = "explosion-gunshot" - }, - { - type = "damage", - damage = { amount = 12, type = "physical"} - }, - { - type = "damage", - damage = { amount = 6, type = "bob-pierce"} - } - } - } - } - }, - }, - - { - type = "ammo", - name = "he-bullet-magazine", - icon = "__bobwarfare__/graphics/icons/he-bullet-magazine.png", - flags = {"goes-to-main-inventory"}, - subgroup = "bob-ammo", - order = "a[basic-clips]-b[bullet-magazine-he]", - stack_size = 100, - magazine_size = 25, - ammo_type = - { - category = "bullet", - action = - { - type = "direct", - action_delivery = - { - type = "instant", - source_effects = - { - type = "create-entity", - entity_name = "explosion-gunshot" - }, - target_effects = - { - { - type = "create-entity", - entity_name = "explosion" - }, - { - type = "damage", - damage = { amount = 12, type = "physical"} - }, - { - type = "nested-result", - action = - { - type = "area", - perimeter = 3, - action_delivery = - { - type = "instant", - target_effects = - { - { - type = "damage", - damage = {amount = 6, type = "explosion"} - }, - } - } - } - } - } - } - } - }, - }, - - - { - type = "ammo", - name = "flame-bullet-magazine", - icon = "__bobwarfare__/graphics/icons/flame-bullet-magazine.png", - flags = {"goes-to-main-inventory"}, - subgroup = "bob-ammo", - order = "a[basic-clips]-b[bullet-magazine-flame]", - stack_size = 100, - magazine_size = 25, - ammo_type = - { - category = "bullet", - action = - { - type = "direct", - action_delivery = - { - type = "instant", - source_effects = - { - type = "create-entity", - entity_name = "explosion-gunshot" - }, - target_effects = - { - { - type = "create-entity", - entity_name = "explosion-gunshot" - }, - { - type = "damage", - damage = { amount = 12, type = "physical"} - }, - { - type = "nested-result", - action = - { - type = "area", - perimeter = 3, - action_delivery = - { - type = "instant", - target_effects = - { - { - type = "damage", - damage = {amount = 6, type = "fire"} - }, - } - } - } - } - } - } - } - }, - }, - - { - type = "ammo", - name = "acid-bullet-magazine", - icon = "__bobwarfare__/graphics/icons/acid-bullet-magazine.png", - flags = {"goes-to-main-inventory"}, - subgroup = "bob-ammo", - order = "a[basic-clips]-b[bullet-magazine-acid]", - stack_size = 100, - magazine_size = 25, - ammo_type = - { - category = "bullet", - action = - { - type = "direct", - action_delivery = - { - type = "instant", - source_effects = - { - type = "create-entity", - entity_name = "explosion-gunshot" - }, - target_effects = - { - { - type = "create-entity", - entity_name = "explosion-gunshot" - }, - { - type = "damage", - damage = { amount = 12, type = "physical"} - }, - { - type = "nested-result", - action = - { - type = "area", - perimeter = 3, - action_delivery = - { - type = "instant", - target_effects = - { - { - type = "damage", - damage = {amount = 6, type = "acid"} - }, - } - } - } - } - } - } - } - }, - }, - - { - type = "ammo", - name = "poison-bullet-magazine", - icon = "__bobwarfare__/graphics/icons/poison-bullet-magazine.png", - flags = {"goes-to-main-inventory"}, - subgroup = "bob-ammo", - order = "a[basic-clips]-b[bullet-magazine-poison]", - stack_size = 100, - magazine_size = 25, - ammo_type = - { - category = "bullet", - action = - { - type = "direct", - action_delivery = - { - type = "instant", - source_effects = - { - type = "create-entity", - entity_name = "explosion-gunshot" - }, - target_effects = - { - { - type = "create-entity", - entity_name = "explosion-gunshot" - }, - { - type = "damage", - damage = { amount = 12, type = "physical"} - }, - { - type = "nested-result", - action = - { - type = "area", - perimeter = 3, - action_delivery = - { - type = "instant", - target_effects = - { - { - type = "damage", - damage = {amount = 6, type = "poison"} - }, - } - } - } - } - } - } - } - }, - }, - - { - type = "ammo", - name = "electric-bullet-magazine", - icon = "__bobwarfare__/graphics/icons/electric-bullet-magazine.png", - flags = {"goes-to-main-inventory"}, - subgroup = "bob-ammo", - order = "a[basic-clips]-b[bullet-magazine-electric]", - stack_size = 100, - magazine_size = 25, - ammo_type = - { - category = "bullet", - action = - { - type = "direct", - action_delivery = - { - type = "instant", - source_effects = - { - type = "create-entity", - entity_name = "explosion-gunshot" - }, - target_effects = - { - { - type = "create-entity", - entity_name = "explosion-gunshot" - }, - { - type = "damage", - damage = { amount = 12, type = "physical"} - }, - { - type = "damage", - damage = {amount = 6, type = "electric"} - }, - } - } - } - }, - }, - - - { - type = "ammo", - name = "better-shotgun-shell", - icon = "__bobwarfare__/graphics/icons/shotgun-shell.png", - flags = {"goes-to-main-inventory"}, - subgroup = "bob-ammo", - order = "f[shotgun-shell]", - stack_size = 500, - magazine_size = 5, - ammo_type = - { - category = "shotgun-shell", - target_type = "direction", - source_effects = - { - type = "create-entity", - entity_name = "explosion-gunshot" - }, - action = - { - type = "direct", - repeat_count = 20, - action_delivery = - { - type = "projectile", - projectile = "better-shotgun-projectile", - starting_speed = 1, - direction_deviation = 0.4, - range_deviation = 0.4, - max_range = 15 - } - } - }, - }, - - { - type = "ammo", - name = "shotgun-ap-shell", - icon = "__bobwarfare__/graphics/icons/shotgun-ap-shell.png", - flags = {"goes-to-main-inventory"}, - subgroup = "bob-ammo", - order = "f[shotgun-ap-shell]", - stack_size = 500, - magazine_size = 5, - ammo_type = - { - category = "shotgun-shell", - target_type = "direction", - source_effects = - { - type = "create-entity", - entity_name = "explosion-gunshot" - }, - action = - { - type = "direct", - repeat_count = 20, - action_delivery = - { - type = "projectile", - projectile = "shotgun-ap-projectile", - starting_speed = 1, - direction_deviation = 0.4, - range_deviation = 0.4, - max_range = 15 - } - } - }, - }, - - { - type = "ammo", - name = "shotgun-electric-shell", - icon = "__bobwarfare__/graphics/icons/shotgun-electric-shell.png", - flags = {"goes-to-main-inventory"}, - subgroup = "bob-ammo", - order = "f[shotgun-electric-shell]", - stack_size = 500, - magazine_size = 5, - ammo_type = - { - category = "shotgun-shell", - target_type = "direction", - source_effects = - { - type = "create-entity", - entity_name = "explosion-gunshot" - }, - action = - { - type = "direct", - repeat_count = 20, - action_delivery = - { - type = "projectile", - projectile = "shotgun-electric-projectile", - starting_speed = 1, - direction_deviation = 0.4, - range_deviation = 0.4, - max_range = 15 - } - } - }, - }, - - { - type = "ammo", - name = "shotgun-explosive-shell", - icon = "__bobwarfare__/graphics/icons/shotgun-explosive-shell.png", - flags = {"goes-to-main-inventory"}, - subgroup = "bob-ammo", - order = "f[shotgun-explosive-shell]", - stack_size = 500, - magazine_size = 5, - ammo_type = - { - category = "shotgun-shell", - target_type = "direction", - source_effects = - { - type = "create-entity", - entity_name = "explosion-gunshot" - }, - action = - { - type = "direct", - repeat_count = 10, - action_delivery = - { - type = "projectile", - projectile = "shotgun-explosive-projectile", - starting_speed = 0.5, - direction_deviation = 0.4, - range_deviation = 0.4, - max_range = 15 - } - } - }, - }, - - { - type = "ammo", - name = "shotgun-flame-shell", - icon = "__bobwarfare__/graphics/icons/shotgun-flame-shell.png", - flags = {"goes-to-main-inventory"}, - subgroup = "bob-ammo", - order = "f[shotgun-flame-shell]", - stack_size = 500, - magazine_size = 5, - ammo_type = - { - category = "shotgun-shell", - target_type = "direction", - source_effects = - { - type = "create-entity", - entity_name = "explosion-gunshot" - }, - action = - { - type = "direct", - repeat_count = 10, - action_delivery = - { - type = "projectile", - projectile = "shotgun-flame-projectile", - starting_speed = 0.5, - direction_deviation = 0.4, - range_deviation = 0.4, - max_range = 15 - } - } - }, - }, - - { - type = "ammo", - name = "shotgun-acid-shell", - icon = "__bobwarfare__/graphics/icons/shotgun-acid-shell.png", - flags = {"goes-to-main-inventory"}, - subgroup = "bob-ammo", - order = "f[shotgun-acid-shell]", - stack_size = 500, - magazine_size = 5, - ammo_type = - { - category = "shotgun-shell", - target_type = "direction", - source_effects = - { - type = "create-entity", - entity_name = "explosion-gunshot" - }, - action = - { - type = "direct", - repeat_count = 10, - action_delivery = - { - type = "projectile", - projectile = "shotgun-acid-projectile", - starting_speed = 0.5, - direction_deviation = 0.4, - range_deviation = 0.4, - max_range = 15 - } - } - }, - }, - - { - type = "ammo", - name = "shotgun-poison-shell", - icon = "__bobwarfare__/graphics/icons/shotgun-poison-shell.png", - flags = {"goes-to-main-inventory"}, - subgroup = "bob-ammo", - order = "f[shotgun-poison-shell]", - stack_size = 500, - magazine_size = 5, - ammo_type = - { - category = "shotgun-shell", - target_type = "direction", - source_effects = - { - type = "create-entity", - entity_name = "explosion-gunshot" - }, - action = - { - type = "direct", - repeat_count = 10, - action_delivery = - { - type = "projectile", - projectile = "shotgun-poison-projectile", - starting_speed = 0.5, - direction_deviation = 0.4, - range_deviation = 0.4, - max_range = 15 - } - } - }, - }, - - - ---[[ - { - type = "ammo", - name = "flame-thrower-acid", - icon = "__base__/graphics/icons/flame-thrower-ammo.png", - flags = {"goes-to-main-inventory"}, - subgroup = "ammo", - order = "f[flame-thrower-acid]", - stack_size = 50, - magazine_size = 100, - ammo_type = - { - category = "flame-thrower", - target_type = "direction", - action = - { - type = "direct", - action_delivery = - { - { - type = "flame-thrower", - explosion = "flame-thrower-acid-mist", - direction_deviation = 0.07, - speed_deviation = 0.1, - starting_frame_deviation = 0.07, - damage = { amount = 20, type = "acid"}, - projectile_starting_speed = 0.2, - starting_distance = 0.6, - } - } - } - }, - }, -]]-- - - { - type = "ammo", - name = "laser-rifle-battery", - icon = "__bobwarfare__/graphics/icons/laser-rifle-battery-glass.png", - flags = {"goes-to-main-inventory"}, - subgroup = "bob-ammo", - order = "f[laser-rifle-battery]-0", - stack_size = 100, - magazine_size = 50, - ammo_type = boblaserammo("laser-rifle", "bob-laser-glass"), - }, - - { - type = "ammo", - name = "laser-rifle-battery-ruby", - icon = "__bobwarfare__/graphics/icons/laser-rifle-battery-ruby.png", - flags = {"goes-to-main-inventory"}, - subgroup = "bob-ammo", - order = "f[laser-rifle-battery]-1", - stack_size = 100, - magazine_size = 50, - ammo_type = boblaserammo("laser-rifle", "bob-laser-ruby"), - }, - - { - type = "ammo", - name = "laser-rifle-battery-sapphire", - icon = "__bobwarfare__/graphics/icons/laser-rifle-battery-sapphire.png", - flags = {"goes-to-main-inventory"}, - subgroup = "bob-ammo", - order = "f[laser-rifle-battery]-2", - stack_size = 100, - magazine_size = 50, - ammo_type = boblaserammo("laser-rifle", "bob-laser-sapphire"), - }, - - { - type = "ammo", - name = "laser-rifle-battery-emerald", - icon = "__bobwarfare__/graphics/icons/laser-rifle-battery-emerald.png", - flags = {"goes-to-main-inventory"}, - subgroup = "bob-ammo", - order = "f[laser-rifle-battery]-3", - stack_size = 100, - magazine_size = 50, - ammo_type = boblaserammo("laser-rifle", "bob-laser-emerald"), - }, - - { - type = "ammo", - name = "laser-rifle-battery-amethyst", - icon = "__bobwarfare__/graphics/icons/laser-rifle-battery-amethyst.png", - flags = {"goes-to-main-inventory"}, - subgroup = "bob-ammo", - order = "f[laser-rifle-battery]-4", - stack_size = 100, - magazine_size = 50, - ammo_type = boblaserammo("laser-rifle", "bob-laser-amethyst"), - }, - - { - type = "ammo", - name = "laser-rifle-battery-topaz", - icon = "__bobwarfare__/graphics/icons/laser-rifle-battery-topaz.png", - flags = {"goes-to-main-inventory"}, - subgroup = "bob-ammo", - order = "f[laser-rifle-battery]-5", - stack_size = 100, - magazine_size = 50, - ammo_type = boblaserammo("laser-rifle", "bob-laser-topaz"), - }, - - { - type = "ammo", - name = "laser-rifle-battery-diamond", - icon = "__bobwarfare__/graphics/icons/laser-rifle-battery-diamond.png", - flags = {"goes-to-main-inventory"}, - subgroup = "bob-ammo", - order = "f[laser-rifle-battery]-6", - stack_size = 100, - magazine_size = 50, - ammo_type = boblaserammo("laser-rifle", "bob-laser-diamond"), - }, - - - { - type = "ammo", - name = "bob-rocket", - icon = "__bobwarfare__/graphics/icons/rocket.png", - flags = {"goes-to-main-inventory"}, - ammo_type = bobmissileammo("rocket", "bob-rocket"), - subgroup = "bob-ammo", - order = "d[rocket-launcher]-c-0", - stack_size = 500 - }, - - { - type = "ammo", - name = "bob-piercing-rocket", - icon = "__bobwarfare__/graphics/icons/piercing-rocket.png", - flags = {"goes-to-main-inventory"}, - ammo_type = bobmissileammo("rocket", "bob-piercing-rocket"), - subgroup = "bob-ammo", - order = "d[rocket-launcher]-c-1", - stack_size = 500 - }, - - { - type = "ammo", - name = "bob-electric-rocket", - icon = "__bobwarfare__/graphics/icons/electric-rocket.png", - flags = {"goes-to-main-inventory"}, - ammo_type = bobmissileammo("rocket", "bob-electric-rocket"), - subgroup = "bob-ammo", - order = "d[rocket-launcher]-c-2", - stack_size = 500 - }, - - { - type = "ammo", - name = "bob-explosive-rocket", - icon = "__bobwarfare__/graphics/icons/explosive-rocket.png", - flags = {"goes-to-main-inventory"}, - ammo_type = bobmissileammo("rocket", "bob-explosive-rocket"), - subgroup = "bob-ammo", - order = "d[rocket-launcher]-c-3", - stack_size = 500 - }, - - { - type = "ammo", - name = "bob-flame-rocket", - icon = "__bobwarfare__/graphics/icons/flame-rocket.png", - flags = {"goes-to-main-inventory"}, - ammo_type = bobmissileammo("rocket", "bob-flame-rocket"), - subgroup = "bob-ammo", - order = "d[rocket-launcher]-c-4", - stack_size = 500 - }, - - { - type = "ammo", - name = "bob-poison-rocket", - icon = "__bobwarfare__/graphics/icons/poison-rocket.png", - flags = {"goes-to-main-inventory"}, - ammo_type = bobmissileammo("rocket", "bob-poison-rocket"), - subgroup = "bob-ammo", - order = "d[rocket-launcher]-c-5", - stack_size = 500 - }, - - { - type = "ammo", - name = "bob-acid-rocket", - icon = "__bobwarfare__/graphics/icons/acid-rocket.png", - flags = {"goes-to-main-inventory"}, - ammo_type = bobmissileammo("rocket", "bob-acid-rocket"), - subgroup = "bob-ammo", - order = "d[rocket-launcher]-c-6", - stack_size = 500 - }, -} -) - - - - -data:extend( -{ - { - type = "ammo", - name = "scatter-cannon-shell", - icon = "__base__/graphics/icons/cannon-shell.png", - flags = {"goes-to-main-inventory"}, - ammo_type = - { - category = "cannon-shell", - target_type = "direction", - source_effects = - { - type = "create-explosion", - entity_name = "explosion-gunshot" - }, - action = - { - type = "direct", - repeat_count = 20, - action_delivery = - { - type = "projectile", - projectile = "cannon-projectile-pellet", - starting_speed = 1, - direction_deviation = 0.5, - range_deviation = 0.3, - max_range = 20, - } - }, - }, - subgroup = "ammo", - order = "d[cannon-shell]-c[scatter]", - stack_size = 100 - }, - - { - type = "ammo", - name = "poison-artillery-shell", - icon = "__base__/graphics/icons/poison-capsule.png", - flags = {"goes-to-quickbar"}, - ammo_type = - { - category = "artillery-shell", - target_type = "position", - source_effects = - { - type = "create-explosion", - entity_name = "explosion-gunshot" - }, - action = - { - type = "direct", - action_delivery = - { - type = "projectile", - projectile = "poison-artillery-projectile", - starting_speed = 0.3, - max_range = 35, - } - } - }, - subgroup = "ammo", - order = "e[artillery-shell]-a[poison]", - stack_size = 100 - }, - { - type = "ammo", - name = "explosive-artillery-shell", - icon = "__base__/graphics/icons/grenade.png", - flags = {"goes-to-quickbar"}, - ammo_type = - { - category = "artillery-shell", - target_type = "position", - source_effects = - { - type = "create-explosion", - entity_name = "explosion-gunshot" - }, - action = - { - type = "direct", - action_delivery = - { - type = "projectile", - projectile = "explosive-artillery-projectile", - starting_speed = 0.3, - max_range = 35, - } - } - }, - subgroup = "ammo", - order = "e[artillery-shell]-a[explosive]", - stack_size = 100 - }, - { - type = "ammo", - name = "distractor-artillery-shell", - icon = "__bobwarfare__/graphics/icons/distractor.png", - flags = {"goes-to-quickbar"}, - ammo_type = - { - category = "artillery-shell", - target_type = "position", - source_effects = - { - type = "create-explosion", - entity_name = "explosion-gunshot" - }, - action = - { - type = "direct", - action_delivery = - { - type = "projectile", - projectile = "distractor-artillery-projectile", - starting_speed = 0.3, - max_range = 35, - } - } - }, - subgroup = "ammo", - order = "e[artillery-shell]-a[distractor]", - stack_size = 100 - }, -} -) - - -data:extend( -{ - { - type = "ammo", - name = "laser-beam-rifle-ammo", - icon = "__bobwarfare__/graphics/icons/laser-rifle-battery-sapphire.png", - flags = {"goes-to-main-inventory"}, - subgroup = "bob-ammo", - order = "f[laser-beam]", - stack_size = 100, - magazine_size = 50, - ammo_type = - { --- category = "beam-rifle", - category = "laser-rifle", - action = - { - type = "direct", - action_delivery = - { - type = "beam", - beam = "electric-beam", - max_length = 25, - duration = 20, - } - } - }, - }, -} -) - - - +function boblaserammo(catagory, projectile) + return + { + type = "projectile", + category = catagory, + action = + { + type = "direct", + action_delivery = + { + { + type = "projectile", + projectile = projectile, + starting_speed = 0.28 + }, + } + } + } +end + +function bobmissileammo(catagory, projectile) + return + { + category = catagory, + action = + { + type = "direct", + action_delivery = + { + type = "projectile", + projectile = projectile, + starting_speed = 0.1, + source_effects = + { + type = "create-entity", + entity_name = "explosion-gunshot" + } + } + } + } +end + + + +data:extend( +{ + { + type = "ammo", + name = "bullet-magazine", + icon = "__bobwarfare__/graphics/icons/bullet-magazine.png", + flags = {"goes-to-main-inventory"}, + subgroup = "bob-ammo", + order = "a[basic-clips]-a[bullet-magazine]", + stack_size = 100, + magazine_size = 25, + ammo_type = + { + category = "bullet", + action = + { + { + type = "direct", + action_delivery = + { + { + type = "instant", + source_effects = + { + { + type = "create-entity", + entity_name = "explosion-gunshot" + } + }, + target_effects = + { + { + type = "create-entity", + entity_name = "explosion-gunshot" + }, + { + type = "damage", + damage = { amount = 15, type = "physical"} + } + } + } + } + } + } + }, + }, + + { + type = "ammo", + name = "ap-bullet-magazine", + icon = "__bobwarfare__/graphics/icons/ap-bullet-magazine.png", + flags = {"goes-to-main-inventory"}, + subgroup = "bob-ammo", + order = "a[basic-clips]-b[bullet-magazine-ap]", + stack_size = 100, + magazine_size = 25, + ammo_type = + { + category = "bullet", + action = + { + type = "direct", + action_delivery = + { + type = "instant", + source_effects = + { + type = "create-entity", + entity_name = "explosion-gunshot" + }, + target_effects = + { + { + type = "create-entity", + entity_name = "explosion-gunshot" + }, + { + type = "damage", + damage = { amount = 12, type = "physical"} + }, + { + type = "damage", + damage = { amount = 6, type = "bob-pierce"} + } + } + } + } + }, + }, + + { + type = "ammo", + name = "he-bullet-magazine", + icon = "__bobwarfare__/graphics/icons/he-bullet-magazine.png", + flags = {"goes-to-main-inventory"}, + subgroup = "bob-ammo", + order = "a[basic-clips]-b[bullet-magazine-he]", + stack_size = 100, + magazine_size = 25, + ammo_type = + { + category = "bullet", + action = + { + type = "direct", + action_delivery = + { + type = "instant", + source_effects = + { + type = "create-entity", + entity_name = "explosion-gunshot" + }, + target_effects = + { + { + type = "create-entity", + entity_name = "explosion" + }, + { + type = "damage", + damage = { amount = 12, type = "physical"} + }, + { + type = "nested-result", + action = + { + type = "area", + perimeter = 3, + action_delivery = + { + type = "instant", + target_effects = + { + { + type = "damage", + damage = {amount = 6, type = "explosion"} + }, + } + } + } + } + } + } + } + }, + }, + + + { + type = "ammo", + name = "flame-bullet-magazine", + icon = "__bobwarfare__/graphics/icons/flame-bullet-magazine.png", + flags = {"goes-to-main-inventory"}, + subgroup = "bob-ammo", + order = "a[basic-clips]-b[bullet-magazine-flame]", + stack_size = 100, + magazine_size = 25, + ammo_type = + { + category = "bullet", + action = + { + type = "direct", + action_delivery = + { + type = "instant", + source_effects = + { + type = "create-entity", + entity_name = "explosion-gunshot" + }, + target_effects = + { + { + type = "create-entity", + entity_name = "explosion-gunshot" + }, + { + type = "damage", + damage = { amount = 12, type = "physical"} + }, + { + type = "nested-result", + action = + { + type = "area", + perimeter = 3, + action_delivery = + { + type = "instant", + target_effects = + { + { + type = "damage", + damage = {amount = 6, type = "fire"} + }, + } + } + } + } + } + } + } + }, + }, + + { + type = "ammo", + name = "acid-bullet-magazine", + icon = "__bobwarfare__/graphics/icons/acid-bullet-magazine.png", + flags = {"goes-to-main-inventory"}, + subgroup = "bob-ammo", + order = "a[basic-clips]-b[bullet-magazine-acid]", + stack_size = 100, + magazine_size = 25, + ammo_type = + { + category = "bullet", + action = + { + type = "direct", + action_delivery = + { + type = "instant", + source_effects = + { + type = "create-entity", + entity_name = "explosion-gunshot" + }, + target_effects = + { + { + type = "create-entity", + entity_name = "explosion-gunshot" + }, + { + type = "damage", + damage = { amount = 12, type = "physical"} + }, + { + type = "nested-result", + action = + { + type = "area", + perimeter = 3, + action_delivery = + { + type = "instant", + target_effects = + { + { + type = "damage", + damage = {amount = 6, type = "acid"} + }, + } + } + } + } + } + } + } + }, + }, + + { + type = "ammo", + name = "poison-bullet-magazine", + icon = "__bobwarfare__/graphics/icons/poison-bullet-magazine.png", + flags = {"goes-to-main-inventory"}, + subgroup = "bob-ammo", + order = "a[basic-clips]-b[bullet-magazine-poison]", + stack_size = 100, + magazine_size = 25, + ammo_type = + { + category = "bullet", + action = + { + type = "direct", + action_delivery = + { + type = "instant", + source_effects = + { + type = "create-entity", + entity_name = "explosion-gunshot" + }, + target_effects = + { + { + type = "create-entity", + entity_name = "explosion-gunshot" + }, + { + type = "damage", + damage = { amount = 12, type = "physical"} + }, + { + type = "nested-result", + action = + { + type = "area", + perimeter = 3, + action_delivery = + { + type = "instant", + target_effects = + { + { + type = "damage", + damage = {amount = 6, type = "poison"} + }, + } + } + } + } + } + } + } + }, + }, + + { + type = "ammo", + name = "electric-bullet-magazine", + icon = "__bobwarfare__/graphics/icons/electric-bullet-magazine.png", + flags = {"goes-to-main-inventory"}, + subgroup = "bob-ammo", + order = "a[basic-clips]-b[bullet-magazine-electric]", + stack_size = 100, + magazine_size = 25, + ammo_type = + { + category = "bullet", + action = + { + type = "direct", + action_delivery = + { + type = "instant", + source_effects = + { + type = "create-entity", + entity_name = "explosion-gunshot" + }, + target_effects = + { + { + type = "create-entity", + entity_name = "explosion-gunshot" + }, + { + type = "damage", + damage = { amount = 12, type = "physical"} + }, + { + type = "damage", + damage = {amount = 6, type = "electric"} + }, + } + } + } + }, + }, + + + { + type = "ammo", + name = "better-shotgun-shell", + icon = "__bobwarfare__/graphics/icons/shotgun-shell.png", + flags = {"goes-to-main-inventory"}, + subgroup = "bob-ammo", + order = "f[shotgun-shell]", + stack_size = 500, + magazine_size = 5, + ammo_type = + { + category = "shotgun-shell", + target_type = "direction", + source_effects = + { + type = "create-entity", + entity_name = "explosion-gunshot" + }, + action = + { + type = "direct", + repeat_count = 20, + action_delivery = + { + type = "projectile", + projectile = "better-shotgun-projectile", + starting_speed = 1, + direction_deviation = 0.4, + range_deviation = 0.4, + max_range = 15 + } + } + }, + }, + + { + type = "ammo", + name = "shotgun-ap-shell", + icon = "__bobwarfare__/graphics/icons/shotgun-ap-shell.png", + flags = {"goes-to-main-inventory"}, + subgroup = "bob-ammo", + order = "f[shotgun-ap-shell]", + stack_size = 500, + magazine_size = 5, + ammo_type = + { + category = "shotgun-shell", + target_type = "direction", + source_effects = + { + type = "create-entity", + entity_name = "explosion-gunshot" + }, + action = + { + type = "direct", + repeat_count = 20, + action_delivery = + { + type = "projectile", + projectile = "shotgun-ap-projectile", + starting_speed = 1, + direction_deviation = 0.4, + range_deviation = 0.4, + max_range = 15 + } + } + }, + }, + + { + type = "ammo", + name = "shotgun-electric-shell", + icon = "__bobwarfare__/graphics/icons/shotgun-electric-shell.png", + flags = {"goes-to-main-inventory"}, + subgroup = "bob-ammo", + order = "f[shotgun-electric-shell]", + stack_size = 500, + magazine_size = 5, + ammo_type = + { + category = "shotgun-shell", + target_type = "direction", + source_effects = + { + type = "create-entity", + entity_name = "explosion-gunshot" + }, + action = + { + type = "direct", + repeat_count = 20, + action_delivery = + { + type = "projectile", + projectile = "shotgun-electric-projectile", + starting_speed = 1, + direction_deviation = 0.4, + range_deviation = 0.4, + max_range = 15 + } + } + }, + }, + + { + type = "ammo", + name = "shotgun-explosive-shell", + icon = "__bobwarfare__/graphics/icons/shotgun-explosive-shell.png", + flags = {"goes-to-main-inventory"}, + subgroup = "bob-ammo", + order = "f[shotgun-explosive-shell]", + stack_size = 500, + magazine_size = 5, + ammo_type = + { + category = "shotgun-shell", + target_type = "direction", + source_effects = + { + type = "create-entity", + entity_name = "explosion-gunshot" + }, + action = + { + type = "direct", + repeat_count = 10, + action_delivery = + { + type = "projectile", + projectile = "shotgun-explosive-projectile", + starting_speed = 0.5, + direction_deviation = 0.4, + range_deviation = 0.4, + max_range = 15 + } + } + }, + }, + + { + type = "ammo", + name = "shotgun-flame-shell", + icon = "__bobwarfare__/graphics/icons/shotgun-flame-shell.png", + flags = {"goes-to-main-inventory"}, + subgroup = "bob-ammo", + order = "f[shotgun-flame-shell]", + stack_size = 500, + magazine_size = 5, + ammo_type = + { + category = "shotgun-shell", + target_type = "direction", + source_effects = + { + type = "create-entity", + entity_name = "explosion-gunshot" + }, + action = + { + type = "direct", + repeat_count = 10, + action_delivery = + { + type = "projectile", + projectile = "shotgun-flame-projectile", + starting_speed = 0.5, + direction_deviation = 0.4, + range_deviation = 0.4, + max_range = 15 + } + } + }, + }, + + { + type = "ammo", + name = "shotgun-acid-shell", + icon = "__bobwarfare__/graphics/icons/shotgun-acid-shell.png", + flags = {"goes-to-main-inventory"}, + subgroup = "bob-ammo", + order = "f[shotgun-acid-shell]", + stack_size = 500, + magazine_size = 5, + ammo_type = + { + category = "shotgun-shell", + target_type = "direction", + source_effects = + { + type = "create-entity", + entity_name = "explosion-gunshot" + }, + action = + { + type = "direct", + repeat_count = 10, + action_delivery = + { + type = "projectile", + projectile = "shotgun-acid-projectile", + starting_speed = 0.5, + direction_deviation = 0.4, + range_deviation = 0.4, + max_range = 15 + } + } + }, + }, + + { + type = "ammo", + name = "shotgun-poison-shell", + icon = "__bobwarfare__/graphics/icons/shotgun-poison-shell.png", + flags = {"goes-to-main-inventory"}, + subgroup = "bob-ammo", + order = "f[shotgun-poison-shell]", + stack_size = 500, + magazine_size = 5, + ammo_type = + { + category = "shotgun-shell", + target_type = "direction", + source_effects = + { + type = "create-entity", + entity_name = "explosion-gunshot" + }, + action = + { + type = "direct", + repeat_count = 10, + action_delivery = + { + type = "projectile", + projectile = "shotgun-poison-projectile", + starting_speed = 0.5, + direction_deviation = 0.4, + range_deviation = 0.4, + max_range = 15 + } + } + }, + }, + + + +--[[ + { + type = "ammo", + name = "flame-thrower-acid", + icon = "__base__/graphics/icons/flame-thrower-ammo.png", + flags = {"goes-to-main-inventory"}, + subgroup = "ammo", + order = "f[flame-thrower-acid]", + stack_size = 50, + magazine_size = 100, + ammo_type = + { + category = "flame-thrower", + target_type = "direction", + action = + { + type = "direct", + action_delivery = + { + { + type = "flame-thrower", + explosion = "flame-thrower-acid-mist", + direction_deviation = 0.07, + speed_deviation = 0.1, + starting_frame_deviation = 0.07, + damage = { amount = 20, type = "acid"}, + projectile_starting_speed = 0.2, + starting_distance = 0.6, + } + } + } + }, + }, +]]-- + + { + type = "ammo", + name = "laser-rifle-battery", + icon = "__bobwarfare__/graphics/icons/laser-rifle-battery-glass.png", + flags = {"goes-to-main-inventory"}, + subgroup = "bob-ammo", + order = "f[laser-rifle-battery]-0", + stack_size = 100, + magazine_size = 50, + ammo_type = boblaserammo("laser-rifle", "bob-laser-glass"), + }, + + { + type = "ammo", + name = "laser-rifle-battery-ruby", + icon = "__bobwarfare__/graphics/icons/laser-rifle-battery-ruby.png", + flags = {"goes-to-main-inventory"}, + subgroup = "bob-ammo", + order = "f[laser-rifle-battery]-1", + stack_size = 100, + magazine_size = 50, + ammo_type = boblaserammo("laser-rifle", "bob-laser-ruby"), + }, + + { + type = "ammo", + name = "laser-rifle-battery-sapphire", + icon = "__bobwarfare__/graphics/icons/laser-rifle-battery-sapphire.png", + flags = {"goes-to-main-inventory"}, + subgroup = "bob-ammo", + order = "f[laser-rifle-battery]-2", + stack_size = 100, + magazine_size = 50, + ammo_type = boblaserammo("laser-rifle", "bob-laser-sapphire"), + }, + + { + type = "ammo", + name = "laser-rifle-battery-emerald", + icon = "__bobwarfare__/graphics/icons/laser-rifle-battery-emerald.png", + flags = {"goes-to-main-inventory"}, + subgroup = "bob-ammo", + order = "f[laser-rifle-battery]-3", + stack_size = 100, + magazine_size = 50, + ammo_type = boblaserammo("laser-rifle", "bob-laser-emerald"), + }, + + { + type = "ammo", + name = "laser-rifle-battery-amethyst", + icon = "__bobwarfare__/graphics/icons/laser-rifle-battery-amethyst.png", + flags = {"goes-to-main-inventory"}, + subgroup = "bob-ammo", + order = "f[laser-rifle-battery]-4", + stack_size = 100, + magazine_size = 50, + ammo_type = boblaserammo("laser-rifle", "bob-laser-amethyst"), + }, + + { + type = "ammo", + name = "laser-rifle-battery-topaz", + icon = "__bobwarfare__/graphics/icons/laser-rifle-battery-topaz.png", + flags = {"goes-to-main-inventory"}, + subgroup = "bob-ammo", + order = "f[laser-rifle-battery]-5", + stack_size = 100, + magazine_size = 50, + ammo_type = boblaserammo("laser-rifle", "bob-laser-topaz"), + }, + + { + type = "ammo", + name = "laser-rifle-battery-diamond", + icon = "__bobwarfare__/graphics/icons/laser-rifle-battery-diamond.png", + flags = {"goes-to-main-inventory"}, + subgroup = "bob-ammo", + order = "f[laser-rifle-battery]-6", + stack_size = 100, + magazine_size = 50, + ammo_type = boblaserammo("laser-rifle", "bob-laser-diamond"), + }, + + + { + type = "ammo", + name = "bob-rocket", + icon = "__bobwarfare__/graphics/icons/rocket.png", + flags = {"goes-to-main-inventory"}, + ammo_type = bobmissileammo("rocket", "bob-rocket"), + subgroup = "bob-ammo", + order = "d[rocket-launcher]-c-0", + stack_size = 500 + }, + + { + type = "ammo", + name = "bob-piercing-rocket", + icon = "__bobwarfare__/graphics/icons/piercing-rocket.png", + flags = {"goes-to-main-inventory"}, + ammo_type = bobmissileammo("rocket", "bob-piercing-rocket"), + subgroup = "bob-ammo", + order = "d[rocket-launcher]-c-1", + stack_size = 500 + }, + + { + type = "ammo", + name = "bob-electric-rocket", + icon = "__bobwarfare__/graphics/icons/electric-rocket.png", + flags = {"goes-to-main-inventory"}, + ammo_type = bobmissileammo("rocket", "bob-electric-rocket"), + subgroup = "bob-ammo", + order = "d[rocket-launcher]-c-2", + stack_size = 500 + }, + + { + type = "ammo", + name = "bob-explosive-rocket", + icon = "__bobwarfare__/graphics/icons/explosive-rocket.png", + flags = {"goes-to-main-inventory"}, + ammo_type = bobmissileammo("rocket", "bob-explosive-rocket"), + subgroup = "bob-ammo", + order = "d[rocket-launcher]-c-3", + stack_size = 500 + }, + + { + type = "ammo", + name = "bob-flame-rocket", + icon = "__bobwarfare__/graphics/icons/flame-rocket.png", + flags = {"goes-to-main-inventory"}, + ammo_type = bobmissileammo("rocket", "bob-flame-rocket"), + subgroup = "bob-ammo", + order = "d[rocket-launcher]-c-4", + stack_size = 500 + }, + + { + type = "ammo", + name = "bob-poison-rocket", + icon = "__bobwarfare__/graphics/icons/poison-rocket.png", + flags = {"goes-to-main-inventory"}, + ammo_type = bobmissileammo("rocket", "bob-poison-rocket"), + subgroup = "bob-ammo", + order = "d[rocket-launcher]-c-5", + stack_size = 500 + }, + + { + type = "ammo", + name = "bob-acid-rocket", + icon = "__bobwarfare__/graphics/icons/acid-rocket.png", + flags = {"goes-to-main-inventory"}, + ammo_type = bobmissileammo("rocket", "bob-acid-rocket"), + subgroup = "bob-ammo", + order = "d[rocket-launcher]-c-6", + stack_size = 500 + }, +} +) + + + + +data:extend( +{ + { + type = "ammo", + name = "scatter-cannon-shell", + icon = "__base__/graphics/icons/cannon-shell.png", + flags = {"goes-to-main-inventory"}, + ammo_type = + { + category = "cannon-shell", + target_type = "direction", + source_effects = + { + type = "create-explosion", + entity_name = "explosion-gunshot" + }, + action = + { + type = "direct", + repeat_count = 20, + action_delivery = + { + type = "projectile", + projectile = "cannon-projectile-pellet", + starting_speed = 1, + direction_deviation = 0.5, + range_deviation = 0.3, + max_range = 20, + } + }, + }, + subgroup = "ammo", + order = "d[cannon-shell]-c[scatter]", + stack_size = 100 + }, + + { + type = "ammo", + name = "poison-artillery-shell", + icon = "__base__/graphics/icons/poison-capsule.png", + flags = {"goes-to-quickbar"}, + ammo_type = + { + category = "artillery-shell", + target_type = "position", + source_effects = + { + type = "create-explosion", + entity_name = "explosion-gunshot" + }, + action = + { + type = "direct", + action_delivery = + { + type = "projectile", + projectile = "poison-artillery-projectile", + starting_speed = 0.3, + max_range = 35, + } + } + }, + subgroup = "ammo", + order = "e[artillery-shell]-a[poison]", + stack_size = 100 + }, + { + type = "ammo", + name = "explosive-artillery-shell", + icon = "__base__/graphics/icons/grenade.png", + flags = {"goes-to-quickbar"}, + ammo_type = + { + category = "artillery-shell", + target_type = "position", + source_effects = + { + type = "create-explosion", + entity_name = "explosion-gunshot" + }, + action = + { + type = "direct", + action_delivery = + { + type = "projectile", + projectile = "explosive-artillery-projectile", + starting_speed = 0.3, + max_range = 35, + } + } + }, + subgroup = "ammo", + order = "e[artillery-shell]-a[explosive]", + stack_size = 100 + }, + { + type = "ammo", + name = "distractor-artillery-shell", + icon = "__bobwarfare__/graphics/icons/distractor.png", + flags = {"goes-to-quickbar"}, + ammo_type = + { + category = "artillery-shell", + target_type = "position", + source_effects = + { + type = "create-explosion", + entity_name = "explosion-gunshot" + }, + action = + { + type = "direct", + action_delivery = + { + type = "projectile", + projectile = "distractor-artillery-projectile", + starting_speed = 0.3, + max_range = 35, + } + } + }, + subgroup = "ammo", + order = "e[artillery-shell]-a[distractor]", + stack_size = 100 + }, +} +) + + +data:extend( +{ + { + type = "ammo", + name = "laser-beam-rifle-ammo", + icon = "__bobwarfare__/graphics/icons/laser-rifle-battery-sapphire.png", + flags = {"goes-to-main-inventory"}, + subgroup = "bob-ammo", + order = "f[laser-beam]", + stack_size = 100, + magazine_size = 50, + ammo_type = + { +-- category = "beam-rifle", + category = "laser-rifle", + action = + { + type = "direct", + action_delivery = + { + type = "beam", + beam = "electric-beam", + max_length = 25, + duration = 20, + } + } + }, + }, +} +) + + + diff --git a/bobwarfare_0.14.0/prototypes/item/armor.lua b/bobwarfare_0.14.1/prototypes/item/armor.lua similarity index 94% rename from bobwarfare_0.14.0/prototypes/item/armor.lua rename to bobwarfare_0.14.1/prototypes/item/armor.lua index 7fcfd8b..d969031 100644 --- a/bobwarfare_0.14.0/prototypes/item/armor.lua +++ b/bobwarfare_0.14.1/prototypes/item/armor.lua @@ -1,284 +1,284 @@ -data:extend( -{ - { - type = "armor", - name = "heavy-armor-2", - icon = "__bobwarfare__/graphics/icons/heavy-armor-2.png", - flags = {"goes-to-main-inventory"}, - resistances = - { - { - type = "physical", - decrease = 8, - percent = 35 - }, - { - type = "impact", - decrease = 10, - percent = 25 - }, - { - type = "acid", - decrease = 7, - percent = 35 - }, - { - type = "explosion", - decrease = 15, - percent = 40 - }, - { - type = "electric", - percent = 30 - }, - { - type = "bob-pierce", - decrease = 10, - percent = 25 - }, - }, - durability = 8000, - subgroup = "armor", - order = "c-a", - stack_size = 10 - }, - { - type = "armor", - name = "heavy-armor-3", - icon = "__bobwarfare__/graphics/icons/heavy-armor-3.png", - flags = {"goes-to-main-inventory"}, - resistances = - { - { - type = "physical", - decrease = 10, - percent = 40 - }, - { - type = "acid", - decrease = 10, - percent = 40 - }, - { - type = "explosion", - decrease = 20, - percent = 50 - }, - { - type = "impact", - decrease = 20, - percent = 30 - }, - { - type = "poison", - percent = 25 - }, - { - type = "fire", - percent = 25 - }, - { - type = "electric", - percent = 50 - }, - { - type = "bob-pierce", - decrease = 20, - percent = 30 - }, - { - type = "laser", - decrease = 10, - percent = 30 - }, - }, - durability = 12000, - subgroup = "armor", - order = "c-b", - stack_size = 10 - }, - - { - type = "armor", - name = "bob-power-armor-mk3", - icon = "__bobwarfare__/graphics/icons/power-armor-mk3.png", - flags = {"goes-to-main-inventory"}, - resistances = - { - { - type = "physical", - decrease = 12, - percent = 45 - }, - { - type = "acid", - decrease = 12, - percent = 45 - }, - { - type = "explosion", - decrease = 20, - percent = 50 - }, - { - type = "impact", - decrease = 10, - percent = 30 - }, - { - type = "poison", - decrease = 10, - percent = 30 - }, - { - type = "fire", - decrease = 10, - percent = 30 - }, - { - type = "laser", - decrease = 10, - percent = 30 - }, - { - type = "electric", - decrease = 10, - percent = 30 - }, - { - type = "bob-pierce", - decrease = 10, - percent = 30 - }, - }, - durability = 30000, - subgroup = "armor", - order = "f[power-armor-mk3]", - stack_size = 1, - equipment_grid = "power-armor-equipment-grid-mk3", - inventory_size_bonus = 40 - }, - - { - type = "armor", - name = "bob-power-armor-mk4", - icon = "__bobwarfare__/graphics/icons/power-armor-mk4.png", - flags = {"goes-to-main-inventory"}, - resistances = - { - { - type = "physical", - decrease = 15, - percent = 50 - }, - { - type = "acid", - decrease = 15, - percent = 50 - }, - { - type = "explosion", - decrease = 20, - percent = 50 - }, - { - type = "impact", - decrease = 15, - percent = 40 - }, - { - type = "poison", - decrease = 15, - percent = 40 - }, - { - type = "fire", - decrease = 15, - percent = 40 - }, - { - type = "laser", - decrease = 15, - percent = 40 - }, - { - type = "electric", - decrease = 15, - percent = 40 - }, - { - type = "bob-pierce", - decrease = 15, - percent = 40 - }, - }, - durability = 40000, - subgroup = "armor", - order = "g[power-armor-mk4]", - stack_size = 1, - equipment_grid = "power-armor-equipment-grid-mk5", - inventory_size_bonus = 50 - }, - - { - type = "armor", - name = "bob-power-armor-mk5", - icon = "__bobwarfare__/graphics/icons/power-armor-mk5.png", - flags = {"goes-to-main-inventory"}, - resistances = - { - { - type = "physical", - decrease = 20, - percent = 50 - }, - { - type = "acid", - decrease = 20, - percent = 50 - }, - { - type = "explosion", - decrease = 20, - percent = 50 - }, - { - type = "impact", - decrease = 20, - percent = 50 - }, - { - type = "poison", - decrease = 20, - percent = 50 - }, - { - type = "fire", - decrease = 20, - percent = 50 - }, - { - type = "laser", - decrease = 20, - percent = 50 - }, - { - type = "electric", - decrease = 20, - percent = 50 - }, - { - type = "bob-pierce", - decrease = 20, - percent = 50 - }, - }, - durability = 50000, - subgroup = "armor", - order = "h[power-armor-mk5]", - stack_size = 1, - equipment_grid = "power-armor-equipment-grid-mk5", - inventory_size_bonus = 60 - }, -} -) +data:extend( +{ + { + type = "armor", + name = "heavy-armor-2", + icon = "__bobwarfare__/graphics/icons/heavy-armor-2.png", + flags = {"goes-to-main-inventory"}, + resistances = + { + { + type = "physical", + decrease = 8, + percent = 35 + }, + { + type = "impact", + decrease = 10, + percent = 25 + }, + { + type = "acid", + decrease = 7, + percent = 35 + }, + { + type = "explosion", + decrease = 15, + percent = 40 + }, + { + type = "electric", + percent = 30 + }, + { + type = "bob-pierce", + decrease = 10, + percent = 25 + }, + }, + durability = 8000, + subgroup = "armor", + order = "c-a", + stack_size = 10 + }, + { + type = "armor", + name = "heavy-armor-3", + icon = "__bobwarfare__/graphics/icons/heavy-armor-3.png", + flags = {"goes-to-main-inventory"}, + resistances = + { + { + type = "physical", + decrease = 10, + percent = 40 + }, + { + type = "acid", + decrease = 10, + percent = 40 + }, + { + type = "explosion", + decrease = 20, + percent = 50 + }, + { + type = "impact", + decrease = 20, + percent = 30 + }, + { + type = "poison", + percent = 25 + }, + { + type = "fire", + percent = 25 + }, + { + type = "electric", + percent = 50 + }, + { + type = "bob-pierce", + decrease = 20, + percent = 30 + }, + { + type = "laser", + decrease = 10, + percent = 30 + }, + }, + durability = 12000, + subgroup = "armor", + order = "c-b", + stack_size = 10 + }, + + { + type = "armor", + name = "bob-power-armor-mk3", + icon = "__bobwarfare__/graphics/icons/power-armor-mk3.png", + flags = {"goes-to-main-inventory"}, + resistances = + { + { + type = "physical", + decrease = 12, + percent = 45 + }, + { + type = "acid", + decrease = 12, + percent = 45 + }, + { + type = "explosion", + decrease = 20, + percent = 50 + }, + { + type = "impact", + decrease = 10, + percent = 30 + }, + { + type = "poison", + decrease = 10, + percent = 30 + }, + { + type = "fire", + decrease = 10, + percent = 30 + }, + { + type = "laser", + decrease = 10, + percent = 30 + }, + { + type = "electric", + decrease = 10, + percent = 30 + }, + { + type = "bob-pierce", + decrease = 10, + percent = 30 + }, + }, + durability = 30000, + subgroup = "armor", + order = "f[power-armor-mk3]", + stack_size = 1, + equipment_grid = "power-armor-equipment-grid-mk3", + inventory_size_bonus = 40 + }, + + { + type = "armor", + name = "bob-power-armor-mk4", + icon = "__bobwarfare__/graphics/icons/power-armor-mk4.png", + flags = {"goes-to-main-inventory"}, + resistances = + { + { + type = "physical", + decrease = 15, + percent = 50 + }, + { + type = "acid", + decrease = 15, + percent = 50 + }, + { + type = "explosion", + decrease = 20, + percent = 50 + }, + { + type = "impact", + decrease = 15, + percent = 40 + }, + { + type = "poison", + decrease = 15, + percent = 40 + }, + { + type = "fire", + decrease = 15, + percent = 40 + }, + { + type = "laser", + decrease = 15, + percent = 40 + }, + { + type = "electric", + decrease = 15, + percent = 40 + }, + { + type = "bob-pierce", + decrease = 15, + percent = 40 + }, + }, + durability = 40000, + subgroup = "armor", + order = "g[power-armor-mk4]", + stack_size = 1, + equipment_grid = "power-armor-equipment-grid-mk5", + inventory_size_bonus = 50 + }, + + { + type = "armor", + name = "bob-power-armor-mk5", + icon = "__bobwarfare__/graphics/icons/power-armor-mk5.png", + flags = {"goes-to-main-inventory"}, + resistances = + { + { + type = "physical", + decrease = 20, + percent = 50 + }, + { + type = "acid", + decrease = 20, + percent = 50 + }, + { + type = "explosion", + decrease = 20, + percent = 50 + }, + { + type = "impact", + decrease = 20, + percent = 50 + }, + { + type = "poison", + decrease = 20, + percent = 50 + }, + { + type = "fire", + decrease = 20, + percent = 50 + }, + { + type = "laser", + decrease = 20, + percent = 50 + }, + { + type = "electric", + decrease = 20, + percent = 50 + }, + { + type = "bob-pierce", + decrease = 20, + percent = 50 + }, + }, + durability = 50000, + subgroup = "armor", + order = "h[power-armor-mk5]", + stack_size = 1, + equipment_grid = "power-armor-equipment-grid-mk5", + inventory_size_bonus = 60 + }, +} +) diff --git a/bobwarfare_0.14.0/prototypes/item/drone.lua b/bobwarfare_0.14.1/prototypes/item/drone.lua similarity index 95% rename from bobwarfare_0.14.0/prototypes/item/drone.lua rename to bobwarfare_0.14.1/prototypes/item/drone.lua index 3412332..17c322d 100644 --- a/bobwarfare_0.14.0/prototypes/item/drone.lua +++ b/bobwarfare_0.14.1/prototypes/item/drone.lua @@ -1,15 +1,15 @@ -data:extend( -{ - { - type = "item", - name = "bob-robot-tank", - icon = "__base__/graphics/icons/tank.png", - flags = {"goes-to-quickbar"}, - subgroup = "bob-combat-robots", - order = "b[personal-transport]-b[tank]", - place_result = "bob-robot-tank", - stack_size = 10 - }, -} -) - +data:extend( +{ + { + type = "item", + name = "bob-robot-tank", + icon = "__base__/graphics/icons/tank.png", + flags = {"goes-to-quickbar"}, + subgroup = "bob-combat-robots", + order = "b[personal-transport]-b[tank]", + place_result = "bob-robot-tank", + stack_size = 10 + }, +} +) + diff --git a/bobwarfare_0.14.0/prototypes/item/equipment.lua b/bobwarfare_0.14.1/prototypes/item/equipment.lua similarity index 97% rename from bobwarfare_0.14.0/prototypes/item/equipment.lua rename to bobwarfare_0.14.1/prototypes/item/equipment.lua index eab1708..63f7827 100644 --- a/bobwarfare_0.14.0/prototypes/item/equipment.lua +++ b/bobwarfare_0.14.1/prototypes/item/equipment.lua @@ -1,272 +1,272 @@ -data.raw.item["fusion-reactor-equipment"].order = "a[energy-source]-b[fusion-reactor-1]" -data.raw.item["night-vision-equipment"].order = "f[night-vision]-a[night-vision-equipment-1]" -data.raw.item["solar-panel-equipment"].order = "a[energy-source]-a[solar-panel-1]" -data.raw.item["personal-laser-defense-equipment"].order = "d[active-defense]-a[personal-laser-defense-equipment-1]" -data.raw.item["exoskeleton-equipment"].order = "e[exoskeleton]-a[exoskeleton-equipment-1]" - - -data:extend( -{ - { - type = "item", - name = "energy-shield-mk3-equipment", - icon = "__bobwarfare__/graphics/icons/energy-shield-mk3-equipment.png", - placed_as_equipment_result = "energy-shield-mk3-equipment", - flags = {"goes-to-main-inventory"}, - subgroup = "equipment", - order = "b[shield]-c[energy-shield-equipment-mk3]", - stack_size = 50, - default_requiest_amount = 10 - }, - { - type = "item", - name = "energy-shield-mk4-equipment", - icon = "__bobwarfare__/graphics/icons/energy-shield-mk4-equipment.png", - placed_as_equipment_result = "energy-shield-mk4-equipment", - flags = {"goes-to-main-inventory"}, - subgroup = "equipment", - order = "b[shield]-d[energy-shield-equipment-mk4]", - stack_size = 50, - default_requiest_amount = 10 - }, - { - type = "item", - name = "energy-shield-mk5-equipment", - icon = "__bobwarfare__/graphics/icons/energy-shield-mk5-equipment.png", - placed_as_equipment_result = "energy-shield-mk5-equipment", - flags = {"goes-to-main-inventory"}, - subgroup = "equipment", - order = "b[shield]-e[energy-shield-equipment-mk5]", - stack_size = 50, - default_requiest_amount = 10 - }, - { - type = "item", - name = "energy-shield-mk6-equipment", - icon = "__bobwarfare__/graphics/icons/energy-shield-mk6-equipment.png", - placed_as_equipment_result = "energy-shield-mk6-equipment", - flags = {"goes-to-main-inventory"}, - subgroup = "equipment", - order = "b[shield]-f[energy-shield-equipment-mk6]", - stack_size = 50, - default_requiest_amount = 10 - }, - - { - type = "item", - name = "battery-mk3-equipment", - icon = "__bobwarfare__/graphics/icons/battery-mk3-equipment.png", - placed_as_equipment_result = "battery-mk3-equipment", - flags = {"goes-to-main-inventory"}, - subgroup = "equipment", - order = "c[battery]-c[battery-mk3-equipment]", - stack_size = 50, - default_requiest_amount = 10 - }, - { - type = "item", - name = "battery-mk4-equipment", - icon = "__bobwarfare__/graphics/icons/battery-mk4-equipment.png", - placed_as_equipment_result = "battery-mk4-equipment", - flags = {"goes-to-main-inventory"}, - subgroup = "equipment", - order = "c[battery]-d[battery-mk4-equipment]", - stack_size = 50, - default_requiest_amount = 10 - }, - { - type = "item", - name = "battery-mk5-equipment", - icon = "__bobwarfare__/graphics/icons/battery-mk5-equipment.png", - placed_as_equipment_result = "battery-mk5-equipment", - flags = {"goes-to-main-inventory"}, - subgroup = "equipment", - order = "c[battery]-e[battery-mk5-equipment]", - stack_size = 50, - default_requiest_amount = 10 - }, - { - type = "item", - name = "battery-mk6-equipment", - icon = "__bobwarfare__/graphics/icons/battery-mk6-equipment.png", - placed_as_equipment_result = "battery-mk6-equipment", - flags = {"goes-to-main-inventory"}, - subgroup = "equipment", - order = "c[battery]-f[battery-mk6-equipment]", - stack_size = 50, - default_requiest_amount = 10 - }, - - { - type = "item", - name = "fusion-reactor-equipment-2", - icon = "__bobwarfare__/graphics/icons/fusion-reactor-equipment-2.png", - placed_as_equipment_result = "fusion-reactor-equipment-2", - flags = {"goes-to-main-inventory"}, - subgroup = "equipment", - order = "a[energy-source]-b[fusion-reactor-2]", - stack_size = 20 - }, - { - type = "item", - name = "fusion-reactor-equipment-3", - icon = "__bobwarfare__/graphics/icons/fusion-reactor-equipment-3.png", - placed_as_equipment_result = "fusion-reactor-equipment-3", - flags = {"goes-to-main-inventory"}, - subgroup = "equipment", - order = "a[energy-source]-b[fusion-reactor-3]", - stack_size = 20 - }, - { - type = "item", - name = "fusion-reactor-equipment-4", - icon = "__bobwarfare__/graphics/icons/fusion-reactor-equipment-4.png", - placed_as_equipment_result = "fusion-reactor-equipment-4", - flags = {"goes-to-main-inventory"}, - subgroup = "equipment", - order = "a[energy-source]-b[fusion-reactor-4]", - stack_size = 20 - }, - - - { - type = "item", - name = "combat-robot-dispenser-equipment", - icon = "__bobwarfare__/graphics/icons/distractor.png", - placed_as_equipment_result = "combat-robot-dispenser-equipment", - flags = {"goes-to-main-inventory"}, - subgroup = "equipment", - order = "d[active-defense]-c[combat-robot-dispenser-equipment-2]", - stack_size = 20 - }, - - - { - type = "item", - name = "night-vision-equipment-2", - icon = "__base__/graphics/icons/night-vision-equipment.png", - placed_as_equipment_result = "night-vision-equipment-2", - flags = {"goes-to-main-inventory"}, - subgroup = "equipment", - order = "f[night-vision]-b[night-vision-equipment-2]", - stack_size = 20 - }, - { - type = "item", - name = "night-vision-equipment-3", - icon = "__base__/graphics/icons/night-vision-equipment.png", - placed_as_equipment_result = "night-vision-equipment-3", - flags = {"goes-to-main-inventory"}, - subgroup = "equipment", - order = "f[night-vision]-c[night-vision-equipment-3]", - stack_size = 20 - }, - - - { - type = "item", - name = "solar-panel-equipment-2", - icon = "__bobwarfare__/graphics/icons/solar-panel-equipment-2.png", - placed_as_equipment_result = "solar-panel-equipment-2", - flags = {"goes-to-main-inventory"}, - subgroup = "equipment", - order = "a[energy-source]-a[solar-panel-2]", - stack_size = 20 - }, - { - type = "item", - name = "solar-panel-equipment-3", - icon = "__bobwarfare__/graphics/icons/solar-panel-equipment-3.png", - placed_as_equipment_result = "solar-panel-equipment-3", - flags = {"goes-to-main-inventory"}, - subgroup = "equipment", - order = "a[energy-source]-a[solar-panel-3]", - stack_size = 20 - }, - { - type = "item", - name = "solar-panel-equipment-4", - icon = "__bobwarfare__/graphics/icons/solar-panel-equipment-4.png", - placed_as_equipment_result = "solar-panel-equipment-4", - flags = {"goes-to-main-inventory"}, - subgroup = "equipment", - order = "a[energy-source]-a[solar-panel-4]", - stack_size = 20 - }, - - - { - type = "item", - name = "personal-laser-defense-equipment-2", - icon = "__bobwarfare__/graphics/icons/personal-laser-defense-equipment-2.png", - placed_as_equipment_result = "personal-laser-defense-equipment-2", - flags = {"goes-to-main-inventory"}, - subgroup = "equipment", - order = "d[active-defense]-a[personal-laser-defense-equipment-2]", - stack_size = 20 - }, - { - type = "item", - name = "personal-laser-defense-equipment-3", - icon = "__bobwarfare__/graphics/icons/personal-laser-defense-equipment-3.png", - placed_as_equipment_result = "personal-laser-defense-equipment-3", - flags = {"goes-to-main-inventory"}, - subgroup = "equipment", - order = "d[active-defense]-a[personal-laser-defense-equipment-3]", - stack_size = 20 - }, - { - type = "item", - name = "personal-laser-defense-equipment-4", - icon = "__bobwarfare__/graphics/icons/personal-laser-defense-equipment-4.png", - placed_as_equipment_result = "personal-laser-defense-equipment-4", - flags = {"goes-to-main-inventory"}, - subgroup = "equipment", - order = "d[active-defense]-a[personal-laser-defense-equipment-4]", - stack_size = 20 - }, - { - type = "item", - name = "personal-laser-defense-equipment-5", - icon = "__bobwarfare__/graphics/icons/personal-laser-defense-equipment-5.png", - placed_as_equipment_result = "personal-laser-defense-equipment-5", - flags = {"goes-to-main-inventory"}, - subgroup = "equipment", - order = "d[active-defense]-a[personal-laser-defense-equipment-5]", - stack_size = 20 - }, - { - type = "item", - name = "personal-laser-defense-equipment-6", - icon = "__bobwarfare__/graphics/icons/personal-laser-defense-equipment-6.png", - placed_as_equipment_result = "personal-laser-defense-equipment-6", - flags = {"goes-to-main-inventory"}, - subgroup = "equipment", - order = "d[active-defense]-a[personal-laser-defense-equipment-6]", - stack_size = 20 - }, - - - { - type = "item", - name = "exoskeleton-equipment-2", - icon = "__base__/graphics/icons/exoskeleton-equipment.png", - placed_as_equipment_result = "exoskeleton-equipment-2", - flags = {"goes-to-main-inventory"}, - subgroup = "equipment", - order = "e[exoskeleton]-a[exoskeleton-equipment-2]", - stack_size = 10 - }, - { - type = "item", - name = "exoskeleton-equipment-3", - icon = "__base__/graphics/icons/exoskeleton-equipment.png", - placed_as_equipment_result = "exoskeleton-equipment-3", - flags = {"goes-to-main-inventory"}, - subgroup = "equipment", - order = "e[exoskeleton]-a[exoskeleton-equipment-3]", - stack_size = 10 - }, -} -) - +data.raw.item["fusion-reactor-equipment"].order = "a[energy-source]-b[fusion-reactor-1]" +data.raw.item["night-vision-equipment"].order = "f[night-vision]-a[night-vision-equipment-1]" +data.raw.item["solar-panel-equipment"].order = "a[energy-source]-a[solar-panel-1]" +data.raw.item["personal-laser-defense-equipment"].order = "d[active-defense]-a[personal-laser-defense-equipment-1]" +data.raw.item["exoskeleton-equipment"].order = "e[exoskeleton]-a[exoskeleton-equipment-1]" + + +data:extend( +{ + { + type = "item", + name = "energy-shield-mk3-equipment", + icon = "__bobwarfare__/graphics/icons/energy-shield-mk3-equipment.png", + placed_as_equipment_result = "energy-shield-mk3-equipment", + flags = {"goes-to-main-inventory"}, + subgroup = "equipment", + order = "b[shield]-c[energy-shield-equipment-mk3]", + stack_size = 50, + default_requiest_amount = 10 + }, + { + type = "item", + name = "energy-shield-mk4-equipment", + icon = "__bobwarfare__/graphics/icons/energy-shield-mk4-equipment.png", + placed_as_equipment_result = "energy-shield-mk4-equipment", + flags = {"goes-to-main-inventory"}, + subgroup = "equipment", + order = "b[shield]-d[energy-shield-equipment-mk4]", + stack_size = 50, + default_requiest_amount = 10 + }, + { + type = "item", + name = "energy-shield-mk5-equipment", + icon = "__bobwarfare__/graphics/icons/energy-shield-mk5-equipment.png", + placed_as_equipment_result = "energy-shield-mk5-equipment", + flags = {"goes-to-main-inventory"}, + subgroup = "equipment", + order = "b[shield]-e[energy-shield-equipment-mk5]", + stack_size = 50, + default_requiest_amount = 10 + }, + { + type = "item", + name = "energy-shield-mk6-equipment", + icon = "__bobwarfare__/graphics/icons/energy-shield-mk6-equipment.png", + placed_as_equipment_result = "energy-shield-mk6-equipment", + flags = {"goes-to-main-inventory"}, + subgroup = "equipment", + order = "b[shield]-f[energy-shield-equipment-mk6]", + stack_size = 50, + default_requiest_amount = 10 + }, + + { + type = "item", + name = "battery-mk3-equipment", + icon = "__bobwarfare__/graphics/icons/battery-mk3-equipment.png", + placed_as_equipment_result = "battery-mk3-equipment", + flags = {"goes-to-main-inventory"}, + subgroup = "equipment", + order = "c[battery]-c[battery-mk3-equipment]", + stack_size = 50, + default_requiest_amount = 10 + }, + { + type = "item", + name = "battery-mk4-equipment", + icon = "__bobwarfare__/graphics/icons/battery-mk4-equipment.png", + placed_as_equipment_result = "battery-mk4-equipment", + flags = {"goes-to-main-inventory"}, + subgroup = "equipment", + order = "c[battery]-d[battery-mk4-equipment]", + stack_size = 50, + default_requiest_amount = 10 + }, + { + type = "item", + name = "battery-mk5-equipment", + icon = "__bobwarfare__/graphics/icons/battery-mk5-equipment.png", + placed_as_equipment_result = "battery-mk5-equipment", + flags = {"goes-to-main-inventory"}, + subgroup = "equipment", + order = "c[battery]-e[battery-mk5-equipment]", + stack_size = 50, + default_requiest_amount = 10 + }, + { + type = "item", + name = "battery-mk6-equipment", + icon = "__bobwarfare__/graphics/icons/battery-mk6-equipment.png", + placed_as_equipment_result = "battery-mk6-equipment", + flags = {"goes-to-main-inventory"}, + subgroup = "equipment", + order = "c[battery]-f[battery-mk6-equipment]", + stack_size = 50, + default_requiest_amount = 10 + }, + + { + type = "item", + name = "fusion-reactor-equipment-2", + icon = "__bobwarfare__/graphics/icons/fusion-reactor-equipment-2.png", + placed_as_equipment_result = "fusion-reactor-equipment-2", + flags = {"goes-to-main-inventory"}, + subgroup = "equipment", + order = "a[energy-source]-b[fusion-reactor-2]", + stack_size = 20 + }, + { + type = "item", + name = "fusion-reactor-equipment-3", + icon = "__bobwarfare__/graphics/icons/fusion-reactor-equipment-3.png", + placed_as_equipment_result = "fusion-reactor-equipment-3", + flags = {"goes-to-main-inventory"}, + subgroup = "equipment", + order = "a[energy-source]-b[fusion-reactor-3]", + stack_size = 20 + }, + { + type = "item", + name = "fusion-reactor-equipment-4", + icon = "__bobwarfare__/graphics/icons/fusion-reactor-equipment-4.png", + placed_as_equipment_result = "fusion-reactor-equipment-4", + flags = {"goes-to-main-inventory"}, + subgroup = "equipment", + order = "a[energy-source]-b[fusion-reactor-4]", + stack_size = 20 + }, + + + { + type = "item", + name = "combat-robot-dispenser-equipment", + icon = "__bobwarfare__/graphics/icons/distractor.png", + placed_as_equipment_result = "combat-robot-dispenser-equipment", + flags = {"goes-to-main-inventory"}, + subgroup = "equipment", + order = "d[active-defense]-c[combat-robot-dispenser-equipment-2]", + stack_size = 20 + }, + + + { + type = "item", + name = "night-vision-equipment-2", + icon = "__base__/graphics/icons/night-vision-equipment.png", + placed_as_equipment_result = "night-vision-equipment-2", + flags = {"goes-to-main-inventory"}, + subgroup = "equipment", + order = "f[night-vision]-b[night-vision-equipment-2]", + stack_size = 20 + }, + { + type = "item", + name = "night-vision-equipment-3", + icon = "__base__/graphics/icons/night-vision-equipment.png", + placed_as_equipment_result = "night-vision-equipment-3", + flags = {"goes-to-main-inventory"}, + subgroup = "equipment", + order = "f[night-vision]-c[night-vision-equipment-3]", + stack_size = 20 + }, + + + { + type = "item", + name = "solar-panel-equipment-2", + icon = "__bobwarfare__/graphics/icons/solar-panel-equipment-2.png", + placed_as_equipment_result = "solar-panel-equipment-2", + flags = {"goes-to-main-inventory"}, + subgroup = "equipment", + order = "a[energy-source]-a[solar-panel-2]", + stack_size = 20 + }, + { + type = "item", + name = "solar-panel-equipment-3", + icon = "__bobwarfare__/graphics/icons/solar-panel-equipment-3.png", + placed_as_equipment_result = "solar-panel-equipment-3", + flags = {"goes-to-main-inventory"}, + subgroup = "equipment", + order = "a[energy-source]-a[solar-panel-3]", + stack_size = 20 + }, + { + type = "item", + name = "solar-panel-equipment-4", + icon = "__bobwarfare__/graphics/icons/solar-panel-equipment-4.png", + placed_as_equipment_result = "solar-panel-equipment-4", + flags = {"goes-to-main-inventory"}, + subgroup = "equipment", + order = "a[energy-source]-a[solar-panel-4]", + stack_size = 20 + }, + + + { + type = "item", + name = "personal-laser-defense-equipment-2", + icon = "__bobwarfare__/graphics/icons/personal-laser-defense-equipment-2.png", + placed_as_equipment_result = "personal-laser-defense-equipment-2", + flags = {"goes-to-main-inventory"}, + subgroup = "equipment", + order = "d[active-defense]-a[personal-laser-defense-equipment-2]", + stack_size = 20 + }, + { + type = "item", + name = "personal-laser-defense-equipment-3", + icon = "__bobwarfare__/graphics/icons/personal-laser-defense-equipment-3.png", + placed_as_equipment_result = "personal-laser-defense-equipment-3", + flags = {"goes-to-main-inventory"}, + subgroup = "equipment", + order = "d[active-defense]-a[personal-laser-defense-equipment-3]", + stack_size = 20 + }, + { + type = "item", + name = "personal-laser-defense-equipment-4", + icon = "__bobwarfare__/graphics/icons/personal-laser-defense-equipment-4.png", + placed_as_equipment_result = "personal-laser-defense-equipment-4", + flags = {"goes-to-main-inventory"}, + subgroup = "equipment", + order = "d[active-defense]-a[personal-laser-defense-equipment-4]", + stack_size = 20 + }, + { + type = "item", + name = "personal-laser-defense-equipment-5", + icon = "__bobwarfare__/graphics/icons/personal-laser-defense-equipment-5.png", + placed_as_equipment_result = "personal-laser-defense-equipment-5", + flags = {"goes-to-main-inventory"}, + subgroup = "equipment", + order = "d[active-defense]-a[personal-laser-defense-equipment-5]", + stack_size = 20 + }, + { + type = "item", + name = "personal-laser-defense-equipment-6", + icon = "__bobwarfare__/graphics/icons/personal-laser-defense-equipment-6.png", + placed_as_equipment_result = "personal-laser-defense-equipment-6", + flags = {"goes-to-main-inventory"}, + subgroup = "equipment", + order = "d[active-defense]-a[personal-laser-defense-equipment-6]", + stack_size = 20 + }, + + + { + type = "item", + name = "exoskeleton-equipment-2", + icon = "__base__/graphics/icons/exoskeleton-equipment.png", + placed_as_equipment_result = "exoskeleton-equipment-2", + flags = {"goes-to-main-inventory"}, + subgroup = "equipment", + order = "e[exoskeleton]-a[exoskeleton-equipment-2]", + stack_size = 10 + }, + { + type = "item", + name = "exoskeleton-equipment-3", + icon = "__base__/graphics/icons/exoskeleton-equipment.png", + placed_as_equipment_result = "exoskeleton-equipment-3", + flags = {"goes-to-main-inventory"}, + subgroup = "equipment", + order = "e[exoskeleton]-a[exoskeleton-equipment-3]", + stack_size = 10 + }, +} +) + diff --git a/bobwarfare_0.14.0/prototypes/item/fluid.lua b/bobwarfare_0.14.1/prototypes/item/fluid.lua similarity index 95% rename from bobwarfare_0.14.0/prototypes/item/fluid.lua rename to bobwarfare_0.14.1/prototypes/item/fluid.lua index e7a1ffa..8a31d02 100644 --- a/bobwarfare_0.14.0/prototypes/item/fluid.lua +++ b/bobwarfare_0.14.1/prototypes/item/fluid.lua @@ -1,53 +1,53 @@ -if data.raw.fluid["nitric-acid"] then data:extend( -{ - { - type = "fluid", - name = "sulfuric-nitric-acid", - default_temperature = 25, - heat_capacity = "1KJ", - base_color = {r=0.0, g=0.0, b=1.0}, - flow_color = {r=1.0, g=1.0, b=0.0}, - max_temperature = 100, - icon = "__bobwarfare__/graphics/icons/sulfuric-nitric-acid.png", - pressure_to_speed_ratio = 0.4, - flow_to_energy_ratio = 0.59, - order = "a[fluid]-g[sulfuric-nitric-acid]" - }, -} -) -end - - -data:extend( -{ - { - type = "fluid", - name = "nitroglycerin", - default_temperature = 25, - heat_capacity = "1KJ", - base_color = {r=0.3, g=0.3, b=1.0}, - flow_color = {r=1.0, g=0.3, b=0.3}, - max_temperature = 100, - icon = "__bobwarfare__/graphics/icons/nitroglycerin.png", - pressure_to_speed_ratio = 0.4, - flow_to_energy_ratio = 0.59, - order = "a[fluid]-g[nitroglycerin]" - }, - - { - type = "fluid", - name = "glycerol", - default_temperature = 25, - heat_capacity = "1KJ", - base_color = {r=1.0, g=1.0, b=0.5}, - flow_color = {r=0.5, g=0.5, b=0.5}, - max_temperature = 100, - icon = "__bobwarfare__/graphics/icons/glycerol.png", - pressure_to_speed_ratio = 0.4, - flow_to_energy_ratio = 0.59, - order = "a[fluid]-g[glycerol]" - }, -} -) - - +if data.raw.fluid["nitric-acid"] then data:extend( +{ + { + type = "fluid", + name = "sulfuric-nitric-acid", + default_temperature = 25, + heat_capacity = "1KJ", + base_color = {r=0.0, g=0.0, b=1.0}, + flow_color = {r=1.0, g=1.0, b=0.0}, + max_temperature = 100, + icon = "__bobwarfare__/graphics/icons/sulfuric-nitric-acid.png", + pressure_to_speed_ratio = 0.4, + flow_to_energy_ratio = 0.59, + order = "a[fluid]-g[sulfuric-nitric-acid]" + }, +} +) +end + + +data:extend( +{ + { + type = "fluid", + name = "nitroglycerin", + default_temperature = 25, + heat_capacity = "1KJ", + base_color = {r=0.3, g=0.3, b=1.0}, + flow_color = {r=1.0, g=0.3, b=0.3}, + max_temperature = 100, + icon = "__bobwarfare__/graphics/icons/nitroglycerin.png", + pressure_to_speed_ratio = 0.4, + flow_to_energy_ratio = 0.59, + order = "a[fluid]-g[nitroglycerin]" + }, + + { + type = "fluid", + name = "glycerol", + default_temperature = 25, + heat_capacity = "1KJ", + base_color = {r=1.0, g=1.0, b=0.5}, + flow_color = {r=0.5, g=0.5, b=0.5}, + max_temperature = 100, + icon = "__bobwarfare__/graphics/icons/glycerol.png", + pressure_to_speed_ratio = 0.4, + flow_to_energy_ratio = 0.59, + order = "a[fluid]-g[glycerol]" + }, +} +) + + diff --git a/bobwarfare_0.14.0/prototypes/item/gun.lua b/bobwarfare_0.14.1/prototypes/item/gun.lua similarity index 96% rename from bobwarfare_0.14.0/prototypes/item/gun.lua rename to bobwarfare_0.14.1/prototypes/item/gun.lua index 51a9052..af8e2c7 100644 --- a/bobwarfare_0.14.0/prototypes/item/gun.lua +++ b/bobwarfare_0.14.1/prototypes/item/gun.lua @@ -1,284 +1,284 @@ -data:extend( -{ - { - type = "gun", - name = "rifle", - icon = "__bobwarfare__/graphics/icons/rifle.png", - flags = {"goes-to-main-inventory"}, - subgroup = "gun", - order = "a[basic-clips]-c[rifle]", - stack_size = 5, - attack_parameters = - { - type = "projectile", - ammo_category = "bullet", - cooldown = 30, - movement_slow_down_factor = 0.5, - projectile_creation_distance = 0.6, - range = 20, - damage_modifier = 7,--7.5 - sound = make_heavy_gunshot_sounds(), - shell_particle = - { - name = "shell-particle", - direction_deviation = 0.1, - speed = 0.1, - speed_deviation = 0.03, - center = {0, 0.6}, - creation_distance = 0.6, - starting_frame_speed = 0.4, - starting_frame_speed_deviation = 0.1 - }, - }, - }, - - { - type = "gun", - name = "sniper-rifle", - icon = "__bobwarfare__/graphics/icons/sniper-rifle.png", - flags = {"goes-to-main-inventory"}, - subgroup = "gun", - order = "a[basic-clips]-d[sniper-rifle]", - stack_size = 5, - attack_parameters = - { - type = "projectile", - ammo_category = "bullet", - cooldown = 120, - movement_slow_down_factor = 0.75, - projectile_creation_distance = 0.6, - range = 30,--60 - damage_modifier = 25,--30 - sound = make_heavy_gunshot_sounds(), - shell_particle = - { - name = "shell-particle", - direction_deviation = 0.1, - speed = 0.1, - speed_deviation = 0.03, - center = {0, 0.6}, - creation_distance = 0.6, - starting_frame_speed = 0.4, - starting_frame_speed_deviation = 0.1 - }, - }, - }, - - { - type = "gun", - name = "laser-rifle", - icon = "__bobwarfare__/graphics/icons/laser-rifle.png", - flags = {"goes-to-main-inventory"}, - subgroup = "gun", - order = "b[laser-rifle]", - stack_size = 5, - attack_parameters = - { - type = "projectile", - ammo_category = "laser-rifle", - cooldown = 30, - movement_slow_down_factor = 0.5, - damage_modifier = 1.2,--1 - projectile_center = {0, 0}, - projectile_creation_distance = 0.6, - range = 20, - sound = make_laser_sounds(), - }, - }, - { - type = "gun", - name = "laser-beam-rifle", - icon = "__bobwarfare__/graphics/icons/laser-rifle.png", - flags = {"goes-to-main-inventory"}, - subgroup = "gun", - order = "b[laser-rifle]", - stack_size = 5, - attack_parameters = - { - type = "beam", --- ammo_category = "beam-rifle", - ammo_category = "laser-rifle", - cooldown = 20, - range = 15, - movement_slow_down_factor = 0.5, - damage_modifier = 10, - sound = make_laser_sounds(), - }, - }, -} -) - - ---tank weapons -data:extend( -{ - { - type = "gun", - name = "gatling-gun", - icon = "__bobwarfare__/graphics/icons/gatling-gun.png", - flags = {"goes-to-main-inventory", "hidden"}, - subgroup = "gun", - order = "a[basic-clips]-e[gatling-gun]", - stack_size = 5, - attack_parameters = - { - type = "projectile", - ammo_category = "bullet", - cooldown = 2, - movement_slow_down_factor = 0.8, - projectile_center = {-0.15625, -0.07812}, - projectile_creation_distance = 1, - range = 20, - damage_modifier = 1.5, - sound = make_heavy_gunshot_sounds(), - shell_particle = - { - name = "shell-particle", - direction_deviation = 0.1, - speed = 0.1, - speed_deviation = 0.03, - center = {0, 0}, - creation_distance = -0.6875, - starting_frame_speed = 0.4, - starting_frame_speed_deviation = 0.1 - }, - }, - }, - - - { - type = "gun", - name = "tank-cannon-2", - icon = "__base__/graphics/icons/tank-cannon.png", - flags = {"goes-to-main-inventory", "hidden"}, - subgroup = "gun", - order = "z[tank]-a[cannon-2]", - stack_size = 5, - attack_parameters = - { - type = "projectile", - ammo_category = "cannon-shell", - cooldown = 60, --90 - movement_slow_down_factor = 0, - projectile_creation_distance = 1.6, - projectile_center = {-0.15625, -0.07812}, - range = 25, - damage_modifier = 1.5, - sound = - { - { - filename = "__base__/sound/fight/tank-cannon.ogg", - volume = 0.7 - } - } - }, - }, - - { - type = "gun", - name = "tank-cannon-3", - icon = "__base__/graphics/icons/tank-cannon.png", - flags = {"goes-to-main-inventory", "hidden"}, - subgroup = "gun", - order = "z[tank]-a[cannon-3]", - stack_size = 5, - attack_parameters = - { - type = "projectile", - ammo_category = "cannon-shell", - cooldown = 30, - movement_slow_down_factor = 0, - projectile_creation_distance = 1.6, - projectile_center = {-0.15625, -0.07812}, - range = 25, - damage_modifier = 2, - sound = - { - { - filename = "__base__/sound/fight/tank-cannon.ogg", - volume = 0.7 - } - } - }, - }, - - - { - type = "gun", - name = "tank-artillery-1", - icon = "__bobwarfare__/graphics/icons/tank-artillery.png", - flags = {"goes-to-main-inventory", "hidden"}, - subgroup = "gun", - order = "z[tank]-b[artillery-1]", - stack_size = 5, - attack_parameters = - { - type = "projectile", - ammo_category = "artillery-shell", - cooldown = 90, - movement_slow_down_factor = 0, - projectile_creation_distance = 1.6, - projectile_center = {-0.15625, -0.07812}, - range = 35, - sound = - { - { - filename = "__base__/sound/fight/tank-cannon.ogg", - volume = 0.7 - } - } - }, - }, - - { - type = "gun", - name = "tank-artillery-2", - icon = "__bobwarfare__/graphics/icons/tank-artillery.png", - flags = {"goes-to-main-inventory", "hidden"}, - subgroup = "gun", - order = "z[tank]-b[artillery-2]", - stack_size = 5, - attack_parameters = - { - type = "projectile", - ammo_category = "artillery-shell", - cooldown = 60, - movement_slow_down_factor = 0, - projectile_creation_distance = 1.6, - projectile_center = {-0.15625, -0.07812}, - range = 35, - damage_modifier = 1.5, - sound = - { - { - filename = "__base__/sound/fight/tank-cannon.ogg", - volume = 0.7 - } - } - }, - }, - - { - type = "gun", - name = "tank-laser", - icon = "__bobwarfare__/graphics/icons/tank-laser.png", - flags = {"goes-to-main-inventory", "hidden"}, - subgroup = "gun", - order = "z[tank]-c[laser]", - stack_size = 5, - attack_parameters = - { - type = "projectile", --- ammo_category = "tank-laser", - ammo_category = "laser-rifle", - cooldown = 15, - movement_slow_down_factor = 0, - damage_modifier = 2, - projectile_creation_distance = 1.6, - projectile_center = {-0.15625, -0.07812}, - range = 25, - sound = make_laser_sounds(), - }, - }, -} -) +data:extend( +{ + { + type = "gun", + name = "rifle", + icon = "__bobwarfare__/graphics/icons/rifle.png", + flags = {"goes-to-main-inventory"}, + subgroup = "gun", + order = "a[basic-clips]-c[rifle]", + stack_size = 5, + attack_parameters = + { + type = "projectile", + ammo_category = "bullet", + cooldown = 30, + movement_slow_down_factor = 0.5, + projectile_creation_distance = 0.6, + range = 20, + damage_modifier = 7,--7.5 + sound = make_heavy_gunshot_sounds(), + shell_particle = + { + name = "shell-particle", + direction_deviation = 0.1, + speed = 0.1, + speed_deviation = 0.03, + center = {0, 0.6}, + creation_distance = 0.6, + starting_frame_speed = 0.4, + starting_frame_speed_deviation = 0.1 + }, + }, + }, + + { + type = "gun", + name = "sniper-rifle", + icon = "__bobwarfare__/graphics/icons/sniper-rifle.png", + flags = {"goes-to-main-inventory"}, + subgroup = "gun", + order = "a[basic-clips]-d[sniper-rifle]", + stack_size = 5, + attack_parameters = + { + type = "projectile", + ammo_category = "bullet", + cooldown = 120, + movement_slow_down_factor = 0.75, + projectile_creation_distance = 0.6, + range = 30,--60 + damage_modifier = 25,--30 + sound = make_heavy_gunshot_sounds(), + shell_particle = + { + name = "shell-particle", + direction_deviation = 0.1, + speed = 0.1, + speed_deviation = 0.03, + center = {0, 0.6}, + creation_distance = 0.6, + starting_frame_speed = 0.4, + starting_frame_speed_deviation = 0.1 + }, + }, + }, + + { + type = "gun", + name = "laser-rifle", + icon = "__bobwarfare__/graphics/icons/laser-rifle.png", + flags = {"goes-to-main-inventory"}, + subgroup = "gun", + order = "b[laser-rifle]", + stack_size = 5, + attack_parameters = + { + type = "projectile", + ammo_category = "laser-rifle", + cooldown = 30, + movement_slow_down_factor = 0.5, + damage_modifier = 1.2,--1 + projectile_center = {0, 0}, + projectile_creation_distance = 0.6, + range = 20, + sound = make_laser_sounds(), + }, + }, + { + type = "gun", + name = "laser-beam-rifle", + icon = "__bobwarfare__/graphics/icons/laser-rifle.png", + flags = {"goes-to-main-inventory"}, + subgroup = "gun", + order = "b[laser-rifle]", + stack_size = 5, + attack_parameters = + { + type = "beam", +-- ammo_category = "beam-rifle", + ammo_category = "laser-rifle", + cooldown = 20, + range = 15, + movement_slow_down_factor = 0.5, + damage_modifier = 10, + sound = make_laser_sounds(), + }, + }, +} +) + + +--tank weapons +data:extend( +{ + { + type = "gun", + name = "gatling-gun", + icon = "__bobwarfare__/graphics/icons/gatling-gun.png", + flags = {"goes-to-main-inventory", "hidden"}, + subgroup = "gun", + order = "a[basic-clips]-e[gatling-gun]", + stack_size = 5, + attack_parameters = + { + type = "projectile", + ammo_category = "bullet", + cooldown = 2, + movement_slow_down_factor = 0.8, + projectile_center = {-0.15625, -0.07812}, + projectile_creation_distance = 1, + range = 20, + damage_modifier = 1.5, + sound = make_heavy_gunshot_sounds(), + shell_particle = + { + name = "shell-particle", + direction_deviation = 0.1, + speed = 0.1, + speed_deviation = 0.03, + center = {0, 0}, + creation_distance = -0.6875, + starting_frame_speed = 0.4, + starting_frame_speed_deviation = 0.1 + }, + }, + }, + + + { + type = "gun", + name = "tank-cannon-2", + icon = "__base__/graphics/icons/tank-cannon.png", + flags = {"goes-to-main-inventory", "hidden"}, + subgroup = "gun", + order = "z[tank]-a[cannon-2]", + stack_size = 5, + attack_parameters = + { + type = "projectile", + ammo_category = "cannon-shell", + cooldown = 60, --90 + movement_slow_down_factor = 0, + projectile_creation_distance = 1.6, + projectile_center = {-0.15625, -0.07812}, + range = 25, + damage_modifier = 1.5, + sound = + { + { + filename = "__base__/sound/fight/tank-cannon.ogg", + volume = 0.7 + } + } + }, + }, + + { + type = "gun", + name = "tank-cannon-3", + icon = "__base__/graphics/icons/tank-cannon.png", + flags = {"goes-to-main-inventory", "hidden"}, + subgroup = "gun", + order = "z[tank]-a[cannon-3]", + stack_size = 5, + attack_parameters = + { + type = "projectile", + ammo_category = "cannon-shell", + cooldown = 30, + movement_slow_down_factor = 0, + projectile_creation_distance = 1.6, + projectile_center = {-0.15625, -0.07812}, + range = 25, + damage_modifier = 2, + sound = + { + { + filename = "__base__/sound/fight/tank-cannon.ogg", + volume = 0.7 + } + } + }, + }, + + + { + type = "gun", + name = "tank-artillery-1", + icon = "__bobwarfare__/graphics/icons/tank-artillery.png", + flags = {"goes-to-main-inventory", "hidden"}, + subgroup = "gun", + order = "z[tank]-b[artillery-1]", + stack_size = 5, + attack_parameters = + { + type = "projectile", + ammo_category = "artillery-shell", + cooldown = 90, + movement_slow_down_factor = 0, + projectile_creation_distance = 1.6, + projectile_center = {-0.15625, -0.07812}, + range = 35, + sound = + { + { + filename = "__base__/sound/fight/tank-cannon.ogg", + volume = 0.7 + } + } + }, + }, + + { + type = "gun", + name = "tank-artillery-2", + icon = "__bobwarfare__/graphics/icons/tank-artillery.png", + flags = {"goes-to-main-inventory", "hidden"}, + subgroup = "gun", + order = "z[tank]-b[artillery-2]", + stack_size = 5, + attack_parameters = + { + type = "projectile", + ammo_category = "artillery-shell", + cooldown = 60, + movement_slow_down_factor = 0, + projectile_creation_distance = 1.6, + projectile_center = {-0.15625, -0.07812}, + range = 35, + damage_modifier = 1.5, + sound = + { + { + filename = "__base__/sound/fight/tank-cannon.ogg", + volume = 0.7 + } + } + }, + }, + + { + type = "gun", + name = "tank-laser", + icon = "__bobwarfare__/graphics/icons/tank-laser.png", + flags = {"goes-to-main-inventory", "hidden"}, + subgroup = "gun", + order = "z[tank]-c[laser]", + stack_size = 5, + attack_parameters = + { + type = "projectile", +-- ammo_category = "tank-laser", + ammo_category = "laser-rifle", + cooldown = 15, + movement_slow_down_factor = 0, + damage_modifier = 2, + projectile_creation_distance = 1.6, + projectile_center = {-0.15625, -0.07812}, + range = 25, + sound = make_laser_sounds(), + }, + }, +} +) diff --git a/bobwarfare_0.14.0/prototypes/item/mine.lua b/bobwarfare_0.14.1/prototypes/item/mine.lua similarity index 95% rename from bobwarfare_0.14.0/prototypes/item/mine.lua rename to bobwarfare_0.14.1/prototypes/item/mine.lua index 7ed4ba3..f0e4b58 100644 --- a/bobwarfare_0.14.0/prototypes/item/mine.lua +++ b/bobwarfare_0.14.1/prototypes/item/mine.lua @@ -1,44 +1,44 @@ -data:extend( -{ - { - type = "item", - name = "poison-mine", - icon = "__base__/graphics/icons/land-mine.png", - flags = {"goes-to-quickbar"}, - damage_radius = 5, - subgroup = "gun", - order = "f[poison-mine]", - place_result = "poison-mine", - stack_size = 20, - trigger_radius = 1 - }, - - { - type = "item", - name = "distractor-mine", - icon = "__base__/graphics/icons/land-mine.png", - flags = {"goes-to-quickbar"}, - damage_radius = 5, - subgroup = "gun", - order = "f[distractor-mine]", - place_result = "distractor-mine", - stack_size = 20, - trigger_radius = 1 - }, - - { - type = "item", - name = "slowdown-mine", - icon = "__base__/graphics/icons/land-mine.png", - flags = {"goes-to-quickbar"}, - damage_radius = 5, - subgroup = "gun", - order = "f[slowdown-mine]", - place_result = "slowdown-mine", - stack_size = 20, - trigger_radius = 1 - }, -} -) - - +data:extend( +{ + { + type = "item", + name = "poison-mine", + icon = "__base__/graphics/icons/land-mine.png", + flags = {"goes-to-quickbar"}, + damage_radius = 5, + subgroup = "gun", + order = "f[poison-mine]", + place_result = "poison-mine", + stack_size = 20, + trigger_radius = 1 + }, + + { + type = "item", + name = "distractor-mine", + icon = "__base__/graphics/icons/land-mine.png", + flags = {"goes-to-quickbar"}, + damage_radius = 5, + subgroup = "gun", + order = "f[distractor-mine]", + place_result = "distractor-mine", + stack_size = 20, + trigger_radius = 1 + }, + + { + type = "item", + name = "slowdown-mine", + icon = "__base__/graphics/icons/land-mine.png", + flags = {"goes-to-quickbar"}, + damage_radius = 5, + subgroup = "gun", + order = "f[slowdown-mine]", + place_result = "slowdown-mine", + stack_size = 20, + trigger_radius = 1 + }, +} +) + + diff --git a/bobwarfare_0.14.0/prototypes/item/parts.lua b/bobwarfare_0.14.1/prototypes/item/parts.lua similarity index 96% rename from bobwarfare_0.14.0/prototypes/item/parts.lua rename to bobwarfare_0.14.1/prototypes/item/parts.lua index 1c5717c..1805935 100644 --- a/bobwarfare_0.14.0/prototypes/item/parts.lua +++ b/bobwarfare_0.14.1/prototypes/item/parts.lua @@ -1,326 +1,326 @@ -data:extend( -{ - { - type = "item", - name = "petroleum-jelly", - icon = "__bobwarfare__/graphics/icons/petroleum-jelly.png", - flags = {"goes-to-main-inventory"}, - subgroup = "bob-resource", - order = "f[petroleum-jelly]", - stack_size = 100 - }, - - { - type = "item", - name = "gun-cotton", - icon = "__bobwarfare__/graphics/icons/gun-cotton.png", - flags = {"goes-to-main-inventory"}, - subgroup = "bob-resource", - order = "f[gun-cotton]", - stack_size = 100 - }, - - { - type = "item", - name = "cordite", - icon = "__bobwarfare__/graphics/icons/cordite.png", - flags = {"goes-to-main-inventory"}, - subgroup = "bob-ammo-parts", - order = "f[cordite]", - stack_size = 100 - }, - - - { - type = "item", - name = "bullet-casing", - icon = "__bobwarfare__/graphics/icons/bullet-casing.png", - flags = {"goes-to-main-inventory"}, - subgroup = "bob-ammo-parts", - order = "f[bullet-casing]", - stack_size = 100 - }, - - { - type = "item", - name = "magazine", - icon = "__bobwarfare__/graphics/icons/magazine.png", - flags = {"goes-to-main-inventory"}, - subgroup = "bob-ammo-parts", - order = "f[magazine]", - stack_size = 100 - }, - - - { - type = "item", - name = "bullet-projectile", - icon = "__bobwarfare__/graphics/icons/bullet-projectile.png", - flags = {"goes-to-main-inventory"}, - subgroup = "bob-ammo-parts", - order = "f[bullet-projectile]", - stack_size = 100 - }, - - { - type = "item", - name = "bullet", - icon = "__bobwarfare__/graphics/icons/bullet.png", - flags = {"goes-to-main-inventory"}, - subgroup = "bob-ammo-parts", - order = "f[bullet]", - stack_size = 100 - }, - - - { - type = "item", - name = "ap-bullet-projectile", - icon = "__bobwarfare__/graphics/icons/ap-bullet-projectile.png", - flags = {"goes-to-main-inventory"}, - subgroup = "bob-ammo-parts", - order = "f[bullet-projectile-ap]", - stack_size = 100 - }, - - { - type = "item", - name = "ap-bullet", - icon = "__bobwarfare__/graphics/icons/ap-bullet.png", - flags = {"goes-to-main-inventory"}, - subgroup = "bob-ammo-parts", - order = "f[bullet-ap]", - stack_size = 100 - }, - - { - type = "item", - name = "he-bullet-projectile", - icon = "__bobwarfare__/graphics/icons/he-bullet-projectile.png", - flags = {"goes-to-main-inventory"}, - subgroup = "bob-ammo-parts", - order = "f[bullet-projectile-he]", - stack_size = 100 - }, - - { - type = "item", - name = "he-bullet", - icon = "__bobwarfare__/graphics/icons/he-bullet.png", - flags = {"goes-to-main-inventory"}, - subgroup = "bob-ammo-parts", - order = "f[bullet-he]", - stack_size = 100 - }, - - - { - type = "item", - name = "flame-bullet-projectile", - icon = "__bobwarfare__/graphics/icons/flame-bullet-projectile.png", - flags = {"goes-to-main-inventory"}, - subgroup = "bob-ammo-parts", - order = "f[bullet-projectile-flame]", - stack_size = 100 - }, - - { - type = "item", - name = "flame-bullet", - icon = "__bobwarfare__/graphics/icons/flame-bullet.png", - flags = {"goes-to-main-inventory"}, - subgroup = "bob-ammo-parts", - order = "f[bullet-flame]", - stack_size = 100 - }, - - - { - type = "item", - name = "acid-bullet-projectile", - icon = "__bobwarfare__/graphics/icons/acid-bullet-projectile.png", - flags = {"goes-to-main-inventory"}, - subgroup = "bob-ammo-parts", - order = "f[bullet-projectile-acid]", - stack_size = 100 - }, - - { - type = "item", - name = "acid-bullet", - icon = "__bobwarfare__/graphics/icons/acid-bullet.png", - flags = {"goes-to-main-inventory"}, - subgroup = "bob-ammo-parts", - order = "f[bullet-acid]", - stack_size = 100 - }, - - - { - type = "item", - name = "poison-bullet-projectile", - icon = "__bobwarfare__/graphics/icons/poison-bullet-projectile.png", - flags = {"goes-to-main-inventory"}, - subgroup = "bob-ammo-parts", - order = "f[bullet-projectile-poison]", - stack_size = 100 - }, - - { - type = "item", - name = "poison-bullet", - icon = "__bobwarfare__/graphics/icons/poison-bullet.png", - flags = {"goes-to-main-inventory"}, - subgroup = "bob-ammo-parts", - order = "f[bullet-poison]", - stack_size = 100 - }, - - - { - type = "item", - name = "electric-bullet-projectile", - icon = "__bobwarfare__/graphics/icons/electric-bullet-projectile.png", - flags = {"goes-to-main-inventory"}, - subgroup = "bob-ammo-parts", - order = "f[bullet-projectile-electric]", - stack_size = 100 - }, - - { - type = "item", - name = "electric-bullet", - icon = "__bobwarfare__/graphics/icons/electric-bullet.png", - flags = {"goes-to-main-inventory"}, - subgroup = "bob-ammo-parts", - order = "f[bullet-electric]", - stack_size = 100 - }, - - - { - type = "item", - name = "shotgun-shell-casing", - icon = "__bobwarfare__/graphics/icons/shotgun-shell-casing.png", - flags = {"goes-to-main-inventory"}, - subgroup = "bob-ammo-parts", - order = "f[shotgun-shell-casing]", - stack_size = 100 - }, - - { - type = "item", - name = "shot", - icon = "__bobwarfare__/graphics/icons/shot.png", - flags = {"goes-to-main-inventory"}, - subgroup = "bob-ammo-parts", - order = "f[shot]", - stack_size = 500 - }, - - - { - type = "item", - name = "laser-rifle-battery-case", - icon = "__bobwarfare__/graphics/icons/laser-rifle-battery-case.png", - flags = {"goes-to-main-inventory"}, - subgroup = "bob-ammo-parts", - order = "f[laser-rifle-battery-case]", - stack_size = 100 - }, - - - { - type = "item", - name = "rocket-engine", - icon = "__bobwarfare__/graphics/icons/rocket-engine.png", - flags = {"goes-to-main-inventory"}, - subgroup = "bob-intermediates", - order = "f[rocket-engine]", - stack_size = 100 - }, - - { - type = "item", - name = "rocket-body", - icon = "__bobwarfare__/graphics/icons/rocket-body.png", - flags = {"goes-to-main-inventory"}, - subgroup = "bob-ammo-parts", - order = "f[rocket-body]", - stack_size = 100 - }, - - { - type = "item", - name = "rocket-warhead", - icon = "__bobwarfare__/graphics/icons/missile-warhead.png", - flags = {"goes-to-main-inventory"}, - subgroup = "bob-ammo-parts", - order = "f[rocket-warhead]", - stack_size = 100 - }, - - { - type = "item", - name = "piercing-rocket-warhead", - icon = "__bobwarfare__/graphics/icons/missile-warhead-pierce.png", - flags = {"goes-to-main-inventory"}, - subgroup = "bob-ammo-parts", - order = "f[piercing-rocket-warhead]", - stack_size = 100 - }, - - { - type = "item", - name = "electric-rocket-warhead", - icon = "__bobwarfare__/graphics/icons/missile-warhead-electric.png", - flags = {"goes-to-main-inventory"}, - subgroup = "bob-ammo-parts", - order = "f[electric-rocket-warhead]", - stack_size = 100 - }, - - { - type = "item", - name = "explosive-rocket-warhead", - icon = "__bobwarfare__/graphics/icons/missile-warhead-explosive.png", - flags = {"goes-to-main-inventory"}, - subgroup = "bob-ammo-parts", - order = "f[explosive-rocket-warhead]", - stack_size = 100 - }, - - { - type = "item", - name = "acid-rocket-warhead", - icon = "__bobwarfare__/graphics/icons/missile-warhead-acid.png", - flags = {"goes-to-main-inventory"}, - subgroup = "bob-ammo-parts", - order = "f[acid-rocket-warhead]", - stack_size = 100 - }, - - { - type = "item", - name = "flame-rocket-warhead", - icon = "__bobwarfare__/graphics/icons/missile-warhead-fire.png", - flags = {"goes-to-main-inventory"}, - subgroup = "bob-ammo-parts", - order = "f[flame-rocket-warhead]", - stack_size = 100 - }, - - { - type = "item", - name = "poison-rocket-warhead", - icon = "__bobwarfare__/graphics/icons/missile-warhead-poison.png", - flags = {"goes-to-main-inventory"}, - subgroup = "bob-ammo-parts", - order = "f[poison-rocket-warhead]", - stack_size = 100 - }, -} -) - - - +data:extend( +{ + { + type = "item", + name = "petroleum-jelly", + icon = "__bobwarfare__/graphics/icons/petroleum-jelly.png", + flags = {"goes-to-main-inventory"}, + subgroup = "bob-resource", + order = "f[petroleum-jelly]", + stack_size = 100 + }, + + { + type = "item", + name = "gun-cotton", + icon = "__bobwarfare__/graphics/icons/gun-cotton.png", + flags = {"goes-to-main-inventory"}, + subgroup = "bob-resource", + order = "f[gun-cotton]", + stack_size = 100 + }, + + { + type = "item", + name = "cordite", + icon = "__bobwarfare__/graphics/icons/cordite.png", + flags = {"goes-to-main-inventory"}, + subgroup = "bob-ammo-parts", + order = "f[cordite]", + stack_size = 100 + }, + + + { + type = "item", + name = "bullet-casing", + icon = "__bobwarfare__/graphics/icons/bullet-casing.png", + flags = {"goes-to-main-inventory"}, + subgroup = "bob-ammo-parts", + order = "f[bullet-casing]", + stack_size = 100 + }, + + { + type = "item", + name = "magazine", + icon = "__bobwarfare__/graphics/icons/magazine.png", + flags = {"goes-to-main-inventory"}, + subgroup = "bob-ammo-parts", + order = "f[magazine]", + stack_size = 100 + }, + + + { + type = "item", + name = "bullet-projectile", + icon = "__bobwarfare__/graphics/icons/bullet-projectile.png", + flags = {"goes-to-main-inventory"}, + subgroup = "bob-ammo-parts", + order = "f[bullet-projectile]", + stack_size = 100 + }, + + { + type = "item", + name = "bullet", + icon = "__bobwarfare__/graphics/icons/bullet.png", + flags = {"goes-to-main-inventory"}, + subgroup = "bob-ammo-parts", + order = "f[bullet]", + stack_size = 100 + }, + + + { + type = "item", + name = "ap-bullet-projectile", + icon = "__bobwarfare__/graphics/icons/ap-bullet-projectile.png", + flags = {"goes-to-main-inventory"}, + subgroup = "bob-ammo-parts", + order = "f[bullet-projectile-ap]", + stack_size = 100 + }, + + { + type = "item", + name = "ap-bullet", + icon = "__bobwarfare__/graphics/icons/ap-bullet.png", + flags = {"goes-to-main-inventory"}, + subgroup = "bob-ammo-parts", + order = "f[bullet-ap]", + stack_size = 100 + }, + + { + type = "item", + name = "he-bullet-projectile", + icon = "__bobwarfare__/graphics/icons/he-bullet-projectile.png", + flags = {"goes-to-main-inventory"}, + subgroup = "bob-ammo-parts", + order = "f[bullet-projectile-he]", + stack_size = 100 + }, + + { + type = "item", + name = "he-bullet", + icon = "__bobwarfare__/graphics/icons/he-bullet.png", + flags = {"goes-to-main-inventory"}, + subgroup = "bob-ammo-parts", + order = "f[bullet-he]", + stack_size = 100 + }, + + + { + type = "item", + name = "flame-bullet-projectile", + icon = "__bobwarfare__/graphics/icons/flame-bullet-projectile.png", + flags = {"goes-to-main-inventory"}, + subgroup = "bob-ammo-parts", + order = "f[bullet-projectile-flame]", + stack_size = 100 + }, + + { + type = "item", + name = "flame-bullet", + icon = "__bobwarfare__/graphics/icons/flame-bullet.png", + flags = {"goes-to-main-inventory"}, + subgroup = "bob-ammo-parts", + order = "f[bullet-flame]", + stack_size = 100 + }, + + + { + type = "item", + name = "acid-bullet-projectile", + icon = "__bobwarfare__/graphics/icons/acid-bullet-projectile.png", + flags = {"goes-to-main-inventory"}, + subgroup = "bob-ammo-parts", + order = "f[bullet-projectile-acid]", + stack_size = 100 + }, + + { + type = "item", + name = "acid-bullet", + icon = "__bobwarfare__/graphics/icons/acid-bullet.png", + flags = {"goes-to-main-inventory"}, + subgroup = "bob-ammo-parts", + order = "f[bullet-acid]", + stack_size = 100 + }, + + + { + type = "item", + name = "poison-bullet-projectile", + icon = "__bobwarfare__/graphics/icons/poison-bullet-projectile.png", + flags = {"goes-to-main-inventory"}, + subgroup = "bob-ammo-parts", + order = "f[bullet-projectile-poison]", + stack_size = 100 + }, + + { + type = "item", + name = "poison-bullet", + icon = "__bobwarfare__/graphics/icons/poison-bullet.png", + flags = {"goes-to-main-inventory"}, + subgroup = "bob-ammo-parts", + order = "f[bullet-poison]", + stack_size = 100 + }, + + + { + type = "item", + name = "electric-bullet-projectile", + icon = "__bobwarfare__/graphics/icons/electric-bullet-projectile.png", + flags = {"goes-to-main-inventory"}, + subgroup = "bob-ammo-parts", + order = "f[bullet-projectile-electric]", + stack_size = 100 + }, + + { + type = "item", + name = "electric-bullet", + icon = "__bobwarfare__/graphics/icons/electric-bullet.png", + flags = {"goes-to-main-inventory"}, + subgroup = "bob-ammo-parts", + order = "f[bullet-electric]", + stack_size = 100 + }, + + + { + type = "item", + name = "shotgun-shell-casing", + icon = "__bobwarfare__/graphics/icons/shotgun-shell-casing.png", + flags = {"goes-to-main-inventory"}, + subgroup = "bob-ammo-parts", + order = "f[shotgun-shell-casing]", + stack_size = 100 + }, + + { + type = "item", + name = "shot", + icon = "__bobwarfare__/graphics/icons/shot.png", + flags = {"goes-to-main-inventory"}, + subgroup = "bob-ammo-parts", + order = "f[shot]", + stack_size = 500 + }, + + + { + type = "item", + name = "laser-rifle-battery-case", + icon = "__bobwarfare__/graphics/icons/laser-rifle-battery-case.png", + flags = {"goes-to-main-inventory"}, + subgroup = "bob-ammo-parts", + order = "f[laser-rifle-battery-case]", + stack_size = 100 + }, + + + { + type = "item", + name = "rocket-engine", + icon = "__bobwarfare__/graphics/icons/rocket-engine.png", + flags = {"goes-to-main-inventory"}, + subgroup = "bob-intermediates", + order = "f[rocket-engine]", + stack_size = 100 + }, + + { + type = "item", + name = "rocket-body", + icon = "__bobwarfare__/graphics/icons/rocket-body.png", + flags = {"goes-to-main-inventory"}, + subgroup = "bob-ammo-parts", + order = "f[rocket-body]", + stack_size = 100 + }, + + { + type = "item", + name = "rocket-warhead", + icon = "__bobwarfare__/graphics/icons/missile-warhead.png", + flags = {"goes-to-main-inventory"}, + subgroup = "bob-ammo-parts", + order = "f[rocket-warhead]", + stack_size = 100 + }, + + { + type = "item", + name = "piercing-rocket-warhead", + icon = "__bobwarfare__/graphics/icons/missile-warhead-pierce.png", + flags = {"goes-to-main-inventory"}, + subgroup = "bob-ammo-parts", + order = "f[piercing-rocket-warhead]", + stack_size = 100 + }, + + { + type = "item", + name = "electric-rocket-warhead", + icon = "__bobwarfare__/graphics/icons/missile-warhead-electric.png", + flags = {"goes-to-main-inventory"}, + subgroup = "bob-ammo-parts", + order = "f[electric-rocket-warhead]", + stack_size = 100 + }, + + { + type = "item", + name = "explosive-rocket-warhead", + icon = "__bobwarfare__/graphics/icons/missile-warhead-explosive.png", + flags = {"goes-to-main-inventory"}, + subgroup = "bob-ammo-parts", + order = "f[explosive-rocket-warhead]", + stack_size = 100 + }, + + { + type = "item", + name = "acid-rocket-warhead", + icon = "__bobwarfare__/graphics/icons/missile-warhead-acid.png", + flags = {"goes-to-main-inventory"}, + subgroup = "bob-ammo-parts", + order = "f[acid-rocket-warhead]", + stack_size = 100 + }, + + { + type = "item", + name = "flame-rocket-warhead", + icon = "__bobwarfare__/graphics/icons/missile-warhead-fire.png", + flags = {"goes-to-main-inventory"}, + subgroup = "bob-ammo-parts", + order = "f[flame-rocket-warhead]", + stack_size = 100 + }, + + { + type = "item", + name = "poison-rocket-warhead", + icon = "__bobwarfare__/graphics/icons/missile-warhead-poison.png", + flags = {"goes-to-main-inventory"}, + subgroup = "bob-ammo-parts", + order = "f[poison-rocket-warhead]", + stack_size = 100 + }, +} +) + + + diff --git a/bobwarfare_0.14.0/prototypes/item/radar.lua b/bobwarfare_0.14.1/prototypes/item/radar.lua similarity index 95% rename from bobwarfare_0.14.0/prototypes/item/radar.lua rename to bobwarfare_0.14.1/prototypes/item/radar.lua index c5af177..042d27c 100644 --- a/bobwarfare_0.14.0/prototypes/item/radar.lua +++ b/bobwarfare_0.14.1/prototypes/item/radar.lua @@ -1,51 +1,51 @@ -data.raw.item["radar"].order = "d[radar]-a[radar-1]" - -data:extend( -{ - { - type = "item", - name = "radar-2", - icon = "__base__/graphics/icons/radar.png", - flags = {"goes-to-quickbar"}, - subgroup = "defensive-structure", - order = "d[radar]-a[radar-2]", - place_result = "radar-2", - stack_size = 50 - }, - - { - type = "item", - name = "radar-3", - icon = "__base__/graphics/icons/radar.png", - flags = {"goes-to-quickbar"}, - subgroup = "defensive-structure", - order = "d[radar]-a[radar-3]", - place_result = "radar-3", - stack_size = 50 - }, - - { - type = "item", - name = "radar-4", - icon = "__base__/graphics/icons/radar.png", - flags = {"goes-to-quickbar"}, - subgroup = "defensive-structure", - order = "d[radar]-a[radar-4]", - place_result = "radar-4", - stack_size = 50 - }, - - { - type = "item", - name = "radar-5", - icon = "__base__/graphics/icons/radar.png", - flags = {"goes-to-quickbar"}, - subgroup = "defensive-structure", - order = "d[radar]-a[radar-5]", - place_result = "radar-5", - stack_size = 50 - }, -} -) - - +data.raw.item["radar"].order = "d[radar]-a[radar-1]" + +data:extend( +{ + { + type = "item", + name = "radar-2", + icon = "__base__/graphics/icons/radar.png", + flags = {"goes-to-quickbar"}, + subgroup = "defensive-structure", + order = "d[radar]-a[radar-2]", + place_result = "radar-2", + stack_size = 50 + }, + + { + type = "item", + name = "radar-3", + icon = "__base__/graphics/icons/radar.png", + flags = {"goes-to-quickbar"}, + subgroup = "defensive-structure", + order = "d[radar]-a[radar-3]", + place_result = "radar-3", + stack_size = 50 + }, + + { + type = "item", + name = "radar-4", + icon = "__base__/graphics/icons/radar.png", + flags = {"goes-to-quickbar"}, + subgroup = "defensive-structure", + order = "d[radar]-a[radar-4]", + place_result = "radar-4", + stack_size = 50 + }, + + { + type = "item", + name = "radar-5", + icon = "__base__/graphics/icons/radar.png", + flags = {"goes-to-quickbar"}, + subgroup = "defensive-structure", + order = "d[radar]-a[radar-5]", + place_result = "radar-5", + stack_size = 50 + }, +} +) + + diff --git a/bobwarfare_0.14.0/prototypes/item/tank.lua b/bobwarfare_0.14.1/prototypes/item/tank.lua similarity index 83% rename from bobwarfare_0.14.0/prototypes/item/tank.lua rename to bobwarfare_0.14.1/prototypes/item/tank.lua index 4e7ee92..35e1027 100644 --- a/bobwarfare_0.14.0/prototypes/item/tank.lua +++ b/bobwarfare_0.14.1/prototypes/item/tank.lua @@ -1,32 +1,32 @@ -data.raw["item-with-entity-data"]["tank"].order = "b[personal-transport]-b[tank-1]" -data.raw["item-with-entity-data"]["tank"].stack_size = 10 -data.raw["item-with-entity-data"]["tank"].default_request_amount = 1 - -data:extend( -{ - { - type = "item-with-entity-data", - name = "tank-2", - icon = "__base__/graphics/icons/tank.png", - flags = {"goes-to-quickbar"}, - subgroup = "transport", - order = "b[personal-transport]-b[tank-2]", - place_result = "tank-2", - stack_size = 10, - default_request_amount = 1, - }, - - { - type = "item-with-entity-data", - name = "tank-3", - icon = "__base__/graphics/icons/tank.png", - flags = {"goes-to-quickbar"}, - subgroup = "transport", - order = "b[personal-transport]-b[tank-3]", - place_result = "tank-3", - stack_size = 10, - default_request_amount = 1, - }, -} -) - +data.raw["item-with-entity-data"]["tank"].order = "b[personal-transport]-b[tank-1]" +data.raw["item-with-entity-data"]["tank"].stack_size = 10 +data.raw["item-with-entity-data"]["tank"].default_request_amount = 1 + +data:extend( +{ + { + type = "item-with-entity-data", + name = "bob-tank-2", + icon = "__base__/graphics/icons/tank.png", + flags = {"goes-to-quickbar"}, + subgroup = "transport", + order = "b[personal-transport]-b[tank-2]", + place_result = "bob-tank-2", + stack_size = 10, + default_request_amount = 1, + }, + + { + type = "item-with-entity-data", + name = "bob-tank-3", + icon = "__base__/graphics/icons/tank.png", + flags = {"goes-to-quickbar"}, + subgroup = "transport", + order = "b[personal-transport]-b[tank-3]", + place_result = "bob-tank-3", + stack_size = 10, + default_request_amount = 1, + }, +} +) + diff --git a/bobwarfare_0.14.0/prototypes/item/turrets.lua b/bobwarfare_0.14.1/prototypes/item/turrets.lua similarity index 96% rename from bobwarfare_0.14.0/prototypes/item/turrets.lua rename to bobwarfare_0.14.1/prototypes/item/turrets.lua index 523f89b..8524af8 100644 --- a/bobwarfare_0.14.0/prototypes/item/turrets.lua +++ b/bobwarfare_0.14.1/prototypes/item/turrets.lua @@ -1,130 +1,130 @@ -data.raw.item["gun-turret"].order = "b[turret]-a[gun-turret-1]" -data.raw.item["laser-turret"].order = "b[turret]-b[laser-turret-1]" - -data:extend( -{ - { - type = "item", - name = "bob-gun-turret-2", - icon = "__base__/graphics/icons/gun-turret.png", - flags = {"goes-to-quickbar"}, - subgroup = "defensive-structure", - order = "b[turret]-a[gun-turret-2]", - place_result = "bob-gun-turret-2", - stack_size = 50 - }, - - { - type = "item", - name = "bob-gun-turret-3", - icon = "__base__/graphics/icons/gun-turret.png", - flags = {"goes-to-quickbar"}, - subgroup = "defensive-structure", - order = "b[turret]-a[gun-turret-3]", - place_result = "bob-gun-turret-3", - stack_size = 50 - }, - - { - type = "item", - name = "bob-gun-turret-4", - icon = "__base__/graphics/icons/gun-turret.png", - flags = {"goes-to-quickbar"}, - subgroup = "defensive-structure", - order = "b[turret]-a[gun-turret-4]", - place_result = "bob-gun-turret-4", - stack_size = 50 - }, - - { - type = "item", - name = "bob-gun-turret-5", - icon = "__base__/graphics/icons/gun-turret.png", - flags = {"goes-to-quickbar"}, - subgroup = "defensive-structure", - order = "b[turret]-a[gun-turret-5]", - place_result = "bob-gun-turret-5", - stack_size = 50 - }, - - - { - type = "item", - name = "bob-sniper-turret-1", - icon = "__base__/graphics/icons/gun-turret.png", - flags = {"goes-to-quickbar"}, - subgroup = "defensive-structure", - order = "b[turret]-c[sniper-turret-1]", - place_result = "bob-sniper-turret-1", - stack_size = 50 - }, - - { - type = "item", - name = "bob-sniper-turret-2", - icon = "__base__/graphics/icons/gun-turret.png", - flags = {"goes-to-quickbar"}, - subgroup = "defensive-structure", - order = "b[turret]-c[sniper-turret-2]", - place_result = "bob-sniper-turret-2", - stack_size = 50 - }, - - { - type = "item", - name = "bob-sniper-turret-3", - icon = "__base__/graphics/icons/gun-turret.png", - flags = {"goes-to-quickbar"}, - subgroup = "defensive-structure", - order = "b[turret]-c[sniper-turret-3]", - place_result = "bob-sniper-turret-3", - stack_size = 50 - }, - - - { - type = "item", - name = "bob-laser-turret-2", - icon = "__base__/graphics/icons/laser-turret.png", - flags = {"goes-to-quickbar"}, - subgroup = "defensive-structure", - order = "b[turret]-b[laser-turret-2]", - place_result = "bob-laser-turret-2", - stack_size = 50 - }, - - { - type = "item", - name = "bob-laser-turret-3", - icon = "__base__/graphics/icons/laser-turret.png", - flags = {"goes-to-quickbar"}, - subgroup = "defensive-structure", - order = "b[turret]-b[laser-turret-3]", - place_result = "bob-laser-turret-3", - stack_size = 50 - }, - - { - type = "item", - name = "bob-laser-turret-4", - icon = "__base__/graphics/icons/laser-turret.png", - flags = {"goes-to-quickbar"}, - subgroup = "defensive-structure", - order = "b[turret]-b[laser-turret-4]", - place_result = "bob-laser-turret-4", - stack_size = 50 - }, - - { - type = "item", - name = "bob-laser-turret-5", - icon = "__base__/graphics/icons/laser-turret.png", - flags = {"goes-to-quickbar"}, - subgroup = "defensive-structure", - order = "b[turret]-b[laser-turret-5]", - place_result = "bob-laser-turret-5", - stack_size = 50 - }, -} -) - +data.raw.item["gun-turret"].order = "b[turret]-a[gun-turret-1]" +data.raw.item["laser-turret"].order = "b[turret]-b[laser-turret-1]" + +data:extend( +{ + { + type = "item", + name = "bob-gun-turret-2", + icon = "__base__/graphics/icons/gun-turret.png", + flags = {"goes-to-quickbar"}, + subgroup = "defensive-structure", + order = "b[turret]-a[gun-turret-2]", + place_result = "bob-gun-turret-2", + stack_size = 50 + }, + + { + type = "item", + name = "bob-gun-turret-3", + icon = "__base__/graphics/icons/gun-turret.png", + flags = {"goes-to-quickbar"}, + subgroup = "defensive-structure", + order = "b[turret]-a[gun-turret-3]", + place_result = "bob-gun-turret-3", + stack_size = 50 + }, + + { + type = "item", + name = "bob-gun-turret-4", + icon = "__base__/graphics/icons/gun-turret.png", + flags = {"goes-to-quickbar"}, + subgroup = "defensive-structure", + order = "b[turret]-a[gun-turret-4]", + place_result = "bob-gun-turret-4", + stack_size = 50 + }, + + { + type = "item", + name = "bob-gun-turret-5", + icon = "__base__/graphics/icons/gun-turret.png", + flags = {"goes-to-quickbar"}, + subgroup = "defensive-structure", + order = "b[turret]-a[gun-turret-5]", + place_result = "bob-gun-turret-5", + stack_size = 50 + }, + + + { + type = "item", + name = "bob-sniper-turret-1", + icon = "__base__/graphics/icons/gun-turret.png", + flags = {"goes-to-quickbar"}, + subgroup = "defensive-structure", + order = "b[turret]-c[sniper-turret-1]", + place_result = "bob-sniper-turret-1", + stack_size = 50 + }, + + { + type = "item", + name = "bob-sniper-turret-2", + icon = "__base__/graphics/icons/gun-turret.png", + flags = {"goes-to-quickbar"}, + subgroup = "defensive-structure", + order = "b[turret]-c[sniper-turret-2]", + place_result = "bob-sniper-turret-2", + stack_size = 50 + }, + + { + type = "item", + name = "bob-sniper-turret-3", + icon = "__base__/graphics/icons/gun-turret.png", + flags = {"goes-to-quickbar"}, + subgroup = "defensive-structure", + order = "b[turret]-c[sniper-turret-3]", + place_result = "bob-sniper-turret-3", + stack_size = 50 + }, + + + { + type = "item", + name = "bob-laser-turret-2", + icon = "__base__/graphics/icons/laser-turret.png", + flags = {"goes-to-quickbar"}, + subgroup = "defensive-structure", + order = "b[turret]-b[laser-turret-2]", + place_result = "bob-laser-turret-2", + stack_size = 50 + }, + + { + type = "item", + name = "bob-laser-turret-3", + icon = "__base__/graphics/icons/laser-turret.png", + flags = {"goes-to-quickbar"}, + subgroup = "defensive-structure", + order = "b[turret]-b[laser-turret-3]", + place_result = "bob-laser-turret-3", + stack_size = 50 + }, + + { + type = "item", + name = "bob-laser-turret-4", + icon = "__base__/graphics/icons/laser-turret.png", + flags = {"goes-to-quickbar"}, + subgroup = "defensive-structure", + order = "b[turret]-b[laser-turret-4]", + place_result = "bob-laser-turret-4", + stack_size = 50 + }, + + { + type = "item", + name = "bob-laser-turret-5", + icon = "__base__/graphics/icons/laser-turret.png", + flags = {"goes-to-quickbar"}, + subgroup = "defensive-structure", + order = "b[turret]-b[laser-turret-5]", + place_result = "bob-laser-turret-5", + stack_size = 50 + }, +} +) + diff --git a/bobwarfare_0.14.0/prototypes/item/wall.lua b/bobwarfare_0.14.1/prototypes/item/wall.lua similarity index 96% rename from bobwarfare_0.14.0/prototypes/item/wall.lua rename to bobwarfare_0.14.1/prototypes/item/wall.lua index 5f9f818..8c6444f 100644 --- a/bobwarfare_0.14.0/prototypes/item/wall.lua +++ b/bobwarfare_0.14.1/prototypes/item/wall.lua @@ -1,24 +1,24 @@ -data:extend( -{ - { - type = "item", - name = "reinforced-wall", - icon = "__bobwarfare__/graphics/icons/reinforced-wall.png", - flags = {"goes-to-quickbar"}, - subgroup = "defensive-structure", - order = "a[stone-wall]-c[reinforced]", - place_result = "reinforced-wall", - stack_size = 50, - }, - { - type = "item", - name = "reinforced-gate", - icon = "__base__/graphics/icons/gate.png", - flags = {"goes-to-quickbar"}, - subgroup = "defensive-structure", - order = "a[gate]-d[reinforced]", - place_result = "reinforced-gate", - stack_size = 50, - }, -} +data:extend( +{ + { + type = "item", + name = "reinforced-wall", + icon = "__bobwarfare__/graphics/icons/reinforced-wall.png", + flags = {"goes-to-quickbar"}, + subgroup = "defensive-structure", + order = "a[stone-wall]-c[reinforced]", + place_result = "reinforced-wall", + stack_size = 50, + }, + { + type = "item", + name = "reinforced-gate", + icon = "__base__/graphics/icons/gate.png", + flags = {"goes-to-quickbar"}, + subgroup = "defensive-structure", + order = "a[gate]-d[reinforced]", + place_result = "reinforced-gate", + stack_size = 50, + }, +} ) \ No newline at end of file diff --git a/bobwarfare_0.14.0/prototypes/overides.lua b/bobwarfare_0.14.1/prototypes/overides.lua similarity index 65% rename from bobwarfare_0.14.0/prototypes/overides.lua rename to bobwarfare_0.14.1/prototypes/overides.lua index 1c309c5..e02c3fa 100644 --- a/bobwarfare_0.14.0/prototypes/overides.lua +++ b/bobwarfare_0.14.1/prototypes/overides.lua @@ -1,39 +1,39 @@ -data.raw.ammo["firearm-magazine"].ammo_type.action[1].action_delivery[1].target_effects = { - { - type = "create-entity", - entity_name = "explosion-gunshot" - }, - { - type = "damage", - damage = { amount = 4 , type = "physical"} - }, -} - -data.raw.ammo["piercing-rounds-magazine"].ammo_type.action.action_delivery.target_effects = { - { - type = "create-entity", - entity_name = "explosion-gunshot" - }, - { - type = "damage", - damage = { amount = 4 , type = "physical"} - }, - { - type = "damage", - damage = { amount = 2 , type = "bob-pierce"} - } -} - - -data.raw.projectile["piercing-shotgun-pellet"].action.action_delivery.target_effects = { - { - type = "damage", - damage = {amount = 4, type = "physical"} - }, - { - type = "damage", - damage = { amount = 2 , type = "bob-pierce"} - } -} - - +data.raw.ammo["firearm-magazine"].ammo_type.action[1].action_delivery[1].target_effects = { + { + type = "create-entity", + entity_name = "explosion-hit" + }, + { + type = "damage", + damage = {amount = 4 , type = "physical"} + }, +} + +data.raw.ammo["piercing-rounds-magazine"].ammo_type.action.action_delivery.target_effects = { + { + type = "create-entity", + entity_name = "explosion-hit" + }, + { + type = "damage", + damage = {amount = 4 , type = "physical"} + }, + { + type = "damage", + damage = {amount = 2 , type = "bob-pierce"} + } +} + + +data.raw.projectile["piercing-shotgun-pellet"].action.action_delivery.target_effects = { + { + type = "damage", + damage = {amount = 4, type = "physical"} + }, + { + type = "damage", + damage = {amount = 2 , type = "bob-pierce"} + } +} + + diff --git a/bobwarfare_0.14.0/prototypes/productivity-limitations.lua b/bobwarfare_0.14.1/prototypes/productivity-limitations.lua similarity index 95% rename from bobwarfare_0.14.0/prototypes/productivity-limitations.lua rename to bobwarfare_0.14.1/prototypes/productivity-limitations.lua index 0a04ee0..ade1d6c 100644 --- a/bobwarfare_0.14.0/prototypes/productivity-limitations.lua +++ b/bobwarfare_0.14.1/prototypes/productivity-limitations.lua @@ -1,56 +1,56 @@ -local fluids = { - "glycerol", - "nitroglycerin" -} - -local parts = { - "gun-cotton-synthetic", - "petroleum-jelly", - "gun-cotton", - "cordite", - "bullet-casing", - "magazine", - "bullet-projectile", - "ap-bullet-projectile", - "he-bullet-projectile", - "flame-bullet-projectile", - "acid-bullet-projectile", - "poison-bullet-projectile", - "electric-bullet-projectile", - "shotgun-shell-casing", - "shot", - "laser-rifle-battery-case", - "rocket-engine", - "rocket-body", - "rocket-warhead", - "piercing-rocket-warhead", - "explosive-rocket-warhead", - "acid-rocket-warhead", - "flame-rocket-warhead", - "poison-rocket-warhead", - "electric-rocket-warhead", -} - -local bullets = { - "bullet", - "ap-bullet", - "he-bullet", - "flame-bullet", - "acid-bullet", - "poison-bullet", - "electric-bullet", -} - - - - -bobmods.lib.module.add_productivity_limitations(fluids) -if data.raw.fluid["sulfuric-nitric-acid"] then - bobmods.lib.module.add_productivity_limitation("sulfuric-nitric-acid") -end -bobmods.lib.module.add_productivity_limitations(parts) - --- Might be a bit unfair to include the completed bullets, even though they're an intermediate. ---bobmods.lib.module.add_productivity_limitations(bullets) - - +local fluids = { + "glycerol", + "nitroglycerin" +} + +local parts = { + "gun-cotton-synthetic", + "petroleum-jelly", + "gun-cotton", + "cordite", + "bullet-casing", + "magazine", + "bullet-projectile", + "ap-bullet-projectile", + "he-bullet-projectile", + "flame-bullet-projectile", + "acid-bullet-projectile", + "poison-bullet-projectile", + "electric-bullet-projectile", + "shotgun-shell-casing", + "shot", + "laser-rifle-battery-case", + "rocket-engine", + "rocket-body", + "rocket-warhead", + "piercing-rocket-warhead", + "explosive-rocket-warhead", + "acid-rocket-warhead", + "flame-rocket-warhead", + "poison-rocket-warhead", + "electric-rocket-warhead", +} + +local bullets = { + "bullet", + "ap-bullet", + "he-bullet", + "flame-bullet", + "acid-bullet", + "poison-bullet", + "electric-bullet", +} + + + + +bobmods.lib.module.add_productivity_limitations(fluids) +if data.raw.fluid["sulfuric-nitric-acid"] then + bobmods.lib.module.add_productivity_limitation("sulfuric-nitric-acid") +end +bobmods.lib.module.add_productivity_limitations(parts) + +-- Might be a bit unfair to include the completed bullets, even though they're an intermediate. +--bobmods.lib.module.add_productivity_limitations(bullets) + + diff --git a/bobwarfare_0.14.0/prototypes/recipe/ammo-recipe.lua b/bobwarfare_0.14.1/prototypes/recipe/ammo-recipe.lua similarity index 94% rename from bobwarfare_0.14.0/prototypes/recipe/ammo-recipe.lua rename to bobwarfare_0.14.1/prototypes/recipe/ammo-recipe.lua index 98c670e..c36e3ae 100644 --- a/bobwarfare_0.14.0/prototypes/recipe/ammo-recipe.lua +++ b/bobwarfare_0.14.1/prototypes/recipe/ammo-recipe.lua @@ -1,497 +1,497 @@ -data:extend( -{ - { - type = "recipe", - name = "bullet-magazine", - subgroup = "bob-ammo", - enabled = "false", - energy_required = 2, - ingredients = - { - {"bullet", 5}, - {"magazine", 1}, - }, - result = "bullet-magazine", - }, - - { - type = "recipe", - name = "ap-bullet-magazine", - subgroup = "bob-ammo", - enabled = "false", - energy_required = 3, - ingredients = - { - {"ap-bullet", 5}, - {"magazine", 1}, - }, - result = "ap-bullet-magazine" - }, - - { - type = "recipe", - name = "he-bullet-magazine", - subgroup = "bob-ammo", - enabled = "false", - energy_required = 3, - ingredients = - { - {"he-bullet", 5}, - {"magazine", 1}, - }, - result = "he-bullet-magazine" - }, - - { - type = "recipe", - name = "flame-bullet-magazine", - subgroup = "bob-ammo", - enabled = "false", - energy_required = 3, - ingredients = - { - {"flame-bullet", 5}, - {"magazine", 1}, - }, - result = "flame-bullet-magazine" - }, - - { - type = "recipe", - name = "acid-bullet-magazine", - subgroup = "bob-ammo", - enabled = "false", - energy_required = 3, - ingredients = - { - {"acid-bullet", 5}, - {"magazine", 1}, - }, - result = "acid-bullet-magazine" - }, - - { - type = "recipe", - name = "poison-bullet-magazine", - subgroup = "bob-ammo", - enabled = "false", - energy_required = 3, - ingredients = - { - {"poison-bullet", 5}, - {"magazine", 1}, - }, - result = "poison-bullet-magazine" - }, - - { - type = "recipe", - name = "electric-bullet-magazine", - subgroup = "bob-ammo", - enabled = "false", - energy_required = 3, - ingredients = - { - {"electric-bullet", 5}, - {"magazine", 1}, - }, - result = "electric-bullet-magazine" - }, - - - { - type = "recipe", - name = "better-shotgun-shell", - subgroup = "bob-ammo", - energy_required = 0.1, - enabled = "false", - ingredients = - { - {"shotgun-shell-casing", 1}, - {"shot", 1}, - {"cordite", 1}, - }, - result = "better-shotgun-shell", - result_count = 1, - }, - - { - type = "recipe", - name = "shotgun-ap-shell", - subgroup = "bob-ammo", - energy_required = 0.1, - enabled = "false", - ingredients = - { - {"shotgun-shell-casing", 1}, - {"steel-plate", 1}, - {"cordite", 1}, - }, - result = "shotgun-ap-shell", - result_count = 1, - }, - - { - type = "recipe", - name = "shotgun-electric-shell", - subgroup = "bob-ammo", - energy_required = 0.1, - enabled = "false", - ingredients = - { - {"shotgun-shell-casing", 1}, - {"copper-plate", 1}, - {"cordite", 1}, - }, - result = "shotgun-electric-shell", - result_count = 1, - }, - - { - type = "recipe", - name = "shotgun-explosive-shell", - subgroup = "bob-ammo", - energy_required = 0.1, - enabled = "false", - ingredients = - { - {"shotgun-shell-casing", 1}, - {"explosives", 1}, - {"cordite", 1}, - }, - result = "shotgun-explosive-shell", - result_count = 1, - }, - - { - type = "recipe", - name = "shotgun-flame-shell", - category = "chemistry", - subgroup = "bob-ammo", - energy_required = 0.1, - enabled = "false", - ingredients = - { - {"shotgun-shell-casing", 1}, - {type="fluid", name="light-oil", amount=0.5}, - {type="fluid", name="heavy-oil", amount=0.5}, - {"cordite", 1}, - }, - result = "shotgun-flame-shell", - result_count = 1, - }, - - { - type = "recipe", - name = "shotgun-acid-shell", - category = "crafting-with-fluid", - subgroup = "bob-ammo", - energy_required = 0.1, - enabled = "false", - ingredients = - { - {"shotgun-shell-casing", 1}, - {type="fluid", name="sulfuric-acid", amount=1}, - {"cordite", 1}, - }, - result = "shotgun-acid-shell", - result_count = 1, - }, - - { - type = "recipe", - name = "shotgun-poison-shell", - subgroup = "bob-ammo", - energy_required = 0.1, - enabled = "false", - ingredients = - { - {"shotgun-shell-casing", 1}, - {"coal", 1}, - {"cordite", 1}, - }, - result = "shotgun-poison-shell", - result_count = 1, - }, - - ---[[ - { - type = "recipe", - name = "flame-thrower-acid", - category = "chemistry", - subgroup = "bob-ammo", - energy_required = 0.1, - enabled = "false", - ingredients = - { - {"empty-canister", 1}, - {type="fluid", name="nitric-acid", amount=5}, - }, - result = "flame-thrower-acid", - result_count = 1, - }, -]]-- - - - { - type = "recipe", - name = "laser-rifle-battery", - subgroup = "bob-ammo", - energy_required = 0.1, - enabled = "false", - ingredients = - { - {"laser-rifle-battery-case", 1}, - {"battery", 4}, - }, - result = "laser-rifle-battery", - result_count = 1, - }, - - { - type = "recipe", - name = "laser-rifle-battery-ruby", - subgroup = "bob-ammo", - energy_required = 0.1, - enabled = "false", - ingredients = - { - {"laser-rifle-battery", 1}, - {"battery", 4}, - }, - result = "laser-rifle-battery-ruby", - result_count = 1, - }, - - { - type = "recipe", - name = "laser-rifle-battery-sapphire", - subgroup = "bob-ammo", - energy_required = 0.1, - enabled = "false", - ingredients = - { - {"laser-rifle-battery-ruby", 1}, - {"battery", 4}, - }, - result = "laser-rifle-battery-sapphire", - result_count = 1, - }, - - { - type = "recipe", - name = "laser-rifle-battery-emerald", - subgroup = "bob-ammo", - energy_required = 0.1, - enabled = "false", - ingredients = - { - {"laser-rifle-battery-sapphire", 1}, - {"battery", 4}, - }, - result = "laser-rifle-battery-emerald", - result_count = 1, - }, - - { - type = "recipe", - name = "laser-rifle-battery-amethyst", - subgroup = "bob-ammo", - energy_required = 0.1, - enabled = "false", - ingredients = - { - {"laser-rifle-battery-emerald", 1}, - {"battery", 4}, - }, - result = "laser-rifle-battery-amethyst", - result_count = 1, - }, - - { - type = "recipe", - name = "laser-rifle-battery-topaz", - subgroup = "bob-ammo", - energy_required = 0.1, - enabled = "false", - ingredients = - { - {"laser-rifle-battery-amethyst", 1}, - {"battery", 4}, - }, - result = "laser-rifle-battery-topaz", - result_count = 1, - }, - - { - type = "recipe", - name = "laser-rifle-battery-diamond", - subgroup = "bob-ammo", - energy_required = 0.1, - enabled = "false", - ingredients = - { - {"laser-rifle-battery-topaz", 1}, - {"battery", 4}, - }, - result = "laser-rifle-battery-diamond", - result_count = 1, - }, - - - { - type = "recipe", - name = "bob-rocket", - enabled = "false", - energy_required = 8, - ingredients = - { - {"rocket-body", 1}, - {"rocket-warhead", 1} - }, - result = "bob-rocket" - }, - - { - type = "recipe", - name = "bob-piercing-rocket", - enabled = "false", - energy_required = 8, - ingredients = - { - {"rocket-body", 1}, - {"piercing-rocket-warhead", 1} - }, - result = "bob-piercing-rocket" - }, - - { - type = "recipe", - name = "bob-electric-rocket", - enabled = "false", - energy_required = 8, - ingredients = - { - {"rocket-body", 1}, - {"electric-rocket-warhead", 1} - }, - result = "bob-electric-rocket" - }, - - { - type = "recipe", - name = "bob-explosive-rocket", - enabled = "false", - energy_required = 8, - ingredients = - { - {"rocket-body", 1}, - {"explosive-rocket-warhead", 1} - }, - result = "bob-explosive-rocket" - }, - - { - type = "recipe", - name = "bob-acid-rocket", - enabled = "false", - energy_required = 8, - ingredients = - { - {"rocket-body", 1}, - {"acid-rocket-warhead", 1} - }, - result = "bob-acid-rocket" - }, - - { - type = "recipe", - name = "bob-flame-rocket", - enabled = "false", - energy_required = 8, - ingredients = - { - {"rocket-body", 1}, - {"flame-rocket-warhead", 1} - }, - result = "bob-flame-rocket" - }, - - { - type = "recipe", - name = "bob-poison-rocket", - enabled = "false", - energy_required = 8, - ingredients = - { - {"rocket-body", 1}, - {"poison-rocket-warhead", 1} - }, - result = "bob-poison-rocket" - }, -} -) - - -data:extend( -{ - { - type = "recipe", - name = "scatter-cannon-shell", - enabled = false, - energy_required = 8, - ingredients = - { - {"steel-plate", 4}, - {"shot", 5}, - {"plastic-bar", 2}, - {"explosives", 1}, - }, - result = "scatter-cannon-shell" - }, - - { - type = "recipe", - name = "poison-artillery-shell", - enabled = false, - energy_required = 8, - ingredients = - { - {"steel-plate", 3}, - {"coal", 5}, - {"explosives", 1}, - }, - result = "poison-artillery-shell" - }, - - { - type = "recipe", - name = "explosive-artillery-shell", - enabled = false, - energy_required = 8, - ingredients = - { - {"steel-plate", 3}, - {"explosives", 5}, - }, - result = "explosive-artillery-shell" - }, - - { - type = "recipe", - name = "distractor-artillery-shell", - enabled = false, - energy_required = 8, - ingredients = - { - {"steel-plate", 3}, - {"explosives", 1}, - {"distractor-capsule", 2} - }, - result = "distractor-artillery-shell" - }, -} -) - - +data:extend( +{ + { + type = "recipe", + name = "bullet-magazine", + subgroup = "bob-ammo", + enabled = "false", + energy_required = 2, + ingredients = + { + {"bullet", 5}, + {"magazine", 1}, + }, + result = "bullet-magazine", + }, + + { + type = "recipe", + name = "ap-bullet-magazine", + subgroup = "bob-ammo", + enabled = "false", + energy_required = 3, + ingredients = + { + {"ap-bullet", 5}, + {"magazine", 1}, + }, + result = "ap-bullet-magazine" + }, + + { + type = "recipe", + name = "he-bullet-magazine", + subgroup = "bob-ammo", + enabled = "false", + energy_required = 3, + ingredients = + { + {"he-bullet", 5}, + {"magazine", 1}, + }, + result = "he-bullet-magazine" + }, + + { + type = "recipe", + name = "flame-bullet-magazine", + subgroup = "bob-ammo", + enabled = "false", + energy_required = 3, + ingredients = + { + {"flame-bullet", 5}, + {"magazine", 1}, + }, + result = "flame-bullet-magazine" + }, + + { + type = "recipe", + name = "acid-bullet-magazine", + subgroup = "bob-ammo", + enabled = "false", + energy_required = 3, + ingredients = + { + {"acid-bullet", 5}, + {"magazine", 1}, + }, + result = "acid-bullet-magazine" + }, + + { + type = "recipe", + name = "poison-bullet-magazine", + subgroup = "bob-ammo", + enabled = "false", + energy_required = 3, + ingredients = + { + {"poison-bullet", 5}, + {"magazine", 1}, + }, + result = "poison-bullet-magazine" + }, + + { + type = "recipe", + name = "electric-bullet-magazine", + subgroup = "bob-ammo", + enabled = "false", + energy_required = 3, + ingredients = + { + {"electric-bullet", 5}, + {"magazine", 1}, + }, + result = "electric-bullet-magazine" + }, + + + { + type = "recipe", + name = "better-shotgun-shell", + subgroup = "bob-ammo", + energy_required = 0.1, + enabled = "false", + ingredients = + { + {"shotgun-shell-casing", 1}, + {"shot", 1}, + {"cordite", 1}, + }, + result = "better-shotgun-shell", + result_count = 1, + }, + + { + type = "recipe", + name = "shotgun-ap-shell", + subgroup = "bob-ammo", + energy_required = 0.1, + enabled = "false", + ingredients = + { + {"shotgun-shell-casing", 1}, + {"steel-plate", 1}, + {"cordite", 1}, + }, + result = "shotgun-ap-shell", + result_count = 1, + }, + + { + type = "recipe", + name = "shotgun-electric-shell", + subgroup = "bob-ammo", + energy_required = 0.1, + enabled = "false", + ingredients = + { + {"shotgun-shell-casing", 1}, + {"copper-plate", 1}, + {"cordite", 1}, + }, + result = "shotgun-electric-shell", + result_count = 1, + }, + + { + type = "recipe", + name = "shotgun-explosive-shell", + subgroup = "bob-ammo", + energy_required = 0.1, + enabled = "false", + ingredients = + { + {"shotgun-shell-casing", 1}, + {"explosives", 1}, + {"cordite", 1}, + }, + result = "shotgun-explosive-shell", + result_count = 1, + }, + + { + type = "recipe", + name = "shotgun-flame-shell", + category = "chemistry", + subgroup = "bob-ammo", + energy_required = 0.1, + enabled = "false", + ingredients = + { + {"shotgun-shell-casing", 1}, + {type="fluid", name="light-oil", amount=0.5}, + {type="fluid", name="heavy-oil", amount=0.5}, + {"cordite", 1}, + }, + result = "shotgun-flame-shell", + result_count = 1, + }, + + { + type = "recipe", + name = "shotgun-acid-shell", + category = "crafting-with-fluid", + subgroup = "bob-ammo", + energy_required = 0.1, + enabled = "false", + ingredients = + { + {"shotgun-shell-casing", 1}, + {type="fluid", name="sulfuric-acid", amount=1}, + {"cordite", 1}, + }, + result = "shotgun-acid-shell", + result_count = 1, + }, + + { + type = "recipe", + name = "shotgun-poison-shell", + subgroup = "bob-ammo", + energy_required = 0.1, + enabled = "false", + ingredients = + { + {"shotgun-shell-casing", 1}, + {"coal", 1}, + {"cordite", 1}, + }, + result = "shotgun-poison-shell", + result_count = 1, + }, + + +--[[ + { + type = "recipe", + name = "flame-thrower-acid", + category = "chemistry", + subgroup = "bob-ammo", + energy_required = 0.1, + enabled = "false", + ingredients = + { + {"empty-canister", 1}, + {type="fluid", name="nitric-acid", amount=5}, + }, + result = "flame-thrower-acid", + result_count = 1, + }, +]]-- + + + { + type = "recipe", + name = "laser-rifle-battery", + subgroup = "bob-ammo", + energy_required = 0.1, + enabled = "false", + ingredients = + { + {"laser-rifle-battery-case", 1}, + {"battery", 4}, + }, + result = "laser-rifle-battery", + result_count = 1, + }, + + { + type = "recipe", + name = "laser-rifle-battery-ruby", + subgroup = "bob-ammo", + energy_required = 0.1, + enabled = "false", + ingredients = + { + {"laser-rifle-battery", 1}, + {"battery", 4}, + }, + result = "laser-rifle-battery-ruby", + result_count = 1, + }, + + { + type = "recipe", + name = "laser-rifle-battery-sapphire", + subgroup = "bob-ammo", + energy_required = 0.1, + enabled = "false", + ingredients = + { + {"laser-rifle-battery-ruby", 1}, + {"battery", 4}, + }, + result = "laser-rifle-battery-sapphire", + result_count = 1, + }, + + { + type = "recipe", + name = "laser-rifle-battery-emerald", + subgroup = "bob-ammo", + energy_required = 0.1, + enabled = "false", + ingredients = + { + {"laser-rifle-battery-sapphire", 1}, + {"battery", 4}, + }, + result = "laser-rifle-battery-emerald", + result_count = 1, + }, + + { + type = "recipe", + name = "laser-rifle-battery-amethyst", + subgroup = "bob-ammo", + energy_required = 0.1, + enabled = "false", + ingredients = + { + {"laser-rifle-battery-emerald", 1}, + {"battery", 4}, + }, + result = "laser-rifle-battery-amethyst", + result_count = 1, + }, + + { + type = "recipe", + name = "laser-rifle-battery-topaz", + subgroup = "bob-ammo", + energy_required = 0.1, + enabled = "false", + ingredients = + { + {"laser-rifle-battery-amethyst", 1}, + {"battery", 4}, + }, + result = "laser-rifle-battery-topaz", + result_count = 1, + }, + + { + type = "recipe", + name = "laser-rifle-battery-diamond", + subgroup = "bob-ammo", + energy_required = 0.1, + enabled = "false", + ingredients = + { + {"laser-rifle-battery-topaz", 1}, + {"battery", 4}, + }, + result = "laser-rifle-battery-diamond", + result_count = 1, + }, + + + { + type = "recipe", + name = "bob-rocket", + enabled = "false", + energy_required = 8, + ingredients = + { + {"rocket-body", 1}, + {"rocket-warhead", 1} + }, + result = "bob-rocket" + }, + + { + type = "recipe", + name = "bob-piercing-rocket", + enabled = "false", + energy_required = 8, + ingredients = + { + {"rocket-body", 1}, + {"piercing-rocket-warhead", 1} + }, + result = "bob-piercing-rocket" + }, + + { + type = "recipe", + name = "bob-electric-rocket", + enabled = "false", + energy_required = 8, + ingredients = + { + {"rocket-body", 1}, + {"electric-rocket-warhead", 1} + }, + result = "bob-electric-rocket" + }, + + { + type = "recipe", + name = "bob-explosive-rocket", + enabled = "false", + energy_required = 8, + ingredients = + { + {"rocket-body", 1}, + {"explosive-rocket-warhead", 1} + }, + result = "bob-explosive-rocket" + }, + + { + type = "recipe", + name = "bob-acid-rocket", + enabled = "false", + energy_required = 8, + ingredients = + { + {"rocket-body", 1}, + {"acid-rocket-warhead", 1} + }, + result = "bob-acid-rocket" + }, + + { + type = "recipe", + name = "bob-flame-rocket", + enabled = "false", + energy_required = 8, + ingredients = + { + {"rocket-body", 1}, + {"flame-rocket-warhead", 1} + }, + result = "bob-flame-rocket" + }, + + { + type = "recipe", + name = "bob-poison-rocket", + enabled = "false", + energy_required = 8, + ingredients = + { + {"rocket-body", 1}, + {"poison-rocket-warhead", 1} + }, + result = "bob-poison-rocket" + }, +} +) + + +data:extend( +{ + { + type = "recipe", + name = "scatter-cannon-shell", + enabled = false, + energy_required = 8, + ingredients = + { + {"steel-plate", 4}, + {"shot", 5}, + {"plastic-bar", 2}, + {"explosives", 1}, + }, + result = "scatter-cannon-shell" + }, + + { + type = "recipe", + name = "poison-artillery-shell", + enabled = false, + energy_required = 8, + ingredients = + { + {"steel-plate", 3}, + {"coal", 5}, + {"explosives", 1}, + }, + result = "poison-artillery-shell" + }, + + { + type = "recipe", + name = "explosive-artillery-shell", + enabled = false, + energy_required = 8, + ingredients = + { + {"steel-plate", 3}, + {"explosives", 5}, + }, + result = "explosive-artillery-shell" + }, + + { + type = "recipe", + name = "distractor-artillery-shell", + enabled = false, + energy_required = 8, + ingredients = + { + {"steel-plate", 3}, + {"explosives", 1}, + {"distractor-capsule", 2} + }, + result = "distractor-artillery-shell" + }, +} +) + + diff --git a/bobwarfare_0.14.0/prototypes/recipe/armor-recipe.lua b/bobwarfare_0.14.1/prototypes/recipe/armor-recipe.lua similarity index 95% rename from bobwarfare_0.14.0/prototypes/recipe/armor-recipe.lua rename to bobwarfare_0.14.1/prototypes/recipe/armor-recipe.lua index 4e68890..bb35475 100644 --- a/bobwarfare_0.14.0/prototypes/recipe/armor-recipe.lua +++ b/bobwarfare_0.14.1/prototypes/recipe/armor-recipe.lua @@ -1,83 +1,83 @@ -data:extend( -{ - { - type = "recipe", - name = "heavy-armor-2", - enabled = "false", - energy_required = 8, - ingredients = - { - {"iron-plate", 100}, - {"steel-plate", 50}, - }, - result = "heavy-armor-2" - }, - - { - type = "recipe", - name = "heavy-armor-3", - enabled = "false", - energy_required = 8, - ingredients = - { - {"steel-plate", 100}, - {"plastic-bar", 50}, - }, - result = "heavy-armor-3" - }, - - - { - type = "recipe", - name = "bob-power-armor-mk3", - enabled = "false", - energy_required = 30, - ingredients = - { - {"power-armor-mk2", 1}, - {"processing-unit", 50}, - {"steel-plate", 25}, - {"iron-plate", 25}, - {"effectivity-module-3", 5}, - {"speed-module-3", 5}, - }, - result = "bob-power-armor-mk3" - }, - { - type = "recipe", - name = "bob-power-armor-mk4", - enabled = "false", - energy_required = 30, - ingredients = - { - {"bob-power-armor-mk3", 1}, - {"processing-unit", 40}, - {"advanced-circuit", 20}, - {"steel-plate", 25}, - {"plastic-bar", 25}, - {"effectivity-module-3", 5}, - {"speed-module-3", 5}, - }, - result = "bob-power-armor-mk4" - }, - { - type = "recipe", - name = "bob-power-armor-mk5", - enabled = "false", - energy_required = 30, - ingredients = - { - {"bob-power-armor-mk4", 1}, - {"processing-unit", 50}, - {"advanced-circuit", 50}, - {"steel-plate", 25}, - {"plastic-bar", 25}, - {"effectivity-module-3", 5}, - {"speed-module-3", 5}, - }, - result = "bob-power-armor-mk5" - }, -} -) - - +data:extend( +{ + { + type = "recipe", + name = "heavy-armor-2", + enabled = "false", + energy_required = 8, + ingredients = + { + {"iron-plate", 100}, + {"steel-plate", 50}, + }, + result = "heavy-armor-2" + }, + + { + type = "recipe", + name = "heavy-armor-3", + enabled = "false", + energy_required = 8, + ingredients = + { + {"steel-plate", 100}, + {"plastic-bar", 50}, + }, + result = "heavy-armor-3" + }, + + + { + type = "recipe", + name = "bob-power-armor-mk3", + enabled = "false", + energy_required = 30, + ingredients = + { + {"power-armor-mk2", 1}, + {"processing-unit", 50}, + {"steel-plate", 25}, + {"iron-plate", 25}, + {"effectivity-module-3", 5}, + {"speed-module-3", 5}, + }, + result = "bob-power-armor-mk3" + }, + { + type = "recipe", + name = "bob-power-armor-mk4", + enabled = "false", + energy_required = 30, + ingredients = + { + {"bob-power-armor-mk3", 1}, + {"processing-unit", 40}, + {"advanced-circuit", 20}, + {"steel-plate", 25}, + {"plastic-bar", 25}, + {"effectivity-module-3", 5}, + {"speed-module-3", 5}, + }, + result = "bob-power-armor-mk4" + }, + { + type = "recipe", + name = "bob-power-armor-mk5", + enabled = "false", + energy_required = 30, + ingredients = + { + {"bob-power-armor-mk4", 1}, + {"processing-unit", 50}, + {"advanced-circuit", 50}, + {"steel-plate", 25}, + {"plastic-bar", 25}, + {"effectivity-module-3", 5}, + {"speed-module-3", 5}, + }, + result = "bob-power-armor-mk5" + }, +} +) + + diff --git a/bobwarfare_0.14.0/prototypes/recipe/drone.lua b/bobwarfare_0.14.1/prototypes/recipe/drone.lua similarity index 94% rename from bobwarfare_0.14.0/prototypes/recipe/drone.lua rename to bobwarfare_0.14.1/prototypes/recipe/drone.lua index ce4ee84..d8345d6 100644 --- a/bobwarfare_0.14.0/prototypes/recipe/drone.lua +++ b/bobwarfare_0.14.1/prototypes/recipe/drone.lua @@ -1,20 +1,20 @@ -data:extend( -{ - { - type = "recipe", - name = "bob-robot-tank", - enabled = "false", - ingredients = - { - {"electric-engine-unit", 5}, - {"steel-plate", 30}, - {"iron-gear-wheel", 20}, - {"advanced-circuit", 10}, - {"processing-unit", 10}, - {"laser-turret", 1}, - }, - result = "bob-robot-tank" - }, -} -) - +data:extend( +{ + { + type = "recipe", + name = "bob-robot-tank", + enabled = "false", + ingredients = + { + {"electric-engine-unit", 5}, + {"steel-plate", 30}, + {"iron-gear-wheel", 20}, + {"advanced-circuit", 10}, + {"processing-unit", 10}, + {"laser-turret", 1}, + }, + result = "bob-robot-tank" + }, +} +) + diff --git a/bobwarfare_0.14.0/prototypes/recipe/equipment.lua b/bobwarfare_0.14.1/prototypes/recipe/equipment.lua similarity index 95% rename from bobwarfare_0.14.0/prototypes/recipe/equipment.lua rename to bobwarfare_0.14.1/prototypes/recipe/equipment.lua index 53d08a5..8158950 100644 --- a/bobwarfare_0.14.0/prototypes/recipe/equipment.lua +++ b/bobwarfare_0.14.1/prototypes/recipe/equipment.lua @@ -1,367 +1,367 @@ -data.raw.recipe["energy-shield-mk2-equipment"].ingredients = {{"energy-shield-equipment", 2}, {"processing-unit", 5}} - -data:extend( -{ - { - type = "recipe", - name = "energy-shield-mk3-equipment", - enabled = "false", - energy_required = 10, - ingredients = - { - {"energy-shield-mk2-equipment", 2}, - {"processing-unit", 5}, - {"alien-artifact", 10}, - {"productivity-module-2", 1}, - }, - result = "energy-shield-mk3-equipment" - }, - { - type = "recipe", - name = "energy-shield-mk4-equipment", - enabled = "false", - energy_required = 10, - ingredients = - { - {"energy-shield-mk3-equipment", 2}, - {"processing-unit", 5}, - {"effectivity-module-3", 1}, - {"productivity-module-3", 1}, - - }, - result = "energy-shield-mk4-equipment" - }, - { - type = "recipe", - name = "energy-shield-mk5-equipment", - enabled = "false", - energy_required = 10, - ingredients = - { - {"energy-shield-mk4-equipment", 2}, - {"processing-unit", 5}, - {"effectivity-module-3", 1}, - {"productivity-module-3", 1}, - }, - result = "energy-shield-mk5-equipment" - }, - { - type = "recipe", - name = "energy-shield-mk6-equipment", - enabled = "false", - energy_required = 10, - ingredients = - { - {"energy-shield-mk5-equipment", 2}, - {"processing-unit", 5}, - {"effectivity-module-3", 1}, - {"productivity-module-3", 1}, - }, - result = "energy-shield-mk6-equipment" - }, -} -) - - -data.raw.recipe["battery-mk2-equipment"].ingredients = {{"battery-equipment", 2}, {"processing-unit", 5}} - -data:extend( -{ - { - type = "recipe", - name = "battery-mk3-equipment", - enabled = "false", - energy_required = 10, - ingredients = - { - {"battery-mk2-equipment", 2}, - {"battery", 5}, - }, - result = "battery-mk3-equipment" - }, - { - type = "recipe", - name = "battery-mk4-equipment", - enabled = "false", - energy_required = 10, - ingredients = - { - {"battery-mk3-equipment", 2}, - {"processing-unit", 5} - }, - result = "battery-mk4-equipment" - }, - { - type = "recipe", - name = "battery-mk5-equipment", - enabled = "false", - energy_required = 10, - ingredients = - { - {"battery-mk4-equipment", 2}, - {"battery", 5} - }, - result = "battery-mk5-equipment" - }, - { - type = "recipe", - name = "battery-mk6-equipment", - enabled = "false", - energy_required = 10, - ingredients = - { - {"battery-mk5-equipment", 2}, - {"processing-unit", 5} - }, - result = "battery-mk6-equipment" - }, -} -) - - -data:extend( -{ - { - type = "recipe", - name = "fusion-reactor-equipment-2", - enabled = "false", - energy_required = 10, - ingredients = - { - {"fusion-reactor-equipment", 1}, - {"processing-unit", 50}, - {"effectivity-module-3", 2}, - {"speed-module-3", 2}, - {"productivity-module-3", 2}, - }, - result = "fusion-reactor-equipment-2" - }, - { - type = "recipe", - name = "fusion-reactor-equipment-3", - enabled = "false", - energy_required = 10, - ingredients = - { - {"fusion-reactor-equipment-2", 1}, - {"processing-unit", 50}, - {"effectivity-module-3", 2}, - {"speed-module-3", 2}, - {"productivity-module-3", 2}, - }, - result = "fusion-reactor-equipment-3" - }, - { - type = "recipe", - name = "fusion-reactor-equipment-4", - enabled = "false", - energy_required = 10, - ingredients = - { - {"fusion-reactor-equipment-3", 1}, - {"processing-unit", 50}, - {"effectivity-module-3", 2}, - {"speed-module-3", 2}, - {"productivity-module-3", 2}, - }, - result = "fusion-reactor-equipment-4" - }, -} -) - - -data:extend( -{ - { - type = "recipe", - name = "night-vision-equipment-2", - enabled = "false", - energy_required = 10, - ingredients = - { - {"night-vision-equipment", 1}, - {"processing-unit", 5}, - {"plastic-bar", 2}, - }, - result = "night-vision-equipment-2" - }, - { - type = "recipe", - name = "night-vision-equipment-3", - enabled = "false", - energy_required = 10, - ingredients = - { - {"night-vision-equipment-2", 1}, - {"processing-unit", 5}, - {"plastic-bar", 2}, - {"alien-artifact", 10}, - }, - result = "night-vision-equipment-3" - }, -} -) - - -data.raw.recipe["solar-panel-equipment"].ingredients = {{"steel-plate", 2}, {"electronic-circuit", 5}, {"copper-cable", 4}} - -data:extend( -{ - { - type = "recipe", - name = "solar-panel-equipment-2", - enabled = "false", - energy_required = 10, - ingredients = - { - {"solar-panel-equipment", 1}, - {"steel-plate", 2}, - {"advanced-circuit", 5}, - {"copper-plate", 2}, - }, - result = "solar-panel-equipment-2" - }, - { - type = "recipe", - name = "solar-panel-equipment-3", - enabled = "false", - energy_required = 10, - ingredients = - { - {"solar-panel-equipment-2", 1}, - {"steel-plate", 2}, - {"processing-unit", 5}, - {"copper-plate", 2}, - }, - result = "solar-panel-equipment-3" - }, - { - type = "recipe", - name = "solar-panel-equipment-4", - enabled = "false", - energy_required = 10, - ingredients = - { - {"solar-panel-equipment-3", 1}, - {"steel-plate", 2}, - {"alien-artifact", 10}, - {"processing-unit", 5}, - {"copper-cable", 5}, - }, - result = "solar-panel-equipment-4" - }, -} -) - -data.raw.recipe["personal-laser-defense-equipment"].ingredients = {{"steel-plate", 5}, {"electronic-circuit", 5}, {"battery", 3}} - -data:extend( -{ - { - type = "recipe", - name = "personal-laser-defense-equipment-2", - enabled = "false", - energy_required = 10, - ingredients = - { - {"personal-laser-defense-equipment", 1}, - {"steel-plate", 5}, - {"advanced-circuit", 5}, - {"battery", 3} - }, - result = "personal-laser-defense-equipment-2" - }, - { - type = "recipe", - name = "personal-laser-defense-equipment-3", - enabled = "false", - energy_required = 10, - ingredients = - { - {"personal-laser-defense-equipment-2", 1}, - {"steel-plate", 5}, - {"advanced-circuit", 5}, - {"battery", 3} - }, - result = "personal-laser-defense-equipment-3" - }, - { - type = "recipe", - name = "personal-laser-defense-equipment-4", - enabled = "false", - energy_required = 10, - ingredients = - { - {"personal-laser-defense-equipment-3", 1}, - {"steel-plate", 5}, - {"processing-unit", 5}, - {"battery", 3}, - }, - result = "personal-laser-defense-equipment-4" - }, - { - type = "recipe", - name = "personal-laser-defense-equipment-5", - enabled = "false", - energy_required = 10, - ingredients = - { - {"personal-laser-defense-equipment-4", 1}, - {"steel-plate", 5}, - {"processing-unit", 5}, - {"battery", 3}, - }, - result = "personal-laser-defense-equipment-5" - }, - { - type = "recipe", - name = "personal-laser-defense-equipment-6", - enabled = "false", - energy_required = 10, - ingredients = - { - {"personal-laser-defense-equipment-5", 1}, - {"steel-plate", 5}, - {"processing-unit", 5}, - {"battery", 3}, - }, - result = "personal-laser-defense-equipment-6" - }, -} -) - - -data:extend( -{ - { - type = "recipe", - name = "exoskeleton-equipment-2", - enabled = "false", - energy_required = 10, - ingredients = - { - {"exoskeleton-equipment", 1}, - {"processing-unit", 10}, - {"iron-gear-wheel", 30}, - {"steel-plate", 20}, - }, - result = "exoskeleton-equipment-2" - }, - { - type = "recipe", - name = "exoskeleton-equipment-3", - enabled = "false", - energy_required = 10, - ingredients = - { - {"exoskeleton-equipment-2", 1}, - {"processing-unit", 10}, - {"iron-gear-wheel", 30}, - {"steel-plate", 20}, - {"alien-artifact", 10}, - }, - result = "exoskeleton-equipment-3" - }, -} -) - +data.raw.recipe["energy-shield-mk2-equipment"].ingredients = {{"energy-shield-equipment", 2}, {"processing-unit", 5}} + +data:extend( +{ + { + type = "recipe", + name = "energy-shield-mk3-equipment", + enabled = "false", + energy_required = 10, + ingredients = + { + {"energy-shield-mk2-equipment", 2}, + {"processing-unit", 5}, + {"alien-artifact", 10}, + {"productivity-module-2", 1}, + }, + result = "energy-shield-mk3-equipment" + }, + { + type = "recipe", + name = "energy-shield-mk4-equipment", + enabled = "false", + energy_required = 10, + ingredients = + { + {"energy-shield-mk3-equipment", 2}, + {"processing-unit", 5}, + {"effectivity-module-3", 1}, + {"productivity-module-3", 1}, + + }, + result = "energy-shield-mk4-equipment" + }, + { + type = "recipe", + name = "energy-shield-mk5-equipment", + enabled = "false", + energy_required = 10, + ingredients = + { + {"energy-shield-mk4-equipment", 2}, + {"processing-unit", 5}, + {"effectivity-module-3", 1}, + {"productivity-module-3", 1}, + }, + result = "energy-shield-mk5-equipment" + }, + { + type = "recipe", + name = "energy-shield-mk6-equipment", + enabled = "false", + energy_required = 10, + ingredients = + { + {"energy-shield-mk5-equipment", 2}, + {"processing-unit", 5}, + {"effectivity-module-3", 1}, + {"productivity-module-3", 1}, + }, + result = "energy-shield-mk6-equipment" + }, +} +) + + +data.raw.recipe["battery-mk2-equipment"].ingredients = {{"battery-equipment", 2}, {"processing-unit", 5}} + +data:extend( +{ + { + type = "recipe", + name = "battery-mk3-equipment", + enabled = "false", + energy_required = 10, + ingredients = + { + {"battery-mk2-equipment", 2}, + {"battery", 5}, + }, + result = "battery-mk3-equipment" + }, + { + type = "recipe", + name = "battery-mk4-equipment", + enabled = "false", + energy_required = 10, + ingredients = + { + {"battery-mk3-equipment", 2}, + {"processing-unit", 5} + }, + result = "battery-mk4-equipment" + }, + { + type = "recipe", + name = "battery-mk5-equipment", + enabled = "false", + energy_required = 10, + ingredients = + { + {"battery-mk4-equipment", 2}, + {"battery", 5} + }, + result = "battery-mk5-equipment" + }, + { + type = "recipe", + name = "battery-mk6-equipment", + enabled = "false", + energy_required = 10, + ingredients = + { + {"battery-mk5-equipment", 2}, + {"processing-unit", 5} + }, + result = "battery-mk6-equipment" + }, +} +) + + +data:extend( +{ + { + type = "recipe", + name = "fusion-reactor-equipment-2", + enabled = "false", + energy_required = 10, + ingredients = + { + {"fusion-reactor-equipment", 1}, + {"processing-unit", 50}, + {"effectivity-module-3", 2}, + {"speed-module-3", 2}, + {"productivity-module-3", 2}, + }, + result = "fusion-reactor-equipment-2" + }, + { + type = "recipe", + name = "fusion-reactor-equipment-3", + enabled = "false", + energy_required = 10, + ingredients = + { + {"fusion-reactor-equipment-2", 1}, + {"processing-unit", 50}, + {"effectivity-module-3", 2}, + {"speed-module-3", 2}, + {"productivity-module-3", 2}, + }, + result = "fusion-reactor-equipment-3" + }, + { + type = "recipe", + name = "fusion-reactor-equipment-4", + enabled = "false", + energy_required = 10, + ingredients = + { + {"fusion-reactor-equipment-3", 1}, + {"processing-unit", 50}, + {"effectivity-module-3", 2}, + {"speed-module-3", 2}, + {"productivity-module-3", 2}, + }, + result = "fusion-reactor-equipment-4" + }, +} +) + + +data:extend( +{ + { + type = "recipe", + name = "night-vision-equipment-2", + enabled = "false", + energy_required = 10, + ingredients = + { + {"night-vision-equipment", 1}, + {"processing-unit", 5}, + {"plastic-bar", 2}, + }, + result = "night-vision-equipment-2" + }, + { + type = "recipe", + name = "night-vision-equipment-3", + enabled = "false", + energy_required = 10, + ingredients = + { + {"night-vision-equipment-2", 1}, + {"processing-unit", 5}, + {"plastic-bar", 2}, + {"alien-artifact", 10}, + }, + result = "night-vision-equipment-3" + }, +} +) + + +data.raw.recipe["solar-panel-equipment"].ingredients = {{"steel-plate", 2}, {"electronic-circuit", 5}, {"copper-cable", 4}} + +data:extend( +{ + { + type = "recipe", + name = "solar-panel-equipment-2", + enabled = "false", + energy_required = 10, + ingredients = + { + {"solar-panel-equipment", 1}, + {"steel-plate", 2}, + {"advanced-circuit", 5}, + {"copper-plate", 2}, + }, + result = "solar-panel-equipment-2" + }, + { + type = "recipe", + name = "solar-panel-equipment-3", + enabled = "false", + energy_required = 10, + ingredients = + { + {"solar-panel-equipment-2", 1}, + {"steel-plate", 2}, + {"processing-unit", 5}, + {"copper-plate", 2}, + }, + result = "solar-panel-equipment-3" + }, + { + type = "recipe", + name = "solar-panel-equipment-4", + enabled = "false", + energy_required = 10, + ingredients = + { + {"solar-panel-equipment-3", 1}, + {"steel-plate", 2}, + {"alien-artifact", 10}, + {"processing-unit", 5}, + {"copper-cable", 5}, + }, + result = "solar-panel-equipment-4" + }, +} +) + +data.raw.recipe["personal-laser-defense-equipment"].ingredients = {{"steel-plate", 5}, {"electronic-circuit", 5}, {"battery", 3}} + +data:extend( +{ + { + type = "recipe", + name = "personal-laser-defense-equipment-2", + enabled = "false", + energy_required = 10, + ingredients = + { + {"personal-laser-defense-equipment", 1}, + {"steel-plate", 5}, + {"advanced-circuit", 5}, + {"battery", 3} + }, + result = "personal-laser-defense-equipment-2" + }, + { + type = "recipe", + name = "personal-laser-defense-equipment-3", + enabled = "false", + energy_required = 10, + ingredients = + { + {"personal-laser-defense-equipment-2", 1}, + {"steel-plate", 5}, + {"advanced-circuit", 5}, + {"battery", 3} + }, + result = "personal-laser-defense-equipment-3" + }, + { + type = "recipe", + name = "personal-laser-defense-equipment-4", + enabled = "false", + energy_required = 10, + ingredients = + { + {"personal-laser-defense-equipment-3", 1}, + {"steel-plate", 5}, + {"processing-unit", 5}, + {"battery", 3}, + }, + result = "personal-laser-defense-equipment-4" + }, + { + type = "recipe", + name = "personal-laser-defense-equipment-5", + enabled = "false", + energy_required = 10, + ingredients = + { + {"personal-laser-defense-equipment-4", 1}, + {"steel-plate", 5}, + {"processing-unit", 5}, + {"battery", 3}, + }, + result = "personal-laser-defense-equipment-5" + }, + { + type = "recipe", + name = "personal-laser-defense-equipment-6", + enabled = "false", + energy_required = 10, + ingredients = + { + {"personal-laser-defense-equipment-5", 1}, + {"steel-plate", 5}, + {"processing-unit", 5}, + {"battery", 3}, + }, + result = "personal-laser-defense-equipment-6" + }, +} +) + + +data:extend( +{ + { + type = "recipe", + name = "exoskeleton-equipment-2", + enabled = "false", + energy_required = 10, + ingredients = + { + {"exoskeleton-equipment", 1}, + {"processing-unit", 10}, + {"iron-gear-wheel", 30}, + {"steel-plate", 20}, + }, + result = "exoskeleton-equipment-2" + }, + { + type = "recipe", + name = "exoskeleton-equipment-3", + enabled = "false", + energy_required = 10, + ingredients = + { + {"exoskeleton-equipment-2", 1}, + {"processing-unit", 10}, + {"iron-gear-wheel", 30}, + {"steel-plate", 20}, + {"alien-artifact", 10}, + }, + result = "exoskeleton-equipment-3" + }, +} +) + diff --git a/bobwarfare_0.14.0/prototypes/recipe/fluid-recipe.lua b/bobwarfare_0.14.1/prototypes/recipe/fluid-recipe.lua similarity index 95% rename from bobwarfare_0.14.0/prototypes/recipe/fluid-recipe.lua rename to bobwarfare_0.14.1/prototypes/recipe/fluid-recipe.lua index 6b95b52..b3b4de9 100644 --- a/bobwarfare_0.14.0/prototypes/recipe/fluid-recipe.lua +++ b/bobwarfare_0.14.1/prototypes/recipe/fluid-recipe.lua @@ -1,77 +1,77 @@ -if data.raw.fluid["nitric-acid"] then data:extend( -{ - { - type = "recipe", - name = "sulfuric-nitric-acid", - category = "chemistry", - enabled = "false", - energy_required = 0.5, - ingredients = - { - {type="fluid", name="sulfuric-acid", amount=1}, - {type="fluid", name="nitric-acid", amount=1}, - }, - results= - { - {type="fluid", name="sulfuric-nitric-acid", amount=2}, - }, - subgroup = "fluid", - icon = "__bobwarfare__/graphics/icons/sulfuric-nitric-acid.png", - order = "b[fluid-chemistry]-b[sulfuric-nitric-acid]" - }, -} -) -end - -data:extend( -{ - { - type = "recipe", - name = "glycerol", - category = "chemistry", - enabled = "false", - energy_required = 0.5, - ingredients = - { - {type="fluid", name="light-oil", amount=1}, - }, - results= - { - {type="fluid", name="glycerol", amount=1}, - }, - subgroup = "fluid", - icon = "__bobwarfare__/graphics/icons/glycerol.png", - order = "b[fluid-chemistry]-b[glycerol]" - }, - - { - type = "recipe", - name = "nitroglycerin", - category = "chemistry", - enabled = "false", - energy_required = 1.5, - ingredients = - { - {type="fluid", name="glycerol", amount=1}, - {type="fluid", name="sulfuric-acid", amount=3}, - }, - results= - { - {type="fluid", name="nitroglycerin", amount=1}, - }, - subgroup = "fluid", - icon = "__bobwarfare__/graphics/icons/nitroglycerin.png", - order = "b[fluid-chemistry]-b[nitroglycerin]" - }, -} -) - - -if data.raw["item-subgroup"]["bob-fluid"] then - if data.raw.recipe["sulfuric-nitric-acid"] then - data.raw.recipe["sulfuric-nitric-acid"].subgroup = "bob-fluid" - end - data.raw.recipe["glycerol"].subgroup = "bob-fluid" - data.raw.recipe["nitroglycerin"].subgroup = "bob-fluid" -end - +if data.raw.fluid["nitric-acid"] then data:extend( +{ + { + type = "recipe", + name = "sulfuric-nitric-acid", + category = "chemistry", + enabled = "false", + energy_required = 0.5, + ingredients = + { + {type="fluid", name="sulfuric-acid", amount=1}, + {type="fluid", name="nitric-acid", amount=1}, + }, + results= + { + {type="fluid", name="sulfuric-nitric-acid", amount=2}, + }, + subgroup = "fluid", + icon = "__bobwarfare__/graphics/icons/sulfuric-nitric-acid.png", + order = "b[fluid-chemistry]-b[sulfuric-nitric-acid]" + }, +} +) +end + +data:extend( +{ + { + type = "recipe", + name = "glycerol", + category = "chemistry", + enabled = "false", + energy_required = 0.5, + ingredients = + { + {type="fluid", name="light-oil", amount=1}, + }, + results= + { + {type="fluid", name="glycerol", amount=1}, + }, + subgroup = "fluid", + icon = "__bobwarfare__/graphics/icons/glycerol.png", + order = "b[fluid-chemistry]-b[glycerol]" + }, + + { + type = "recipe", + name = "nitroglycerin", + category = "chemistry", + enabled = "false", + energy_required = 1.5, + ingredients = + { + {type="fluid", name="glycerol", amount=1}, + {type="fluid", name="sulfuric-acid", amount=3}, + }, + results= + { + {type="fluid", name="nitroglycerin", amount=1}, + }, + subgroup = "fluid", + icon = "__bobwarfare__/graphics/icons/nitroglycerin.png", + order = "b[fluid-chemistry]-b[nitroglycerin]" + }, +} +) + + +if data.raw["item-subgroup"]["bob-fluid"] then + if data.raw.recipe["sulfuric-nitric-acid"] then + data.raw.recipe["sulfuric-nitric-acid"].subgroup = "bob-fluid" + end + data.raw.recipe["glycerol"].subgroup = "bob-fluid" + data.raw.recipe["nitroglycerin"].subgroup = "bob-fluid" +end + diff --git a/bobwarfare_0.14.0/prototypes/recipe/gun-recipe.lua b/bobwarfare_0.14.1/prototypes/recipe/gun-recipe.lua similarity index 94% rename from bobwarfare_0.14.0/prototypes/recipe/gun-recipe.lua rename to bobwarfare_0.14.1/prototypes/recipe/gun-recipe.lua index 2d444a1..f442f2b 100644 --- a/bobwarfare_0.14.0/prototypes/recipe/gun-recipe.lua +++ b/bobwarfare_0.14.1/prototypes/recipe/gun-recipe.lua @@ -1,49 +1,49 @@ -data:extend( -{ - { - type = "recipe", - name = "rifle", - enabled = "false", - energy_required = 5, - ingredients = - { - {"steel-plate", 10}, - {"copper-plate", 5}, - {"iron-gear-wheel", 10}, - }, - result = "rifle", - }, - - { - type = "recipe", - name = "sniper-rifle", - enabled = "false", - energy_required = 5, - ingredients = - { - {"steel-plate", 10}, - {"wood", 10}, - {"iron-gear-wheel", 10}, - }, - result = "sniper-rifle", - }, - - { - type = "recipe", - name = "laser-rifle", - enabled = "false", - energy_required = 5, - ingredients = - { - {"steel-plate", 10}, - {"advanced-circuit", 5}, - {"iron-gear-wheel", 5}, - {"plastic-bar", 3} - }, - result = "laser-rifle", - }, -} -) - - - +data:extend( +{ + { + type = "recipe", + name = "rifle", + enabled = "false", + energy_required = 5, + ingredients = + { + {"steel-plate", 10}, + {"copper-plate", 5}, + {"iron-gear-wheel", 10}, + }, + result = "rifle", + }, + + { + type = "recipe", + name = "sniper-rifle", + enabled = "false", + energy_required = 5, + ingredients = + { + {"steel-plate", 10}, + {"wood", 10}, + {"iron-gear-wheel", 10}, + }, + result = "sniper-rifle", + }, + + { + type = "recipe", + name = "laser-rifle", + enabled = "false", + energy_required = 5, + ingredients = + { + {"steel-plate", 10}, + {"advanced-circuit", 5}, + {"iron-gear-wheel", 5}, + {"plastic-bar", 3} + }, + result = "laser-rifle", + }, +} +) + + + diff --git a/bobwarfare_0.14.0/prototypes/recipe/mine-recipe.lua b/bobwarfare_0.14.1/prototypes/recipe/mine-recipe.lua similarity index 94% rename from bobwarfare_0.14.0/prototypes/recipe/mine-recipe.lua rename to bobwarfare_0.14.1/prototypes/recipe/mine-recipe.lua index c82fe8d..cda79b9 100644 --- a/bobwarfare_0.14.0/prototypes/recipe/mine-recipe.lua +++ b/bobwarfare_0.14.1/prototypes/recipe/mine-recipe.lua @@ -1,48 +1,48 @@ -data:extend( -{ - { - type = "recipe", - name = "poison-mine", - enabled = "false", - energy_required = 5, - ingredients = - { - {"steel-plate", 1}, - {"poison-capsule", 4} - }, - result = "poison-mine", - result_count = 4 - }, - - { - type = "recipe", - name = "slowdown-mine", - enabled = "false", - energy_required = 5, - ingredients = - { - {"steel-plate", 1}, - {"slowdown-capsule", 4} - }, - result = "slowdown-mine", - result_count = 4 - }, - - { - type = "recipe", - name = "distractor-mine", - enabled = "false", - energy_required = 3.75, - ingredients = - { - {"steel-plate", 1}, - {"distractor-capsule", 1} - }, - result = "distractor-mine", - result_count = 3 - }, -} -) - - - +data:extend( +{ + { + type = "recipe", + name = "poison-mine", + enabled = "false", + energy_required = 5, + ingredients = + { + {"steel-plate", 1}, + {"poison-capsule", 4} + }, + result = "poison-mine", + result_count = 4 + }, + + { + type = "recipe", + name = "slowdown-mine", + enabled = "false", + energy_required = 5, + ingredients = + { + {"steel-plate", 1}, + {"slowdown-capsule", 4} + }, + result = "slowdown-mine", + result_count = 4 + }, + + { + type = "recipe", + name = "distractor-mine", + enabled = "false", + energy_required = 3.75, + ingredients = + { + {"steel-plate", 1}, + {"distractor-capsule", 1} + }, + result = "distractor-mine", + result_count = 3 + }, +} +) + + + diff --git a/bobwarfare_0.14.0/prototypes/recipe/parts-recipe.lua b/bobwarfare_0.14.1/prototypes/recipe/parts-recipe.lua similarity index 94% rename from bobwarfare_0.14.0/prototypes/recipe/parts-recipe.lua rename to bobwarfare_0.14.1/prototypes/recipe/parts-recipe.lua index 7bf7830..edea0ef 100644 --- a/bobwarfare_0.14.0/prototypes/recipe/parts-recipe.lua +++ b/bobwarfare_0.14.1/prototypes/recipe/parts-recipe.lua @@ -1,503 +1,503 @@ -if data.raw.item["synthetic-wood"] then data:extend( -{ - { - type = "recipe", - name = "gun-cotton-synthetic", - category = "crafting-with-fluid", - subgroup = "bob-resource", - energy_required = 1, - enabled = "false", - ingredients = - { - {type="fluid", name="sulfuric-acid", amount=1}, - {"synthetic-wood", 1}, - }, - result = "gun-cotton", - result_count = 1, - }, -} -) -end - -data:extend( -{ - { - type = "recipe", - name = "petroleum-jelly", - category = "chemistry", - subgroup = "bob-resource", - energy_required = 1, - enabled = "false", - ingredients = - { - {type="fluid", name="heavy-oil", amount=1}, - }, - result = "petroleum-jelly", - result_count = 1, - }, - - { - type = "recipe", - name = "gun-cotton", - category = "crafting-with-fluid", - subgroup = "bob-resource", - energy_required = 1, - enabled = "false", - ingredients = - { - {type="fluid", name="sulfuric-acid", amount=1}, - {"wood", 1}, - }, - result = "gun-cotton", - result_count = 1, - }, - - { - type = "recipe", - name = "cordite", - category = "crafting-with-fluid", - subgroup = "bob-ammo-parts", - energy_required = 10, - enabled = "false", - ingredients = - { - {type="fluid", name="nitroglycerin", amount=6}, - {"gun-cotton", 13}, - {"petroleum-jelly", 1}, - }, - result = "cordite", - result_count = 5, - }, - - - { - type = "recipe", - name = "bullet-casing", - subgroup = "bob-ammo-parts", - energy_required = 0.5, - enabled = "false", - ingredients = - { - {"copper-plate", 1}, - }, - result = "bullet-casing", - result_count = 1, - }, - - { - type = "recipe", - name = "magazine", - subgroup = "bob-ammo-parts", - energy_required = 1, - enabled = "false", - ingredients = - { - {"steel-plate", 1}, - }, - result = "magazine", - result_count = 2, - }, - - - { - type = "recipe", - name = "bullet-projectile", - subgroup = "bob-ammo-parts", - energy_required = 1, - enabled = "false", - ingredients = - { - {"copper-plate", 1}, - {"iron-plate", 1}, - }, - result = "bullet-projectile", - result_count = 2, - }, - - { - type = "recipe", - name = "bullet", - subgroup = "bob-ammo-parts", - energy_required = 0.1, - enabled = "false", - ingredients = - { - {"bullet-casing", 1}, - {"bullet-projectile", 1}, - {"cordite", 1}, - }, - result = "bullet", - result_count = 1, - }, - - - { - type = "recipe", - name = "ap-bullet-projectile", - subgroup = "bob-ammo-parts", - energy_required = 1, - enabled = "false", - ingredients = - { - {"copper-plate", 1}, - {"steel-plate", 1}, - }, - result = "ap-bullet-projectile", - result_count = 2, - }, - - { - type = "recipe", - name = "ap-bullet", - subgroup = "bob-ammo-parts", - energy_required = 0.1, - enabled = "false", - ingredients = - { - {"bullet-casing", 1}, - {"ap-bullet-projectile", 1}, - {"cordite", 1}, - }, - result = "ap-bullet", - result_count = 1, - }, - - - { - type = "recipe", - name = "he-bullet-projectile", - subgroup = "bob-ammo-parts", - energy_required = 1, - enabled = "false", - ingredients = - { - {"copper-plate", 1}, - {"explosives", 1}, - }, - result = "he-bullet-projectile", - result_count = 2, - }, - - { - type = "recipe", - name = "he-bullet", - subgroup = "bob-ammo-parts", - energy_required = 0.1, - enabled = "false", - ingredients = - { - {"bullet-casing", 1}, - {"he-bullet-projectile", 1}, - {"cordite", 1}, - }, - result = "he-bullet", - result_count = 1, - }, - - - { - type = "recipe", - name = "flame-bullet-projectile", - category = "chemistry", - subgroup = "bob-ammo-parts", - energy_required = 1, - enabled = "false", - ingredients = - { - {"copper-plate", 1}, - {type="fluid", name="light-oil", amount=0.5}, - {type="fluid", name="heavy-oil", amount=0.5} - }, - result = "flame-bullet-projectile", - result_count = 2, - }, - - { - type = "recipe", - name = "flame-bullet", - subgroup = "bob-ammo-parts", - energy_required = 0.1, - enabled = "false", - ingredients = - { - {"bullet-casing", 1}, - {"flame-bullet-projectile", 1}, - {"cordite", 1}, - }, - result = "flame-bullet", - result_count = 1, - }, - - - { - type = "recipe", - name = "acid-bullet-projectile", - category = "crafting-with-fluid", - subgroup = "bob-ammo-parts", - energy_required = 1, - enabled = "false", - ingredients = - { - {"copper-plate", 1}, - {type="fluid", name="sulfuric-acid", amount=1}, - }, - result = "acid-bullet-projectile", - result_count = 2, - }, - - { - type = "recipe", - name = "acid-bullet", - subgroup = "bob-ammo-parts", - energy_required = 0.1, - enabled = "false", - ingredients = - { - {"bullet-casing", 1}, - {"acid-bullet-projectile", 1}, - {"cordite", 1}, - }, - result = "acid-bullet", - result_count = 1, - }, - - - { - type = "recipe", - name = "poison-bullet-projectile", - subgroup = "bob-ammo-parts", - energy_required = 1, - enabled = "false", - ingredients = - { - {"copper-plate", 1}, - {"coal", 1}, - }, - result = "poison-bullet-projectile", - result_count = 2, - }, - - { - type = "recipe", - name = "poison-bullet", - subgroup = "bob-ammo-parts", - energy_required = 0.1, - enabled = "false", - ingredients = - { - {"bullet-casing", 1}, - {"poison-bullet-projectile", 1}, - {"cordite", 1}, - }, - result = "poison-bullet", - result_count = 1, - }, - - - { - type = "recipe", - name = "electric-bullet-projectile", - category = "crafting-with-fluid", - subgroup = "bob-ammo-parts", - energy_required = 1, - enabled = "false", - ingredients = - { - {"copper-plate", 1}, - {"steel-plate", 1}, - }, - result = "electric-bullet-projectile", - result_count = 2, - }, - - { - type = "recipe", - name = "electric-bullet", - subgroup = "bob-ammo-parts", - energy_required = 0.1, - enabled = "false", - ingredients = - { - {"bullet-casing", 1}, - {"electric-bullet-projectile", 1}, - {"cordite", 1}, - }, - result = "electric-bullet", - result_count = 1, - }, - - - { - type = "recipe", - name = "shotgun-shell-casing", - subgroup = "bob-ammo-parts", - energy_required = 0.5, - enabled = "false", - ingredients = - { - {"copper-plate", 1}, - }, - result = "shotgun-shell-casing", - result_count = 1, - }, - - { - type = "recipe", - name = "shot", - subgroup = "bob-ammo-parts", - energy_required = 0.5, - enabled = "false", - ingredients = - { - {"iron-plate", 1}, - }, - result = "shot", - result_count = 1, - }, - - - { - type = "recipe", - name = "laser-rifle-battery-case", - subgroup = "bob-ammo-parts", - energy_required = 1, - enabled = "false", - ingredients = - { - {"plastic-bar", 1}, - }, - result = "laser-rifle-battery-case", - result_count = 2, - }, - - - { - type = "recipe", - name = "rocket-engine", - energy_required = 1, - enabled = "false", - ingredients = - { - {"steel-plate", 1}, - }, - result = "rocket-engine", - }, - - { - type = "recipe", - name = "rocket-body", - energy_required = 1, - enabled = "false", - ingredients = - { - {"solid-fuel", 1}, - {"rocket-engine", 1}, - {"processing-unit", 1}, - {"steel-plate", 1}, - }, - result = "rocket-body", - }, - - { - type = "recipe", - name = "rocket-warhead", - energy_required = 1, - enabled = "false", - ingredients = - { - {"steel-plate", 1}, - {"explosives", 1}, - }, - result = "rocket-warhead", - }, - - { - type = "recipe", - name = "piercing-rocket-warhead", - energy_required = 1, - enabled = "false", - ingredients = - { - {"steel-plate", 1}, - {"iron-plate", 2}, - }, - result = "piercing-rocket-warhead", - }, - - { - type = "recipe", - name = "electric-rocket-warhead", - energy_required = 1, - enabled = "false", - ingredients = - { - {"steel-plate", 1}, - {"copper-plate", 2}, - }, - result = "electric-rocket-warhead", - }, - - { - type = "recipe", - name = "explosive-rocket-warhead", - energy_required = 1, - enabled = "false", - ingredients = - { - {"steel-plate", 1}, - {"explosives", 2}, - }, - result = "explosive-rocket-warhead", - }, - - { - type = "recipe", - name = "acid-rocket-warhead", - category = "crafting-with-fluid", - energy_required = 1, - enabled = "false", - ingredients = - { - {"steel-plate", 1}, - {type="fluid", name="sulfuric-acid", amount=2}, - }, - result = "acid-rocket-warhead", - }, - - { - type = "recipe", - name = "flame-rocket-warhead", - category = "chemistry", - energy_required = 1, - enabled = "false", - ingredients = - { - {"steel-plate", 1}, - {type="fluid", name="light-oil", amount=1}, - {type="fluid", name="heavy-oil", amount=1} - }, - result = "flame-rocket-warhead", - }, - - { - type = "recipe", - name = "poison-rocket-warhead", - category = "crafting-with-fluid", - energy_required = 1, - enabled = "false", - ingredients = - { - {"steel-plate", 1}, - {"coal", 2}, - }, - result = "poison-rocket-warhead", - }, -} -) - - - -if data.raw["item-subgroup"]["bob-resource-chemical"] then - data.raw.recipe["petroleum-jelly"].subgroup = "bob-resource-chemical" -end - +if data.raw.item["synthetic-wood"] then data:extend( +{ + { + type = "recipe", + name = "gun-cotton-synthetic", + category = "crafting-with-fluid", + subgroup = "bob-resource", + energy_required = 1, + enabled = "false", + ingredients = + { + {type="fluid", name="sulfuric-acid", amount=1}, + {"synthetic-wood", 1}, + }, + result = "gun-cotton", + result_count = 1, + }, +} +) +end + +data:extend( +{ + { + type = "recipe", + name = "petroleum-jelly", + category = "chemistry", + subgroup = "bob-resource", + energy_required = 1, + enabled = "false", + ingredients = + { + {type="fluid", name="heavy-oil", amount=1}, + }, + result = "petroleum-jelly", + result_count = 1, + }, + + { + type = "recipe", + name = "gun-cotton", + category = "crafting-with-fluid", + subgroup = "bob-resource", + energy_required = 1, + enabled = "false", + ingredients = + { + {type="fluid", name="sulfuric-acid", amount=1}, + {"wood", 1}, + }, + result = "gun-cotton", + result_count = 1, + }, + + { + type = "recipe", + name = "cordite", + category = "crafting-with-fluid", + subgroup = "bob-ammo-parts", + energy_required = 10, + enabled = "false", + ingredients = + { + {type="fluid", name="nitroglycerin", amount=6}, + {"gun-cotton", 13}, + {"petroleum-jelly", 1}, + }, + result = "cordite", + result_count = 5, + }, + + + { + type = "recipe", + name = "bullet-casing", + subgroup = "bob-ammo-parts", + energy_required = 0.5, + enabled = "false", + ingredients = + { + {"copper-plate", 1}, + }, + result = "bullet-casing", + result_count = 1, + }, + + { + type = "recipe", + name = "magazine", + subgroup = "bob-ammo-parts", + energy_required = 1, + enabled = "false", + ingredients = + { + {"steel-plate", 1}, + }, + result = "magazine", + result_count = 2, + }, + + + { + type = "recipe", + name = "bullet-projectile", + subgroup = "bob-ammo-parts", + energy_required = 1, + enabled = "false", + ingredients = + { + {"copper-plate", 1}, + {"iron-plate", 1}, + }, + result = "bullet-projectile", + result_count = 2, + }, + + { + type = "recipe", + name = "bullet", + subgroup = "bob-ammo-parts", + energy_required = 0.1, + enabled = "false", + ingredients = + { + {"bullet-casing", 1}, + {"bullet-projectile", 1}, + {"cordite", 1}, + }, + result = "bullet", + result_count = 1, + }, + + + { + type = "recipe", + name = "ap-bullet-projectile", + subgroup = "bob-ammo-parts", + energy_required = 1, + enabled = "false", + ingredients = + { + {"copper-plate", 1}, + {"steel-plate", 1}, + }, + result = "ap-bullet-projectile", + result_count = 2, + }, + + { + type = "recipe", + name = "ap-bullet", + subgroup = "bob-ammo-parts", + energy_required = 0.1, + enabled = "false", + ingredients = + { + {"bullet-casing", 1}, + {"ap-bullet-projectile", 1}, + {"cordite", 1}, + }, + result = "ap-bullet", + result_count = 1, + }, + + + { + type = "recipe", + name = "he-bullet-projectile", + subgroup = "bob-ammo-parts", + energy_required = 1, + enabled = "false", + ingredients = + { + {"copper-plate", 1}, + {"explosives", 1}, + }, + result = "he-bullet-projectile", + result_count = 2, + }, + + { + type = "recipe", + name = "he-bullet", + subgroup = "bob-ammo-parts", + energy_required = 0.1, + enabled = "false", + ingredients = + { + {"bullet-casing", 1}, + {"he-bullet-projectile", 1}, + {"cordite", 1}, + }, + result = "he-bullet", + result_count = 1, + }, + + + { + type = "recipe", + name = "flame-bullet-projectile", + category = "chemistry", + subgroup = "bob-ammo-parts", + energy_required = 1, + enabled = "false", + ingredients = + { + {"copper-plate", 1}, + {type="fluid", name="light-oil", amount=0.5}, + {type="fluid", name="heavy-oil", amount=0.5} + }, + result = "flame-bullet-projectile", + result_count = 2, + }, + + { + type = "recipe", + name = "flame-bullet", + subgroup = "bob-ammo-parts", + energy_required = 0.1, + enabled = "false", + ingredients = + { + {"bullet-casing", 1}, + {"flame-bullet-projectile", 1}, + {"cordite", 1}, + }, + result = "flame-bullet", + result_count = 1, + }, + + + { + type = "recipe", + name = "acid-bullet-projectile", + category = "crafting-with-fluid", + subgroup = "bob-ammo-parts", + energy_required = 1, + enabled = "false", + ingredients = + { + {"copper-plate", 1}, + {type="fluid", name="sulfuric-acid", amount=1}, + }, + result = "acid-bullet-projectile", + result_count = 2, + }, + + { + type = "recipe", + name = "acid-bullet", + subgroup = "bob-ammo-parts", + energy_required = 0.1, + enabled = "false", + ingredients = + { + {"bullet-casing", 1}, + {"acid-bullet-projectile", 1}, + {"cordite", 1}, + }, + result = "acid-bullet", + result_count = 1, + }, + + + { + type = "recipe", + name = "poison-bullet-projectile", + subgroup = "bob-ammo-parts", + energy_required = 1, + enabled = "false", + ingredients = + { + {"copper-plate", 1}, + {"coal", 1}, + }, + result = "poison-bullet-projectile", + result_count = 2, + }, + + { + type = "recipe", + name = "poison-bullet", + subgroup = "bob-ammo-parts", + energy_required = 0.1, + enabled = "false", + ingredients = + { + {"bullet-casing", 1}, + {"poison-bullet-projectile", 1}, + {"cordite", 1}, + }, + result = "poison-bullet", + result_count = 1, + }, + + + { + type = "recipe", + name = "electric-bullet-projectile", + category = "crafting-with-fluid", + subgroup = "bob-ammo-parts", + energy_required = 1, + enabled = "false", + ingredients = + { + {"copper-plate", 1}, + {"steel-plate", 1}, + }, + result = "electric-bullet-projectile", + result_count = 2, + }, + + { + type = "recipe", + name = "electric-bullet", + subgroup = "bob-ammo-parts", + energy_required = 0.1, + enabled = "false", + ingredients = + { + {"bullet-casing", 1}, + {"electric-bullet-projectile", 1}, + {"cordite", 1}, + }, + result = "electric-bullet", + result_count = 1, + }, + + + { + type = "recipe", + name = "shotgun-shell-casing", + subgroup = "bob-ammo-parts", + energy_required = 0.5, + enabled = "false", + ingredients = + { + {"copper-plate", 1}, + }, + result = "shotgun-shell-casing", + result_count = 1, + }, + + { + type = "recipe", + name = "shot", + subgroup = "bob-ammo-parts", + energy_required = 0.5, + enabled = "false", + ingredients = + { + {"iron-plate", 1}, + }, + result = "shot", + result_count = 1, + }, + + + { + type = "recipe", + name = "laser-rifle-battery-case", + subgroup = "bob-ammo-parts", + energy_required = 1, + enabled = "false", + ingredients = + { + {"plastic-bar", 1}, + }, + result = "laser-rifle-battery-case", + result_count = 2, + }, + + + { + type = "recipe", + name = "rocket-engine", + energy_required = 1, + enabled = "false", + ingredients = + { + {"steel-plate", 1}, + }, + result = "rocket-engine", + }, + + { + type = "recipe", + name = "rocket-body", + energy_required = 1, + enabled = "false", + ingredients = + { + {"solid-fuel", 1}, + {"rocket-engine", 1}, + {"processing-unit", 1}, + {"steel-plate", 1}, + }, + result = "rocket-body", + }, + + { + type = "recipe", + name = "rocket-warhead", + energy_required = 1, + enabled = "false", + ingredients = + { + {"steel-plate", 1}, + {"explosives", 1}, + }, + result = "rocket-warhead", + }, + + { + type = "recipe", + name = "piercing-rocket-warhead", + energy_required = 1, + enabled = "false", + ingredients = + { + {"steel-plate", 1}, + {"iron-plate", 2}, + }, + result = "piercing-rocket-warhead", + }, + + { + type = "recipe", + name = "electric-rocket-warhead", + energy_required = 1, + enabled = "false", + ingredients = + { + {"steel-plate", 1}, + {"copper-plate", 2}, + }, + result = "electric-rocket-warhead", + }, + + { + type = "recipe", + name = "explosive-rocket-warhead", + energy_required = 1, + enabled = "false", + ingredients = + { + {"steel-plate", 1}, + {"explosives", 2}, + }, + result = "explosive-rocket-warhead", + }, + + { + type = "recipe", + name = "acid-rocket-warhead", + category = "crafting-with-fluid", + energy_required = 1, + enabled = "false", + ingredients = + { + {"steel-plate", 1}, + {type="fluid", name="sulfuric-acid", amount=2}, + }, + result = "acid-rocket-warhead", + }, + + { + type = "recipe", + name = "flame-rocket-warhead", + category = "chemistry", + energy_required = 1, + enabled = "false", + ingredients = + { + {"steel-plate", 1}, + {type="fluid", name="light-oil", amount=1}, + {type="fluid", name="heavy-oil", amount=1} + }, + result = "flame-rocket-warhead", + }, + + { + type = "recipe", + name = "poison-rocket-warhead", + category = "crafting-with-fluid", + energy_required = 1, + enabled = "false", + ingredients = + { + {"steel-plate", 1}, + {"coal", 2}, + }, + result = "poison-rocket-warhead", + }, +} +) + + + +if data.raw["item-subgroup"]["bob-resource-chemical"] then + data.raw.recipe["petroleum-jelly"].subgroup = "bob-resource-chemical" +end + diff --git a/bobwarfare_0.14.0/prototypes/recipe/radar-recipe.lua b/bobwarfare_0.14.1/prototypes/recipe/radar-recipe.lua similarity index 94% rename from bobwarfare_0.14.0/prototypes/recipe/radar-recipe.lua rename to bobwarfare_0.14.1/prototypes/recipe/radar-recipe.lua index 95b11d8..dcb7b24 100644 --- a/bobwarfare_0.14.0/prototypes/recipe/radar-recipe.lua +++ b/bobwarfare_0.14.1/prototypes/recipe/radar-recipe.lua @@ -1,61 +1,61 @@ -data:extend( -{ - { - type = "recipe", - name = "radar-2", - enabled = false, - ingredients = - { - {"radar", 1}, - {"electronic-circuit", 5}, - {"iron-gear-wheel", 5}, - {"steel-plate", 10} - }, - result = "radar-2" - }, - - { - type = "recipe", - name = "radar-3", - enabled = false, - ingredients = - { - {"radar-2", 1}, - {"advanced-circuit", 5}, - {"iron-gear-wheel", 5}, - {"steel-plate", 10} - }, - result = "radar-3" - }, - - { - type = "recipe", - name = "radar-4", - enabled = false, - ingredients = - { - {"radar-3", 1}, - {"processing-unit", 5}, - {"iron-gear-wheel", 5}, - {"steel-plate", 10} - }, - result = "radar-4" - }, - - { - type = "recipe", - name = "radar-5", - enabled = false, - ingredients = - { - {"radar-4", 1}, - {"processing-unit", 5}, - {"iron-gear-wheel", 5}, - {"steel-plate", 10} - }, - result = "radar-5" - }, -} -) - - +data:extend( +{ + { + type = "recipe", + name = "radar-2", + enabled = false, + ingredients = + { + {"radar", 1}, + {"electronic-circuit", 5}, + {"iron-gear-wheel", 5}, + {"steel-plate", 10} + }, + result = "radar-2" + }, + + { + type = "recipe", + name = "radar-3", + enabled = false, + ingredients = + { + {"radar-2", 1}, + {"advanced-circuit", 5}, + {"iron-gear-wheel", 5}, + {"steel-plate", 10} + }, + result = "radar-3" + }, + + { + type = "recipe", + name = "radar-4", + enabled = false, + ingredients = + { + {"radar-3", 1}, + {"processing-unit", 5}, + {"iron-gear-wheel", 5}, + {"steel-plate", 10} + }, + result = "radar-4" + }, + + { + type = "recipe", + name = "radar-5", + enabled = false, + ingredients = + { + {"radar-4", 1}, + {"processing-unit", 5}, + {"iron-gear-wheel", 5}, + {"steel-plate", 10} + }, + result = "radar-5" + }, +} +) + + diff --git a/bobwarfare_0.14.0/prototypes/recipe/recipe-updates.lua b/bobwarfare_0.14.1/prototypes/recipe/recipe-updates.lua similarity index 95% rename from bobwarfare_0.14.0/prototypes/recipe/recipe-updates.lua rename to bobwarfare_0.14.1/prototypes/recipe/recipe-updates.lua index c619cfa..0ef0de8 100644 --- a/bobwarfare_0.14.0/prototypes/recipe/recipe-updates.lua +++ b/bobwarfare_0.14.1/prototypes/recipe/recipe-updates.lua @@ -1,495 +1,495 @@ -if data.raw.fluid["sulfuric-nitric-acid"] then - bobmods.lib.recipe.replace_ingredient("nitroglycerin", "sulfuric-acid", "sulfuric-nitric-acid") - bobmods.lib.tech.add_recipe_unlock("nitroglycerin-processing", "sulfuric-nitric-acid") - bobmods.lib.tech.add_prerequisite("nitroglycerin-processing", "nitrogen-processing") -end - -if data.raw.fluid["nitric-acid"] then - bobmods.lib.recipe.replace_ingredient("gun-cotton-synthetic", "sulfuric-acid", "nitric-acid") - bobmods.lib.recipe.replace_ingredient("gun-cotton", "sulfuric-acid", "nitric-acid") -end - -if data.raw.item["gunmetal-alloy"] then - bobmods.lib.recipe.replace_ingredient("bullet-casing", "copper-plate", "gunmetal-alloy") - bobmods.lib.recipe.replace_ingredient("shotgun-shell-casing", "copper-plate", "gunmetal-alloy") - bobmods.lib.tech.add_prerequisite("bob-bullets", "zinc-processing") - bobmods.lib.tech.add_prerequisite("bob-shotgun-shells", "zinc-processing") -elseif data.raw.item["brass-alloy"] then - bobmods.lib.recipe.replace_ingredient("bullet-casing", "copper-plate", "brass-alloy") - bobmods.lib.recipe.replace_ingredient("shotgun-shell-casing", "copper-plate", "brass-alloy") - bobmods.lib.tech.add_prerequisite("bob-bullets", "zinc-processing") - bobmods.lib.tech.add_prerequisite("bob-shotgun-shells", "zinc-processing") -end - -if data.raw.item["lead-plate"] then - bobmods.lib.recipe.replace_ingredient("bullet-projectile", "iron-plate", "lead-plate") - bobmods.lib.recipe.replace_ingredient("shot", "iron-plate", "lead-plate") -end - -if data.raw.item["tungsten-plate"] then - bobmods.lib.recipe.replace_ingredient("rocket-engine", "steel-plate", "tungsten-plate") -end - -if data.raw.fluid["liquid-fuel"] then - bobmods.lib.recipe.replace_ingredient("rocket-body", "solid-fuel", "liquid-fuel") - data.raw.recipe["rocket-body"].category = "crafting-with-fluid" -end - - -if data.raw.item["glass"] then - bobmods.lib.recipe.add_ingredient("sniper-rifle", {"glass", 2}) - bobmods.lib.recipe.add_ingredient("laser-rifle-battery", {"glass", 1}) - bobmods.lib.recipe.replace_ingredient("night-vision-equipment-2", "plastic-bar", "glass") - bobmods.lib.recipe.replace_ingredient("solar-panel-equipment-2", "steel-plate", "glass") -end - -if data.raw.item["silver-plate"] then - bobmods.lib.recipe.replace_ingredient("solar-panel-equipment-2", "copper-plate", "silver-plate") -end - -if data.raw.item["steel-gear-wheel"] then - bobmods.lib.recipe.replace_ingredient("radar-2", "iron-gear-wheel", "steel-gear-wheel") - bobmods.lib.recipe.replace_ingredient("rifle", "iron-gear-wheel", "steel-gear-wheel") - bobmods.lib.recipe.replace_ingredient("sniper-rifle", "iron-gear-wheel", "steel-gear-wheel") - bobmods.lib.recipe.replace_ingredient("laser-rifle", "iron-gear-wheel", "steel-gear-wheel") - bobmods.lib.recipe.replace_ingredient("bob-robot-tank", "iron-gear-wheel", "steel-gear-wheel") - bobmods.lib.recipe.replace_ingredient("bob-gun-turret-2", "iron-gear-wheel", "steel-gear-wheel") - bobmods.lib.recipe.replace_ingredient("bob-sniper-turret-2", "iron-gear-wheel", "steel-gear-wheel") -end - -if data.raw.item["steel-bearing"] then - bobmods.lib.recipe.add_ingredient("radar-3", {"steel-bearing", 5}) - bobmods.lib.recipe.add_ingredient("bob-gun-turret-3", {"steel-bearing", 10}) - bobmods.lib.recipe.add_ingredient("bob-sniper-turret-2", {"steel-bearing", 20}) -end - -if data.raw.item["invar-alloy"] then - bobmods.lib.recipe.replace_ingredient("heavy-armor-2", "iron-plate", "invar-alloy") - bobmods.lib.tech.add_prerequisite("bob-armor-making-3", "invar-processing") - bobmods.lib.recipe.replace_ingredient("bob-power-armor-mk3", "iron-plate", "invar-alloy") - bobmods.lib.tech.add_prerequisite("bob-power-armor-3", "invar-processing") - bobmods.lib.recipe.replace_ingredient("personal-laser-defense-equipment-3", "steel-plate", "invar-alloy") - bobmods.lib.tech.add_prerequisite("personal-laser-defense-equipment-3", "invar-processing") - bobmods.lib.recipe.replace_ingredient("bob-gun-turret-3", "steel-plate", "invar-alloy") - bobmods.lib.tech.add_prerequisite("bob-turrets-3", "invar-processing") - bobmods.lib.recipe.replace_ingredient("bob-sniper-turret-2", "iron-plate", "invar-alloy") - bobmods.lib.tech.add_prerequisite("bob-sniper-turrets-2", "invar-processing") - bobmods.lib.recipe.replace_ingredient("bob-laser-turret-3", "steel-plate", "invar-alloy") - bobmods.lib.tech.add_prerequisite("bob-laser-turrets-3", "invar-processing") -end - -if data.raw.item["cobalt-steel-alloy"] then - bobmods.lib.recipe.replace_ingredient("heavy-armor-2", "steel-plate", "cobalt-steel-alloy") - bobmods.lib.tech.add_prerequisite("bob-armor-making-3", "cobalt-processing") -end - -if data.raw.item["gold-plate"] then - bobmods.lib.recipe.replace_ingredient("solar-panel-equipment-3", "copper-plate", "gold-plate") -end - -if data.raw.item["brass-gear-wheel"] then - bobmods.lib.recipe.replace_ingredient("radar-3", "iron-gear-wheel", "brass-gear-wheel") - bobmods.lib.tech.add_prerequisite("radars-2", "zinc-processing") - bobmods.lib.recipe.replace_ingredient("bob-gun-turret-3", "iron-gear-wheel", "brass-gear-wheel") - bobmods.lib.tech.add_prerequisite("bob-turrets-3", "zinc-processing") -end - -if data.raw.item["aluminium-plate"] then - bobmods.lib.recipe.replace_ingredient("bob-power-armor-mk3", "steel-plate", "aluminium-plate") - bobmods.lib.tech.add_prerequisite("bob-power-armor-3", "aluminium-processing") - bobmods.lib.recipe.replace_ingredient("rocket-body", "steel-plate", "aluminium-plate") - bobmods.lib.tech.add_prerequisite("bob-rocket", "aluminium-processing") - bobmods.lib.recipe.replace_ingredient("radar-3", "steel-plate", "aluminium-plate") - bobmods.lib.tech.add_prerequisite("radars-2", "aluminium-processing") - bobmods.lib.recipe.replace_ingredient("rifle", "copper-plate", "aluminium-plate") -end - -if data.raw.item["lithium-ion-battery"] then - bobmods.lib.tech.add_prerequisite("bob-laser-rifle-ammo-3", "battery-2") - bobmods.lib.recipe.replace_ingredient("laser-rifle-battery-emerald", "battery", "lithium-ion-battery") - bobmods.lib.recipe.replace_ingredient("laser-rifle-battery-amethyst", "battery", "lithium-ion-battery") - bobmods.lib.recipe.replace_ingredient("battery-mk3-equipment", "battery", "lithium-ion-battery") - bobmods.lib.tech.add_prerequisite("battery-equipment-3", "battery-2") - bobmods.lib.recipe.replace_ingredient("personal-laser-defense-equipment-3", "battery", "lithium-ion-battery") - bobmods.lib.tech.add_prerequisite("personal-laser-defense-equipment-3", "battery-2") - bobmods.lib.recipe.replace_ingredient("personal-laser-defense-equipment-4", "battery", "lithium-ion-battery") - bobmods.lib.recipe.replace_ingredient("bob-laser-turret-3", "battery", "lithium-ion-battery") - bobmods.lib.tech.add_prerequisite("bob-laser-turrets-3", "battery-2") - bobmods.lib.recipe.replace_ingredient("bob-laser-turret-4", "battery", "lithium-ion-battery") -end - -if data.raw.item["silicon-wafer"] then - bobmods.lib.recipe.add_ingredient("solar-panel-equipment-3", {"silicon-wafer", 8}) -end - -if data.raw.item["advanced-processing-unit"] then - bobmods.lib.recipe.replace_ingredient("bob-power-armor-mk4", "advanced-circuit", "advanced-processing-unit") - bobmods.lib.recipe.replace_ingredient("bob-power-armor-mk5", "advanced-circuit", "advanced-processing-unit") - bobmods.lib.tech.add_prerequisite("bob-power-armor-4", "advanced-electronics-3") - bobmods.lib.recipe.replace_ingredient("radar-5", "processing-unit", "advanced-processing-unit") - bobmods.lib.tech.add_prerequisite("radars-4", "advanced-electronics-3") - bobmods.lib.recipe.replace_ingredient("energy-shield-mk3-equipment", "processing-unit", "advanced-processing-unit") - bobmods.lib.tech.add_prerequisite("energy-shield-equipment-3", "advanced-electronics-3") - bobmods.lib.recipe.replace_ingredient("energy-shield-mk4-equipment", "processing-unit", "advanced-processing-unit") - bobmods.lib.recipe.replace_ingredient("energy-shield-mk5-equipment", "processing-unit", "advanced-processing-unit") - bobmods.lib.recipe.replace_ingredient("energy-shield-mk6-equipment", "processing-unit", "advanced-processing-unit") - bobmods.lib.recipe.replace_ingredient("battery-mk4-equipment", "processing-unit", "advanced-processing-unit") - bobmods.lib.tech.add_prerequisite("battery-equipment-4", "advanced-electronics-3") - bobmods.lib.recipe.replace_ingredient("battery-mk6-equipment", "processing-unit", "advanced-processing-unit") - bobmods.lib.recipe.replace_ingredient("fusion-reactor-equipment-2", "processing-unit", "advanced-processing-unit") - bobmods.lib.tech.add_prerequisite("fusion-reactor-equipment-2", "advanced-electronics-3") - bobmods.lib.recipe.replace_ingredient("fusion-reactor-equipment-3", "processing-unit", "advanced-processing-unit") - bobmods.lib.recipe.replace_ingredient("fusion-reactor-equipment-4", "processing-unit", "advanced-processing-unit") - bobmods.lib.recipe.replace_ingredient("night-vision-equipment-3", "processing-unit", "advanced-processing-unit") - bobmods.lib.tech.add_prerequisite("night-vision-equipment-3", "advanced-electronics-3") - bobmods.lib.recipe.replace_ingredient("solar-panel-equipment-4", "processing-unit", "advanced-processing-unit") - bobmods.lib.tech.add_prerequisite("solar-panel-equipment-4", "advanced-electronics-3") - bobmods.lib.recipe.replace_ingredient("personal-laser-defense-equipment-6", "processing-unit", "advanced-processing-unit") - bobmods.lib.tech.add_prerequisite("personal-laser-defense-equipment-6", "advanced-electronics-3") - bobmods.lib.recipe.replace_ingredient("exoskeleton-equipment-2", "processing-unit", "advanced-processing-unit") - bobmods.lib.tech.add_prerequisite("exoskeleton-equipment-2", "advanced-electronics-3") - bobmods.lib.recipe.replace_ingredient("exoskeleton-equipment-3", "processing-unit", "advanced-processing-unit") - bobmods.lib.recipe.replace_ingredient("bob-laser-turret-5", "processing-unit", "advanced-processing-unit") - bobmods.lib.tech.add_prerequisite("bob-laser-turrets-5", "advanced-electronics-3") - bobmods.lib.recipe.replace_ingredient("tank-3", "processing-unit", "advanced-processing-unit") - bobmods.lib.tech.add_prerequisite("tanks-3", "advanced-electronics-3") -end - -if data.raw.item["titanium-plate"] then - bobmods.lib.recipe.replace_ingredient("heavy-armor-3", "steel-plate", "titanium-plate") - bobmods.lib.tech.add_prerequisite("bob-armor-making-4", "titanium-processing") - bobmods.lib.recipe.replace_ingredient("bob-power-armor-mk4", "steel-plate", "titanium-plate") - bobmods.lib.tech.add_prerequisite("bob-power-armor-4", "titanium-processing") - bobmods.lib.recipe.replace_ingredient("radar-4", "steel-plate", "titanium-plate") - bobmods.lib.tech.add_prerequisite("radars-3", "titanium-processing") - bobmods.lib.recipe.replace_ingredient("solar-panel-equipment-3", "steel-plate", "titanium-plate") - bobmods.lib.tech.add_prerequisite("solar-panel-equipment-3", "titanium-processing") - bobmods.lib.recipe.replace_ingredient("personal-laser-defense-equipment-4", "steel-plate", "titanium-plate") - bobmods.lib.tech.add_prerequisite("personal-laser-defense-equipment-4", "titanium-processing") - bobmods.lib.recipe.replace_ingredient("exoskeleton-equipment-2", "steel-plate", "titanium-plate") - bobmods.lib.tech.add_prerequisite("exoskeleton-equipment-2", "titanium-processing") - bobmods.lib.recipe.replace_ingredient("bob-gun-turret-4", "steel-plate", "titanium-plate") - bobmods.lib.tech.add_prerequisite("bob-turrets-4", "titanium-processing") - bobmods.lib.recipe.replace_ingredient("bob-sniper-turret-3", "steel-plate", "titanium-plate") - bobmods.lib.recipe.replace_ingredient("bob-laser-turret-4", "steel-plate", "titanium-plate") - bobmods.lib.tech.add_prerequisite("bob-laser-turrets-4", "titanium-processing") - bobmods.lib.recipe.replace_ingredient("tank-2", "steel-plate", "titanium-plate") - bobmods.lib.tech.add_prerequisite("tanks-2", "titanium-processing") -end - -if data.raw.item["titanium-gear-wheel"] then - bobmods.lib.recipe.replace_ingredient("radar-4", "iron-gear-wheel", "titanium-gear-wheel") - bobmods.lib.recipe.replace_ingredient("exoskeleton-equipment-2", "iron-gear-wheel", "titanium-gear-wheel") - bobmods.lib.recipe.replace_ingredient("bob-gun-turret-4", "iron-gear-wheel", "titanium-gear-wheel") - bobmods.lib.recipe.replace_ingredient("bob-sniper-turret-3", "iron-gear-wheel", "titanium-gear-wheel") - bobmods.lib.recipe.replace_ingredient("tank-2", "iron-gear-wheel", "titanium-gear-wheel") -end - -if data.raw.item["titanium-bearing"] then - bobmods.lib.recipe.add_ingredient("radar-4", {"titanium-bearing", 5}) - bobmods.lib.recipe.add_ingredient("exoskeleton-equipment-2", {"titanium-bearing", 30}) - bobmods.lib.recipe.add_ingredient("bob-gun-turret-4", {"titanium-bearing", 10}) - bobmods.lib.recipe.add_ingredient("tank-2", {"titanium-bearing", 15}) -end - -if data.raw.item["silicon-nitride"] then - bobmods.lib.recipe.replace_ingredient("heavy-armor-3", "plastic-bar", "silicon-nitride") - bobmods.lib.tech.add_prerequisite("bob-armor-making-4", "ceramics") - bobmods.lib.recipe.replace_ingredient("bob-power-armor-mk4", "plastic-bar", "silicon-nitride") - bobmods.lib.tech.add_prerequisite("bob-power-armor-4", "ceramics") - bobmods.lib.recipe.replace_ingredient("tank-3", "plastic-bar", "silicon-nitride") - bobmods.lib.tech.add_prerequisite("tanks-3", "ceramics") -end - -if data.raw.item["silver-zinc-battery"] then - bobmods.lib.tech.add_prerequisite("bob-laser-rifle-ammo-5", "battery-3") - bobmods.lib.recipe.replace_ingredient("laser-rifle-battery-diamond", "battery", "silver-zinc-battery") - bobmods.lib.recipe.replace_ingredient("laser-rifle-battery-topaz", "battery", "silver-zinc-battery") - bobmods.lib.recipe.replace_ingredient("battery-mk5-equipment", "battery", "silver-zinc-battery") - bobmods.lib.tech.add_prerequisite("battery-equipment-5", "battery-3") - bobmods.lib.recipe.replace_ingredient("personal-laser-defense-equipment-5", "battery", "silver-zinc-battery") - bobmods.lib.tech.add_prerequisite("personal-laser-defense-equipment-5", "battery-3") - bobmods.lib.recipe.replace_ingredient("personal-laser-defense-equipment-6", "battery", "silver-zinc-battery") - bobmods.lib.recipe.replace_ingredient("bob-laser-turret-5", "battery", "silver-zinc-battery") - bobmods.lib.tech.add_prerequisite("bob-laser-turrets-5", "battery-3") -end - -if data.raw.item["copper-tungsten-alloy"] then - bobmods.lib.recipe.replace_ingredient("bob-power-armor-mk5", "steel-plate", "copper-tungsten-alloy") - bobmods.lib.tech.add_prerequisite("bob-power-armor-5", "tungsten-alloy-processing") -end - -if data.raw.item["copper-tungsten-alloy"] then - bobmods.lib.recipe.replace_ingredient("tank-3", "steel-plate", "tungsten-carbide") - bobmods.lib.tech.add_prerequisite("tanks-3", "tungsten-alloy-processing") -end - -if data.raw.item["nitinol-alloy"] then - bobmods.lib.recipe.replace_ingredient("bob-power-armor-mk5", "plastic-bar", "nitinol-alloy") - bobmods.lib.tech.add_prerequisite("bob-power-armor-5", "nitinol-processing") - bobmods.lib.recipe.replace_ingredient("radar-5", "steel-plate", "nitinol-alloy") - bobmods.lib.tech.add_prerequisite("radars-4", "nitinol-processing") - bobmods.lib.recipe.replace_ingredient("solar-panel-equipment-4", "steel-plate", "nitinol-alloy") - bobmods.lib.tech.add_prerequisite("solar-panel-equipment-4", "nitinol-processing") - bobmods.lib.recipe.replace_ingredient("personal-laser-defense-equipment-5", "steel-plate", "nitinol-alloy") - bobmods.lib.tech.add_prerequisite("personal-laser-defense-equipment-5", "nitinol-processing") - bobmods.lib.recipe.replace_ingredient("exoskeleton-equipment-3", "steel-plate", "nitinol-alloy") - bobmods.lib.tech.add_prerequisite("exoskeleton-equipment-3", "nitinol-processing") - bobmods.lib.recipe.replace_ingredient("bob-gun-turret-5", "steel-plate", "nitinol-alloy") - bobmods.lib.tech.add_prerequisite("bob-turrets-5", "nitinol-processing") - bobmods.lib.recipe.replace_ingredient("bob-sniper-turret-3", "plastic-bar", "nitinol-alloy") - bobmods.lib.tech.add_prerequisite("bob-sniper-turrets-3", "nitinol-processing") - bobmods.lib.recipe.replace_ingredient("bob-laser-turret-5", "steel-plate", "nitinol-alloy") - bobmods.lib.tech.add_prerequisite("bob-laser-turrets-5", "nitinol-processing") -end - -if data.raw.item["nitinol-gear-wheel"] then - bobmods.lib.recipe.replace_ingredient("radar-5", "iron-gear-wheel", "nitinol-gear-wheel") - bobmods.lib.recipe.replace_ingredient("exoskeleton-equipment-3", "iron-gear-wheel", "nitinol-gear-wheel") - bobmods.lib.recipe.replace_ingredient("bob-gun-turret-5", "iron-gear-wheel", "nitinol-gear-wheel") - bobmods.lib.tech.add_prerequisite("tanks-3", "nitinol-processing") - bobmods.lib.recipe.replace_ingredient("tank-3", "iron-gear-wheel", "nitinol-gear-wheel") -end - -if data.raw.item["nitinol-bearing"] then - bobmods.lib.recipe.add_ingredient("radar-5", {"nitinol-bearing", 5}) - bobmods.lib.recipe.add_ingredient("exoskeleton-equipment-3", {"nitinol-bearing", 30}) - bobmods.lib.recipe.add_ingredient("bob-gun-turret-5", {"nitinol-bearing", 10}) - bobmods.lib.recipe.add_ingredient("bob-sniper-turret-3", {"nitinol-bearing", 20}) - bobmods.lib.recipe.add_ingredient("tank-3", {"nitinol-bearing", 15}) -end - - - -if data.raw.item["ruby-5"] then - bobmods.lib.recipe.add_ingredient("laser-rifle-battery-ruby", {"ruby-5", 1}) - bobmods.lib.recipe.replace_ingredient("laser-rifle-battery-ruby", "laser-rifle-battery", "laser-rifle-battery-case") - bobmods.lib.tech.add_prerequisite("bob-laser-rifle-ammo-1", "gem-processing-2") -end - -if data.raw.item["sapphire-5"] then - bobmods.lib.recipe.add_ingredient("laser-rifle-battery-sapphire", {"sapphire-5", 1}) - bobmods.lib.recipe.replace_ingredient("laser-rifle-battery-sapphire", "laser-rifle-battery-ruby", "laser-rifle-battery-case") - bobmods.lib.recipe.add_ingredient("personal-laser-defense-equipment-2", {"sapphire-5", 1}) - bobmods.lib.recipe.remove_ingredient("personal-laser-defense-equipment-2", "battery") - bobmods.lib.tech.add_prerequisite("personal-laser-defense-equipment-2", "gem-processing-2") - bobmods.lib.recipe.add_ingredient("bob-laser-turret-2", {"sapphire-5", 1}) - bobmods.lib.tech.add_prerequisite("bob-laser-turrets-2", "gem-processing-2") -end - -if data.raw.item["emerald-5"] then - bobmods.lib.recipe.add_ingredient("laser-rifle-battery-emerald", {"emerald-5", 1}) - bobmods.lib.recipe.replace_ingredient("laser-rifle-battery-emerald", "laser-rifle-battery-sapphire", "laser-rifle-battery-case") - bobmods.lib.recipe.add_ingredient("personal-laser-defense-equipment-3", {"emerald-5", 1}) - bobmods.lib.recipe.remove_ingredient("personal-laser-defense-equipment-3", "advanced-circuit") - bobmods.lib.recipe.add_ingredient("bob-laser-turret-3", {"emerald-5", 1}) -end - -if data.raw.item["amethyst-5"] then - bobmods.lib.recipe.add_ingredient("laser-rifle-battery-amethyst", {"amethyst-5", 1}) - bobmods.lib.recipe.replace_ingredient("laser-rifle-battery-amethyst", "laser-rifle-battery-emerald", "laser-rifle-battery-case") - bobmods.lib.recipe.add_ingredient("personal-laser-defense-equipment-4", {"amethyst-5", 1}) -end - -if data.raw.item["topaz-5"] then - bobmods.lib.recipe.add_ingredient("laser-rifle-battery-topaz", {"topaz-5", 1}) - bobmods.lib.recipe.replace_ingredient("laser-rifle-battery-topaz", "laser-rifle-battery-amethyst", "laser-rifle-battery-case") - bobmods.lib.recipe.add_ingredient("personal-laser-defense-equipment-5", {"topaz-5", 1}) - bobmods.lib.recipe.add_ingredient("bob-laser-turret-4", {"topaz-5", 1}) -end - -if data.raw.item["diamond-5"] then - bobmods.lib.recipe.add_ingredient("laser-rifle-battery-diamond", {"diamond-5", 1}) - bobmods.lib.recipe.replace_ingredient("laser-rifle-battery-diamond", "laser-rifle-battery-topaz", "laser-rifle-battery-case") - bobmods.lib.recipe.replace_ingredient("night-vision-equipment-3", "plastic-bar", "diamond-5") - bobmods.lib.tech.add_prerequisite("night-vision-equipment-3", "gem-processing-2") - bobmods.lib.recipe.add_ingredient("personal-laser-defense-equipment-6", {"diamond-5", 1}) - bobmods.lib.recipe.add_ingredient("bob-laser-turret-5", {"diamond-5", 1}) -end - - - - -if data.raw.item["gilded-copper-cable"] then - bobmods.lib.recipe.replace_ingredient("solar-panel-equipment-4", "copper-cable", "gilded-copper-cable") -end - -if data.raw.module["effectivity-module-4"] then - bobmods.lib.recipe.replace_ingredient("bob-power-armor-mk3", "effectivity-module-3", "effectivity-module-4") - bobmods.lib.recipe.replace_ingredient("energy-shield-mk4-equipment", "effectivity-module-3", "effectivity-module-4") - bobmods.lib.recipe.replace_ingredient("fusion-reactor-equipment-2", "effectivity-module-3", "effectivity-module-4") -end - -if data.raw.module["speed-module-4"] then - bobmods.lib.recipe.replace_ingredient("bob-power-armor-mk3", "speed-module-3", "speed-module-4") - bobmods.lib.recipe.replace_ingredient("fusion-reactor-equipment-2", "speed-module-3", "speed-module-4") -end - -if data.raw.module["productivity-module-4"] then - bobmods.lib.recipe.replace_ingredient("energy-shield-mk4-equipment", "productivity-module-3", "productivity-module-4") - bobmods.lib.recipe.replace_ingredient("fusion-reactor-equipment-2", "productivity-module-3", "productivity-module-4") -end - - -if data.raw.module["effectivity-module-6"] then - bobmods.lib.recipe.replace_ingredient("bob-power-armor-mk4", "effectivity-module-3", "effectivity-module-6") - bobmods.lib.recipe.replace_ingredient("energy-shield-mk5-equipment", "effectivity-module-3", "effectivity-module-6") - bobmods.lib.recipe.replace_ingredient("fusion-reactor-equipment-3", "effectivity-module-3", "effectivity-module-6") -end - -if data.raw.module["speed-module-6"] then - bobmods.lib.recipe.replace_ingredient("bob-power-armor-mk4", "speed-module-3", "speed-module-6") - bobmods.lib.recipe.replace_ingredient("fusion-reactor-equipment-3", "speed-module-3", "speed-module-6") -end - -if data.raw.module["productivity-module-6"] then - bobmods.lib.recipe.replace_ingredient("energy-shield-mk5-equipment", "productivity-module-3", "productivity-module-6") - bobmods.lib.recipe.replace_ingredient("fusion-reactor-equipment-3", "productivity-module-3", "productivity-module-6") -end - - -if data.raw.module["effectivity-module-8"] then - bobmods.lib.recipe.replace_ingredient("bob-power-armor-mk5", "effectivity-module-3", "effectivity-module-8") - bobmods.lib.recipe.replace_ingredient("energy-shield-mk6-equipment", "effectivity-module-3", "effectivity-module-8") - bobmods.lib.recipe.replace_ingredient("fusion-reactor-equipment-4", "effectivity-module-3", "effectivity-module-8") -end - -if data.raw.module["speed-module-8"] then - bobmods.lib.recipe.replace_ingredient("bob-power-armor-mk5", "speed-module-3", "speed-module-8") - bobmods.lib.recipe.replace_ingredient("fusion-reactor-equipment-4", "speed-module-3", "speed-module-8") -end - -if data.raw.module["productivity-module-8"] then - bobmods.lib.recipe.replace_ingredient("energy-shield-mk6-equipment", "productivity-module-3", "productivity-module-8") - bobmods.lib.recipe.replace_ingredient("fusion-reactor-equipment-4", "productivity-module-3", "productivity-module-8") -end - - - -if data.raw.item["alien-artifact-orange"] and data.raw.item["alien-artifact-blue"] then - bobmods.lib.recipe.add_new_ingredient("bob-power-armor-mk3", {"alien-artifact-orange", 25}) - bobmods.lib.recipe.add_new_ingredient("energy-shield-mk4-equipment", {"alien-artifact-orange", 5}) - bobmods.lib.recipe.add_new_ingredient("battery-mk4-equipment", {"alien-artifact-orange", 5}) - bobmods.lib.recipe.add_new_ingredient("fusion-reactor-equipment-2", {"alien-artifact-orange", 15}) - - bobmods.lib.recipe.add_new_ingredient("bob-power-armor-mk3", {"alien-artifact-blue", 25}) - bobmods.lib.recipe.add_new_ingredient("energy-shield-mk4-equipment", {"alien-artifact-blue", 5}) - bobmods.lib.recipe.add_new_ingredient("battery-mk4-equipment", {"alien-artifact-blue", 5}) - bobmods.lib.recipe.add_new_ingredient("fusion-reactor-equipment-2", {"alien-artifact-blue", 15}) -else - bobmods.lib.recipe.add_new_ingredient("bob-power-armor-mk3", {"alien-artifact", 70}) - bobmods.lib.recipe.add_new_ingredient("energy-shield-mk4-equipment", {"alien-artifact", 15}) - bobmods.lib.recipe.add_new_ingredient("battery-mk4-equipment", {"alien-artifact", 15}) - bobmods.lib.recipe.add_new_ingredient("fusion-reactor-equipment-2", {"alien-artifact", 40}) -end - - - -if data.raw.item["alien-artifact-yellow"] and data.raw.item["alien-artifact-purple"] then - bobmods.lib.recipe.add_new_ingredient("bob-power-armor-mk4", {"alien-artifact-yellow", 25}) - bobmods.lib.recipe.add_new_ingredient("energy-shield-mk5-equipment", {"alien-artifact-yellow", 5}) - bobmods.lib.recipe.add_new_ingredient("battery-mk5-equipment", {"alien-artifact-yellow", 5}) - bobmods.lib.recipe.add_new_ingredient("fusion-reactor-equipment-3", {"alien-artifact-yellow", 15}) - - bobmods.lib.recipe.add_new_ingredient("bob-power-armor-mk4", {"alien-artifact-purple", 25}) - bobmods.lib.recipe.add_new_ingredient("energy-shield-mk5-equipment", {"alien-artifact-purple", 5}) - bobmods.lib.recipe.add_new_ingredient("battery-mk5-equipment", {"alien-artifact-purple", 5}) - bobmods.lib.recipe.add_new_ingredient("fusion-reactor-equipment-3", {"alien-artifact-purple", 15}) -else - bobmods.lib.recipe.add_new_ingredient("bob-power-armor-mk4", {"alien-artifact", 90}) - bobmods.lib.recipe.add_new_ingredient("energy-shield-mk5-equipment", {"alien-artifact", 20}) - bobmods.lib.recipe.add_new_ingredient("battery-mk5-equipment", {"alien-artifact", 20}) - bobmods.lib.recipe.add_new_ingredient("fusion-reactor-equipment-3", {"alien-artifact", 60}) -end - - - -if data.raw.item["alien-artifact-red"] and data.raw.item["alien-artifact-green"] then - bobmods.lib.recipe.add_new_ingredient("bob-power-armor-mk5", {"alien-artifact-red", 25}) - bobmods.lib.recipe.add_new_ingredient("energy-shield-mk6-equipment", {"alien-artifact-red", 5}) - bobmods.lib.recipe.add_new_ingredient("battery-mk6-equipment", {"alien-artifact-red", 5}) - bobmods.lib.recipe.add_new_ingredient("fusion-reactor-equipment-4", {"alien-artifact-red", 15}) - bobmods.lib.recipe.add_new_ingredient("personal-laser-defense-equipment-6", {"alien-artifact-red", 5}) - - bobmods.lib.recipe.add_new_ingredient("bob-power-armor-mk5", {"alien-artifact-green", 25}) - bobmods.lib.recipe.add_new_ingredient("energy-shield-mk6-equipment", {"alien-artifact-green", 5}) - bobmods.lib.recipe.add_new_ingredient("battery-mk6-equipment", {"alien-artifact-green", 5}) - bobmods.lib.recipe.add_new_ingredient("fusion-reactor-equipment-4", {"alien-artifact-green", 15}) - bobmods.lib.recipe.add_new_ingredient("personal-laser-defense-equipment-6", {"alien-artifact-green", 5}) -else - bobmods.lib.recipe.add_new_ingredient("bob-power-armor-mk5", {"alien-artifact", 120}) - bobmods.lib.recipe.add_new_ingredient("energy-shield-mk6-equipment", {"alien-artifact", 30}) - bobmods.lib.recipe.add_new_ingredient("battery-mk6-equipment", {"alien-artifact", 30}) - bobmods.lib.recipe.add_new_ingredient("fusion-reactor-equipment-4", {"alien-artifact", 80}) - bobmods.lib.recipe.add_new_ingredient("personal-laser-defense-equipment-6", {"alien-artifact", 10}) -end - - -if data.raw.item["alien-blue-alloy"] then - bobmods.lib.recipe.replace_ingredient("ap-bullet-projectile", "steel-plate", "alien-blue-alloy") - bobmods.lib.recipe.replace_ingredient("shotgun-ap-shell", "steel-plate", "alien-blue-alloy") - bobmods.lib.recipe.replace_ingredient("piercing-rocket-warhead", "iron-plate", "alien-blue-alloy") -elseif data.raw.item["tungsten-plate"] then - bobmods.lib.recipe.replace_ingredient("shotgun-ap-shell", "steel-plate", "tungsten-plate") - bobmods.lib.recipe.replace_ingredient("ap-bullet-projectile", "steel-plate", "tungsten-plate") - bobmods.lib.recipe.replace_ingredient("piercing-rocket-warhead", "iron-plate", "tungsten-plate") -end - -if data.raw.item["alien-orange-alloy"] then - bobmods.lib.recipe.replace_ingredient("electric-bullet-projectile", "steel-plate", "alien-orange-alloy") - bobmods.lib.recipe.replace_ingredient("shotgun-electric-shell", "copper-plate", "alien-orange-alloy") - bobmods.lib.recipe.replace_ingredient("electric-rocket-warhead", "copper-plate", "alien-orange-alloy") -end - -if data.raw.fluid["alien-acid"] then - bobmods.lib.recipe.replace_ingredient("acid-bullet-projectile", "sulfuric-acid", "alien-acid") - bobmods.lib.recipe.replace_ingredient("shotgun-acid-shell", "sulfuric-acid", "alien-acid") - bobmods.lib.recipe.replace_ingredient("acid-rocket-warhead", "sulfuric-acid", "alien-acid") -end - -if data.raw.fluid["alien-explosive"] then - bobmods.lib.recipe.replace_ingredient("he-bullet-projectile", "explosives", "alien-explosive") - data.raw.recipe["he-bullet-projectile"].category = "crafting-with-fluid" - - bobmods.lib.recipe.replace_ingredient("shotgun-explosive-shell", "explosives", "alien-explosive") - data.raw.recipe["shotgun-explosive-shell"].category = "crafting-with-fluid" - - bobmods.lib.recipe.replace_ingredient("explosive-rocket-warhead", "explosives", "alien-explosive") - data.raw.recipe["explosive-rocket-warhead"].category = "crafting-with-fluid" - - bobmods.lib.recipe.replace_ingredient("explosive-artillery-shell", "explosives", "alien-explosive") - bobmods.lib.recipe.add_new_ingredient("explosive-artillery-shell", {"explosives", 1}) - data.raw.recipe["explosive-artillery-shell"].category = "crafting-with-fluid" -end - -if data.raw.fluid["alien-poison"] then - bobmods.lib.recipe.replace_ingredient("poison-bullet-projectile", "coal", "alien-poison") - data.raw.recipe["poison-bullet-projectile"].category = "crafting-with-fluid" - bobmods.lib.recipe.replace_ingredient("shotgun-poison-shell", "coal", "alien-poison") - data.raw.recipe["shotgun-poison-shell"].category = "crafting-with-fluid" - bobmods.lib.recipe.replace_ingredient("poison-rocket-warhead", "coal", "alien-poison") - data.raw.recipe["poison-rocket-warhead"].category = "crafting-with-fluid" - - bobmods.lib.recipe.replace_ingredient("poison-artillery-shell", "coal", "alien-poison") - data.raw.recipe["poison-artillery-shell"].category = "crafting-with-fluid" -end - -if data.raw.fluid["alien-fire"] then - bobmods.lib.recipe.remove_ingredient("flame-bullet-projectile", "light-oil") - bobmods.lib.recipe.remove_ingredient("flame-bullet-projectile", "heavy-oil") - bobmods.lib.recipe.add_new_ingredient("flame-bullet-projectile", {"alien-fire", 1}) - data.raw.recipe["flame-bullet-projectile"].category = "crafting-with-fluid" - - bobmods.lib.recipe.remove_ingredient("shotgun-flame-shell", "light-oil") - bobmods.lib.recipe.remove_ingredient("shotgun-flame-shell", "heavy-oil") - bobmods.lib.recipe.add_new_ingredient("shotgun-flame-shell", {"alien-fire", 1}) - data.raw.recipe["shotgun-flame-shell"].category = "crafting-with-fluid" - - bobmods.lib.recipe.remove_ingredient("flame-rocket-warhead", "light-oil") - bobmods.lib.recipe.remove_ingredient("flame-rocket-warhead", "heavy-oil") - bobmods.lib.recipe.add_new_ingredient("flame-rocket-warhead", {"alien-fire", 2}) - data.raw.recipe["flame-rocket-warhead"].category = "crafting-with-fluid" -end - - - +if data.raw.fluid["sulfuric-nitric-acid"] then + bobmods.lib.recipe.replace_ingredient("nitroglycerin", "sulfuric-acid", "sulfuric-nitric-acid") + bobmods.lib.tech.add_recipe_unlock("nitroglycerin-processing", "sulfuric-nitric-acid") + bobmods.lib.tech.add_prerequisite("nitroglycerin-processing", "nitrogen-processing") +end + +if data.raw.fluid["nitric-acid"] then + bobmods.lib.recipe.replace_ingredient("gun-cotton-synthetic", "sulfuric-acid", "nitric-acid") + bobmods.lib.recipe.replace_ingredient("gun-cotton", "sulfuric-acid", "nitric-acid") +end + +if data.raw.item["gunmetal-alloy"] then + bobmods.lib.recipe.replace_ingredient("bullet-casing", "copper-plate", "gunmetal-alloy") + bobmods.lib.recipe.replace_ingredient("shotgun-shell-casing", "copper-plate", "gunmetal-alloy") + bobmods.lib.tech.add_prerequisite("bob-bullets", "zinc-processing") + bobmods.lib.tech.add_prerequisite("bob-shotgun-shells", "zinc-processing") +elseif data.raw.item["brass-alloy"] then + bobmods.lib.recipe.replace_ingredient("bullet-casing", "copper-plate", "brass-alloy") + bobmods.lib.recipe.replace_ingredient("shotgun-shell-casing", "copper-plate", "brass-alloy") + bobmods.lib.tech.add_prerequisite("bob-bullets", "zinc-processing") + bobmods.lib.tech.add_prerequisite("bob-shotgun-shells", "zinc-processing") +end + +if data.raw.item["lead-plate"] then + bobmods.lib.recipe.replace_ingredient("bullet-projectile", "iron-plate", "lead-plate") + bobmods.lib.recipe.replace_ingredient("shot", "iron-plate", "lead-plate") +end + +if data.raw.item["tungsten-plate"] then + bobmods.lib.recipe.replace_ingredient("rocket-engine", "steel-plate", "tungsten-plate") +end + +if data.raw.fluid["liquid-fuel"] then + bobmods.lib.recipe.replace_ingredient("rocket-body", "solid-fuel", "liquid-fuel") + data.raw.recipe["rocket-body"].category = "crafting-with-fluid" +end + + +if data.raw.item["glass"] then + bobmods.lib.recipe.add_ingredient("sniper-rifle", {"glass", 2}) + bobmods.lib.recipe.add_ingredient("laser-rifle-battery", {"glass", 1}) + bobmods.lib.recipe.replace_ingredient("night-vision-equipment-2", "plastic-bar", "glass") + bobmods.lib.recipe.replace_ingredient("solar-panel-equipment-2", "steel-plate", "glass") +end + +if data.raw.item["silver-plate"] then + bobmods.lib.recipe.replace_ingredient("solar-panel-equipment-2", "copper-plate", "silver-plate") +end + +if data.raw.item["steel-gear-wheel"] then + bobmods.lib.recipe.replace_ingredient("radar-2", "iron-gear-wheel", "steel-gear-wheel") + bobmods.lib.recipe.replace_ingredient("rifle", "iron-gear-wheel", "steel-gear-wheel") + bobmods.lib.recipe.replace_ingredient("sniper-rifle", "iron-gear-wheel", "steel-gear-wheel") + bobmods.lib.recipe.replace_ingredient("laser-rifle", "iron-gear-wheel", "steel-gear-wheel") + bobmods.lib.recipe.replace_ingredient("bob-robot-tank", "iron-gear-wheel", "steel-gear-wheel") + bobmods.lib.recipe.replace_ingredient("bob-gun-turret-2", "iron-gear-wheel", "steel-gear-wheel") + bobmods.lib.recipe.replace_ingredient("bob-sniper-turret-2", "iron-gear-wheel", "steel-gear-wheel") +end + +if data.raw.item["steel-bearing"] then + bobmods.lib.recipe.add_ingredient("radar-3", {"steel-bearing", 5}) + bobmods.lib.recipe.add_ingredient("bob-gun-turret-3", {"steel-bearing", 10}) + bobmods.lib.recipe.add_ingredient("bob-sniper-turret-2", {"steel-bearing", 20}) +end + +if data.raw.item["invar-alloy"] then + bobmods.lib.recipe.replace_ingredient("heavy-armor-2", "iron-plate", "invar-alloy") + bobmods.lib.tech.add_prerequisite("bob-armor-making-3", "invar-processing") + bobmods.lib.recipe.replace_ingredient("bob-power-armor-mk3", "iron-plate", "invar-alloy") + bobmods.lib.tech.add_prerequisite("bob-power-armor-3", "invar-processing") + bobmods.lib.recipe.replace_ingredient("personal-laser-defense-equipment-3", "steel-plate", "invar-alloy") + bobmods.lib.tech.add_prerequisite("personal-laser-defense-equipment-3", "invar-processing") + bobmods.lib.recipe.replace_ingredient("bob-gun-turret-3", "steel-plate", "invar-alloy") + bobmods.lib.tech.add_prerequisite("bob-turrets-3", "invar-processing") + bobmods.lib.recipe.replace_ingredient("bob-sniper-turret-2", "iron-plate", "invar-alloy") + bobmods.lib.tech.add_prerequisite("bob-sniper-turrets-2", "invar-processing") + bobmods.lib.recipe.replace_ingredient("bob-laser-turret-3", "steel-plate", "invar-alloy") + bobmods.lib.tech.add_prerequisite("bob-laser-turrets-3", "invar-processing") +end + +if data.raw.item["cobalt-steel-alloy"] then + bobmods.lib.recipe.replace_ingredient("heavy-armor-2", "steel-plate", "cobalt-steel-alloy") + bobmods.lib.tech.add_prerequisite("bob-armor-making-3", "cobalt-processing") +end + +if data.raw.item["gold-plate"] then + bobmods.lib.recipe.replace_ingredient("solar-panel-equipment-3", "copper-plate", "gold-plate") +end + +if data.raw.item["brass-gear-wheel"] then + bobmods.lib.recipe.replace_ingredient("radar-3", "iron-gear-wheel", "brass-gear-wheel") + bobmods.lib.tech.add_prerequisite("radars-2", "zinc-processing") + bobmods.lib.recipe.replace_ingredient("bob-gun-turret-3", "iron-gear-wheel", "brass-gear-wheel") + bobmods.lib.tech.add_prerequisite("bob-turrets-3", "zinc-processing") +end + +if data.raw.item["aluminium-plate"] then + bobmods.lib.recipe.replace_ingredient("bob-power-armor-mk3", "steel-plate", "aluminium-plate") + bobmods.lib.tech.add_prerequisite("bob-power-armor-3", "aluminium-processing") + bobmods.lib.recipe.replace_ingredient("rocket-body", "steel-plate", "aluminium-plate") + bobmods.lib.tech.add_prerequisite("bob-rocket", "aluminium-processing") + bobmods.lib.recipe.replace_ingredient("radar-3", "steel-plate", "aluminium-plate") + bobmods.lib.tech.add_prerequisite("radars-2", "aluminium-processing") + bobmods.lib.recipe.replace_ingredient("rifle", "copper-plate", "aluminium-plate") +end + +if data.raw.item["lithium-ion-battery"] then + bobmods.lib.tech.add_prerequisite("bob-laser-rifle-ammo-3", "battery-2") + bobmods.lib.recipe.replace_ingredient("laser-rifle-battery-emerald", "battery", "lithium-ion-battery") + bobmods.lib.recipe.replace_ingredient("laser-rifle-battery-amethyst", "battery", "lithium-ion-battery") + bobmods.lib.recipe.replace_ingredient("battery-mk3-equipment", "battery", "lithium-ion-battery") + bobmods.lib.tech.add_prerequisite("battery-equipment-3", "battery-2") + bobmods.lib.recipe.replace_ingredient("personal-laser-defense-equipment-3", "battery", "lithium-ion-battery") + bobmods.lib.tech.add_prerequisite("personal-laser-defense-equipment-3", "battery-2") + bobmods.lib.recipe.replace_ingredient("personal-laser-defense-equipment-4", "battery", "lithium-ion-battery") + bobmods.lib.recipe.replace_ingredient("bob-laser-turret-3", "battery", "lithium-ion-battery") + bobmods.lib.tech.add_prerequisite("bob-laser-turrets-3", "battery-2") + bobmods.lib.recipe.replace_ingredient("bob-laser-turret-4", "battery", "lithium-ion-battery") +end + +if data.raw.item["silicon-wafer"] then + bobmods.lib.recipe.add_ingredient("solar-panel-equipment-3", {"silicon-wafer", 8}) +end + +if data.raw.item["advanced-processing-unit"] then + bobmods.lib.recipe.replace_ingredient("bob-power-armor-mk4", "advanced-circuit", "advanced-processing-unit") + bobmods.lib.recipe.replace_ingredient("bob-power-armor-mk5", "advanced-circuit", "advanced-processing-unit") + bobmods.lib.tech.add_prerequisite("bob-power-armor-4", "advanced-electronics-3") + bobmods.lib.recipe.replace_ingredient("radar-5", "processing-unit", "advanced-processing-unit") + bobmods.lib.tech.add_prerequisite("radars-4", "advanced-electronics-3") + bobmods.lib.recipe.replace_ingredient("energy-shield-mk3-equipment", "processing-unit", "advanced-processing-unit") + bobmods.lib.tech.add_prerequisite("energy-shield-equipment-3", "advanced-electronics-3") + bobmods.lib.recipe.replace_ingredient("energy-shield-mk4-equipment", "processing-unit", "advanced-processing-unit") + bobmods.lib.recipe.replace_ingredient("energy-shield-mk5-equipment", "processing-unit", "advanced-processing-unit") + bobmods.lib.recipe.replace_ingredient("energy-shield-mk6-equipment", "processing-unit", "advanced-processing-unit") + bobmods.lib.recipe.replace_ingredient("battery-mk4-equipment", "processing-unit", "advanced-processing-unit") + bobmods.lib.tech.add_prerequisite("battery-equipment-4", "advanced-electronics-3") + bobmods.lib.recipe.replace_ingredient("battery-mk6-equipment", "processing-unit", "advanced-processing-unit") + bobmods.lib.recipe.replace_ingredient("fusion-reactor-equipment-2", "processing-unit", "advanced-processing-unit") + bobmods.lib.tech.add_prerequisite("fusion-reactor-equipment-2", "advanced-electronics-3") + bobmods.lib.recipe.replace_ingredient("fusion-reactor-equipment-3", "processing-unit", "advanced-processing-unit") + bobmods.lib.recipe.replace_ingredient("fusion-reactor-equipment-4", "processing-unit", "advanced-processing-unit") + bobmods.lib.recipe.replace_ingredient("night-vision-equipment-3", "processing-unit", "advanced-processing-unit") + bobmods.lib.tech.add_prerequisite("night-vision-equipment-3", "advanced-electronics-3") + bobmods.lib.recipe.replace_ingredient("solar-panel-equipment-4", "processing-unit", "advanced-processing-unit") + bobmods.lib.tech.add_prerequisite("solar-panel-equipment-4", "advanced-electronics-3") + bobmods.lib.recipe.replace_ingredient("personal-laser-defense-equipment-6", "processing-unit", "advanced-processing-unit") + bobmods.lib.tech.add_prerequisite("personal-laser-defense-equipment-6", "advanced-electronics-3") + bobmods.lib.recipe.replace_ingredient("exoskeleton-equipment-2", "processing-unit", "advanced-processing-unit") + bobmods.lib.tech.add_prerequisite("exoskeleton-equipment-2", "advanced-electronics-3") + bobmods.lib.recipe.replace_ingredient("exoskeleton-equipment-3", "processing-unit", "advanced-processing-unit") + bobmods.lib.recipe.replace_ingredient("bob-laser-turret-5", "processing-unit", "advanced-processing-unit") + bobmods.lib.tech.add_prerequisite("bob-laser-turrets-5", "advanced-electronics-3") + bobmods.lib.recipe.replace_ingredient("bob-tank-3", "processing-unit", "advanced-processing-unit") + bobmods.lib.tech.add_prerequisite("bob-tanks-3", "advanced-electronics-3") +end + +if data.raw.item["titanium-plate"] then + bobmods.lib.recipe.replace_ingredient("heavy-armor-3", "steel-plate", "titanium-plate") + bobmods.lib.tech.add_prerequisite("bob-armor-making-4", "titanium-processing") + bobmods.lib.recipe.replace_ingredient("bob-power-armor-mk4", "steel-plate", "titanium-plate") + bobmods.lib.tech.add_prerequisite("bob-power-armor-4", "titanium-processing") + bobmods.lib.recipe.replace_ingredient("radar-4", "steel-plate", "titanium-plate") + bobmods.lib.tech.add_prerequisite("radars-3", "titanium-processing") + bobmods.lib.recipe.replace_ingredient("solar-panel-equipment-3", "steel-plate", "titanium-plate") + bobmods.lib.tech.add_prerequisite("solar-panel-equipment-3", "titanium-processing") + bobmods.lib.recipe.replace_ingredient("personal-laser-defense-equipment-4", "steel-plate", "titanium-plate") + bobmods.lib.tech.add_prerequisite("personal-laser-defense-equipment-4", "titanium-processing") + bobmods.lib.recipe.replace_ingredient("exoskeleton-equipment-2", "steel-plate", "titanium-plate") + bobmods.lib.tech.add_prerequisite("exoskeleton-equipment-2", "titanium-processing") + bobmods.lib.recipe.replace_ingredient("bob-gun-turret-4", "steel-plate", "titanium-plate") + bobmods.lib.tech.add_prerequisite("bob-turrets-4", "titanium-processing") + bobmods.lib.recipe.replace_ingredient("bob-sniper-turret-3", "steel-plate", "titanium-plate") + bobmods.lib.recipe.replace_ingredient("bob-laser-turret-4", "steel-plate", "titanium-plate") + bobmods.lib.tech.add_prerequisite("bob-laser-turrets-4", "titanium-processing") + bobmods.lib.recipe.replace_ingredient("bob-tank-2", "steel-plate", "titanium-plate") + bobmods.lib.tech.add_prerequisite("bob-tanks-2", "titanium-processing") +end + +if data.raw.item["titanium-gear-wheel"] then + bobmods.lib.recipe.replace_ingredient("radar-4", "iron-gear-wheel", "titanium-gear-wheel") + bobmods.lib.recipe.replace_ingredient("exoskeleton-equipment-2", "iron-gear-wheel", "titanium-gear-wheel") + bobmods.lib.recipe.replace_ingredient("bob-gun-turret-4", "iron-gear-wheel", "titanium-gear-wheel") + bobmods.lib.recipe.replace_ingredient("bob-sniper-turret-3", "iron-gear-wheel", "titanium-gear-wheel") + bobmods.lib.recipe.replace_ingredient("bob-tank-2", "iron-gear-wheel", "titanium-gear-wheel") +end + +if data.raw.item["titanium-bearing"] then + bobmods.lib.recipe.add_ingredient("radar-4", {"titanium-bearing", 5}) + bobmods.lib.recipe.add_ingredient("exoskeleton-equipment-2", {"titanium-bearing", 30}) + bobmods.lib.recipe.add_ingredient("bob-gun-turret-4", {"titanium-bearing", 10}) + bobmods.lib.recipe.add_ingredient("bob-tank-2", {"titanium-bearing", 15}) +end + +if data.raw.item["silicon-nitride"] then + bobmods.lib.recipe.replace_ingredient("heavy-armor-3", "plastic-bar", "silicon-nitride") + bobmods.lib.tech.add_prerequisite("bob-armor-making-4", "ceramics") + bobmods.lib.recipe.replace_ingredient("bob-power-armor-mk4", "plastic-bar", "silicon-nitride") + bobmods.lib.tech.add_prerequisite("bob-power-armor-4", "ceramics") + bobmods.lib.recipe.replace_ingredient("bob-tank-3", "plastic-bar", "silicon-nitride") + bobmods.lib.tech.add_prerequisite("bob-tanks-3", "ceramics") +end + +if data.raw.item["silver-zinc-battery"] then + bobmods.lib.tech.add_prerequisite("bob-laser-rifle-ammo-5", "battery-3") + bobmods.lib.recipe.replace_ingredient("laser-rifle-battery-diamond", "battery", "silver-zinc-battery") + bobmods.lib.recipe.replace_ingredient("laser-rifle-battery-topaz", "battery", "silver-zinc-battery") + bobmods.lib.recipe.replace_ingredient("battery-mk5-equipment", "battery", "silver-zinc-battery") + bobmods.lib.tech.add_prerequisite("battery-equipment-5", "battery-3") + bobmods.lib.recipe.replace_ingredient("personal-laser-defense-equipment-5", "battery", "silver-zinc-battery") + bobmods.lib.tech.add_prerequisite("personal-laser-defense-equipment-5", "battery-3") + bobmods.lib.recipe.replace_ingredient("personal-laser-defense-equipment-6", "battery", "silver-zinc-battery") + bobmods.lib.recipe.replace_ingredient("bob-laser-turret-5", "battery", "silver-zinc-battery") + bobmods.lib.tech.add_prerequisite("bob-laser-turrets-5", "battery-3") +end + +if data.raw.item["copper-tungsten-alloy"] then + bobmods.lib.recipe.replace_ingredient("bob-power-armor-mk5", "steel-plate", "copper-tungsten-alloy") + bobmods.lib.tech.add_prerequisite("bob-power-armor-5", "tungsten-alloy-processing") +end + +if data.raw.item["copper-tungsten-alloy"] then + bobmods.lib.recipe.replace_ingredient("bob-tank-3", "steel-plate", "tungsten-carbide") + bobmods.lib.tech.add_prerequisite("bob-tanks-3", "tungsten-alloy-processing") +end + +if data.raw.item["nitinol-alloy"] then + bobmods.lib.recipe.replace_ingredient("bob-power-armor-mk5", "plastic-bar", "nitinol-alloy") + bobmods.lib.tech.add_prerequisite("bob-power-armor-5", "nitinol-processing") + bobmods.lib.recipe.replace_ingredient("radar-5", "steel-plate", "nitinol-alloy") + bobmods.lib.tech.add_prerequisite("radars-4", "nitinol-processing") + bobmods.lib.recipe.replace_ingredient("solar-panel-equipment-4", "steel-plate", "nitinol-alloy") + bobmods.lib.tech.add_prerequisite("solar-panel-equipment-4", "nitinol-processing") + bobmods.lib.recipe.replace_ingredient("personal-laser-defense-equipment-5", "steel-plate", "nitinol-alloy") + bobmods.lib.tech.add_prerequisite("personal-laser-defense-equipment-5", "nitinol-processing") + bobmods.lib.recipe.replace_ingredient("exoskeleton-equipment-3", "steel-plate", "nitinol-alloy") + bobmods.lib.tech.add_prerequisite("exoskeleton-equipment-3", "nitinol-processing") + bobmods.lib.recipe.replace_ingredient("bob-gun-turret-5", "steel-plate", "nitinol-alloy") + bobmods.lib.tech.add_prerequisite("bob-turrets-5", "nitinol-processing") + bobmods.lib.recipe.replace_ingredient("bob-sniper-turret-3", "plastic-bar", "nitinol-alloy") + bobmods.lib.tech.add_prerequisite("bob-sniper-turrets-3", "nitinol-processing") + bobmods.lib.recipe.replace_ingredient("bob-laser-turret-5", "steel-plate", "nitinol-alloy") + bobmods.lib.tech.add_prerequisite("bob-laser-turrets-5", "nitinol-processing") +end + +if data.raw.item["nitinol-gear-wheel"] then + bobmods.lib.recipe.replace_ingredient("radar-5", "iron-gear-wheel", "nitinol-gear-wheel") + bobmods.lib.recipe.replace_ingredient("exoskeleton-equipment-3", "iron-gear-wheel", "nitinol-gear-wheel") + bobmods.lib.recipe.replace_ingredient("bob-gun-turret-5", "iron-gear-wheel", "nitinol-gear-wheel") + bobmods.lib.tech.add_prerequisite("bob-tanks-3", "nitinol-processing") + bobmods.lib.recipe.replace_ingredient("bob-tank-3", "iron-gear-wheel", "nitinol-gear-wheel") +end + +if data.raw.item["nitinol-bearing"] then + bobmods.lib.recipe.add_ingredient("radar-5", {"nitinol-bearing", 5}) + bobmods.lib.recipe.add_ingredient("exoskeleton-equipment-3", {"nitinol-bearing", 30}) + bobmods.lib.recipe.add_ingredient("bob-gun-turret-5", {"nitinol-bearing", 10}) + bobmods.lib.recipe.add_ingredient("bob-sniper-turret-3", {"nitinol-bearing", 20}) + bobmods.lib.recipe.add_ingredient("bob-tank-3", {"nitinol-bearing", 15}) +end + + + +if data.raw.item["ruby-5"] then + bobmods.lib.recipe.add_ingredient("laser-rifle-battery-ruby", {"ruby-5", 1}) + bobmods.lib.recipe.replace_ingredient("laser-rifle-battery-ruby", "laser-rifle-battery", "laser-rifle-battery-case") + bobmods.lib.tech.add_prerequisite("bob-laser-rifle-ammo-1", "gem-processing-2") +end + +if data.raw.item["sapphire-5"] then + bobmods.lib.recipe.add_ingredient("laser-rifle-battery-sapphire", {"sapphire-5", 1}) + bobmods.lib.recipe.replace_ingredient("laser-rifle-battery-sapphire", "laser-rifle-battery-ruby", "laser-rifle-battery-case") + bobmods.lib.recipe.add_ingredient("personal-laser-defense-equipment-2", {"sapphire-5", 1}) + bobmods.lib.recipe.remove_ingredient("personal-laser-defense-equipment-2", "battery") + bobmods.lib.tech.add_prerequisite("personal-laser-defense-equipment-2", "gem-processing-2") + bobmods.lib.recipe.add_ingredient("bob-laser-turret-2", {"sapphire-5", 1}) + bobmods.lib.tech.add_prerequisite("bob-laser-turrets-2", "gem-processing-2") +end + +if data.raw.item["emerald-5"] then + bobmods.lib.recipe.add_ingredient("laser-rifle-battery-emerald", {"emerald-5", 1}) + bobmods.lib.recipe.replace_ingredient("laser-rifle-battery-emerald", "laser-rifle-battery-sapphire", "laser-rifle-battery-case") + bobmods.lib.recipe.add_ingredient("personal-laser-defense-equipment-3", {"emerald-5", 1}) + bobmods.lib.recipe.remove_ingredient("personal-laser-defense-equipment-3", "advanced-circuit") + bobmods.lib.recipe.add_ingredient("bob-laser-turret-3", {"emerald-5", 1}) +end + +if data.raw.item["amethyst-5"] then + bobmods.lib.recipe.add_ingredient("laser-rifle-battery-amethyst", {"amethyst-5", 1}) + bobmods.lib.recipe.replace_ingredient("laser-rifle-battery-amethyst", "laser-rifle-battery-emerald", "laser-rifle-battery-case") + bobmods.lib.recipe.add_ingredient("personal-laser-defense-equipment-4", {"amethyst-5", 1}) +end + +if data.raw.item["topaz-5"] then + bobmods.lib.recipe.add_ingredient("laser-rifle-battery-topaz", {"topaz-5", 1}) + bobmods.lib.recipe.replace_ingredient("laser-rifle-battery-topaz", "laser-rifle-battery-amethyst", "laser-rifle-battery-case") + bobmods.lib.recipe.add_ingredient("personal-laser-defense-equipment-5", {"topaz-5", 1}) + bobmods.lib.recipe.add_ingredient("bob-laser-turret-4", {"topaz-5", 1}) +end + +if data.raw.item["diamond-5"] then + bobmods.lib.recipe.add_ingredient("laser-rifle-battery-diamond", {"diamond-5", 1}) + bobmods.lib.recipe.replace_ingredient("laser-rifle-battery-diamond", "laser-rifle-battery-topaz", "laser-rifle-battery-case") + bobmods.lib.recipe.replace_ingredient("night-vision-equipment-3", "plastic-bar", "diamond-5") + bobmods.lib.tech.add_prerequisite("night-vision-equipment-3", "gem-processing-2") + bobmods.lib.recipe.add_ingredient("personal-laser-defense-equipment-6", {"diamond-5", 1}) + bobmods.lib.recipe.add_ingredient("bob-laser-turret-5", {"diamond-5", 1}) +end + + + + +if data.raw.item["gilded-copper-cable"] then + bobmods.lib.recipe.replace_ingredient("solar-panel-equipment-4", "copper-cable", "gilded-copper-cable") +end + +if data.raw.module["effectivity-module-4"] then + bobmods.lib.recipe.replace_ingredient("bob-power-armor-mk3", "effectivity-module-3", "effectivity-module-4") + bobmods.lib.recipe.replace_ingredient("energy-shield-mk4-equipment", "effectivity-module-3", "effectivity-module-4") + bobmods.lib.recipe.replace_ingredient("fusion-reactor-equipment-2", "effectivity-module-3", "effectivity-module-4") +end + +if data.raw.module["speed-module-4"] then + bobmods.lib.recipe.replace_ingredient("bob-power-armor-mk3", "speed-module-3", "speed-module-4") + bobmods.lib.recipe.replace_ingredient("fusion-reactor-equipment-2", "speed-module-3", "speed-module-4") +end + +if data.raw.module["productivity-module-4"] then + bobmods.lib.recipe.replace_ingredient("energy-shield-mk4-equipment", "productivity-module-3", "productivity-module-4") + bobmods.lib.recipe.replace_ingredient("fusion-reactor-equipment-2", "productivity-module-3", "productivity-module-4") +end + + +if data.raw.module["effectivity-module-6"] then + bobmods.lib.recipe.replace_ingredient("bob-power-armor-mk4", "effectivity-module-3", "effectivity-module-6") + bobmods.lib.recipe.replace_ingredient("energy-shield-mk5-equipment", "effectivity-module-3", "effectivity-module-6") + bobmods.lib.recipe.replace_ingredient("fusion-reactor-equipment-3", "effectivity-module-3", "effectivity-module-6") +end + +if data.raw.module["speed-module-6"] then + bobmods.lib.recipe.replace_ingredient("bob-power-armor-mk4", "speed-module-3", "speed-module-6") + bobmods.lib.recipe.replace_ingredient("fusion-reactor-equipment-3", "speed-module-3", "speed-module-6") +end + +if data.raw.module["productivity-module-6"] then + bobmods.lib.recipe.replace_ingredient("energy-shield-mk5-equipment", "productivity-module-3", "productivity-module-6") + bobmods.lib.recipe.replace_ingredient("fusion-reactor-equipment-3", "productivity-module-3", "productivity-module-6") +end + + +if data.raw.module["effectivity-module-8"] then + bobmods.lib.recipe.replace_ingredient("bob-power-armor-mk5", "effectivity-module-3", "effectivity-module-8") + bobmods.lib.recipe.replace_ingredient("energy-shield-mk6-equipment", "effectivity-module-3", "effectivity-module-8") + bobmods.lib.recipe.replace_ingredient("fusion-reactor-equipment-4", "effectivity-module-3", "effectivity-module-8") +end + +if data.raw.module["speed-module-8"] then + bobmods.lib.recipe.replace_ingredient("bob-power-armor-mk5", "speed-module-3", "speed-module-8") + bobmods.lib.recipe.replace_ingredient("fusion-reactor-equipment-4", "speed-module-3", "speed-module-8") +end + +if data.raw.module["productivity-module-8"] then + bobmods.lib.recipe.replace_ingredient("energy-shield-mk6-equipment", "productivity-module-3", "productivity-module-8") + bobmods.lib.recipe.replace_ingredient("fusion-reactor-equipment-4", "productivity-module-3", "productivity-module-8") +end + + + +if data.raw.item["alien-artifact-orange"] and data.raw.item["alien-artifact-blue"] then + bobmods.lib.recipe.add_new_ingredient("bob-power-armor-mk3", {"alien-artifact-orange", 25}) + bobmods.lib.recipe.add_new_ingredient("energy-shield-mk4-equipment", {"alien-artifact-orange", 5}) + bobmods.lib.recipe.add_new_ingredient("battery-mk4-equipment", {"alien-artifact-orange", 5}) + bobmods.lib.recipe.add_new_ingredient("fusion-reactor-equipment-2", {"alien-artifact-orange", 15}) + + bobmods.lib.recipe.add_new_ingredient("bob-power-armor-mk3", {"alien-artifact-blue", 25}) + bobmods.lib.recipe.add_new_ingredient("energy-shield-mk4-equipment", {"alien-artifact-blue", 5}) + bobmods.lib.recipe.add_new_ingredient("battery-mk4-equipment", {"alien-artifact-blue", 5}) + bobmods.lib.recipe.add_new_ingredient("fusion-reactor-equipment-2", {"alien-artifact-blue", 15}) +else + bobmods.lib.recipe.add_new_ingredient("bob-power-armor-mk3", {"alien-artifact", 70}) + bobmods.lib.recipe.add_new_ingredient("energy-shield-mk4-equipment", {"alien-artifact", 15}) + bobmods.lib.recipe.add_new_ingredient("battery-mk4-equipment", {"alien-artifact", 15}) + bobmods.lib.recipe.add_new_ingredient("fusion-reactor-equipment-2", {"alien-artifact", 40}) +end + + + +if data.raw.item["alien-artifact-yellow"] and data.raw.item["alien-artifact-purple"] then + bobmods.lib.recipe.add_new_ingredient("bob-power-armor-mk4", {"alien-artifact-yellow", 25}) + bobmods.lib.recipe.add_new_ingredient("energy-shield-mk5-equipment", {"alien-artifact-yellow", 5}) + bobmods.lib.recipe.add_new_ingredient("battery-mk5-equipment", {"alien-artifact-yellow", 5}) + bobmods.lib.recipe.add_new_ingredient("fusion-reactor-equipment-3", {"alien-artifact-yellow", 15}) + + bobmods.lib.recipe.add_new_ingredient("bob-power-armor-mk4", {"alien-artifact-purple", 25}) + bobmods.lib.recipe.add_new_ingredient("energy-shield-mk5-equipment", {"alien-artifact-purple", 5}) + bobmods.lib.recipe.add_new_ingredient("battery-mk5-equipment", {"alien-artifact-purple", 5}) + bobmods.lib.recipe.add_new_ingredient("fusion-reactor-equipment-3", {"alien-artifact-purple", 15}) +else + bobmods.lib.recipe.add_new_ingredient("bob-power-armor-mk4", {"alien-artifact", 90}) + bobmods.lib.recipe.add_new_ingredient("energy-shield-mk5-equipment", {"alien-artifact", 20}) + bobmods.lib.recipe.add_new_ingredient("battery-mk5-equipment", {"alien-artifact", 20}) + bobmods.lib.recipe.add_new_ingredient("fusion-reactor-equipment-3", {"alien-artifact", 60}) +end + + + +if data.raw.item["alien-artifact-red"] and data.raw.item["alien-artifact-green"] then + bobmods.lib.recipe.add_new_ingredient("bob-power-armor-mk5", {"alien-artifact-red", 25}) + bobmods.lib.recipe.add_new_ingredient("energy-shield-mk6-equipment", {"alien-artifact-red", 5}) + bobmods.lib.recipe.add_new_ingredient("battery-mk6-equipment", {"alien-artifact-red", 5}) + bobmods.lib.recipe.add_new_ingredient("fusion-reactor-equipment-4", {"alien-artifact-red", 15}) + bobmods.lib.recipe.add_new_ingredient("personal-laser-defense-equipment-6", {"alien-artifact-red", 5}) + + bobmods.lib.recipe.add_new_ingredient("bob-power-armor-mk5", {"alien-artifact-green", 25}) + bobmods.lib.recipe.add_new_ingredient("energy-shield-mk6-equipment", {"alien-artifact-green", 5}) + bobmods.lib.recipe.add_new_ingredient("battery-mk6-equipment", {"alien-artifact-green", 5}) + bobmods.lib.recipe.add_new_ingredient("fusion-reactor-equipment-4", {"alien-artifact-green", 15}) + bobmods.lib.recipe.add_new_ingredient("personal-laser-defense-equipment-6", {"alien-artifact-green", 5}) +else + bobmods.lib.recipe.add_new_ingredient("bob-power-armor-mk5", {"alien-artifact", 120}) + bobmods.lib.recipe.add_new_ingredient("energy-shield-mk6-equipment", {"alien-artifact", 30}) + bobmods.lib.recipe.add_new_ingredient("battery-mk6-equipment", {"alien-artifact", 30}) + bobmods.lib.recipe.add_new_ingredient("fusion-reactor-equipment-4", {"alien-artifact", 80}) + bobmods.lib.recipe.add_new_ingredient("personal-laser-defense-equipment-6", {"alien-artifact", 10}) +end + + +if data.raw.item["alien-blue-alloy"] then + bobmods.lib.recipe.replace_ingredient("ap-bullet-projectile", "steel-plate", "alien-blue-alloy") + bobmods.lib.recipe.replace_ingredient("shotgun-ap-shell", "steel-plate", "alien-blue-alloy") + bobmods.lib.recipe.replace_ingredient("piercing-rocket-warhead", "iron-plate", "alien-blue-alloy") +elseif data.raw.item["tungsten-plate"] then + bobmods.lib.recipe.replace_ingredient("shotgun-ap-shell", "steel-plate", "tungsten-plate") + bobmods.lib.recipe.replace_ingredient("ap-bullet-projectile", "steel-plate", "tungsten-plate") + bobmods.lib.recipe.replace_ingredient("piercing-rocket-warhead", "iron-plate", "tungsten-plate") +end + +if data.raw.item["alien-orange-alloy"] then + bobmods.lib.recipe.replace_ingredient("electric-bullet-projectile", "steel-plate", "alien-orange-alloy") + bobmods.lib.recipe.replace_ingredient("shotgun-electric-shell", "copper-plate", "alien-orange-alloy") + bobmods.lib.recipe.replace_ingredient("electric-rocket-warhead", "copper-plate", "alien-orange-alloy") +end + +if data.raw.fluid["alien-acid"] then + bobmods.lib.recipe.replace_ingredient("acid-bullet-projectile", "sulfuric-acid", "alien-acid") + bobmods.lib.recipe.replace_ingredient("shotgun-acid-shell", "sulfuric-acid", "alien-acid") + bobmods.lib.recipe.replace_ingredient("acid-rocket-warhead", "sulfuric-acid", "alien-acid") +end + +if data.raw.fluid["alien-explosive"] then + bobmods.lib.recipe.replace_ingredient("he-bullet-projectile", "explosives", "alien-explosive") + data.raw.recipe["he-bullet-projectile"].category = "crafting-with-fluid" + + bobmods.lib.recipe.replace_ingredient("shotgun-explosive-shell", "explosives", "alien-explosive") + data.raw.recipe["shotgun-explosive-shell"].category = "crafting-with-fluid" + + bobmods.lib.recipe.replace_ingredient("explosive-rocket-warhead", "explosives", "alien-explosive") + data.raw.recipe["explosive-rocket-warhead"].category = "crafting-with-fluid" + + bobmods.lib.recipe.replace_ingredient("explosive-artillery-shell", "explosives", "alien-explosive") + bobmods.lib.recipe.add_new_ingredient("explosive-artillery-shell", {"explosives", 1}) + data.raw.recipe["explosive-artillery-shell"].category = "crafting-with-fluid" +end + +if data.raw.fluid["alien-poison"] then + bobmods.lib.recipe.replace_ingredient("poison-bullet-projectile", "coal", "alien-poison") + data.raw.recipe["poison-bullet-projectile"].category = "crafting-with-fluid" + bobmods.lib.recipe.replace_ingredient("shotgun-poison-shell", "coal", "alien-poison") + data.raw.recipe["shotgun-poison-shell"].category = "crafting-with-fluid" + bobmods.lib.recipe.replace_ingredient("poison-rocket-warhead", "coal", "alien-poison") + data.raw.recipe["poison-rocket-warhead"].category = "crafting-with-fluid" + + bobmods.lib.recipe.replace_ingredient("poison-artillery-shell", "coal", "alien-poison") + data.raw.recipe["poison-artillery-shell"].category = "crafting-with-fluid" +end + +if data.raw.fluid["alien-fire"] then + bobmods.lib.recipe.remove_ingredient("flame-bullet-projectile", "light-oil") + bobmods.lib.recipe.remove_ingredient("flame-bullet-projectile", "heavy-oil") + bobmods.lib.recipe.add_new_ingredient("flame-bullet-projectile", {"alien-fire", 1}) + data.raw.recipe["flame-bullet-projectile"].category = "crafting-with-fluid" + + bobmods.lib.recipe.remove_ingredient("shotgun-flame-shell", "light-oil") + bobmods.lib.recipe.remove_ingredient("shotgun-flame-shell", "heavy-oil") + bobmods.lib.recipe.add_new_ingredient("shotgun-flame-shell", {"alien-fire", 1}) + data.raw.recipe["shotgun-flame-shell"].category = "crafting-with-fluid" + + bobmods.lib.recipe.remove_ingredient("flame-rocket-warhead", "light-oil") + bobmods.lib.recipe.remove_ingredient("flame-rocket-warhead", "heavy-oil") + bobmods.lib.recipe.add_new_ingredient("flame-rocket-warhead", {"alien-fire", 2}) + data.raw.recipe["flame-rocket-warhead"].category = "crafting-with-fluid" +end + + + diff --git a/bobwarfare_0.14.0/prototypes/recipe/tank.lua b/bobwarfare_0.14.1/prototypes/recipe/tank.lua similarity index 73% rename from bobwarfare_0.14.0/prototypes/recipe/tank.lua rename to bobwarfare_0.14.1/prototypes/recipe/tank.lua index df72ce4..cc4e65e 100644 --- a/bobwarfare_0.14.0/prototypes/recipe/tank.lua +++ b/bobwarfare_0.14.1/prototypes/recipe/tank.lua @@ -1,37 +1,37 @@ -data:extend( -{ - { - type = "recipe", - name = "tank-2", - enabled = false, - ingredients = - { - {"tank", 1}, --- {"engine-unit", 16}, - {"steel-plate", 50}, - {"iron-gear-wheel", 15}, - {"processing-unit", 5} - }, - result = "tank-2" - }, - - { - type = "recipe", - name = "tank-3", - enabled = false, - ingredients = - { - {"tank-2", 1}, --- {"engine-unit", 16}, - {"steel-plate", 40}, - {"plastic-bar", 40}, - {"iron-gear-wheel", 15}, - {"processing-unit", 5} - }, - result = "tank-3" - }, -} -) - - - +data:extend( +{ + { + type = "recipe", + name = "bob-tank-2", + enabled = false, + ingredients = + { + {"tank", 1}, +-- {"engine-unit", 16}, + {"steel-plate", 50}, + {"iron-gear-wheel", 15}, + {"processing-unit", 5} + }, + result = "bob-tank-2" + }, + + { + type = "recipe", + name = "bob-tank-3", + enabled = false, + ingredients = + { + {"bob-tank-2", 1}, +-- {"engine-unit", 16}, + {"steel-plate", 40}, + {"plastic-bar", 40}, + {"iron-gear-wheel", 15}, + {"processing-unit", 5} + }, + result = "bob-tank-3" + }, +} +) + + + diff --git a/bobwarfare_0.14.0/prototypes/recipe/turrets.lua b/bobwarfare_0.14.1/prototypes/recipe/turrets.lua similarity index 95% rename from bobwarfare_0.14.0/prototypes/recipe/turrets.lua rename to bobwarfare_0.14.1/prototypes/recipe/turrets.lua index bd5cbee..1be6bca 100644 --- a/bobwarfare_0.14.0/prototypes/recipe/turrets.lua +++ b/bobwarfare_0.14.1/prototypes/recipe/turrets.lua @@ -1,153 +1,153 @@ -data:extend( -{ - { - type = "recipe", - name = "bob-gun-turret-2", - enabled = "false", - energy_required = 5, - ingredients = - { - {"gun-turret", 1}, - {"iron-gear-wheel", 10}, - {"steel-plate", 20} - }, - result = "bob-gun-turret-2" - }, - { - type = "recipe", - name = "bob-gun-turret-3", - enabled = "false", - energy_required = 10, - ingredients = - { - {"bob-gun-turret-2", 1}, - {"iron-gear-wheel", 10}, - {"steel-plate", 20} - }, - result = "bob-gun-turret-3" - }, - { - type = "recipe", - name = "bob-gun-turret-4", - enabled = "false", - energy_required = 10, - ingredients = - { - {"bob-gun-turret-3", 1}, - {"iron-gear-wheel", 10}, - {"steel-plate", 20} - }, - result = "bob-gun-turret-4" - }, - { - type = "recipe", - name = "bob-gun-turret-5", - enabled = "false", - energy_required = 10, - ingredients = - { - {"bob-gun-turret-4", 1}, - {"iron-gear-wheel", 10}, - {"steel-plate", 20} - }, - result = "bob-gun-turret-5" - }, - - { - type = "recipe", - name = "bob-sniper-turret-1", - enabled = "false", - energy_required = 20, - ingredients = - { - {"iron-gear-wheel", 20}, - {"copper-plate", 20}, - {"iron-plate", 20} - }, - result = "bob-sniper-turret-1" - }, - { - type = "recipe", - name = "bob-sniper-turret-2", - enabled = "false", - energy_required = 20, - ingredients = - { - {"bob-sniper-turret-1", 1}, - {"iron-gear-wheel", 20}, - {"steel-plate", 20}, - {"iron-plate", 20} - }, - result = "bob-sniper-turret-2" - }, - { - type = "recipe", - name = "bob-sniper-turret-3", - enabled = "false", - energy_required = 20, - ingredients = - { - {"bob-sniper-turret-2", 1}, - {"iron-gear-wheel", 20}, - {"steel-plate", 20}, - {"plastic-bar", 20} - }, - result = "bob-sniper-turret-3" - }, - - { - type = "recipe", - name = "bob-laser-turret-2", - enabled = "false", - energy_required = 20, - ingredients = - { - {"laser-turret", 1}, - {"steel-plate", 20}, - {"advanced-circuit", 20}, - }, - result = "bob-laser-turret-2" - }, - { - type = "recipe", - name = "bob-laser-turret-3", - enabled = "false", - energy_required = 20, - ingredients = - { - {"bob-laser-turret-2", 1}, - {"steel-plate", 20}, - {"battery", 12} - }, - result = "bob-laser-turret-3" - }, - { - type = "recipe", - name = "bob-laser-turret-4", - enabled = "false", - energy_required = 20, - ingredients = - { - {"bob-laser-turret-3", 1}, - {"steel-plate", 20}, - {"processing-unit", 20}, - {"battery", 12}, - }, - result = "bob-laser-turret-4" - }, - { - type = "recipe", - name = "bob-laser-turret-5", - enabled = "false", - energy_required = 20, - ingredients = - { - {"bob-laser-turret-4", 1}, - {"steel-plate", 20}, - {"processing-unit", 20}, - {"battery", 12}, - }, - result = "bob-laser-turret-5" - }, -} -) +data:extend( +{ + { + type = "recipe", + name = "bob-gun-turret-2", + enabled = "false", + energy_required = 5, + ingredients = + { + {"gun-turret", 1}, + {"iron-gear-wheel", 10}, + {"steel-plate", 20} + }, + result = "bob-gun-turret-2" + }, + { + type = "recipe", + name = "bob-gun-turret-3", + enabled = "false", + energy_required = 10, + ingredients = + { + {"bob-gun-turret-2", 1}, + {"iron-gear-wheel", 10}, + {"steel-plate", 20} + }, + result = "bob-gun-turret-3" + }, + { + type = "recipe", + name = "bob-gun-turret-4", + enabled = "false", + energy_required = 10, + ingredients = + { + {"bob-gun-turret-3", 1}, + {"iron-gear-wheel", 10}, + {"steel-plate", 20} + }, + result = "bob-gun-turret-4" + }, + { + type = "recipe", + name = "bob-gun-turret-5", + enabled = "false", + energy_required = 10, + ingredients = + { + {"bob-gun-turret-4", 1}, + {"iron-gear-wheel", 10}, + {"steel-plate", 20} + }, + result = "bob-gun-turret-5" + }, + + { + type = "recipe", + name = "bob-sniper-turret-1", + enabled = "false", + energy_required = 20, + ingredients = + { + {"iron-gear-wheel", 20}, + {"copper-plate", 20}, + {"iron-plate", 20} + }, + result = "bob-sniper-turret-1" + }, + { + type = "recipe", + name = "bob-sniper-turret-2", + enabled = "false", + energy_required = 20, + ingredients = + { + {"bob-sniper-turret-1", 1}, + {"iron-gear-wheel", 20}, + {"steel-plate", 20}, + {"iron-plate", 20} + }, + result = "bob-sniper-turret-2" + }, + { + type = "recipe", + name = "bob-sniper-turret-3", + enabled = "false", + energy_required = 20, + ingredients = + { + {"bob-sniper-turret-2", 1}, + {"iron-gear-wheel", 20}, + {"steel-plate", 20}, + {"plastic-bar", 20} + }, + result = "bob-sniper-turret-3" + }, + + { + type = "recipe", + name = "bob-laser-turret-2", + enabled = "false", + energy_required = 20, + ingredients = + { + {"laser-turret", 1}, + {"steel-plate", 20}, + {"advanced-circuit", 20}, + }, + result = "bob-laser-turret-2" + }, + { + type = "recipe", + name = "bob-laser-turret-3", + enabled = "false", + energy_required = 20, + ingredients = + { + {"bob-laser-turret-2", 1}, + {"steel-plate", 20}, + {"battery", 12} + }, + result = "bob-laser-turret-3" + }, + { + type = "recipe", + name = "bob-laser-turret-4", + enabled = "false", + energy_required = 20, + ingredients = + { + {"bob-laser-turret-3", 1}, + {"steel-plate", 20}, + {"processing-unit", 20}, + {"battery", 12}, + }, + result = "bob-laser-turret-4" + }, + { + type = "recipe", + name = "bob-laser-turret-5", + enabled = "false", + energy_required = 20, + ingredients = + { + {"bob-laser-turret-4", 1}, + {"steel-plate", 20}, + {"processing-unit", 20}, + {"battery", 12}, + }, + result = "bob-laser-turret-5" + }, +} +) diff --git a/bobwarfare_0.14.0/prototypes/recipe/wall.lua b/bobwarfare_0.14.1/prototypes/recipe/wall.lua similarity index 94% rename from bobwarfare_0.14.0/prototypes/recipe/wall.lua rename to bobwarfare_0.14.1/prototypes/recipe/wall.lua index 91a6b78..a35fb90 100644 --- a/bobwarfare_0.14.0/prototypes/recipe/wall.lua +++ b/bobwarfare_0.14.1/prototypes/recipe/wall.lua @@ -1,27 +1,27 @@ -data:extend( -{ - { - type = "recipe", - name = "reinforced-wall", - enabled = "false", - ingredients = - { - {"stone-brick", 3}, - {"steel-plate", 3}, - }, - result = "reinforced-wall", - }, - { - type = "recipe", - name = "reinforced-gate", - enabled = "false", - ingredients = - { - {"reinforced-wall", 1}, - {"steel-plate", 2}, - {"electronic-circuit", 2}, - }, - result = "reinforced-gate", - }, -} +data:extend( +{ + { + type = "recipe", + name = "reinforced-wall", + enabled = "false", + ingredients = + { + {"stone-brick", 3}, + {"steel-plate", 3}, + }, + result = "reinforced-wall", + }, + { + type = "recipe", + name = "reinforced-gate", + enabled = "false", + ingredients = + { + {"reinforced-wall", 1}, + {"steel-plate", 2}, + {"electronic-circuit", 2}, + }, + result = "reinforced-gate", + }, +} ) \ No newline at end of file diff --git a/bobwarfare_0.14.0/prototypes/robot-parts.lua b/bobwarfare_0.14.1/prototypes/robot-parts.lua similarity index 95% rename from bobwarfare_0.14.0/prototypes/robot-parts.lua rename to bobwarfare_0.14.1/prototypes/robot-parts.lua index 0cca0fe..0eb8c96 100644 --- a/bobwarfare_0.14.0/prototypes/robot-parts.lua +++ b/bobwarfare_0.14.1/prototypes/robot-parts.lua @@ -1,182 +1,182 @@ -data:extend( -{ - { - type = "item", - name = "robot-brain-combat", - icon = "__bobwarfare__/graphics/icons/robot-brain-combat.png", - flags = {"goes-to-main-inventory"}, - subgroup = "bob-robot-parts", - order = "r[robot-brain-combat-1]", - stack_size = 100 - }, - - { - type = "item", - name = "robot-brain-combat-2", - icon = "__bobwarfare__/graphics/icons/robot-brain-combat-2.png", - flags = {"goes-to-main-inventory"}, - subgroup = "bob-robot-parts", - order = "r[robot-brain-combat-2]", - stack_size = 100 - }, - - { - type = "item", - name = "robot-brain-combat-3", - icon = "__bobwarfare__/graphics/icons/robot-brain-combat-3.png", - flags = {"goes-to-main-inventory"}, - subgroup = "bob-robot-parts", - order = "r[robot-brain-combat-3]", - stack_size = 100 - }, - - { - type = "item", - name = "robot-brain-combat-4", - icon = "__bobwarfare__/graphics/icons/robot-brain-combat-4.png", - flags = {"goes-to-main-inventory"}, - subgroup = "bob-robot-parts", - order = "r[robot-brain-combat-4]", - stack_size = 100 - }, - - - { - type = "item", - name = "robot-tool-combat", - icon = "__bobwarfare__/graphics/icons/robot-tool-combat.png", - flags = {"goes-to-main-inventory"}, - subgroup = "bob-robot-parts", - order = "r[robot-tool-combat-1]", - stack_size = 100 - }, - - { - type = "item", - name = "robot-tool-combat-2", - icon = "__bobwarfare__/graphics/icons/robot-tool-combat.png", - flags = {"goes-to-main-inventory"}, - subgroup = "bob-robot-parts", - order = "r[robot-tool-combat-2]", - stack_size = 100 - }, - - { - type = "item", - name = "robot-tool-combat-3", - icon = "__bobwarfare__/graphics/icons/robot-tool-combat.png", - flags = {"goes-to-main-inventory"}, - subgroup = "bob-robot-parts", - order = "r[robot-tool-combat-3]", - stack_size = 100 - }, - - { - type = "item", - name = "robot-tool-combat-4", - icon = "__bobwarfare__/graphics/icons/robot-tool-combat.png", - flags = {"goes-to-main-inventory"}, - subgroup = "bob-robot-parts", - order = "r[robot-tool-combat-4]", - stack_size = 100 - }, -} -) - - - -data:extend( -{ - { - type = "recipe", - name = "robot-brain-combat", - energy_required = 5, - enabled = false, - ingredients = - { - }, - result = "robot-brain-combat", - }, - - { - type = "recipe", - name = "robot-brain-combat-2", - energy_required = 10, - enabled = false, - ingredients = - { - }, - result = "robot-brain-combat-2", - }, - - { - type = "recipe", - name = "robot-brain-combat-3", - energy_required = 15, - enabled = false, - ingredients = - { - }, - result = "robot-brain-combat-3", - }, - - { - type = "recipe", - name = "robot-brain-combat-4", - energy_required = 20, - enabled = false, - ingredients = - { - }, - result = "robot-brain-combat-4", - }, - - - { - type = "recipe", - name = "robot-tool-combat", - energy_required = 1, - enabled = false, - ingredients = - { - }, - result = "robot-tool-combat", - }, - - { - type = "recipe", - name = "robot-tool-combat-2", - energy_required = 2, - enabled = false, - ingredients = - { - }, - result = "robot-tool-combat-2", - }, - - { - type = "recipe", - name = "robot-tool-combat-3", - energy_required = 3, - enabled = false, - ingredients = - { - }, - result = "robot-tool-combat-3", - }, - - { - type = "recipe", - name = "robot-tool-combat-4", - energy_required = 4, - enabled = false, - ingredients = - { - }, - result = "robot-tool-combat-4", - }, -} -) - - - +data:extend( +{ + { + type = "item", + name = "robot-brain-combat", + icon = "__bobwarfare__/graphics/icons/robot-brain-combat.png", + flags = {"goes-to-main-inventory"}, + subgroup = "bob-robot-parts", + order = "r[robot-brain-combat-1]", + stack_size = 100 + }, + + { + type = "item", + name = "robot-brain-combat-2", + icon = "__bobwarfare__/graphics/icons/robot-brain-combat-2.png", + flags = {"goes-to-main-inventory"}, + subgroup = "bob-robot-parts", + order = "r[robot-brain-combat-2]", + stack_size = 100 + }, + + { + type = "item", + name = "robot-brain-combat-3", + icon = "__bobwarfare__/graphics/icons/robot-brain-combat-3.png", + flags = {"goes-to-main-inventory"}, + subgroup = "bob-robot-parts", + order = "r[robot-brain-combat-3]", + stack_size = 100 + }, + + { + type = "item", + name = "robot-brain-combat-4", + icon = "__bobwarfare__/graphics/icons/robot-brain-combat-4.png", + flags = {"goes-to-main-inventory"}, + subgroup = "bob-robot-parts", + order = "r[robot-brain-combat-4]", + stack_size = 100 + }, + + + { + type = "item", + name = "robot-tool-combat", + icon = "__bobwarfare__/graphics/icons/robot-tool-combat.png", + flags = {"goes-to-main-inventory"}, + subgroup = "bob-robot-parts", + order = "r[robot-tool-combat-1]", + stack_size = 100 + }, + + { + type = "item", + name = "robot-tool-combat-2", + icon = "__bobwarfare__/graphics/icons/robot-tool-combat.png", + flags = {"goes-to-main-inventory"}, + subgroup = "bob-robot-parts", + order = "r[robot-tool-combat-2]", + stack_size = 100 + }, + + { + type = "item", + name = "robot-tool-combat-3", + icon = "__bobwarfare__/graphics/icons/robot-tool-combat.png", + flags = {"goes-to-main-inventory"}, + subgroup = "bob-robot-parts", + order = "r[robot-tool-combat-3]", + stack_size = 100 + }, + + { + type = "item", + name = "robot-tool-combat-4", + icon = "__bobwarfare__/graphics/icons/robot-tool-combat.png", + flags = {"goes-to-main-inventory"}, + subgroup = "bob-robot-parts", + order = "r[robot-tool-combat-4]", + stack_size = 100 + }, +} +) + + + +data:extend( +{ + { + type = "recipe", + name = "robot-brain-combat", + energy_required = 5, + enabled = false, + ingredients = + { + }, + result = "robot-brain-combat", + }, + + { + type = "recipe", + name = "robot-brain-combat-2", + energy_required = 10, + enabled = false, + ingredients = + { + }, + result = "robot-brain-combat-2", + }, + + { + type = "recipe", + name = "robot-brain-combat-3", + energy_required = 15, + enabled = false, + ingredients = + { + }, + result = "robot-brain-combat-3", + }, + + { + type = "recipe", + name = "robot-brain-combat-4", + energy_required = 20, + enabled = false, + ingredients = + { + }, + result = "robot-brain-combat-4", + }, + + + { + type = "recipe", + name = "robot-tool-combat", + energy_required = 1, + enabled = false, + ingredients = + { + }, + result = "robot-tool-combat", + }, + + { + type = "recipe", + name = "robot-tool-combat-2", + energy_required = 2, + enabled = false, + ingredients = + { + }, + result = "robot-tool-combat-2", + }, + + { + type = "recipe", + name = "robot-tool-combat-3", + energy_required = 3, + enabled = false, + ingredients = + { + }, + result = "robot-tool-combat-3", + }, + + { + type = "recipe", + name = "robot-tool-combat-4", + energy_required = 4, + enabled = false, + ingredients = + { + }, + result = "robot-tool-combat-4", + }, +} +) + + + diff --git a/bobwarfare_0.14.0/prototypes/robots-updates.lua b/bobwarfare_0.14.1/prototypes/robots-updates.lua similarity index 97% rename from bobwarfare_0.14.0/prototypes/robots-updates.lua rename to bobwarfare_0.14.1/prototypes/robots-updates.lua index 6679df9..c582bfa 100644 --- a/bobwarfare_0.14.0/prototypes/robots-updates.lua +++ b/bobwarfare_0.14.1/prototypes/robots-updates.lua @@ -1,293 +1,293 @@ -if data.raw.tool["science-pack-4"] then - bobmods.lib.tech.add_science_pack("combat-robotics-4", "science-pack-4", 1) -end - -data.raw.recipe["defender-capsule"].ingredients = {{"defender-robot", 1}} -data.raw.recipe["defender-capsule"].energy_required = 1 -data.raw.recipe["distractor-capsule"].ingredients = {{"distractor-robot", 3}} -data.raw.recipe["distractor-capsule"].energy_required = 1 -data.raw.recipe["destroyer-capsule"].ingredients = {{"destroyer-robot", 5}} -data.raw.recipe["destroyer-capsule"].energy_required = 1 - - -bobmods.lib.tech.add_recipe_unlock("combat-robotics", "defender-robot") -bobmods.lib.tech.add_recipe_unlock("combat-robotics-2", "distractor-robot") -bobmods.lib.tech.add_recipe_unlock("combat-robotics-3", "destroyer-robot") - - -if bobmods.warfare.RobotRequirePrevious == true then - bobmods.lib.recipe.add_ingredient("distractor-robot", {"defender-robot", 1}) - bobmods.lib.recipe.add_ingredient("destroyer-robot", {"distractor-robot", 1}) - bobmods.lib.recipe.add_ingredient("bob-laser-robot", {"destroyer-robot", 1}) -end - - -if bobmods.warfare.FlyingRobotFrames == true then - bobmods.lib.recipe.add_ingredient("defender-robot", {"flying-robot-frame", 1}) - bobmods.lib.tech.add_prerequisite("combat-robotics", "robotics") - - if data.raw.item["flying-robot-frame-2"] then - bobmods.lib.recipe.add_ingredient("distractor-robot", {"flying-robot-frame-2", 1}) - bobmods.lib.tech.add_prerequisite("combat-robotics-2", "bob-robotics-2") - else - bobmods.lib.recipe.add_ingredient("distractor-robot", {"flying-robot-frame", 1}) - end - - if data.raw.item["flying-robot-frame-3"] then - bobmods.lib.recipe.add_ingredient("destroyer-robot", {"flying-robot-frame-3", 1}) - bobmods.lib.tech.add_prerequisite("combat-robotics-3", "bob-robotics-3") - else - bobmods.lib.recipe.add_ingredient("destroyer-robot", {"flying-robot-frame", 1}) - end - - if data.raw.item["flying-robot-frame-4"] then - bobmods.lib.recipe.add_ingredient("bob-laser-robot", {"flying-robot-frame-4", 1}) - bobmods.lib.tech.add_prerequisite("combat-robotics-4", "bob-robotics-4") - else - bobmods.lib.recipe.add_ingredient("bob-laser-robot", {"flying-robot-frame", 1}) - end -else - bobmods.lib.recipe.add_ingredient("defender-robot", {"steel-plate", 1}) - bobmods.lib.recipe.add_ingredient("defender-robot", {"electronic-circuit", 1}) - bobmods.lib.recipe.add_ingredient("defender-robot", {"iron-gear-wheel", 3}) - - if data.raw.item["aluminium-plate"] then - bobmods.lib.recipe.add_ingredient("distractor-robot", {"aluminium-plate", 1}) - else - bobmods.lib.recipe.add_ingredient("distractor-robot", {"steel-plate", 1}) - end - bobmods.lib.recipe.add_ingredient("distractor-robot", {"advanced-circuit", 1}) - if data.raw.item["brass-gear-wheel"] then - bobmods.lib.recipe.add_ingredient("distractor-robot", {"brass-gear-wheel", 3}) - else - bobmods.lib.recipe.add_ingredient("distractor-robot", {"iron-gear-wheel", 3}) - end - - if data.raw.item["titanium-plate"] then - bobmods.lib.recipe.add_ingredient("destroyer-robot", {"titanium-plate", 1}) - else - bobmods.lib.recipe.add_ingredient("destroyer-robot", {"steel-plate", 1}) - end - bobmods.lib.recipe.add_ingredient("destroyer-robot", {"processing-unit", 1}) - if data.raw.item["titanium-gear-wheel"] then - bobmods.lib.recipe.add_ingredient("destroyer-robot", {"titanium-gear-wheel", 3}) - else - bobmods.lib.recipe.add_ingredient("destroyer-robot", {"iron-gear-wheel", 3}) - end - - if data.raw.item["silicon-nitride"] then - bobmods.lib.recipe.add_ingredient("bob-laser-robot", {"silicon-nitride", 1}) - else - bobmods.lib.recipe.add_ingredient("bob-laser-robot", {"steel-plate", 1}) - end - if data.raw.item["advanced-processing-unit"] then - bobmods.lib.recipe.add_ingredient("bob-laser-robot", {"advanced-processing-unit", 1}) - else - bobmods.lib.recipe.add_ingredient("bob-laser-robot", {"processing-unit", 1}) - end - if data.raw.item["nitinol-gear-wheel"] then - bobmods.lib.recipe.add_ingredient("bob-laser-robot", {"nitinol-gear-wheel", 3}) - else - bobmods.lib.recipe.add_ingredient("bob-laser-robot", {"iron-gear-wheel", 3}) - end -end - - - -if data.raw.recipe["robot-brain-combat"] then - if data.raw["recipe-category"]["electronics"] then - data.raw.recipe["robot-brain-combat"].category = "electronics" - end - if data.raw.item["basic-circuit-board"] and data.raw.item["basic-electronic-components"] then - bobmods.lib.recipe.add_ingredient("robot-brain-combat", {"basic-circuit-board", 1}) - bobmods.lib.recipe.add_ingredient("robot-brain-combat", {"basic-electronic-components", 8}) - else - bobmods.lib.recipe.add_ingredient("robot-brain-combat", {"electronic-circuit", 2}) - end -end - -if data.raw.recipe["robot-brain-combat-2"] then - if data.raw["recipe-category"]["electronics"] then - data.raw.recipe["robot-brain-combat-2"].category = "electronics" - end - if data.raw.item["circuit-board"] and data.raw.item["basic-electronic-components"] and data.raw.item["electronic-components"] then - bobmods.lib.recipe.add_ingredient("robot-brain-combat-2", {"circuit-board", 1}) - bobmods.lib.recipe.add_ingredient("robot-brain-combat-2", {"basic-electronic-components", 10}) - bobmods.lib.recipe.add_ingredient("robot-brain-combat-2", {"electronic-components", 2}) - else - bobmods.lib.recipe.add_ingredient("robot-brain-combat-2", {"electronic-circuit", 1}) - bobmods.lib.recipe.add_ingredient("robot-brain-combat-2", {"advanced-circuit", 1}) - end -end - -if data.raw.recipe["robot-brain-combat-3"] then - if data.raw["recipe-category"]["electronics"] then - data.raw.recipe["robot-brain-combat-3"].category = "electronics" - end - if data.raw.item["superior-circuit-board"] and data.raw.item["basic-electronic-components"] and data.raw.item["electronic-components"] and data.raw.item["intergrated-electronics"] then - bobmods.lib.recipe.add_ingredient("robot-brain-combat-3", {"superior-circuit-board", 1}) - bobmods.lib.recipe.add_ingredient("robot-brain-combat-3", {"basic-electronic-components", 4}) - bobmods.lib.recipe.add_ingredient("robot-brain-combat-3", {"electronic-components", 2}) - bobmods.lib.recipe.add_ingredient("robot-brain-combat-3", {"intergrated-electronics", 1}) - else - bobmods.lib.recipe.add_ingredient("robot-brain-combat-3", {"advanced-circuit", 1}) - bobmods.lib.recipe.add_ingredient("robot-brain-combat-3", {"processing-unit", 1}) - end -end - -if data.raw.recipe["robot-brain-combat-4"] then - if data.raw["recipe-category"]["electronics"] then - data.raw.recipe["robot-brain-combat-4"].category = "electronics" - end - if data.raw.item["multi-layer-circuit-board"] and data.raw.item["basic-electronic-components"] and data.raw.item["electronic-components"] and data.raw.item["intergrated-electronics"] and data.raw.item["processing-electronics"] then - bobmods.lib.recipe.add_ingredient("robot-brain-combat-4", {"multi-layer-circuit-board", 1}) - bobmods.lib.recipe.add_ingredient("robot-brain-combat-4", {"basic-electronic-components", 2}) - bobmods.lib.recipe.add_ingredient("robot-brain-combat-4", {"electronic-components", 4}) - bobmods.lib.recipe.add_ingredient("robot-brain-combat-4", {"intergrated-electronics", 2}) - bobmods.lib.recipe.add_ingredient("robot-brain-combat-4", {"processing-electronics", 1}) - else - if data.raw.item["advanced-processing-unit"] then - bobmods.lib.recipe.add_ingredient("robot-brain-combat-4", {"processing-unit", 1}) - bobmods.lib.recipe.add_ingredient("robot-brain-combat-4", {"advanced-processing-unit", 1}) - else - bobmods.lib.recipe.add_ingredient("robot-brain-combat-4", {"processing-unit", 2}) - end - end -end - - - -if data.raw.recipe["robot-brain-combat"] then - bobmods.lib.tech.add_recipe_unlock("combat-robotics", "robot-brain-combat") - bobmods.lib.recipe.add_ingredient("defender-robot", {"robot-brain-combat", 1}) -else - bobmods.lib.recipe.add_ingredient("defender-robot", {"electronic-circuit", 1}) -end -if data.raw.recipe["robot-brain-combat-2"] then - bobmods.lib.tech.add_recipe_unlock("combat-robotics-2", "robot-brain-combat-2") - bobmods.lib.recipe.add_ingredient("distractor-robot", {"robot-brain-combat-2", 1}) -else - bobmods.lib.recipe.add_ingredient("distractor-robot", {"advanced-circuit", 1}) -end -if data.raw.recipe["robot-brain-combat-3"] then - bobmods.lib.tech.add_recipe_unlock("combat-robotics-3", "robot-brain-combat-3") - bobmods.lib.recipe.add_ingredient("destroyer-robot", {"robot-brain-combat-3", 1}) -else - bobmods.lib.recipe.add_ingredient("destroyer-robot", {"processing-unit", 1}) -end -if data.raw.recipe["robot-brain-combat-4"] then - bobmods.lib.tech.add_recipe_unlock("combat-robotics-4", "robot-brain-combat-4") - bobmods.lib.recipe.add_ingredient("bob-laser-robot", {"robot-brain-combat-4", 1}) -else - if data.raw.item["advanced-processing-unit"] then - bobmods.lib.recipe.add_ingredient("bob-laser-robot", {"advanced-processing-unit", 1}) - else - bobmods.lib.recipe.add_ingredient("bob-laser-robot", {"processing-unit", 1}) - end -end - - - -if data.raw.recipe["robot-tool-combat"] then - bobmods.lib.recipe.add_ingredient("robot-tool-combat", {"steel-plate", 1}) - if data.raw.item["steel-gear-wheel"] then - bobmods.lib.recipe.add_ingredient("robot-tool-combat", {"steel-gear-wheel", 5}) - else - bobmods.lib.recipe.add_ingredient("robot-tool-combat", {"iron-gear-wheel", 5}) - end -end - -if data.raw.recipe["robot-tool-combat-2"] then - if data.raw.item["brass-alloy"] then - bobmods.lib.recipe.add_ingredient("robot-tool-combat-2", {"brass-alloy", 1}) - else - bobmods.lib.recipe.add_ingredient("robot-tool-combat-2", {"steel-plate", 1}) - end - - if data.raw.item["brass-gear-wheel"] then - bobmods.lib.recipe.add_ingredient("robot-tool-combat-2", {"brass-gear-wheel", 2}) - else - bobmods.lib.recipe.add_ingredient("robot-tool-combat-2", {"iron-gear-wheel", 2}) - end - - bobmods.lib.recipe.add_ingredient("robot-tool-combat-2", {"battery", 1}) - - if data.raw.item["glass"] then - bobmods.lib.recipe.add_ingredient("robot-tool-combat-2", {"glass", 1}) - end -end - -if data.raw.recipe["robot-tool-combat-3"] then - if data.raw.item["titanium-plate"] then - bobmods.lib.recipe.add_ingredient("robot-tool-combat-3", {"titanium-plate", 1}) - else - bobmods.lib.recipe.add_ingredient("robot-tool-combat-3", {"steel-plate", 1}) - end - if data.raw.item["titanium-gear-wheel"] then - bobmods.lib.recipe.add_ingredient("robot-tool-combat-3", {"titanium-gear-wheel", 2}) - else - bobmods.lib.recipe.add_ingredient("robot-tool-combat-3", {"iron-gear-wheel", 2}) - end - if data.raw.item["lithium-ion-battery"] then - bobmods.lib.recipe.add_ingredient("robot-tool-combat-3", {"lithium-ion-battery", 1}) - else - bobmods.lib.recipe.add_ingredient("robot-tool-combat-3", {"battery", 1}) - end - - if data.raw.item["emerald-5"] then - bobmods.lib.recipe.add_ingredient("robot-tool-combat-2", {"emerald-5", 1}) - end -end - -if data.raw.recipe["robot-tool-combat-4"] then - if data.raw.item["silicon-nitride"] then - bobmods.lib.recipe.add_ingredient("robot-tool-combat-4", {"silicon-nitride", 1}) - else - bobmods.lib.recipe.add_ingredient("robot-tool-combat-4", {"steel-plate", 1}) - end - if data.raw.item["nitinol-gear-wheel"] then - bobmods.lib.recipe.add_ingredient("robot-tool-combat-4", {"nitinol-gear-wheel", 2}) - else - bobmods.lib.recipe.add_ingredient("robot-tool-combat-4", {"iron-gear-wheel", 2}) - end - if data.raw.item["silver-zinc-battery"] then - bobmods.lib.recipe.add_ingredient("robot-tool-combat-4", {"silver-zinc-battery", 1}) - else - bobmods.lib.recipe.add_ingredient("robot-tool-combat-4", {"battery", 1}) - end - if data.raw.item["diamond-5"] then - bobmods.lib.recipe.add_ingredient("robot-tool-combat-4", {"diamond-5", 1}) - end -end - - - -if data.raw.recipe["robot-tool-combat"] then - bobmods.lib.tech.add_recipe_unlock("combat-robotics", "robot-tool-combat") - bobmods.lib.recipe.add_ingredient("defender-robot", {"robot-tool-combat", 1}) -else - bobmods.lib.recipe.add_ingredient("defender-robot", {"piercing-rounds-magazine", 1}) -end - -if data.raw.recipe["robot-tool-combat-2"] then - bobmods.lib.tech.add_recipe_unlock("combat-robotics-2", "robot-tool-combat-2") - bobmods.lib.recipe.add_ingredient("distractor-robot", {"robot-tool-combat-2", 1}) -else - bobmods.lib.recipe.add_ingredient("distractor-robot", {"laser-rifle-battery", 1}) -end - -if data.raw.recipe["robot-tool-combat-3"] then - bobmods.lib.tech.add_recipe_unlock("combat-robotics-3", "robot-tool-combat-3") - bobmods.lib.recipe.add_ingredient("destroyer-robot", {"robot-tool-combat-3", 1}) -else - bobmods.lib.recipe.add_ingredient("destroyer-robot", {"laser-rifle-battery-emerald", 1}) -end - -if data.raw.recipe["robot-tool-combat-4"] then - bobmods.lib.tech.add_recipe_unlock("combat-robotics-4", "robot-tool-combat-4") - bobmods.lib.recipe.add_ingredient("bob-laser-robot", {"robot-tool-combat-4", 1}) -else - bobmods.lib.recipe.add_ingredient("bob-laser-robot", {"laser-rifle-battery-diamond", 1}) -end - - +if data.raw.tool["science-pack-4"] then + bobmods.lib.tech.add_science_pack("combat-robotics-4", "science-pack-4", 1) +end + +data.raw.recipe["defender-capsule"].ingredients = {{"defender-robot", 1}} +data.raw.recipe["defender-capsule"].energy_required = 1 +data.raw.recipe["distractor-capsule"].ingredients = {{"distractor-robot", 3}} +data.raw.recipe["distractor-capsule"].energy_required = 1 +data.raw.recipe["destroyer-capsule"].ingredients = {{"destroyer-robot", 5}} +data.raw.recipe["destroyer-capsule"].energy_required = 1 + + +bobmods.lib.tech.add_recipe_unlock("combat-robotics", "defender-robot") +bobmods.lib.tech.add_recipe_unlock("combat-robotics-2", "distractor-robot") +bobmods.lib.tech.add_recipe_unlock("combat-robotics-3", "destroyer-robot") + + +if bobmods.warfare.RobotRequirePrevious == true then + bobmods.lib.recipe.add_ingredient("distractor-robot", {"defender-robot", 1}) + bobmods.lib.recipe.add_ingredient("destroyer-robot", {"distractor-robot", 1}) + bobmods.lib.recipe.add_ingredient("bob-laser-robot", {"destroyer-robot", 1}) +end + + +if bobmods.warfare.FlyingRobotFrames == true then + bobmods.lib.recipe.add_ingredient("defender-robot", {"flying-robot-frame", 1}) + bobmods.lib.tech.add_prerequisite("combat-robotics", "robotics") + + if data.raw.item["flying-robot-frame-2"] then + bobmods.lib.recipe.add_ingredient("distractor-robot", {"flying-robot-frame-2", 1}) + bobmods.lib.tech.add_prerequisite("combat-robotics-2", "bob-robotics-2") + else + bobmods.lib.recipe.add_ingredient("distractor-robot", {"flying-robot-frame", 1}) + end + + if data.raw.item["flying-robot-frame-3"] then + bobmods.lib.recipe.add_ingredient("destroyer-robot", {"flying-robot-frame-3", 1}) + bobmods.lib.tech.add_prerequisite("combat-robotics-3", "bob-robotics-3") + else + bobmods.lib.recipe.add_ingredient("destroyer-robot", {"flying-robot-frame", 1}) + end + + if data.raw.item["flying-robot-frame-4"] then + bobmods.lib.recipe.add_ingredient("bob-laser-robot", {"flying-robot-frame-4", 1}) + bobmods.lib.tech.add_prerequisite("combat-robotics-4", "bob-robotics-4") + else + bobmods.lib.recipe.add_ingredient("bob-laser-robot", {"flying-robot-frame", 1}) + end +else + bobmods.lib.recipe.add_ingredient("defender-robot", {"steel-plate", 1}) + bobmods.lib.recipe.add_ingredient("defender-robot", {"electronic-circuit", 1}) + bobmods.lib.recipe.add_ingredient("defender-robot", {"iron-gear-wheel", 3}) + + if data.raw.item["aluminium-plate"] then + bobmods.lib.recipe.add_ingredient("distractor-robot", {"aluminium-plate", 1}) + else + bobmods.lib.recipe.add_ingredient("distractor-robot", {"steel-plate", 1}) + end + bobmods.lib.recipe.add_ingredient("distractor-robot", {"advanced-circuit", 1}) + if data.raw.item["brass-gear-wheel"] then + bobmods.lib.recipe.add_ingredient("distractor-robot", {"brass-gear-wheel", 3}) + else + bobmods.lib.recipe.add_ingredient("distractor-robot", {"iron-gear-wheel", 3}) + end + + if data.raw.item["titanium-plate"] then + bobmods.lib.recipe.add_ingredient("destroyer-robot", {"titanium-plate", 1}) + else + bobmods.lib.recipe.add_ingredient("destroyer-robot", {"steel-plate", 1}) + end + bobmods.lib.recipe.add_ingredient("destroyer-robot", {"processing-unit", 1}) + if data.raw.item["titanium-gear-wheel"] then + bobmods.lib.recipe.add_ingredient("destroyer-robot", {"titanium-gear-wheel", 3}) + else + bobmods.lib.recipe.add_ingredient("destroyer-robot", {"iron-gear-wheel", 3}) + end + + if data.raw.item["silicon-nitride"] then + bobmods.lib.recipe.add_ingredient("bob-laser-robot", {"silicon-nitride", 1}) + else + bobmods.lib.recipe.add_ingredient("bob-laser-robot", {"steel-plate", 1}) + end + if data.raw.item["advanced-processing-unit"] then + bobmods.lib.recipe.add_ingredient("bob-laser-robot", {"advanced-processing-unit", 1}) + else + bobmods.lib.recipe.add_ingredient("bob-laser-robot", {"processing-unit", 1}) + end + if data.raw.item["nitinol-gear-wheel"] then + bobmods.lib.recipe.add_ingredient("bob-laser-robot", {"nitinol-gear-wheel", 3}) + else + bobmods.lib.recipe.add_ingredient("bob-laser-robot", {"iron-gear-wheel", 3}) + end +end + + + +if data.raw.recipe["robot-brain-combat"] then + if data.raw["recipe-category"]["electronics"] then + data.raw.recipe["robot-brain-combat"].category = "electronics" + end + if data.raw.item["basic-circuit-board"] and data.raw.item["basic-electronic-components"] then + bobmods.lib.recipe.add_ingredient("robot-brain-combat", {"basic-circuit-board", 1}) + bobmods.lib.recipe.add_ingredient("robot-brain-combat", {"basic-electronic-components", 8}) + else + bobmods.lib.recipe.add_ingredient("robot-brain-combat", {"electronic-circuit", 2}) + end +end + +if data.raw.recipe["robot-brain-combat-2"] then + if data.raw["recipe-category"]["electronics"] then + data.raw.recipe["robot-brain-combat-2"].category = "electronics" + end + if data.raw.item["circuit-board"] and data.raw.item["basic-electronic-components"] and data.raw.item["electronic-components"] then + bobmods.lib.recipe.add_ingredient("robot-brain-combat-2", {"circuit-board", 1}) + bobmods.lib.recipe.add_ingredient("robot-brain-combat-2", {"basic-electronic-components", 10}) + bobmods.lib.recipe.add_ingredient("robot-brain-combat-2", {"electronic-components", 2}) + else + bobmods.lib.recipe.add_ingredient("robot-brain-combat-2", {"electronic-circuit", 1}) + bobmods.lib.recipe.add_ingredient("robot-brain-combat-2", {"advanced-circuit", 1}) + end +end + +if data.raw.recipe["robot-brain-combat-3"] then + if data.raw["recipe-category"]["electronics"] then + data.raw.recipe["robot-brain-combat-3"].category = "electronics" + end + if data.raw.item["superior-circuit-board"] and data.raw.item["basic-electronic-components"] and data.raw.item["electronic-components"] and data.raw.item["intergrated-electronics"] then + bobmods.lib.recipe.add_ingredient("robot-brain-combat-3", {"superior-circuit-board", 1}) + bobmods.lib.recipe.add_ingredient("robot-brain-combat-3", {"basic-electronic-components", 4}) + bobmods.lib.recipe.add_ingredient("robot-brain-combat-3", {"electronic-components", 2}) + bobmods.lib.recipe.add_ingredient("robot-brain-combat-3", {"intergrated-electronics", 1}) + else + bobmods.lib.recipe.add_ingredient("robot-brain-combat-3", {"advanced-circuit", 1}) + bobmods.lib.recipe.add_ingredient("robot-brain-combat-3", {"processing-unit", 1}) + end +end + +if data.raw.recipe["robot-brain-combat-4"] then + if data.raw["recipe-category"]["electronics"] then + data.raw.recipe["robot-brain-combat-4"].category = "electronics" + end + if data.raw.item["multi-layer-circuit-board"] and data.raw.item["basic-electronic-components"] and data.raw.item["electronic-components"] and data.raw.item["intergrated-electronics"] and data.raw.item["processing-electronics"] then + bobmods.lib.recipe.add_ingredient("robot-brain-combat-4", {"multi-layer-circuit-board", 1}) + bobmods.lib.recipe.add_ingredient("robot-brain-combat-4", {"basic-electronic-components", 2}) + bobmods.lib.recipe.add_ingredient("robot-brain-combat-4", {"electronic-components", 4}) + bobmods.lib.recipe.add_ingredient("robot-brain-combat-4", {"intergrated-electronics", 2}) + bobmods.lib.recipe.add_ingredient("robot-brain-combat-4", {"processing-electronics", 1}) + else + if data.raw.item["advanced-processing-unit"] then + bobmods.lib.recipe.add_ingredient("robot-brain-combat-4", {"processing-unit", 1}) + bobmods.lib.recipe.add_ingredient("robot-brain-combat-4", {"advanced-processing-unit", 1}) + else + bobmods.lib.recipe.add_ingredient("robot-brain-combat-4", {"processing-unit", 2}) + end + end +end + + + +if data.raw.recipe["robot-brain-combat"] then + bobmods.lib.tech.add_recipe_unlock("combat-robotics", "robot-brain-combat") + bobmods.lib.recipe.add_ingredient("defender-robot", {"robot-brain-combat", 1}) +else + bobmods.lib.recipe.add_ingredient("defender-robot", {"electronic-circuit", 1}) +end +if data.raw.recipe["robot-brain-combat-2"] then + bobmods.lib.tech.add_recipe_unlock("combat-robotics-2", "robot-brain-combat-2") + bobmods.lib.recipe.add_ingredient("distractor-robot", {"robot-brain-combat-2", 1}) +else + bobmods.lib.recipe.add_ingredient("distractor-robot", {"advanced-circuit", 1}) +end +if data.raw.recipe["robot-brain-combat-3"] then + bobmods.lib.tech.add_recipe_unlock("combat-robotics-3", "robot-brain-combat-3") + bobmods.lib.recipe.add_ingredient("destroyer-robot", {"robot-brain-combat-3", 1}) +else + bobmods.lib.recipe.add_ingredient("destroyer-robot", {"processing-unit", 1}) +end +if data.raw.recipe["robot-brain-combat-4"] then + bobmods.lib.tech.add_recipe_unlock("combat-robotics-4", "robot-brain-combat-4") + bobmods.lib.recipe.add_ingredient("bob-laser-robot", {"robot-brain-combat-4", 1}) +else + if data.raw.item["advanced-processing-unit"] then + bobmods.lib.recipe.add_ingredient("bob-laser-robot", {"advanced-processing-unit", 1}) + else + bobmods.lib.recipe.add_ingredient("bob-laser-robot", {"processing-unit", 1}) + end +end + + + +if data.raw.recipe["robot-tool-combat"] then + bobmods.lib.recipe.add_ingredient("robot-tool-combat", {"steel-plate", 1}) + if data.raw.item["steel-gear-wheel"] then + bobmods.lib.recipe.add_ingredient("robot-tool-combat", {"steel-gear-wheel", 5}) + else + bobmods.lib.recipe.add_ingredient("robot-tool-combat", {"iron-gear-wheel", 5}) + end +end + +if data.raw.recipe["robot-tool-combat-2"] then + if data.raw.item["brass-alloy"] then + bobmods.lib.recipe.add_ingredient("robot-tool-combat-2", {"brass-alloy", 1}) + else + bobmods.lib.recipe.add_ingredient("robot-tool-combat-2", {"steel-plate", 1}) + end + + if data.raw.item["brass-gear-wheel"] then + bobmods.lib.recipe.add_ingredient("robot-tool-combat-2", {"brass-gear-wheel", 2}) + else + bobmods.lib.recipe.add_ingredient("robot-tool-combat-2", {"iron-gear-wheel", 2}) + end + + bobmods.lib.recipe.add_ingredient("robot-tool-combat-2", {"battery", 1}) + + if data.raw.item["glass"] then + bobmods.lib.recipe.add_ingredient("robot-tool-combat-2", {"glass", 1}) + end +end + +if data.raw.recipe["robot-tool-combat-3"] then + if data.raw.item["titanium-plate"] then + bobmods.lib.recipe.add_ingredient("robot-tool-combat-3", {"titanium-plate", 1}) + else + bobmods.lib.recipe.add_ingredient("robot-tool-combat-3", {"steel-plate", 1}) + end + if data.raw.item["titanium-gear-wheel"] then + bobmods.lib.recipe.add_ingredient("robot-tool-combat-3", {"titanium-gear-wheel", 2}) + else + bobmods.lib.recipe.add_ingredient("robot-tool-combat-3", {"iron-gear-wheel", 2}) + end + if data.raw.item["lithium-ion-battery"] then + bobmods.lib.recipe.add_ingredient("robot-tool-combat-3", {"lithium-ion-battery", 1}) + else + bobmods.lib.recipe.add_ingredient("robot-tool-combat-3", {"battery", 1}) + end + + if data.raw.item["emerald-5"] then + bobmods.lib.recipe.add_ingredient("robot-tool-combat-2", {"emerald-5", 1}) + end +end + +if data.raw.recipe["robot-tool-combat-4"] then + if data.raw.item["silicon-nitride"] then + bobmods.lib.recipe.add_ingredient("robot-tool-combat-4", {"silicon-nitride", 1}) + else + bobmods.lib.recipe.add_ingredient("robot-tool-combat-4", {"steel-plate", 1}) + end + if data.raw.item["nitinol-gear-wheel"] then + bobmods.lib.recipe.add_ingredient("robot-tool-combat-4", {"nitinol-gear-wheel", 2}) + else + bobmods.lib.recipe.add_ingredient("robot-tool-combat-4", {"iron-gear-wheel", 2}) + end + if data.raw.item["silver-zinc-battery"] then + bobmods.lib.recipe.add_ingredient("robot-tool-combat-4", {"silver-zinc-battery", 1}) + else + bobmods.lib.recipe.add_ingredient("robot-tool-combat-4", {"battery", 1}) + end + if data.raw.item["diamond-5"] then + bobmods.lib.recipe.add_ingredient("robot-tool-combat-4", {"diamond-5", 1}) + end +end + + + +if data.raw.recipe["robot-tool-combat"] then + bobmods.lib.tech.add_recipe_unlock("combat-robotics", "robot-tool-combat") + bobmods.lib.recipe.add_ingredient("defender-robot", {"robot-tool-combat", 1}) +else + bobmods.lib.recipe.add_ingredient("defender-robot", {"piercing-rounds-magazine", 1}) +end + +if data.raw.recipe["robot-tool-combat-2"] then + bobmods.lib.tech.add_recipe_unlock("combat-robotics-2", "robot-tool-combat-2") + bobmods.lib.recipe.add_ingredient("distractor-robot", {"robot-tool-combat-2", 1}) +else + bobmods.lib.recipe.add_ingredient("distractor-robot", {"laser-rifle-battery", 1}) +end + +if data.raw.recipe["robot-tool-combat-3"] then + bobmods.lib.tech.add_recipe_unlock("combat-robotics-3", "robot-tool-combat-3") + bobmods.lib.recipe.add_ingredient("destroyer-robot", {"robot-tool-combat-3", 1}) +else + bobmods.lib.recipe.add_ingredient("destroyer-robot", {"laser-rifle-battery-emerald", 1}) +end + +if data.raw.recipe["robot-tool-combat-4"] then + bobmods.lib.tech.add_recipe_unlock("combat-robotics-4", "robot-tool-combat-4") + bobmods.lib.recipe.add_ingredient("bob-laser-robot", {"robot-tool-combat-4", 1}) +else + bobmods.lib.recipe.add_ingredient("bob-laser-robot", {"laser-rifle-battery-diamond", 1}) +end + + diff --git a/bobwarfare_0.14.0/prototypes/robots.lua b/bobwarfare_0.14.1/prototypes/robots.lua similarity index 95% rename from bobwarfare_0.14.0/prototypes/robots.lua rename to bobwarfare_0.14.1/prototypes/robots.lua index 200f2ec..8e126ff 100644 --- a/bobwarfare_0.14.0/prototypes/robots.lua +++ b/bobwarfare_0.14.1/prototypes/robots.lua @@ -1,305 +1,305 @@ -function bobmods.warfare.robot_shadow() -return { - filename = "__bobwarfare__/graphics/entities/robots/robot-shadow.png", - priority = "high", - width = 52, - height = 37, - frame_count = 1, - direction_count = 1 -} -end - -function bobmods.warfare.robot_picture(filename) -return { - filename = filename, - priority = "high", - width = 32, - height = 32, - frame_count = 1, - direction_count = 1 -} -end - - - - -data:extend( -{ - { - type = "item", - name = "defender-robot", - icon = "__bobwarfare__/graphics/icons/defender.png", - flags = {"goes-to-quickbar"}, - subgroup = "bob-combat-robots", - order = "e-a-a", - stack_size = 50 - }, - { - type = "recipe", - name = "defender-robot", - enabled = "false", - energy_required = 3, - ingredients = - { - }, - result = "defender-robot" - }, - - { - type = "item", - name = "distractor-robot", - icon = "__bobwarfare__/graphics/icons/distractor.png", - flags = {"goes-to-quickbar"}, - subgroup = "bob-combat-robots", - order = "e-a-b", - stack_size = 50 - }, - { - type = "recipe", - name = "distractor-robot", - enabled = "false", - energy_required = 3, - ingredients = - { - }, - result = "distractor-robot" - }, - - { - type = "item", - name = "destroyer-robot", - icon = "__bobwarfare__/graphics/icons/destroyer.png", - flags = {"goes-to-quickbar"}, - subgroup = "bob-combat-robots", - order = "e-a-c", - stack_size = 50 - }, - { - type = "recipe", - name = "destroyer-robot", - enabled = "false", - energy_required = 3, - ingredients = - { - }, - result = "destroyer-robot" - }, -} -) - - - -data:extend( -{ - { - type = "item", - name = "bob-laser-robot", - icon = "__bobwarfare__/graphics/icons/laser-robot.png", - flags = {"goes-to-quickbar"}, - subgroup = "bob-combat-robots", - order = "e-a-d", --- place_result = "bob-laser-robot", - stack_size = 50 - }, - - { - type = "recipe", - name = "bob-laser-robot", - enabled = "false", - energy_required = 3, - ingredients = - { - }, - result = "bob-laser-robot" - }, - - { - type = "recipe", - name = "bob-laser-robot-capsule", - enabled = false, - energy_required = 1, - ingredients = - { - {"bob-laser-robot", 5}, - }, - result = "bob-laser-robot-capsule" - }, - - { - type = "capsule", - name = "bob-laser-robot-capsule", - icon = "__bobwarfare__/graphics/icons/laser-robot-capsule.png", - flags = {"goes-to-quickbar"}, - capsule_action = - { - type = "throw", - attack_parameters = - { - type = "projectile", - ammo_category = "capsule", - cooldown = 30, - projectile_creation_distance = 0.6, - range = 25, - ammo_type = - { - category = "capsule", - target_type = "position", - action = - { - type = "direct", - action_delivery = - { - type = "projectile", - projectile = "bob-laser-robot-capsule", - starting_speed = 0.3 - } - } - } - } - }, - subgroup = "capsule", - order = "g[laser-robot-capsule]", - stack_size = 100 - }, - - { - type = "projectile", - name = "bob-laser-robot-capsule", - flags = {"not-on-map"}, - acceleration = 0.005, - action = - { - type = "direct", - action_delivery = - { - type = "instant", - target_effects = - { - type = "create-entity", - show_in_tooltip = true, - entity_name = "bob-laser-robot", - offsets = {{-0.7, -0.7},{-0.7, 0.7},{0.7, -0.7},{0.7, 0.7},{0, 0}} - } - } - }, - light = {intensity = 0.5, size = 4}, - animation = - { - filename = "__bobwarfare__/graphics/entities/robots/laser-robot-capsule.png", - frame_count = 1, - width = 32, - height = 32, - priority = "high" - }, - shadow = - { - filename = "__bobwarfare__/graphics/entities/robots/combat-robot-capsule-shadow.png", - frame_count = 1, - width = 32, - height = 32, - priority = "high" - }, - smoke = capsule_smoke - }, - - { - type = "combat-robot", - name = "bob-laser-robot", - icon = "__bobwarfare__/graphics/icons/laser-robot.png", - flags = {"placeable-player", "player-creation", "placeable-off-grid", "not-on-map", "not-repairable"}, - minable = {hardness = 0.1, mining_time = 0.1, result = "bob-laser-robot"}, - subgroup="capsule", - order="e-a-d", - max_health = 100, - collision_box = {{0, 0}, {0, 0}}, - selection_box = {{-0.5, -1.5}, {0.5, -0.5}}, - speed = 0.05, - - follows_player = true, - friction = 0.01, - range_from_player = 6.0, - distance_per_frame = 0.13, - --- time_to_live = 60 * 60 * 60 * 24, -- 1 day - time_to_live = 60 * 60 * 10, -- 10 mins - - destroy_action = - { - type = "direct", - action_delivery = - { - type = "instant", - source_effects = - { - type = "create-entity", - entity_name = "explosion" - } - } - }, - - attack_parameters = - { - type = "projectile", - ammo_category = "combat-robot-laser", - cooldown = 20, - damage_modifier = 1.5, - projectile_center = {0, 0}, - projectile_creation_distance = 0.6, - range = 15, - sound = make_laser_sounds(), - ammo_type = - { - category = "combat-robot-laser", - action = - { - type = "direct", - action_delivery = - { - type = "projectile", - projectile = "blue-laser", - starting_speed = 0.3 - } - } - } - }, - - working_sound = flying_robot_sounds(), - - idle = bobmods.warfare.robot_picture("__bobwarfare__/graphics/entities/robots/laser-robot.png"), - shadow_idle = bobmods.warfare.robot_shadow(), - in_motion = bobmods.warfare.robot_picture("__bobwarfare__/graphics/entities/robots/laser-robot.png"), - shadow_in_motion = bobmods.warfare.robot_shadow(), - }, - - { - type = "technology", - name = "combat-robotics-4", - icon = "__base__/graphics/technology/combat-robotics.png", - effects = - { - { - type = "unlock-recipe", - recipe = "bob-laser-robot" - }, - { - type = "unlock-recipe", - recipe = "bob-laser-robot-capsule" - } - }, - prerequisites = {"combat-robotics-3"}, - unit = - { - count = 500, - ingredients = - { - {"science-pack-1", 1}, - {"science-pack-2", 1}, - {"science-pack-3", 1}, - {"alien-science-pack", 1} - }, - time = 30 - }, - order = "e-p-b-c" - }, -} -) +function bobmods.warfare.robot_shadow() +return { + filename = "__bobwarfare__/graphics/entities/robots/robot-shadow.png", + priority = "high", + width = 52, + height = 37, + frame_count = 1, + direction_count = 1 +} +end + +function bobmods.warfare.robot_picture(filename) +return { + filename = filename, + priority = "high", + width = 32, + height = 32, + frame_count = 1, + direction_count = 1 +} +end + + + + +data:extend( +{ + { + type = "item", + name = "defender-robot", + icon = "__bobwarfare__/graphics/icons/defender.png", + flags = {"goes-to-quickbar"}, + subgroup = "bob-combat-robots", + order = "e-a-a", + stack_size = 50 + }, + { + type = "recipe", + name = "defender-robot", + enabled = "false", + energy_required = 3, + ingredients = + { + }, + result = "defender-robot" + }, + + { + type = "item", + name = "distractor-robot", + icon = "__bobwarfare__/graphics/icons/distractor.png", + flags = {"goes-to-quickbar"}, + subgroup = "bob-combat-robots", + order = "e-a-b", + stack_size = 50 + }, + { + type = "recipe", + name = "distractor-robot", + enabled = "false", + energy_required = 3, + ingredients = + { + }, + result = "distractor-robot" + }, + + { + type = "item", + name = "destroyer-robot", + icon = "__bobwarfare__/graphics/icons/destroyer.png", + flags = {"goes-to-quickbar"}, + subgroup = "bob-combat-robots", + order = "e-a-c", + stack_size = 50 + }, + { + type = "recipe", + name = "destroyer-robot", + enabled = "false", + energy_required = 3, + ingredients = + { + }, + result = "destroyer-robot" + }, +} +) + + + +data:extend( +{ + { + type = "item", + name = "bob-laser-robot", + icon = "__bobwarfare__/graphics/icons/laser-robot.png", + flags = {"goes-to-quickbar"}, + subgroup = "bob-combat-robots", + order = "e-a-d", +-- place_result = "bob-laser-robot", + stack_size = 50 + }, + + { + type = "recipe", + name = "bob-laser-robot", + enabled = "false", + energy_required = 3, + ingredients = + { + }, + result = "bob-laser-robot" + }, + + { + type = "recipe", + name = "bob-laser-robot-capsule", + enabled = false, + energy_required = 1, + ingredients = + { + {"bob-laser-robot", 5}, + }, + result = "bob-laser-robot-capsule" + }, + + { + type = "capsule", + name = "bob-laser-robot-capsule", + icon = "__bobwarfare__/graphics/icons/laser-robot-capsule.png", + flags = {"goes-to-quickbar"}, + capsule_action = + { + type = "throw", + attack_parameters = + { + type = "projectile", + ammo_category = "capsule", + cooldown = 30, + projectile_creation_distance = 0.6, + range = 25, + ammo_type = + { + category = "capsule", + target_type = "position", + action = + { + type = "direct", + action_delivery = + { + type = "projectile", + projectile = "bob-laser-robot-capsule", + starting_speed = 0.3 + } + } + } + } + }, + subgroup = "capsule", + order = "g[laser-robot-capsule]", + stack_size = 100 + }, + + { + type = "projectile", + name = "bob-laser-robot-capsule", + flags = {"not-on-map"}, + acceleration = 0.005, + action = + { + type = "direct", + action_delivery = + { + type = "instant", + target_effects = + { + type = "create-entity", + show_in_tooltip = true, + entity_name = "bob-laser-robot", + offsets = {{-0.7, -0.7},{-0.7, 0.7},{0.7, -0.7},{0.7, 0.7},{0, 0}} + } + } + }, + light = {intensity = 0.5, size = 4}, + animation = + { + filename = "__bobwarfare__/graphics/entities/robots/laser-robot-capsule.png", + frame_count = 1, + width = 32, + height = 32, + priority = "high" + }, + shadow = + { + filename = "__bobwarfare__/graphics/entities/robots/combat-robot-capsule-shadow.png", + frame_count = 1, + width = 32, + height = 32, + priority = "high" + }, + smoke = capsule_smoke + }, + + { + type = "combat-robot", + name = "bob-laser-robot", + icon = "__bobwarfare__/graphics/icons/laser-robot.png", + flags = {"placeable-player", "player-creation", "placeable-off-grid", "not-on-map", "not-repairable"}, + minable = {hardness = 0.1, mining_time = 0.1, result = "bob-laser-robot"}, + subgroup="capsule", + order="e-a-d", + max_health = 100, + collision_box = {{0, 0}, {0, 0}}, + selection_box = {{-0.5, -1.5}, {0.5, -0.5}}, + speed = 0.05, + + follows_player = true, + friction = 0.01, + range_from_player = 6.0, + distance_per_frame = 0.13, + +-- time_to_live = 60 * 60 * 60 * 24, -- 1 day + time_to_live = 60 * 60 * 10, -- 10 mins + + destroy_action = + { + type = "direct", + action_delivery = + { + type = "instant", + source_effects = + { + type = "create-entity", + entity_name = "explosion" + } + } + }, + + attack_parameters = + { + type = "projectile", + ammo_category = "combat-robot-laser", + cooldown = 20, + damage_modifier = 1.5, + projectile_center = {0, 0}, + projectile_creation_distance = 0.6, + range = 15, + sound = make_laser_sounds(), + ammo_type = + { + category = "combat-robot-laser", + action = + { + type = "direct", + action_delivery = + { + type = "projectile", + projectile = "blue-laser", + starting_speed = 0.3 + } + } + } + }, + + working_sound = flying_robot_sounds(), + + idle = bobmods.warfare.robot_picture("__bobwarfare__/graphics/entities/robots/laser-robot.png"), + shadow_idle = bobmods.warfare.robot_shadow(), + in_motion = bobmods.warfare.robot_picture("__bobwarfare__/graphics/entities/robots/laser-robot.png"), + shadow_in_motion = bobmods.warfare.robot_shadow(), + }, + + { + type = "technology", + name = "combat-robotics-4", + icon = "__base__/graphics/technology/combat-robotics.png", + effects = + { + { + type = "unlock-recipe", + recipe = "bob-laser-robot" + }, + { + type = "unlock-recipe", + recipe = "bob-laser-robot-capsule" + } + }, + prerequisites = {"combat-robotics-3"}, + unit = + { + count = 500, + ingredients = + { + {"science-pack-1", 1}, + {"science-pack-2", 1}, + {"science-pack-3", 1}, + {"alien-science-pack", 1} + }, + time = 30 + }, + order = "e-p-b-c" + }, +} +) diff --git a/bobwarfare_0.14.0/prototypes/technology/ammo.lua b/bobwarfare_0.14.1/prototypes/technology/ammo.lua similarity index 94% rename from bobwarfare_0.14.0/prototypes/technology/ammo.lua rename to bobwarfare_0.14.1/prototypes/technology/ammo.lua index 3dfa171..18eb2e4 100644 --- a/bobwarfare_0.14.0/prototypes/technology/ammo.lua +++ b/bobwarfare_0.14.1/prototypes/technology/ammo.lua @@ -1,929 +1,929 @@ -data:extend( -{ - { - type = "technology", - name = "bob-bullets", - icon = "__bobwarfare__/graphics/icons/bullet-magazine.png", - prerequisites = - { - "cordite-processing", - }, - effects = - { - { - type = "unlock-recipe", - recipe = "bullet-casing" - }, - { - type = "unlock-recipe", - recipe = "magazine" - }, - { - type = "unlock-recipe", - recipe = "bullet-projectile" - }, - { - type = "unlock-recipe", - recipe = "bullet" - }, - { - type = "unlock-recipe", - recipe = "bullet-magazine" - }, - }, - unit = - { - count = 100, - ingredients = - { - {"science-pack-1", 1}, - {"science-pack-2", 1}, - {"science-pack-3", 1}, - }, - time = 30 - }, - order = "e-a-a-a" - }, - - { - type = "technology", - name = "bob-ap-bullets", - icon = "__bobwarfare__/graphics/icons/ap-bullet-magazine.png", - prerequisites = - { - "bob-bullets", - }, - effects = - { - { - type = "unlock-recipe", - recipe = "ap-bullet-projectile" - }, - { - type = "unlock-recipe", - recipe = "ap-bullet" - }, - { - type = "unlock-recipe", - recipe = "ap-bullet-magazine" - }, - }, - unit = - { - count = 100, - ingredients = - { - {"science-pack-1", 1}, - {"science-pack-2", 1}, - {"science-pack-3", 1}, - {"alien-science-pack", 1}, - }, - time = 30 - }, - order = "e-a-a-b" - }, - - { - type = "technology", - name = "bob-electric-bullets", - icon = "__bobwarfare__/graphics/icons/electric-bullet-magazine.png", - prerequisites = - { - "bob-bullets", - }, - effects = - { - { - type = "unlock-recipe", - recipe = "electric-bullet-projectile" - }, - { - type = "unlock-recipe", - recipe = "electric-bullet" - }, - { - type = "unlock-recipe", - recipe = "electric-bullet-magazine" - }, - }, - unit = - { - count = 100, - ingredients = - { - {"science-pack-1", 1}, - {"science-pack-2", 1}, - {"science-pack-3", 1}, - {"alien-science-pack", 1}, - }, - time = 30 - }, - order = "e-a-a-c" - }, - - { - type = "technology", - name = "bob-he-bullets", - icon = "__bobwarfare__/graphics/icons/he-bullet-magazine.png", - prerequisites = - { - "bob-bullets", - }, - effects = - { - { - type = "unlock-recipe", - recipe = "he-bullet-projectile" - }, - { - type = "unlock-recipe", - recipe = "he-bullet" - }, - { - type = "unlock-recipe", - recipe = "he-bullet-magazine" - }, - }, - unit = - { - count = 100, - ingredients = - { - {"science-pack-1", 1}, - {"science-pack-2", 1}, - {"science-pack-3", 1}, - {"alien-science-pack", 1}, - }, - time = 30 - }, - order = "e-a-a-d" - }, - - { - type = "technology", - name = "bob-flame-bullets", - icon = "__bobwarfare__/graphics/icons/flame-bullet-magazine.png", - prerequisites = - { - "bob-bullets", - }, - effects = - { - { - type = "unlock-recipe", - recipe = "flame-bullet-projectile" - }, - { - type = "unlock-recipe", - recipe = "flame-bullet" - }, - { - type = "unlock-recipe", - recipe = "flame-bullet-magazine" - }, - }, - unit = - { - count = 100, - ingredients = - { - {"science-pack-1", 1}, - {"science-pack-2", 1}, - {"science-pack-3", 1}, - {"alien-science-pack", 1}, - }, - time = 30 - }, - order = "e-a-a-e" - }, - - { - type = "technology", - name = "bob-acid-bullets", - icon = "__bobwarfare__/graphics/icons/acid-bullet-magazine.png", - prerequisites = - { - "bob-bullets", - }, - effects = - { - { - type = "unlock-recipe", - recipe = "acid-bullet-projectile" - }, - { - type = "unlock-recipe", - recipe = "acid-bullet" - }, - { - type = "unlock-recipe", - recipe = "acid-bullet-magazine" - }, - }, - unit = - { - count = 100, - ingredients = - { - {"science-pack-1", 1}, - {"science-pack-2", 1}, - {"science-pack-3", 1}, - {"alien-science-pack", 1}, - }, - time = 30 - }, - order = "e-a-a-f" - }, - - { - type = "technology", - name = "bob-poison-bullets", - icon = "__bobwarfare__/graphics/icons/poison-bullet-magazine.png", - prerequisites = - { - "bob-bullets", - }, - effects = - { - { - type = "unlock-recipe", - recipe = "poison-bullet-projectile" - }, - { - type = "unlock-recipe", - recipe = "poison-bullet" - }, - { - type = "unlock-recipe", - recipe = "poison-bullet-magazine" - }, - }, - unit = - { - count = 100, - ingredients = - { - {"science-pack-1", 1}, - {"science-pack-2", 1}, - {"science-pack-3", 1}, - {"alien-science-pack", 1}, - }, - time = 30 - }, - order = "e-a-a-g" - }, - - - { - type = "technology", - name = "bob-shotgun-shells", - icon = "__bobwarfare__/graphics/icons/shotgun-shell.png", - prerequisites = - { - "cordite-processing", - }, - effects = - { - { - type = "unlock-recipe", - recipe = "shotgun-shell-casing" - }, - { - type = "unlock-recipe", - recipe = "shot" - }, - { - type = "unlock-recipe", - recipe = "better-shotgun-shell" - }, - }, - unit = - { - count = 100, - ingredients = - { - {"science-pack-1", 1}, - {"science-pack-2", 1}, - {"science-pack-3", 1}, - }, - time = 30 - }, - order = "e-a-b-a" - }, - - { - type = "technology", - name = "bob-shotgun-ap-shells", - icon = "__bobwarfare__/graphics/icons/shotgun-ap-shell.png", - prerequisites = - { - "bob-shotgun-shells", - }, - effects = - { - { - type = "unlock-recipe", - recipe = "shotgun-ap-shell" - }, - }, - unit = - { - count = 100, - ingredients = - { - {"science-pack-1", 1}, - {"science-pack-2", 1}, - {"science-pack-3", 1}, - {"alien-science-pack", 1}, - }, - time = 30 - }, - order = "e-a-b-b" - }, - - { - type = "technology", - name = "bob-shotgun-electric-shells", - icon = "__bobwarfare__/graphics/icons/shotgun-electric-shell.png", - prerequisites = - { - "bob-shotgun-shells", - }, - effects = - { - { - type = "unlock-recipe", - recipe = "shotgun-electric-shell" - }, - }, - unit = - { - count = 100, - ingredients = - { - {"science-pack-1", 1}, - {"science-pack-2", 1}, - {"science-pack-3", 1}, - {"alien-science-pack", 1}, - }, - time = 30 - }, - order = "e-a-b-c" - }, - - { - type = "technology", - name = "bob-shotgun-explosive-shells", - icon = "__bobwarfare__/graphics/icons/shotgun-explosive-shell.png", - prerequisites = - { - "bob-shotgun-shells", - }, - effects = - { - { - type = "unlock-recipe", - recipe = "shotgun-explosive-shell" - }, - }, - unit = - { - count = 100, - ingredients = - { - {"science-pack-1", 1}, - {"science-pack-2", 1}, - {"science-pack-3", 1}, - {"alien-science-pack", 1}, - }, - time = 30 - }, - order = "e-a-b-d" - }, - - { - type = "technology", - name = "bob-shotgun-flame-shells", - icon = "__bobwarfare__/graphics/icons/shotgun-flame-shell.png", - prerequisites = - { - "bob-shotgun-shells", - }, - effects = - { - { - type = "unlock-recipe", - recipe = "shotgun-flame-shell" - }, - }, - unit = - { - count = 100, - ingredients = - { - {"science-pack-1", 1}, - {"science-pack-2", 1}, - {"science-pack-3", 1}, - {"alien-science-pack", 1}, - }, - time = 30 - }, - order = "e-a-b-e" - }, - - { - type = "technology", - name = "bob-shotgun-acid-shells", - icon = "__bobwarfare__/graphics/icons/shotgun-acid-shell.png", - prerequisites = - { - "bob-shotgun-shells", - }, - effects = - { - { - type = "unlock-recipe", - recipe = "shotgun-acid-shell" - }, - }, - unit = - { - count = 100, - ingredients = - { - {"science-pack-1", 1}, - {"science-pack-2", 1}, - {"science-pack-3", 1}, - {"alien-science-pack", 1}, - }, - time = 30 - }, - order = "e-a-b-f" - }, - - { - type = "technology", - name = "bob-shotgun-poison-shells", - icon = "__bobwarfare__/graphics/icons/shotgun-poison-shell.png", - prerequisites = - { - "bob-shotgun-shells", - }, - effects = - { - { - type = "unlock-recipe", - recipe = "shotgun-poison-shell" - }, - }, - unit = - { - count = 100, - ingredients = - { - {"science-pack-1", 1}, - {"science-pack-2", 1}, - {"science-pack-3", 1}, - {"alien-science-pack", 1}, - }, - time = 30 - }, - order = "e-a-b-g" - }, - - - { - type = "technology", - name = "bob-laser-rifle-ammo-1", - icon = "__bobwarfare__/graphics/icons/technology/laser-rifle.png", - prerequisites = - { - "bob-laser-rifle", - }, - effects = - { - { - type = "unlock-recipe", - recipe = "laser-rifle-battery-ruby" - }, - }, - unit = - { - count = 75, - ingredients = - { - {"science-pack-1", 1}, - {"science-pack-2", 1}, - {"science-pack-3", 1}, - }, - time = 30 - }, - upgrade = "true", - order = "e-a-c-a1" - }, - - { - type = "technology", - name = "bob-laser-rifle-ammo-2", - icon = "__bobwarfare__/graphics/icons/technology/laser-rifle.png", - prerequisites = - { - "bob-laser-rifle-ammo-1", - }, - effects = - { - { - type = "unlock-recipe", - recipe = "laser-rifle-battery-sapphire" - }, - }, - unit = - { - count = 75, - ingredients = - { - {"science-pack-1", 1}, - {"science-pack-2", 1}, - {"science-pack-3", 1}, - }, - time = 30 - }, - upgrade = "true", - order = "e-a-c-a2" - }, - - { - type = "technology", - name = "bob-laser-rifle-ammo-3", - icon = "__bobwarfare__/graphics/icons/technology/laser-rifle.png", - prerequisites = - { - "bob-laser-rifle-ammo-2", - }, - effects = - { - { - type = "unlock-recipe", - recipe = "laser-rifle-battery-emerald" - }, - }, - unit = - { - count = 100, - ingredients = - { - {"science-pack-1", 1}, - {"science-pack-2", 1}, - {"science-pack-3", 1}, - }, - time = 30 - }, - upgrade = "true", - order = "e-a-c-a3" - }, - - { - type = "technology", - name = "bob-laser-rifle-ammo-4", - icon = "__bobwarfare__/graphics/icons/technology/laser-rifle.png", - prerequisites = - { - "bob-laser-rifle-ammo-3", - }, - effects = - { - { - type = "unlock-recipe", - recipe = "laser-rifle-battery-amethyst" - }, - }, - unit = - { - count = 100, - ingredients = - { - {"science-pack-1", 1}, - {"science-pack-2", 1}, - {"science-pack-3", 1}, - {"alien-science-pack", 1}, - }, - time = 30 - }, - upgrade = "true", - order = "e-a-c-a4" - }, - - { - type = "technology", - name = "bob-laser-rifle-ammo-5", - icon = "__bobwarfare__/graphics/icons/technology/laser-rifle.png", - prerequisites = - { - "bob-laser-rifle-ammo-4", - }, - effects = - { - { - type = "unlock-recipe", - recipe = "laser-rifle-battery-topaz" - }, - }, - unit = - { - count = 150, - ingredients = - { - {"science-pack-1", 1}, - {"science-pack-2", 1}, - {"science-pack-3", 1}, - {"alien-science-pack", 1}, - }, - time = 30 - }, - upgrade = "true", - order = "e-a-c-a5" - }, - - { - type = "technology", - name = "bob-laser-rifle-ammo-6", - icon = "__bobwarfare__/graphics/icons/technology/laser-rifle.png", - prerequisites = - { - "bob-laser-rifle-ammo-5", - }, - effects = - { - { - type = "unlock-recipe", - recipe = "laser-rifle-battery-diamond" - }, - }, - unit = - { - count = 200, - ingredients = - { - {"science-pack-1", 1}, - {"science-pack-2", 1}, - {"science-pack-3", 1}, - {"alien-science-pack", 1}, - }, - time = 30 - }, - upgrade = "true", - order = "e-a-c-a6" - }, - - - { - type = "technology", - name = "bob-rocket", - icon = "__bobwarfare__/graphics/icons/rocket.png", - prerequisites = - { - "oil-processing", - "rocketry", - }, - effects = - { - { - type = "unlock-recipe", - recipe = "bob-rocket" - }, - { - type = "unlock-recipe", - recipe = "rocket-body" - }, - { - type = "unlock-recipe", - recipe = "rocket-warhead" - }, - }, - unit = - { - count = 100, - ingredients = - { - {"science-pack-1", 1}, - {"science-pack-2", 1}, - {"science-pack-3", 1}, - }, - time = 30 - }, - order = "e-a-d-a" - }, - - { - type = "technology", - name = "bob-piercing-rocket", - icon = "__bobwarfare__/graphics/icons/piercing-rocket.png", - prerequisites = - { - "bob-rocket", - }, - effects = - { - { - type = "unlock-recipe", - recipe = "bob-piercing-rocket" - }, - { - type = "unlock-recipe", - recipe = "piercing-rocket-warhead" - }, - }, - unit = - { - count = 100, - ingredients = - { - {"science-pack-1", 1}, - {"science-pack-2", 1}, - {"science-pack-3", 1}, - {"alien-science-pack", 1}, - }, - time = 30 - }, - order = "e-a-d-b" - }, - - { - type = "technology", - name = "bob-electric-rocket", - icon = "__bobwarfare__/graphics/icons/electric-rocket.png", - prerequisites = - { - "bob-rocket", - }, - effects = - { - { - type = "unlock-recipe", - recipe = "bob-electric-rocket" - }, - { - type = "unlock-recipe", - recipe = "electric-rocket-warhead" - }, - }, - unit = - { - count = 100, - ingredients = - { - {"science-pack-1", 1}, - {"science-pack-2", 1}, - {"science-pack-3", 1}, - {"alien-science-pack", 1}, - }, - time = 30 - }, - order = "e-a-d-c" - }, - - { - type = "technology", - name = "bob-explosive-rocket", - icon = "__bobwarfare__/graphics/icons/explosive-rocket.png", - prerequisites = - { - "bob-rocket", - }, - effects = - { - { - type = "unlock-recipe", - recipe = "bob-explosive-rocket" - }, - { - type = "unlock-recipe", - recipe = "explosive-rocket-warhead" - }, - }, - unit = - { - count = 100, - ingredients = - { - {"science-pack-1", 1}, - {"science-pack-2", 1}, - {"science-pack-3", 1}, - {"alien-science-pack", 1}, - }, - time = 30 - }, - order = "e-a-d-d" - }, - - { - type = "technology", - name = "bob-acid-rocket", - icon = "__bobwarfare__/graphics/icons/acid-rocket.png", - prerequisites = - { - "bob-rocket", - }, - effects = - { - { - type = "unlock-recipe", - recipe = "bob-acid-rocket" - }, - { - type = "unlock-recipe", - recipe = "acid-rocket-warhead" - }, - }, - unit = - { - count = 100, - ingredients = - { - {"science-pack-1", 1}, - {"science-pack-2", 1}, - {"science-pack-3", 1}, - {"alien-science-pack", 1}, - }, - time = 30 - }, - order = "e-a-d-e" - }, - - { - type = "technology", - name = "bob-flame-rocket", - icon = "__bobwarfare__/graphics/icons/flame-rocket.png", - prerequisites = - { - "bob-rocket", - }, - effects = - { - { - type = "unlock-recipe", - recipe = "bob-flame-rocket" - }, - { - type = "unlock-recipe", - recipe = "flame-rocket-warhead" - }, - }, - unit = - { - count = 100, - ingredients = - { - {"science-pack-1", 1}, - {"science-pack-2", 1}, - {"science-pack-3", 1}, - {"alien-science-pack", 1}, - }, - time = 30 - }, - order = "e-a-d-f" - }, - - { - type = "technology", - name = "bob-poison-rocket", - icon = "__bobwarfare__/graphics/icons/poison-rocket.png", - prerequisites = - { - "bob-rocket", - }, - effects = - { - { - type = "unlock-recipe", - recipe = "bob-poison-rocket" - }, - { - type = "unlock-recipe", - recipe = "poison-rocket-warhead" - }, - }, - unit = - { - count = 100, - ingredients = - { - {"science-pack-1", 1}, - {"science-pack-2", 1}, - {"science-pack-3", 1}, - {"alien-science-pack", 1}, - }, - time = 30 - }, - order = "e-a-d-g" - }, -} -) - - - - - - - - +data:extend( +{ + { + type = "technology", + name = "bob-bullets", + icon = "__bobwarfare__/graphics/icons/bullet-magazine.png", + prerequisites = + { + "cordite-processing", + }, + effects = + { + { + type = "unlock-recipe", + recipe = "bullet-casing" + }, + { + type = "unlock-recipe", + recipe = "magazine" + }, + { + type = "unlock-recipe", + recipe = "bullet-projectile" + }, + { + type = "unlock-recipe", + recipe = "bullet" + }, + { + type = "unlock-recipe", + recipe = "bullet-magazine" + }, + }, + unit = + { + count = 100, + ingredients = + { + {"science-pack-1", 1}, + {"science-pack-2", 1}, + {"science-pack-3", 1}, + }, + time = 30 + }, + order = "e-a-a-a" + }, + + { + type = "technology", + name = "bob-ap-bullets", + icon = "__bobwarfare__/graphics/icons/ap-bullet-magazine.png", + prerequisites = + { + "bob-bullets", + }, + effects = + { + { + type = "unlock-recipe", + recipe = "ap-bullet-projectile" + }, + { + type = "unlock-recipe", + recipe = "ap-bullet" + }, + { + type = "unlock-recipe", + recipe = "ap-bullet-magazine" + }, + }, + unit = + { + count = 100, + ingredients = + { + {"science-pack-1", 1}, + {"science-pack-2", 1}, + {"science-pack-3", 1}, + {"alien-science-pack", 1}, + }, + time = 30 + }, + order = "e-a-a-b" + }, + + { + type = "technology", + name = "bob-electric-bullets", + icon = "__bobwarfare__/graphics/icons/electric-bullet-magazine.png", + prerequisites = + { + "bob-bullets", + }, + effects = + { + { + type = "unlock-recipe", + recipe = "electric-bullet-projectile" + }, + { + type = "unlock-recipe", + recipe = "electric-bullet" + }, + { + type = "unlock-recipe", + recipe = "electric-bullet-magazine" + }, + }, + unit = + { + count = 100, + ingredients = + { + {"science-pack-1", 1}, + {"science-pack-2", 1}, + {"science-pack-3", 1}, + {"alien-science-pack", 1}, + }, + time = 30 + }, + order = "e-a-a-c" + }, + + { + type = "technology", + name = "bob-he-bullets", + icon = "__bobwarfare__/graphics/icons/he-bullet-magazine.png", + prerequisites = + { + "bob-bullets", + }, + effects = + { + { + type = "unlock-recipe", + recipe = "he-bullet-projectile" + }, + { + type = "unlock-recipe", + recipe = "he-bullet" + }, + { + type = "unlock-recipe", + recipe = "he-bullet-magazine" + }, + }, + unit = + { + count = 100, + ingredients = + { + {"science-pack-1", 1}, + {"science-pack-2", 1}, + {"science-pack-3", 1}, + {"alien-science-pack", 1}, + }, + time = 30 + }, + order = "e-a-a-d" + }, + + { + type = "technology", + name = "bob-flame-bullets", + icon = "__bobwarfare__/graphics/icons/flame-bullet-magazine.png", + prerequisites = + { + "bob-bullets", + }, + effects = + { + { + type = "unlock-recipe", + recipe = "flame-bullet-projectile" + }, + { + type = "unlock-recipe", + recipe = "flame-bullet" + }, + { + type = "unlock-recipe", + recipe = "flame-bullet-magazine" + }, + }, + unit = + { + count = 100, + ingredients = + { + {"science-pack-1", 1}, + {"science-pack-2", 1}, + {"science-pack-3", 1}, + {"alien-science-pack", 1}, + }, + time = 30 + }, + order = "e-a-a-e" + }, + + { + type = "technology", + name = "bob-acid-bullets", + icon = "__bobwarfare__/graphics/icons/acid-bullet-magazine.png", + prerequisites = + { + "bob-bullets", + }, + effects = + { + { + type = "unlock-recipe", + recipe = "acid-bullet-projectile" + }, + { + type = "unlock-recipe", + recipe = "acid-bullet" + }, + { + type = "unlock-recipe", + recipe = "acid-bullet-magazine" + }, + }, + unit = + { + count = 100, + ingredients = + { + {"science-pack-1", 1}, + {"science-pack-2", 1}, + {"science-pack-3", 1}, + {"alien-science-pack", 1}, + }, + time = 30 + }, + order = "e-a-a-f" + }, + + { + type = "technology", + name = "bob-poison-bullets", + icon = "__bobwarfare__/graphics/icons/poison-bullet-magazine.png", + prerequisites = + { + "bob-bullets", + }, + effects = + { + { + type = "unlock-recipe", + recipe = "poison-bullet-projectile" + }, + { + type = "unlock-recipe", + recipe = "poison-bullet" + }, + { + type = "unlock-recipe", + recipe = "poison-bullet-magazine" + }, + }, + unit = + { + count = 100, + ingredients = + { + {"science-pack-1", 1}, + {"science-pack-2", 1}, + {"science-pack-3", 1}, + {"alien-science-pack", 1}, + }, + time = 30 + }, + order = "e-a-a-g" + }, + + + { + type = "technology", + name = "bob-shotgun-shells", + icon = "__bobwarfare__/graphics/icons/shotgun-shell.png", + prerequisites = + { + "cordite-processing", + }, + effects = + { + { + type = "unlock-recipe", + recipe = "shotgun-shell-casing" + }, + { + type = "unlock-recipe", + recipe = "shot" + }, + { + type = "unlock-recipe", + recipe = "better-shotgun-shell" + }, + }, + unit = + { + count = 100, + ingredients = + { + {"science-pack-1", 1}, + {"science-pack-2", 1}, + {"science-pack-3", 1}, + }, + time = 30 + }, + order = "e-a-b-a" + }, + + { + type = "technology", + name = "bob-shotgun-ap-shells", + icon = "__bobwarfare__/graphics/icons/shotgun-ap-shell.png", + prerequisites = + { + "bob-shotgun-shells", + }, + effects = + { + { + type = "unlock-recipe", + recipe = "shotgun-ap-shell" + }, + }, + unit = + { + count = 100, + ingredients = + { + {"science-pack-1", 1}, + {"science-pack-2", 1}, + {"science-pack-3", 1}, + {"alien-science-pack", 1}, + }, + time = 30 + }, + order = "e-a-b-b" + }, + + { + type = "technology", + name = "bob-shotgun-electric-shells", + icon = "__bobwarfare__/graphics/icons/shotgun-electric-shell.png", + prerequisites = + { + "bob-shotgun-shells", + }, + effects = + { + { + type = "unlock-recipe", + recipe = "shotgun-electric-shell" + }, + }, + unit = + { + count = 100, + ingredients = + { + {"science-pack-1", 1}, + {"science-pack-2", 1}, + {"science-pack-3", 1}, + {"alien-science-pack", 1}, + }, + time = 30 + }, + order = "e-a-b-c" + }, + + { + type = "technology", + name = "bob-shotgun-explosive-shells", + icon = "__bobwarfare__/graphics/icons/shotgun-explosive-shell.png", + prerequisites = + { + "bob-shotgun-shells", + }, + effects = + { + { + type = "unlock-recipe", + recipe = "shotgun-explosive-shell" + }, + }, + unit = + { + count = 100, + ingredients = + { + {"science-pack-1", 1}, + {"science-pack-2", 1}, + {"science-pack-3", 1}, + {"alien-science-pack", 1}, + }, + time = 30 + }, + order = "e-a-b-d" + }, + + { + type = "technology", + name = "bob-shotgun-flame-shells", + icon = "__bobwarfare__/graphics/icons/shotgun-flame-shell.png", + prerequisites = + { + "bob-shotgun-shells", + }, + effects = + { + { + type = "unlock-recipe", + recipe = "shotgun-flame-shell" + }, + }, + unit = + { + count = 100, + ingredients = + { + {"science-pack-1", 1}, + {"science-pack-2", 1}, + {"science-pack-3", 1}, + {"alien-science-pack", 1}, + }, + time = 30 + }, + order = "e-a-b-e" + }, + + { + type = "technology", + name = "bob-shotgun-acid-shells", + icon = "__bobwarfare__/graphics/icons/shotgun-acid-shell.png", + prerequisites = + { + "bob-shotgun-shells", + }, + effects = + { + { + type = "unlock-recipe", + recipe = "shotgun-acid-shell" + }, + }, + unit = + { + count = 100, + ingredients = + { + {"science-pack-1", 1}, + {"science-pack-2", 1}, + {"science-pack-3", 1}, + {"alien-science-pack", 1}, + }, + time = 30 + }, + order = "e-a-b-f" + }, + + { + type = "technology", + name = "bob-shotgun-poison-shells", + icon = "__bobwarfare__/graphics/icons/shotgun-poison-shell.png", + prerequisites = + { + "bob-shotgun-shells", + }, + effects = + { + { + type = "unlock-recipe", + recipe = "shotgun-poison-shell" + }, + }, + unit = + { + count = 100, + ingredients = + { + {"science-pack-1", 1}, + {"science-pack-2", 1}, + {"science-pack-3", 1}, + {"alien-science-pack", 1}, + }, + time = 30 + }, + order = "e-a-b-g" + }, + + + { + type = "technology", + name = "bob-laser-rifle-ammo-1", + icon = "__bobwarfare__/graphics/icons/technology/laser-rifle.png", + prerequisites = + { + "bob-laser-rifle", + }, + effects = + { + { + type = "unlock-recipe", + recipe = "laser-rifle-battery-ruby" + }, + }, + unit = + { + count = 75, + ingredients = + { + {"science-pack-1", 1}, + {"science-pack-2", 1}, + {"science-pack-3", 1}, + }, + time = 30 + }, + upgrade = "true", + order = "e-a-c-a1" + }, + + { + type = "technology", + name = "bob-laser-rifle-ammo-2", + icon = "__bobwarfare__/graphics/icons/technology/laser-rifle.png", + prerequisites = + { + "bob-laser-rifle-ammo-1", + }, + effects = + { + { + type = "unlock-recipe", + recipe = "laser-rifle-battery-sapphire" + }, + }, + unit = + { + count = 75, + ingredients = + { + {"science-pack-1", 1}, + {"science-pack-2", 1}, + {"science-pack-3", 1}, + }, + time = 30 + }, + upgrade = "true", + order = "e-a-c-a2" + }, + + { + type = "technology", + name = "bob-laser-rifle-ammo-3", + icon = "__bobwarfare__/graphics/icons/technology/laser-rifle.png", + prerequisites = + { + "bob-laser-rifle-ammo-2", + }, + effects = + { + { + type = "unlock-recipe", + recipe = "laser-rifle-battery-emerald" + }, + }, + unit = + { + count = 100, + ingredients = + { + {"science-pack-1", 1}, + {"science-pack-2", 1}, + {"science-pack-3", 1}, + }, + time = 30 + }, + upgrade = "true", + order = "e-a-c-a3" + }, + + { + type = "technology", + name = "bob-laser-rifle-ammo-4", + icon = "__bobwarfare__/graphics/icons/technology/laser-rifle.png", + prerequisites = + { + "bob-laser-rifle-ammo-3", + }, + effects = + { + { + type = "unlock-recipe", + recipe = "laser-rifle-battery-amethyst" + }, + }, + unit = + { + count = 100, + ingredients = + { + {"science-pack-1", 1}, + {"science-pack-2", 1}, + {"science-pack-3", 1}, + {"alien-science-pack", 1}, + }, + time = 30 + }, + upgrade = "true", + order = "e-a-c-a4" + }, + + { + type = "technology", + name = "bob-laser-rifle-ammo-5", + icon = "__bobwarfare__/graphics/icons/technology/laser-rifle.png", + prerequisites = + { + "bob-laser-rifle-ammo-4", + }, + effects = + { + { + type = "unlock-recipe", + recipe = "laser-rifle-battery-topaz" + }, + }, + unit = + { + count = 150, + ingredients = + { + {"science-pack-1", 1}, + {"science-pack-2", 1}, + {"science-pack-3", 1}, + {"alien-science-pack", 1}, + }, + time = 30 + }, + upgrade = "true", + order = "e-a-c-a5" + }, + + { + type = "technology", + name = "bob-laser-rifle-ammo-6", + icon = "__bobwarfare__/graphics/icons/technology/laser-rifle.png", + prerequisites = + { + "bob-laser-rifle-ammo-5", + }, + effects = + { + { + type = "unlock-recipe", + recipe = "laser-rifle-battery-diamond" + }, + }, + unit = + { + count = 200, + ingredients = + { + {"science-pack-1", 1}, + {"science-pack-2", 1}, + {"science-pack-3", 1}, + {"alien-science-pack", 1}, + }, + time = 30 + }, + upgrade = "true", + order = "e-a-c-a6" + }, + + + { + type = "technology", + name = "bob-rocket", + icon = "__bobwarfare__/graphics/icons/rocket.png", + prerequisites = + { + "oil-processing", + "rocketry", + }, + effects = + { + { + type = "unlock-recipe", + recipe = "bob-rocket" + }, + { + type = "unlock-recipe", + recipe = "rocket-body" + }, + { + type = "unlock-recipe", + recipe = "rocket-warhead" + }, + }, + unit = + { + count = 100, + ingredients = + { + {"science-pack-1", 1}, + {"science-pack-2", 1}, + {"science-pack-3", 1}, + }, + time = 30 + }, + order = "e-a-d-a" + }, + + { + type = "technology", + name = "bob-piercing-rocket", + icon = "__bobwarfare__/graphics/icons/piercing-rocket.png", + prerequisites = + { + "bob-rocket", + }, + effects = + { + { + type = "unlock-recipe", + recipe = "bob-piercing-rocket" + }, + { + type = "unlock-recipe", + recipe = "piercing-rocket-warhead" + }, + }, + unit = + { + count = 100, + ingredients = + { + {"science-pack-1", 1}, + {"science-pack-2", 1}, + {"science-pack-3", 1}, + {"alien-science-pack", 1}, + }, + time = 30 + }, + order = "e-a-d-b" + }, + + { + type = "technology", + name = "bob-electric-rocket", + icon = "__bobwarfare__/graphics/icons/electric-rocket.png", + prerequisites = + { + "bob-rocket", + }, + effects = + { + { + type = "unlock-recipe", + recipe = "bob-electric-rocket" + }, + { + type = "unlock-recipe", + recipe = "electric-rocket-warhead" + }, + }, + unit = + { + count = 100, + ingredients = + { + {"science-pack-1", 1}, + {"science-pack-2", 1}, + {"science-pack-3", 1}, + {"alien-science-pack", 1}, + }, + time = 30 + }, + order = "e-a-d-c" + }, + + { + type = "technology", + name = "bob-explosive-rocket", + icon = "__bobwarfare__/graphics/icons/explosive-rocket.png", + prerequisites = + { + "bob-rocket", + }, + effects = + { + { + type = "unlock-recipe", + recipe = "bob-explosive-rocket" + }, + { + type = "unlock-recipe", + recipe = "explosive-rocket-warhead" + }, + }, + unit = + { + count = 100, + ingredients = + { + {"science-pack-1", 1}, + {"science-pack-2", 1}, + {"science-pack-3", 1}, + {"alien-science-pack", 1}, + }, + time = 30 + }, + order = "e-a-d-d" + }, + + { + type = "technology", + name = "bob-acid-rocket", + icon = "__bobwarfare__/graphics/icons/acid-rocket.png", + prerequisites = + { + "bob-rocket", + }, + effects = + { + { + type = "unlock-recipe", + recipe = "bob-acid-rocket" + }, + { + type = "unlock-recipe", + recipe = "acid-rocket-warhead" + }, + }, + unit = + { + count = 100, + ingredients = + { + {"science-pack-1", 1}, + {"science-pack-2", 1}, + {"science-pack-3", 1}, + {"alien-science-pack", 1}, + }, + time = 30 + }, + order = "e-a-d-e" + }, + + { + type = "technology", + name = "bob-flame-rocket", + icon = "__bobwarfare__/graphics/icons/flame-rocket.png", + prerequisites = + { + "bob-rocket", + }, + effects = + { + { + type = "unlock-recipe", + recipe = "bob-flame-rocket" + }, + { + type = "unlock-recipe", + recipe = "flame-rocket-warhead" + }, + }, + unit = + { + count = 100, + ingredients = + { + {"science-pack-1", 1}, + {"science-pack-2", 1}, + {"science-pack-3", 1}, + {"alien-science-pack", 1}, + }, + time = 30 + }, + order = "e-a-d-f" + }, + + { + type = "technology", + name = "bob-poison-rocket", + icon = "__bobwarfare__/graphics/icons/poison-rocket.png", + prerequisites = + { + "bob-rocket", + }, + effects = + { + { + type = "unlock-recipe", + recipe = "bob-poison-rocket" + }, + { + type = "unlock-recipe", + recipe = "poison-rocket-warhead" + }, + }, + unit = + { + count = 100, + ingredients = + { + {"science-pack-1", 1}, + {"science-pack-2", 1}, + {"science-pack-3", 1}, + {"alien-science-pack", 1}, + }, + time = 30 + }, + order = "e-a-d-g" + }, +} +) + + + + + + + + diff --git a/bobwarfare_0.14.0/prototypes/technology/armor.lua b/bobwarfare_0.14.1/prototypes/technology/armor.lua similarity index 94% rename from bobwarfare_0.14.0/prototypes/technology/armor.lua rename to bobwarfare_0.14.1/prototypes/technology/armor.lua index bbe3e4b..bc0dc34 100644 --- a/bobwarfare_0.14.0/prototypes/technology/armor.lua +++ b/bobwarfare_0.14.1/prototypes/technology/armor.lua @@ -1,156 +1,156 @@ -data:extend( -{ - { - type = "technology", - name = "bob-armor-making-3", - icon = "__base__/graphics/technology/armor-making.png", - prerequisites = - { - "armor-making-2", - }, - effects = - { - { - type = "unlock-recipe", - recipe = "heavy-armor-2" - } - }, - unit = - { - count = 150, - time = 30, - ingredients = - { - {"science-pack-1", 1}, - {"science-pack-2", 1}, - }, - }, - upgrade = "true", - order = "g-a-c" - }, - - { - type = "technology", - name = "bob-armor-making-4", - icon = "__base__/graphics/technology/armor-making.png", - prerequisites = - { - "bob-armor-making-3", - }, - effects = - { - { - type = "unlock-recipe", - recipe = "heavy-armor-3" - } - }, - unit = - { - count = 100, - time = 30, - ingredients = - { - {"science-pack-1", 1}, - {"science-pack-2", 1}, - {"science-pack-3", 1}, - }, - }, - upgrade = "true", - order = "g-a-d" - }, - - - { - type = "technology", - name = "bob-power-armor-3", - icon = "__bobwarfare__/graphics/icons/technology/power-armor-mk3.png", - prerequisites = - { - "power-armor-2", - }, - effects = - { - { - type = "unlock-recipe", - recipe = "bob-power-armor-mk3" - } - }, - unit = - { - count = 200, - ingredients = - { - {"science-pack-1", 1}, - {"science-pack-2", 1}, - {"science-pack-3", 1}, - {"alien-science-pack", 3}, - }, - time = 30 - }, - upgrade = "true", - order = "g-c-c" - }, - - { - type = "technology", - name = "bob-power-armor-4", - icon = "__bobwarfare__/graphics/icons/technology/power-armor-mk4.png", - prerequisites = - { - "bob-power-armor-3", - }, - effects = - { - { - type = "unlock-recipe", - recipe = "bob-power-armor-mk4" - } - }, - unit = - { - count = 250, - ingredients = - { - {"science-pack-1", 1}, - {"science-pack-2", 1}, - {"science-pack-3", 1}, - {"alien-science-pack", 3}, - }, - time = 30 - }, - upgrade = "true", - order = "g-c-d" - }, - { - type = "technology", - name = "bob-power-armor-5", - icon = "__bobwarfare__/graphics/icons/technology/power-armor-mk5.png", - prerequisites = - { - "bob-power-armor-4", - }, - effects = - { - { - type = "unlock-recipe", - recipe = "bob-power-armor-mk5" - } - }, - unit = - { - count = 300, - ingredients = - { - {"science-pack-1", 1}, - {"science-pack-2", 1}, - {"science-pack-3", 1}, - {"alien-science-pack", 3}, - }, - time = 30 - }, - upgrade = "true", - order = "g-c-e" - }, -} -) - +data:extend( +{ + { + type = "technology", + name = "bob-armor-making-3", + icon = "__base__/graphics/technology/armor-making.png", + prerequisites = + { + "armor-making-2", + }, + effects = + { + { + type = "unlock-recipe", + recipe = "heavy-armor-2" + } + }, + unit = + { + count = 150, + time = 30, + ingredients = + { + {"science-pack-1", 1}, + {"science-pack-2", 1}, + }, + }, + upgrade = "true", + order = "g-a-c" + }, + + { + type = "technology", + name = "bob-armor-making-4", + icon = "__base__/graphics/technology/armor-making.png", + prerequisites = + { + "bob-armor-making-3", + }, + effects = + { + { + type = "unlock-recipe", + recipe = "heavy-armor-3" + } + }, + unit = + { + count = 100, + time = 30, + ingredients = + { + {"science-pack-1", 1}, + {"science-pack-2", 1}, + {"science-pack-3", 1}, + }, + }, + upgrade = "true", + order = "g-a-d" + }, + + + { + type = "technology", + name = "bob-power-armor-3", + icon = "__bobwarfare__/graphics/icons/technology/power-armor-mk3.png", + prerequisites = + { + "power-armor-2", + }, + effects = + { + { + type = "unlock-recipe", + recipe = "bob-power-armor-mk3" + } + }, + unit = + { + count = 200, + ingredients = + { + {"science-pack-1", 1}, + {"science-pack-2", 1}, + {"science-pack-3", 1}, + {"alien-science-pack", 3}, + }, + time = 30 + }, + upgrade = "true", + order = "g-c-c" + }, + + { + type = "technology", + name = "bob-power-armor-4", + icon = "__bobwarfare__/graphics/icons/technology/power-armor-mk4.png", + prerequisites = + { + "bob-power-armor-3", + }, + effects = + { + { + type = "unlock-recipe", + recipe = "bob-power-armor-mk4" + } + }, + unit = + { + count = 250, + ingredients = + { + {"science-pack-1", 1}, + {"science-pack-2", 1}, + {"science-pack-3", 1}, + {"alien-science-pack", 3}, + }, + time = 30 + }, + upgrade = "true", + order = "g-c-d" + }, + { + type = "technology", + name = "bob-power-armor-5", + icon = "__bobwarfare__/graphics/icons/technology/power-armor-mk5.png", + prerequisites = + { + "bob-power-armor-4", + }, + effects = + { + { + type = "unlock-recipe", + recipe = "bob-power-armor-mk5" + } + }, + unit = + { + count = 300, + ingredients = + { + {"science-pack-1", 1}, + {"science-pack-2", 1}, + {"science-pack-3", 1}, + {"alien-science-pack", 3}, + }, + time = 30 + }, + upgrade = "true", + order = "g-c-e" + }, +} +) + diff --git a/bobwarfare_0.14.0/prototypes/technology/drone.lua b/bobwarfare_0.14.1/prototypes/technology/drone.lua similarity index 94% rename from bobwarfare_0.14.0/prototypes/technology/drone.lua rename to bobwarfare_0.14.1/prototypes/technology/drone.lua index be7bed1..9932d41 100644 --- a/bobwarfare_0.14.0/prototypes/technology/drone.lua +++ b/bobwarfare_0.14.1/prototypes/technology/drone.lua @@ -1,36 +1,36 @@ -data:extend( -{ - { - type = "technology", - name = "bob-robot-tanks", - icon = "__bobwarfare__/graphics/icons/technology/tanks.png", - prerequisites = - { - "robotics", - "tanks", - "laser-turrets", - "electric-engine", - }, - effects = - { - { - type = "unlock-recipe", - recipe = "bob-robot-tank" - }, - }, - unit = - { - count = 75, - ingredients = - { - {"science-pack-1", 1}, - {"science-pack-2", 1}, - {"science-pack-3", 1}, - }, - time = 30 - }, - order = "e-c-c-a" - }, -} -) - +data:extend( +{ + { + type = "technology", + name = "bob-robot-tanks", + icon = "__bobwarfare__/graphics/icons/technology/tanks.png", + prerequisites = + { + "robotics", + "tanks", + "laser-turrets", + "electric-engine", + }, + effects = + { + { + type = "unlock-recipe", + recipe = "bob-robot-tank" + }, + }, + unit = + { + count = 75, + ingredients = + { + {"science-pack-1", 1}, + {"science-pack-2", 1}, + {"science-pack-3", 1}, + }, + time = 30 + }, + order = "e-c-c-a" + }, +} +) + diff --git a/bobwarfare_0.14.0/prototypes/technology/equipment.lua b/bobwarfare_0.14.1/prototypes/technology/equipment.lua similarity index 95% rename from bobwarfare_0.14.0/prototypes/technology/equipment.lua rename to bobwarfare_0.14.1/prototypes/technology/equipment.lua index 6843e54..b49cf37 100644 --- a/bobwarfare_0.14.0/prototypes/technology/equipment.lua +++ b/bobwarfare_0.14.1/prototypes/technology/equipment.lua @@ -1,723 +1,723 @@ -data:extend( -{ - { - type = "technology", - name = "energy-shield-equipment-3", - icon = "__bobwarfare__/graphics/icons/technology/energy-shield-mk3-equipment.png", - upgrade = "true", - order = "g-e-c", - prerequisites = - { - "energy-shield-mk2-equipment", - "productivity-module-2", - }, - unit = - { - count = 150, - time = 30, - ingredients = - { - {"science-pack-1", 1}, - {"science-pack-2", 1}, - {"science-pack-3", 1}, - {"alien-science-pack", 1}, - }, - }, - effects = - { - { - type = "unlock-recipe", - recipe = "energy-shield-mk3-equipment" - } - }, - }, - - { - type = "technology", - name = "energy-shield-equipment-4", - icon = "__bobwarfare__/graphics/icons/technology/energy-shield-mk4-equipment.png", - upgrade = "true", - order = "g-e-d", - prerequisites = - { - "energy-shield-equipment-3" - }, - unit = - { - count = 200, - time = 45, - ingredients = - { - {"science-pack-1", 1}, - {"science-pack-2", 1}, - {"science-pack-3", 1}, - {"alien-science-pack", 1}, - }, - }, - effects = - { - { - type = "unlock-recipe", - recipe = "energy-shield-mk4-equipment" - } - }, - }, - - { - type = "technology", - name = "energy-shield-equipment-5", - icon = "__bobwarfare__/graphics/icons/technology/energy-shield-mk5-equipment.png", - upgrade = "true", - order = "g-e-e", - prerequisites = - { - "energy-shield-equipment-4" - }, - unit = - { - count = 250, - time = 45, - ingredients = - { - {"science-pack-1", 1}, - {"science-pack-2", 1}, - {"science-pack-3", 1}, - {"alien-science-pack", 1}, - }, - }, - effects = - { - { - type = "unlock-recipe", - recipe = "energy-shield-mk5-equipment" - } - }, - }, - - { - type = "technology", - name = "energy-shield-equipment-6", - icon = "__bobwarfare__/graphics/icons/technology/energy-shield-mk6-equipment.png", - upgrade = "true", - order = "g-e-f", - prerequisites = - { - "energy-shield-equipment-5" - }, - unit = - { - count = 300, - time = 45, - ingredients = - { - {"science-pack-1", 1}, - {"science-pack-2", 1}, - {"science-pack-3", 1}, - {"alien-science-pack", 1}, - }, - }, - effects = - { - { - type = "unlock-recipe", - recipe = "energy-shield-mk6-equipment" - } - }, - }, - - - { - type = "technology", - name = "battery-equipment-3", - icon = "__bobwarfare__/graphics/icons/technology/battery-mk3-equipment.png", - upgrade = "true", - order = "g-i-c", - prerequisites = - { - "battery-mk2-equipment", - }, - unit = - { - count = 150, - time = 30, - ingredients = - { - {"science-pack-1", 1}, - {"science-pack-2", 1}, - {"science-pack-3", 1}, - }, - }, - effects = - { - { - type = "unlock-recipe", - recipe = "battery-mk3-equipment" - } - }, - }, - - { - type = "technology", - name = "battery-equipment-4", - icon = "__bobwarfare__/graphics/icons/technology/battery-mk4-equipment.png", - upgrade = "true", - order = "g-i-d", - prerequisites = - { - "battery-equipment-3", - }, - unit = - { - count = 150, - time = 45, - ingredients = - { - {"science-pack-1", 1}, - {"science-pack-2", 1}, - {"science-pack-3", 1}, - {"alien-science-pack", 1}, - }, - }, - effects = - { - { - type = "unlock-recipe", - recipe = "battery-mk4-equipment" - } - }, - }, - - { - type = "technology", - name = "battery-equipment-5", - icon = "__bobwarfare__/graphics/icons/technology/battery-mk5-equipment.png", - upgrade = "true", - order = "g-i-e", - prerequisites = - { - "battery-equipment-4", - }, - unit = - { - count = 200, - time = 45, - ingredients = - { - {"science-pack-1", 1}, - {"science-pack-2", 1}, - {"science-pack-3", 1}, - {"alien-science-pack", 1}, - }, - }, - effects = - { - { - type = "unlock-recipe", - recipe = "battery-mk5-equipment" - } - }, - }, - - { - type = "technology", - name = "battery-equipment-6", - icon = "__bobwarfare__/graphics/icons/technology/battery-mk6-equipment.png", - upgrade = "true", - order = "g-i-f", - prerequisites = - { - "battery-equipment-5" - }, - unit = - { - count = 250, - time = 45, - ingredients = - { - {"science-pack-1", 1}, - {"science-pack-2", 1}, - {"science-pack-3", 1}, - {"alien-science-pack", 1}, - }, - }, - effects = - { - { - type = "unlock-recipe", - recipe = "battery-mk6-equipment" - } - }, - }, - - { - type = "technology", - name = "fusion-reactor-equipment-2", - icon = "__bobwarfare__/graphics/icons/technology/fusion-reactor-equipment-2.png", - upgrade = "true", - order = "g-l-b", - prerequisites = - { - "fusion-reactor-equipment", - }, - effects = - { - { - type = "unlock-recipe", - recipe = "fusion-reactor-equipment-2" - } - }, - unit = - { - count = 250, - time = 45, - ingredients = - { - {"science-pack-1", 1}, - {"science-pack-2", 1}, - {"science-pack-3", 1}, - {"alien-science-pack", 1}, - }, - }, - }, - - { - type = "technology", - name = "fusion-reactor-equipment-3", - icon = "__bobwarfare__/graphics/icons/technology/fusion-reactor-equipment-3.png", - upgrade = "true", - order = "g-l-c", - prerequisites = - { - "fusion-reactor-equipment-2" - }, - effects = - { - { - type = "unlock-recipe", - recipe = "fusion-reactor-equipment-3" - } - }, - unit = - { - count = 300, - time = 45, - ingredients = - { - {"science-pack-1", 1}, - {"science-pack-2", 1}, - {"science-pack-3", 1}, - {"alien-science-pack", 1}, - }, - }, - }, - - { - type = "technology", - name = "fusion-reactor-equipment-4", - icon = "__bobwarfare__/graphics/icons/technology/fusion-reactor-equipment-4.png", - upgrade = "true", - order = "g-l-d", - prerequisites = - { - "fusion-reactor-equipment-3" - }, - effects = - { - { - type = "unlock-recipe", - recipe = "fusion-reactor-equipment-4" - } - }, - unit = - { - count = 350, - time = 45, - ingredients = - { - {"science-pack-1", 1}, - {"science-pack-2", 1}, - {"science-pack-3", 1}, - {"alien-science-pack", 1}, - }, - }, - }, - - - { - type = "technology", - name = "night-vision-equipment-2", - icon = "__base__/graphics/technology/night-vision-equipment.png", - upgrade = "true", - order = "g-g-b", - prerequisites = - { - "night-vision-equipment", - "advanced-electronics-2", - }, - effects = - { - { - type = "unlock-recipe", - recipe = "night-vision-equipment-2" - } - }, - unit = - { - count = 50, - time = 30, - ingredients = - { - {"science-pack-1", 1}, - {"science-pack-2", 1}, - {"science-pack-3", 1}, - }, - }, - }, - - { - type = "technology", - name = "night-vision-equipment-3", - icon = "__base__/graphics/technology/night-vision-equipment.png", - upgrade = "true", - order = "g-g-c", - prerequisites = - { - "night-vision-equipment-2", - }, - effects = - { - { - type = "unlock-recipe", - recipe = "night-vision-equipment-3" - } - }, - unit = - { - count = 50, - time = 45, - ingredients = - { - {"science-pack-1", 1}, - {"science-pack-2", 1}, - {"science-pack-3", 1}, - {"alien-science-pack", 1}, - }, - }, - }, - - - { - type = "technology", - name = "solar-panel-equipment-2", - icon = "__bobwarfare__/graphics/icons/solar-panel-equipment-2.png", - upgrade = "true", - order = "g-k-b", - prerequisites = - { - "solar-panel-equipment", - }, - effects = - { - { - type = "unlock-recipe", - recipe = "solar-panel-equipment-2" - } - }, - unit = - { - count = 75, - time = 30, - ingredients = - { - {"science-pack-1", 1}, - {"science-pack-2", 1}, - }, - }, - }, - - { - type = "technology", - name = "solar-panel-equipment-3", - icon = "__bobwarfare__/graphics/icons/solar-panel-equipment-3.png", - upgrade = "true", - order = "g-k-c", - prerequisites = - { - "solar-panel-equipment-2", - "advanced-electronics-2", - }, - effects = - { - { - type = "unlock-recipe", - recipe = "solar-panel-equipment-3" - } - }, - unit = - { - count = 100, - time = 30, - ingredients = - { - {"science-pack-1", 1}, - {"science-pack-2", 1}, - {"science-pack-3", 1}, - }, - }, - }, - - { - type = "technology", - name = "solar-panel-equipment-4", - icon = "__bobwarfare__/graphics/icons/solar-panel-equipment-4.png", - upgrade = "true", - order = "g-k-d", - prerequisites = - { - "solar-panel-equipment-3", - }, - effects = - { - { - type = "unlock-recipe", - recipe = "solar-panel-equipment-4" - } - }, - unit = - { - count = 100, - time = 45, - ingredients = - { - {"science-pack-1", 1}, - {"science-pack-2", 1}, - {"science-pack-3", 1}, - {"alien-science-pack", 1}, - }, - }, - }, -} -) - - -data:extend( -{ - { - type = "technology", - name = "personal-laser-defense-equipment-2", - icon = "__bobwarfare__/graphics/icons/technology/personal-laser-defense-equipment-2.png", - order = "g-m-b", - upgrade = "true", - prerequisites = - { - "personal-laser-defense-equipment", - }, - effects = - { - { - type = "unlock-recipe", - recipe = "personal-laser-defense-equipment-2" - } - }, - unit = - { - count = 150, - time = 30, - ingredients = - { - {"science-pack-1", 1}, - {"science-pack-2", 1}, - {"science-pack-3", 1} - }, - }, - }, - - { - type = "technology", - name = "personal-laser-defense-equipment-3", - icon = "__bobwarfare__/graphics/icons/technology/personal-laser-defense-equipment-3.png", - order = "g-m-c", - upgrade = "true", - prerequisites = - { - "personal-laser-defense-equipment-2", - }, - effects = - { - { - type = "unlock-recipe", - recipe = "personal-laser-defense-equipment-3" - } - }, - unit = - { - count = 250, - time = 30, - ingredients = - { - {"science-pack-1", 1}, - {"science-pack-2", 1}, - {"science-pack-3", 1} - }, - }, - }, - - { - type = "technology", - name = "personal-laser-defense-equipment-4", - icon = "__bobwarfare__/graphics/icons/technology/personal-laser-defense-equipment-4.png", - order = "g-m-c", - upgrade = "true", - prerequisites = - { - "personal-laser-defense-equipment-3", - }, - effects = - { - { - type = "unlock-recipe", - recipe = "personal-laser-defense-equipment-4" - } - }, - unit = - { - count = 300, - time = 30, - ingredients = - { - {"science-pack-1", 1}, - {"science-pack-2", 1}, - {"science-pack-3", 1} - }, - }, - }, - - { - type = "technology", - name = "personal-laser-defense-equipment-5", - icon = "__bobwarfare__/graphics/icons/technology/personal-laser-defense-equipment-5.png", - order = "g-m-c", - upgrade = "true", - prerequisites = - { - "personal-laser-defense-equipment-4", - }, - effects = - { - { - type = "unlock-recipe", - recipe = "personal-laser-defense-equipment-5" - } - }, - unit = - { - count = 300, - time = 30, - ingredients = - { - {"science-pack-1", 1}, - {"science-pack-2", 1}, - {"science-pack-3", 1}, - {"alien-science-pack", 1}, - }, - }, - }, - - { - type = "technology", - name = "personal-laser-defense-equipment-6", - icon = "__bobwarfare__/graphics/icons/technology/personal-laser-defense-equipment-6.png", - order = "g-m-c", - upgrade = "true", - prerequisites = - { - "personal-laser-defense-equipment-5", - }, - effects = - { - { - type = "unlock-recipe", - recipe = "personal-laser-defense-equipment-6" - } - }, - unit = - { - count = 350, - time = 30, - ingredients = - { - {"science-pack-1", 1}, - {"science-pack-2", 1}, - {"science-pack-3", 1}, - {"alien-science-pack", 1}, - }, - }, - }, -} -) - - -data:extend( -{ - { - type = "technology", - name = "exoskeleton-equipment-2", - icon = "__base__/graphics/technology/exoskeleton-equipment.png", - order = "g-h-b", - upgrade = "true", - prerequisites = - { - "exoskeleton-equipment", - }, - effects = - { - { - type = "unlock-recipe", - recipe = "exoskeleton-equipment-2" - } - }, - unit = - { - count = 75, - time = 30, - ingredients = - { - {"science-pack-1", 1}, - {"science-pack-2", 1}, - {"science-pack-3", 1} - }, - }, - }, - { - type = "technology", - name = "exoskeleton-equipment-3", - icon = "__base__/graphics/technology/exoskeleton-equipment.png", - order = "g-h-c", - upgrade = "true", - prerequisites = - { - "exoskeleton-equipment-2", - }, - effects = - { - { - type = "unlock-recipe", - recipe = "exoskeleton-equipment-3" - } - }, - unit = - { - count = 100, - time = 30, - ingredients = - { - {"science-pack-1", 1}, - {"science-pack-2", 1}, - {"science-pack-3", 1}, - {"alien-science-pack", 1}, - }, - }, - }, -} -) - +data:extend( +{ + { + type = "technology", + name = "energy-shield-equipment-3", + icon = "__bobwarfare__/graphics/icons/technology/energy-shield-mk3-equipment.png", + upgrade = "true", + order = "g-e-c", + prerequisites = + { + "energy-shield-mk2-equipment", + "productivity-module-2", + }, + unit = + { + count = 150, + time = 30, + ingredients = + { + {"science-pack-1", 1}, + {"science-pack-2", 1}, + {"science-pack-3", 1}, + {"alien-science-pack", 1}, + }, + }, + effects = + { + { + type = "unlock-recipe", + recipe = "energy-shield-mk3-equipment" + } + }, + }, + + { + type = "technology", + name = "energy-shield-equipment-4", + icon = "__bobwarfare__/graphics/icons/technology/energy-shield-mk4-equipment.png", + upgrade = "true", + order = "g-e-d", + prerequisites = + { + "energy-shield-equipment-3" + }, + unit = + { + count = 200, + time = 45, + ingredients = + { + {"science-pack-1", 1}, + {"science-pack-2", 1}, + {"science-pack-3", 1}, + {"alien-science-pack", 1}, + }, + }, + effects = + { + { + type = "unlock-recipe", + recipe = "energy-shield-mk4-equipment" + } + }, + }, + + { + type = "technology", + name = "energy-shield-equipment-5", + icon = "__bobwarfare__/graphics/icons/technology/energy-shield-mk5-equipment.png", + upgrade = "true", + order = "g-e-e", + prerequisites = + { + "energy-shield-equipment-4" + }, + unit = + { + count = 250, + time = 45, + ingredients = + { + {"science-pack-1", 1}, + {"science-pack-2", 1}, + {"science-pack-3", 1}, + {"alien-science-pack", 1}, + }, + }, + effects = + { + { + type = "unlock-recipe", + recipe = "energy-shield-mk5-equipment" + } + }, + }, + + { + type = "technology", + name = "energy-shield-equipment-6", + icon = "__bobwarfare__/graphics/icons/technology/energy-shield-mk6-equipment.png", + upgrade = "true", + order = "g-e-f", + prerequisites = + { + "energy-shield-equipment-5" + }, + unit = + { + count = 300, + time = 45, + ingredients = + { + {"science-pack-1", 1}, + {"science-pack-2", 1}, + {"science-pack-3", 1}, + {"alien-science-pack", 1}, + }, + }, + effects = + { + { + type = "unlock-recipe", + recipe = "energy-shield-mk6-equipment" + } + }, + }, + + + { + type = "technology", + name = "battery-equipment-3", + icon = "__bobwarfare__/graphics/icons/technology/battery-mk3-equipment.png", + upgrade = "true", + order = "g-i-c", + prerequisites = + { + "battery-mk2-equipment", + }, + unit = + { + count = 150, + time = 30, + ingredients = + { + {"science-pack-1", 1}, + {"science-pack-2", 1}, + {"science-pack-3", 1}, + }, + }, + effects = + { + { + type = "unlock-recipe", + recipe = "battery-mk3-equipment" + } + }, + }, + + { + type = "technology", + name = "battery-equipment-4", + icon = "__bobwarfare__/graphics/icons/technology/battery-mk4-equipment.png", + upgrade = "true", + order = "g-i-d", + prerequisites = + { + "battery-equipment-3", + }, + unit = + { + count = 150, + time = 45, + ingredients = + { + {"science-pack-1", 1}, + {"science-pack-2", 1}, + {"science-pack-3", 1}, + {"alien-science-pack", 1}, + }, + }, + effects = + { + { + type = "unlock-recipe", + recipe = "battery-mk4-equipment" + } + }, + }, + + { + type = "technology", + name = "battery-equipment-5", + icon = "__bobwarfare__/graphics/icons/technology/battery-mk5-equipment.png", + upgrade = "true", + order = "g-i-e", + prerequisites = + { + "battery-equipment-4", + }, + unit = + { + count = 200, + time = 45, + ingredients = + { + {"science-pack-1", 1}, + {"science-pack-2", 1}, + {"science-pack-3", 1}, + {"alien-science-pack", 1}, + }, + }, + effects = + { + { + type = "unlock-recipe", + recipe = "battery-mk5-equipment" + } + }, + }, + + { + type = "technology", + name = "battery-equipment-6", + icon = "__bobwarfare__/graphics/icons/technology/battery-mk6-equipment.png", + upgrade = "true", + order = "g-i-f", + prerequisites = + { + "battery-equipment-5" + }, + unit = + { + count = 250, + time = 45, + ingredients = + { + {"science-pack-1", 1}, + {"science-pack-2", 1}, + {"science-pack-3", 1}, + {"alien-science-pack", 1}, + }, + }, + effects = + { + { + type = "unlock-recipe", + recipe = "battery-mk6-equipment" + } + }, + }, + + { + type = "technology", + name = "fusion-reactor-equipment-2", + icon = "__bobwarfare__/graphics/icons/technology/fusion-reactor-equipment-2.png", + upgrade = "true", + order = "g-l-b", + prerequisites = + { + "fusion-reactor-equipment", + }, + effects = + { + { + type = "unlock-recipe", + recipe = "fusion-reactor-equipment-2" + } + }, + unit = + { + count = 250, + time = 45, + ingredients = + { + {"science-pack-1", 1}, + {"science-pack-2", 1}, + {"science-pack-3", 1}, + {"alien-science-pack", 1}, + }, + }, + }, + + { + type = "technology", + name = "fusion-reactor-equipment-3", + icon = "__bobwarfare__/graphics/icons/technology/fusion-reactor-equipment-3.png", + upgrade = "true", + order = "g-l-c", + prerequisites = + { + "fusion-reactor-equipment-2" + }, + effects = + { + { + type = "unlock-recipe", + recipe = "fusion-reactor-equipment-3" + } + }, + unit = + { + count = 300, + time = 45, + ingredients = + { + {"science-pack-1", 1}, + {"science-pack-2", 1}, + {"science-pack-3", 1}, + {"alien-science-pack", 1}, + }, + }, + }, + + { + type = "technology", + name = "fusion-reactor-equipment-4", + icon = "__bobwarfare__/graphics/icons/technology/fusion-reactor-equipment-4.png", + upgrade = "true", + order = "g-l-d", + prerequisites = + { + "fusion-reactor-equipment-3" + }, + effects = + { + { + type = "unlock-recipe", + recipe = "fusion-reactor-equipment-4" + } + }, + unit = + { + count = 350, + time = 45, + ingredients = + { + {"science-pack-1", 1}, + {"science-pack-2", 1}, + {"science-pack-3", 1}, + {"alien-science-pack", 1}, + }, + }, + }, + + + { + type = "technology", + name = "night-vision-equipment-2", + icon = "__base__/graphics/technology/night-vision-equipment.png", + upgrade = "true", + order = "g-g-b", + prerequisites = + { + "night-vision-equipment", + "advanced-electronics-2", + }, + effects = + { + { + type = "unlock-recipe", + recipe = "night-vision-equipment-2" + } + }, + unit = + { + count = 50, + time = 30, + ingredients = + { + {"science-pack-1", 1}, + {"science-pack-2", 1}, + {"science-pack-3", 1}, + }, + }, + }, + + { + type = "technology", + name = "night-vision-equipment-3", + icon = "__base__/graphics/technology/night-vision-equipment.png", + upgrade = "true", + order = "g-g-c", + prerequisites = + { + "night-vision-equipment-2", + }, + effects = + { + { + type = "unlock-recipe", + recipe = "night-vision-equipment-3" + } + }, + unit = + { + count = 50, + time = 45, + ingredients = + { + {"science-pack-1", 1}, + {"science-pack-2", 1}, + {"science-pack-3", 1}, + {"alien-science-pack", 1}, + }, + }, + }, + + + { + type = "technology", + name = "solar-panel-equipment-2", + icon = "__bobwarfare__/graphics/icons/solar-panel-equipment-2.png", + upgrade = "true", + order = "g-k-b", + prerequisites = + { + "solar-panel-equipment", + }, + effects = + { + { + type = "unlock-recipe", + recipe = "solar-panel-equipment-2" + } + }, + unit = + { + count = 75, + time = 30, + ingredients = + { + {"science-pack-1", 1}, + {"science-pack-2", 1}, + }, + }, + }, + + { + type = "technology", + name = "solar-panel-equipment-3", + icon = "__bobwarfare__/graphics/icons/solar-panel-equipment-3.png", + upgrade = "true", + order = "g-k-c", + prerequisites = + { + "solar-panel-equipment-2", + "advanced-electronics-2", + }, + effects = + { + { + type = "unlock-recipe", + recipe = "solar-panel-equipment-3" + } + }, + unit = + { + count = 100, + time = 30, + ingredients = + { + {"science-pack-1", 1}, + {"science-pack-2", 1}, + {"science-pack-3", 1}, + }, + }, + }, + + { + type = "technology", + name = "solar-panel-equipment-4", + icon = "__bobwarfare__/graphics/icons/solar-panel-equipment-4.png", + upgrade = "true", + order = "g-k-d", + prerequisites = + { + "solar-panel-equipment-3", + }, + effects = + { + { + type = "unlock-recipe", + recipe = "solar-panel-equipment-4" + } + }, + unit = + { + count = 100, + time = 45, + ingredients = + { + {"science-pack-1", 1}, + {"science-pack-2", 1}, + {"science-pack-3", 1}, + {"alien-science-pack", 1}, + }, + }, + }, +} +) + + +data:extend( +{ + { + type = "technology", + name = "personal-laser-defense-equipment-2", + icon = "__bobwarfare__/graphics/icons/technology/personal-laser-defense-equipment-2.png", + order = "g-m-b", + upgrade = "true", + prerequisites = + { + "personal-laser-defense-equipment", + }, + effects = + { + { + type = "unlock-recipe", + recipe = "personal-laser-defense-equipment-2" + } + }, + unit = + { + count = 150, + time = 30, + ingredients = + { + {"science-pack-1", 1}, + {"science-pack-2", 1}, + {"science-pack-3", 1} + }, + }, + }, + + { + type = "technology", + name = "personal-laser-defense-equipment-3", + icon = "__bobwarfare__/graphics/icons/technology/personal-laser-defense-equipment-3.png", + order = "g-m-c", + upgrade = "true", + prerequisites = + { + "personal-laser-defense-equipment-2", + }, + effects = + { + { + type = "unlock-recipe", + recipe = "personal-laser-defense-equipment-3" + } + }, + unit = + { + count = 250, + time = 30, + ingredients = + { + {"science-pack-1", 1}, + {"science-pack-2", 1}, + {"science-pack-3", 1} + }, + }, + }, + + { + type = "technology", + name = "personal-laser-defense-equipment-4", + icon = "__bobwarfare__/graphics/icons/technology/personal-laser-defense-equipment-4.png", + order = "g-m-c", + upgrade = "true", + prerequisites = + { + "personal-laser-defense-equipment-3", + }, + effects = + { + { + type = "unlock-recipe", + recipe = "personal-laser-defense-equipment-4" + } + }, + unit = + { + count = 300, + time = 30, + ingredients = + { + {"science-pack-1", 1}, + {"science-pack-2", 1}, + {"science-pack-3", 1} + }, + }, + }, + + { + type = "technology", + name = "personal-laser-defense-equipment-5", + icon = "__bobwarfare__/graphics/icons/technology/personal-laser-defense-equipment-5.png", + order = "g-m-c", + upgrade = "true", + prerequisites = + { + "personal-laser-defense-equipment-4", + }, + effects = + { + { + type = "unlock-recipe", + recipe = "personal-laser-defense-equipment-5" + } + }, + unit = + { + count = 300, + time = 30, + ingredients = + { + {"science-pack-1", 1}, + {"science-pack-2", 1}, + {"science-pack-3", 1}, + {"alien-science-pack", 1}, + }, + }, + }, + + { + type = "technology", + name = "personal-laser-defense-equipment-6", + icon = "__bobwarfare__/graphics/icons/technology/personal-laser-defense-equipment-6.png", + order = "g-m-c", + upgrade = "true", + prerequisites = + { + "personal-laser-defense-equipment-5", + }, + effects = + { + { + type = "unlock-recipe", + recipe = "personal-laser-defense-equipment-6" + } + }, + unit = + { + count = 350, + time = 30, + ingredients = + { + {"science-pack-1", 1}, + {"science-pack-2", 1}, + {"science-pack-3", 1}, + {"alien-science-pack", 1}, + }, + }, + }, +} +) + + +data:extend( +{ + { + type = "technology", + name = "exoskeleton-equipment-2", + icon = "__base__/graphics/technology/exoskeleton-equipment.png", + order = "g-h-b", + upgrade = "true", + prerequisites = + { + "exoskeleton-equipment", + }, + effects = + { + { + type = "unlock-recipe", + recipe = "exoskeleton-equipment-2" + } + }, + unit = + { + count = 75, + time = 30, + ingredients = + { + {"science-pack-1", 1}, + {"science-pack-2", 1}, + {"science-pack-3", 1} + }, + }, + }, + { + type = "technology", + name = "exoskeleton-equipment-3", + icon = "__base__/graphics/technology/exoskeleton-equipment.png", + order = "g-h-c", + upgrade = "true", + prerequisites = + { + "exoskeleton-equipment-2", + }, + effects = + { + { + type = "unlock-recipe", + recipe = "exoskeleton-equipment-3" + } + }, + unit = + { + count = 100, + time = 30, + ingredients = + { + {"science-pack-1", 1}, + {"science-pack-2", 1}, + {"science-pack-3", 1}, + {"alien-science-pack", 1}, + }, + }, + }, +} +) + diff --git a/bobwarfare_0.14.0/prototypes/technology/gun.lua b/bobwarfare_0.14.1/prototypes/technology/gun.lua similarity index 94% rename from bobwarfare_0.14.0/prototypes/technology/gun.lua rename to bobwarfare_0.14.1/prototypes/technology/gun.lua index b1ece17..c8bdd43 100644 --- a/bobwarfare_0.14.0/prototypes/technology/gun.lua +++ b/bobwarfare_0.14.1/prototypes/technology/gun.lua @@ -1,42 +1,42 @@ -data:extend( -{ - { - type = "technology", - name = "bob-laser-rifle", - icon = "__bobwarfare__/graphics/icons/technology/laser-rifle.png", - prerequisites = - { - "military-3", - "laser", - "battery", - }, - effects = - { - { - type = "unlock-recipe", - recipe = "laser-rifle" - }, - { - type = "unlock-recipe", - recipe = "laser-rifle-battery" - }, - { - type = "unlock-recipe", - recipe = "laser-rifle-battery-case" - }, - }, - unit = - { - count = 50, - ingredients = - { - {"science-pack-1", 1}, - {"science-pack-2", 1}, - }, - time = 30 - }, - order = "e-a-c-a" - }, -} -) - +data:extend( +{ + { + type = "technology", + name = "bob-laser-rifle", + icon = "__bobwarfare__/graphics/icons/technology/laser-rifle.png", + prerequisites = + { + "military-3", + "laser", + "battery", + }, + effects = + { + { + type = "unlock-recipe", + recipe = "laser-rifle" + }, + { + type = "unlock-recipe", + recipe = "laser-rifle-battery" + }, + { + type = "unlock-recipe", + recipe = "laser-rifle-battery-case" + }, + }, + unit = + { + count = 50, + ingredients = + { + {"science-pack-1", 1}, + {"science-pack-2", 1}, + }, + time = 30 + }, + order = "e-a-c-a" + }, +} +) + diff --git a/bobwarfare_0.14.0/prototypes/technology/laser-rifle-upgrades.lua b/bobwarfare_0.14.1/prototypes/technology/laser-rifle-upgrades.lua similarity index 95% rename from bobwarfare_0.14.0/prototypes/technology/laser-rifle-upgrades.lua rename to bobwarfare_0.14.1/prototypes/technology/laser-rifle-upgrades.lua index 1aa8cfa..add69de 100644 --- a/bobwarfare_0.14.0/prototypes/technology/laser-rifle-upgrades.lua +++ b/bobwarfare_0.14.1/prototypes/technology/laser-rifle-upgrades.lua @@ -1,325 +1,325 @@ -data:extend( -{ - { - type = "technology", - name = "bob-laser-rifle-damage-1", - icon = "__bobwarfare__/graphics/icons/technology/laser-rifle-damage.png", - effects = - { - { - type = "ammo-damage", - ammo_category = "laser-rifle", - modifier = "0.1" - } - }, - prerequisites = {"bob-laser-rifle"}, - unit = - { - count = 50, - ingredients = - { - {"science-pack-1", 1}, - {"science-pack-2", 1} - }, - time = 30 - }, - upgrade = "true", - order = "e-n-a" - }, - { - type = "technology", - name = "bob-laser-rifle-damage-2", - icon = "__bobwarfare__/graphics/icons/technology/laser-rifle-damage.png", - effects = - { - { - type = "ammo-damage", - ammo_category = "laser-rifle", - modifier = "0.1" - } - }, - prerequisites = {"bob-laser-rifle-damage-1"}, - unit = - { - count = 100, - ingredients = - { - {"science-pack-1", 1}, - {"science-pack-2", 1} - }, - time = 30 - }, - upgrade = "true", - order = "e-n-b" - }, - { - type = "technology", - name = "bob-laser-rifle-damage-3", - icon = "__bobwarfare__/graphics/icons/technology/laser-rifle-damage.png", - effects = - { - { - type = "ammo-damage", - ammo_category = "laser-rifle", - modifier = "0.2" - } - }, - prerequisites = {"bob-laser-rifle-damage-2"}, - unit = - { - count = 200, - ingredients = - { - {"science-pack-1", 1}, - {"science-pack-2", 1} - }, - time = 60 - }, - upgrade = "true", - order = "e-n-c" - }, - { - type = "technology", - name = "bob-laser-rifle-damage-4", - icon = "__bobwarfare__/graphics/icons/technology/laser-rifle-damage.png", - effects = - { - { - type = "ammo-damage", - ammo_category = "laser-rifle", - modifier = "0.2" - } - }, - prerequisites = {"bob-laser-rifle-damage-3"}, - unit = - { - count = 100, - ingredients = - { - {"science-pack-1", 1}, - {"science-pack-2", 1}, - {"science-pack-3", 1}, - }, - time = 60 - }, - upgrade = "true", - order = "e-n-d" - }, - { - type = "technology", - name = "bob-laser-rifle-damage-5", - icon = "__bobwarfare__/graphics/icons/technology/laser-rifle-damage.png", - effects = - { - { - type = "ammo-damage", - ammo_category = "laser-rifle", - modifier = "0.2" - } - }, - prerequisites = {"bob-laser-rifle-damage-4"}, - unit = - { - count = 200, - ingredients = - { - {"science-pack-1", 1}, - {"science-pack-2", 1}, - {"science-pack-3", 1}, - {"alien-science-pack", 1}, - }, - time = 60 - }, - upgrade = "true", - order = "e-n-e" - }, - { - type = "technology", - name = "bob-laser-rifle-damage-6", - icon = "__bobwarfare__/graphics/icons/technology/laser-rifle-damage.png", - effects = - { - { - type = "ammo-damage", - ammo_category = "laser-rifle", - modifier = "0.4" - } - }, - prerequisites = {"bob-laser-rifle-damage-5"}, - unit = - { - count = 300, - ingredients = - { - {"alien-science-pack", 1}, - {"science-pack-1", 1}, - {"science-pack-2", 1}, - {"science-pack-3", 1} - }, - time = 60 - }, - upgrade = "true", - order = "e-n-f" - }, - { - type = "technology", - name = "bob-laser-rifle-speed-1", - icon = "__bobwarfare__/graphics/icons/technology/laser-rifle.png", - effects = - { - { - type = "gun-speed", - ammo_category = "laser-rifle", - modifier = "0.2" - } - }, - prerequisites = {"bob-laser-rifle"}, - unit = - { - count = 50, - ingredients = - { - {"science-pack-1", 1} - }, - time = 30 - }, - upgrade = "true", - order = "e-n-g" - }, - { - type = "technology", - name = "bob-laser-rifle-speed-2", - icon = "__bobwarfare__/graphics/icons/technology/laser-rifle.png", - effects = - { - { - type = "gun-speed", - ammo_category = "laser-rifle", - modifier = "0.2" - } - }, - prerequisites = {"bob-laser-rifle-speed-1"}, - unit = - { - count = 100, - ingredients = - { - {"science-pack-1", 1}, - {"science-pack-2", 1} - }, - time = 30 - }, - upgrade = "true", - order = "e-n-h" - }, - { - type = "technology", - name = "bob-laser-rifle-speed-3", - icon = "__bobwarfare__/graphics/icons/technology/laser-rifle.png", - effects = - { - { - type = "gun-speed", - ammo_category = "laser-rifle", - modifier = "0.3" - } - }, - prerequisites = {"bob-laser-rifle-speed-2"}, - unit = - { - count = 200, - ingredients = - { - {"science-pack-1", 1}, - {"science-pack-2", 1} - }, - time = 60 - }, - upgrade = "true", - order = "e-n-i" - }, - { - type = "technology", - name = "bob-laser-rifle-speed-4", - icon = "__bobwarfare__/graphics/icons/technology/laser-rifle.png", - effects = - { - { - type = "gun-speed", - ammo_category = "laser-rifle", - modifier = "0.3" - } - }, - prerequisites = {"bob-laser-rifle-speed-3"}, - unit = - { - count = 200, - ingredients = - { - {"science-pack-1", 1}, - {"science-pack-2", 1}, - {"science-pack-3", 1}, - }, - time = 60 - }, - upgrade = "true", - order = "e-n-j" - }, - { - type = "technology", - name = "bob-laser-rifle-speed-5", - icon = "__bobwarfare__/graphics/icons/technology/laser-rifle.png", - effects = - { - { - type = "gun-speed", - ammo_category = "laser-rifle", - modifier = "0.3" - } - }, - prerequisites = {"bob-laser-rifle-speed-4"}, - unit = - { - count = 200, - ingredients = - { - {"science-pack-1", 1}, - {"science-pack-2", 1}, - {"science-pack-3", 1}, - {"alien-science-pack", 1}, - }, - time = 60 - }, - upgrade = "true", - order = "e-n-k" - }, - { - type = "technology", - name = "bob-laser-rifle-speed-6", - icon = "__bobwarfare__/graphics/icons/technology/laser-rifle.png", - effects = - { - { - type = "gun-speed", - ammo_category = "laser-rifle", - modifier = "0.3" - } - }, - prerequisites = {"bob-laser-rifle-speed-5"}, - unit = - { - count = 300, - ingredients = - { - {"alien-science-pack", 1}, - {"science-pack-1", 1}, - {"science-pack-2", 1}, - {"science-pack-3", 1} - }, - time = 60 - }, - upgrade = "true", - order = "e-n-l" - } -} -) +data:extend( +{ + { + type = "technology", + name = "bob-laser-rifle-damage-1", + icon = "__bobwarfare__/graphics/icons/technology/laser-rifle-damage.png", + effects = + { + { + type = "ammo-damage", + ammo_category = "laser-rifle", + modifier = "0.1" + } + }, + prerequisites = {"bob-laser-rifle"}, + unit = + { + count = 50, + ingredients = + { + {"science-pack-1", 1}, + {"science-pack-2", 1} + }, + time = 30 + }, + upgrade = "true", + order = "e-n-a" + }, + { + type = "technology", + name = "bob-laser-rifle-damage-2", + icon = "__bobwarfare__/graphics/icons/technology/laser-rifle-damage.png", + effects = + { + { + type = "ammo-damage", + ammo_category = "laser-rifle", + modifier = "0.1" + } + }, + prerequisites = {"bob-laser-rifle-damage-1"}, + unit = + { + count = 100, + ingredients = + { + {"science-pack-1", 1}, + {"science-pack-2", 1} + }, + time = 30 + }, + upgrade = "true", + order = "e-n-b" + }, + { + type = "technology", + name = "bob-laser-rifle-damage-3", + icon = "__bobwarfare__/graphics/icons/technology/laser-rifle-damage.png", + effects = + { + { + type = "ammo-damage", + ammo_category = "laser-rifle", + modifier = "0.2" + } + }, + prerequisites = {"bob-laser-rifle-damage-2"}, + unit = + { + count = 200, + ingredients = + { + {"science-pack-1", 1}, + {"science-pack-2", 1} + }, + time = 60 + }, + upgrade = "true", + order = "e-n-c" + }, + { + type = "technology", + name = "bob-laser-rifle-damage-4", + icon = "__bobwarfare__/graphics/icons/technology/laser-rifle-damage.png", + effects = + { + { + type = "ammo-damage", + ammo_category = "laser-rifle", + modifier = "0.2" + } + }, + prerequisites = {"bob-laser-rifle-damage-3"}, + unit = + { + count = 100, + ingredients = + { + {"science-pack-1", 1}, + {"science-pack-2", 1}, + {"science-pack-3", 1}, + }, + time = 60 + }, + upgrade = "true", + order = "e-n-d" + }, + { + type = "technology", + name = "bob-laser-rifle-damage-5", + icon = "__bobwarfare__/graphics/icons/technology/laser-rifle-damage.png", + effects = + { + { + type = "ammo-damage", + ammo_category = "laser-rifle", + modifier = "0.2" + } + }, + prerequisites = {"bob-laser-rifle-damage-4"}, + unit = + { + count = 200, + ingredients = + { + {"science-pack-1", 1}, + {"science-pack-2", 1}, + {"science-pack-3", 1}, + {"alien-science-pack", 1}, + }, + time = 60 + }, + upgrade = "true", + order = "e-n-e" + }, + { + type = "technology", + name = "bob-laser-rifle-damage-6", + icon = "__bobwarfare__/graphics/icons/technology/laser-rifle-damage.png", + effects = + { + { + type = "ammo-damage", + ammo_category = "laser-rifle", + modifier = "0.4" + } + }, + prerequisites = {"bob-laser-rifle-damage-5"}, + unit = + { + count = 300, + ingredients = + { + {"alien-science-pack", 1}, + {"science-pack-1", 1}, + {"science-pack-2", 1}, + {"science-pack-3", 1} + }, + time = 60 + }, + upgrade = "true", + order = "e-n-f" + }, + { + type = "technology", + name = "bob-laser-rifle-speed-1", + icon = "__bobwarfare__/graphics/icons/technology/laser-rifle.png", + effects = + { + { + type = "gun-speed", + ammo_category = "laser-rifle", + modifier = "0.2" + } + }, + prerequisites = {"bob-laser-rifle"}, + unit = + { + count = 50, + ingredients = + { + {"science-pack-1", 1} + }, + time = 30 + }, + upgrade = "true", + order = "e-n-g" + }, + { + type = "technology", + name = "bob-laser-rifle-speed-2", + icon = "__bobwarfare__/graphics/icons/technology/laser-rifle.png", + effects = + { + { + type = "gun-speed", + ammo_category = "laser-rifle", + modifier = "0.2" + } + }, + prerequisites = {"bob-laser-rifle-speed-1"}, + unit = + { + count = 100, + ingredients = + { + {"science-pack-1", 1}, + {"science-pack-2", 1} + }, + time = 30 + }, + upgrade = "true", + order = "e-n-h" + }, + { + type = "technology", + name = "bob-laser-rifle-speed-3", + icon = "__bobwarfare__/graphics/icons/technology/laser-rifle.png", + effects = + { + { + type = "gun-speed", + ammo_category = "laser-rifle", + modifier = "0.3" + } + }, + prerequisites = {"bob-laser-rifle-speed-2"}, + unit = + { + count = 200, + ingredients = + { + {"science-pack-1", 1}, + {"science-pack-2", 1} + }, + time = 60 + }, + upgrade = "true", + order = "e-n-i" + }, + { + type = "technology", + name = "bob-laser-rifle-speed-4", + icon = "__bobwarfare__/graphics/icons/technology/laser-rifle.png", + effects = + { + { + type = "gun-speed", + ammo_category = "laser-rifle", + modifier = "0.3" + } + }, + prerequisites = {"bob-laser-rifle-speed-3"}, + unit = + { + count = 200, + ingredients = + { + {"science-pack-1", 1}, + {"science-pack-2", 1}, + {"science-pack-3", 1}, + }, + time = 60 + }, + upgrade = "true", + order = "e-n-j" + }, + { + type = "technology", + name = "bob-laser-rifle-speed-5", + icon = "__bobwarfare__/graphics/icons/technology/laser-rifle.png", + effects = + { + { + type = "gun-speed", + ammo_category = "laser-rifle", + modifier = "0.3" + } + }, + prerequisites = {"bob-laser-rifle-speed-4"}, + unit = + { + count = 200, + ingredients = + { + {"science-pack-1", 1}, + {"science-pack-2", 1}, + {"science-pack-3", 1}, + {"alien-science-pack", 1}, + }, + time = 60 + }, + upgrade = "true", + order = "e-n-k" + }, + { + type = "technology", + name = "bob-laser-rifle-speed-6", + icon = "__bobwarfare__/graphics/icons/technology/laser-rifle.png", + effects = + { + { + type = "gun-speed", + ammo_category = "laser-rifle", + modifier = "0.3" + } + }, + prerequisites = {"bob-laser-rifle-speed-5"}, + unit = + { + count = 300, + ingredients = + { + {"alien-science-pack", 1}, + {"science-pack-1", 1}, + {"science-pack-2", 1}, + {"science-pack-3", 1} + }, + time = 60 + }, + upgrade = "true", + order = "e-n-l" + } +} +) diff --git a/bobwarfare_0.14.0/prototypes/technology/mine.lua b/bobwarfare_0.14.1/prototypes/technology/mine.lua similarity index 94% rename from bobwarfare_0.14.0/prototypes/technology/mine.lua rename to bobwarfare_0.14.1/prototypes/technology/mine.lua index 791da43..37d2340 100644 --- a/bobwarfare_0.14.0/prototypes/technology/mine.lua +++ b/bobwarfare_0.14.1/prototypes/technology/mine.lua @@ -1,96 +1,96 @@ -data:extend( -{ - { - type = "technology", - name = "poison-mine", - icon = "__base__/graphics/technology/land-mine.png", - prerequisites = - { - "land-mine", - "military-3" - }, - effects = - { - { - type = "unlock-recipe", - recipe = "poison-mine" - }, - }, - unit = - { - count = 100, - ingredients = - { - {"science-pack-1", 1}, - {"science-pack-2", 1}, - {"science-pack-3", 1}, - }, - time = 30 - }, - order = "e-e-a" - }, - - { - type = "technology", - name = "slowdown-mine", - icon = "__base__/graphics/technology/land-mine.png", - prerequisites = - { - "land-mine", - "military-3" - }, - effects = - { - { - type = "unlock-recipe", - recipe = "slowdown-mine" - }, - }, - unit = - { - count = 100, - ingredients = - { - {"science-pack-1", 1}, - {"science-pack-2", 1}, - {"science-pack-3", 1}, - }, - time = 30 - }, - order = "e-e-b" - }, - - { - type = "technology", - name = "distractor-mine", - icon = "__base__/graphics/technology/land-mine.png", - prerequisites = - { - "land-mine", - "combat-robotics-2" - }, - effects = - { - { - type = "unlock-recipe", - recipe = "distractor-mine" - }, - }, - unit = - { - count = 100, - ingredients = - { - {"science-pack-1", 1}, - {"science-pack-2", 1}, - {"science-pack-3", 1}, - }, - time = 30 - }, - order = "e-e-c" - }, -} -) - - - +data:extend( +{ + { + type = "technology", + name = "poison-mine", + icon = "__base__/graphics/technology/land-mine.png", + prerequisites = + { + "land-mine", + "military-3" + }, + effects = + { + { + type = "unlock-recipe", + recipe = "poison-mine" + }, + }, + unit = + { + count = 100, + ingredients = + { + {"science-pack-1", 1}, + {"science-pack-2", 1}, + {"science-pack-3", 1}, + }, + time = 30 + }, + order = "e-e-a" + }, + + { + type = "technology", + name = "slowdown-mine", + icon = "__base__/graphics/technology/land-mine.png", + prerequisites = + { + "land-mine", + "military-3" + }, + effects = + { + { + type = "unlock-recipe", + recipe = "slowdown-mine" + }, + }, + unit = + { + count = 100, + ingredients = + { + {"science-pack-1", 1}, + {"science-pack-2", 1}, + {"science-pack-3", 1}, + }, + time = 30 + }, + order = "e-e-b" + }, + + { + type = "technology", + name = "distractor-mine", + icon = "__base__/graphics/technology/land-mine.png", + prerequisites = + { + "land-mine", + "combat-robotics-2" + }, + effects = + { + { + type = "unlock-recipe", + recipe = "distractor-mine" + }, + }, + unit = + { + count = 100, + ingredients = + { + {"science-pack-1", 1}, + {"science-pack-2", 1}, + {"science-pack-3", 1}, + }, + time = 30 + }, + order = "e-e-c" + }, +} +) + + + diff --git a/bobwarfare_0.14.0/prototypes/technology/radar.lua b/bobwarfare_0.14.1/prototypes/technology/radar.lua similarity index 94% rename from bobwarfare_0.14.0/prototypes/technology/radar.lua rename to bobwarfare_0.14.1/prototypes/technology/radar.lua index d910a19..7fe6dba 100644 --- a/bobwarfare_0.14.0/prototypes/technology/radar.lua +++ b/bobwarfare_0.14.1/prototypes/technology/radar.lua @@ -1,133 +1,133 @@ -data:extend( -{ - { - type = "technology", - name = "radars", - icon = "__bobwarfare__/graphics/icons/technology/radars.png", - icon_size = 128, - prerequisites = - { - "military", - "steel-processing", - "electronics" - }, - effects = - { - { - type = "unlock-recipe", - recipe = "radar-2" - }, - }, - unit = - { - count = 25, - ingredients = - { - {"science-pack-1", 1}, - }, - time = 30 - }, - order = "e-b-a", - upgrade = "true", - }, - - { - type = "technology", - name = "radars-2", - icon = "__bobwarfare__/graphics/icons/technology/radars.png", - icon_size = 128, - prerequisites = - { - "radars", - "military-2", - "advanced-electronics" - }, - effects = - { - { - type = "unlock-recipe", - recipe = "radar-3" - }, - }, - unit = - { - count = 50, - ingredients = - { - {"science-pack-1", 1}, - {"science-pack-2", 1}, - }, - time = 30 - }, - order = "e-b-b", - upgrade = "true", - }, - - { - type = "technology", - name = "radars-3", - icon = "__bobwarfare__/graphics/icons/technology/radars.png", - icon_size = 128, - prerequisites = - { - "radars-2", - "military-3", - "advanced-electronics-2" - }, - effects = - { - { - type = "unlock-recipe", - recipe = "radar-4" - }, - }, - unit = - { - count = 75, - ingredients = - { - {"science-pack-1", 1}, - {"science-pack-2", 1}, - {"science-pack-3", 1} - }, - time = 30 - }, - order = "e-b-c", - upgrade = "true", - }, - - { - type = "technology", - name = "radars-4", - icon = "__bobwarfare__/graphics/icons/technology/radars.png", - icon_size = 128, - prerequisites = - { - "radars-3", - "military-4", - }, - effects = - { - { - type = "unlock-recipe", - recipe = "radar-5" - }, - }, - unit = - { - count = 100, - ingredients = - { - {"science-pack-1", 1}, - {"science-pack-2", 1}, - {"science-pack-3", 1}, - {"alien-science-pack", 1} - }, - time = 30 - }, - order = "e-b-d", - upgrade = "true", - }, -} -) - +data:extend( +{ + { + type = "technology", + name = "radars", + icon = "__bobwarfare__/graphics/icons/technology/radars.png", + icon_size = 128, + prerequisites = + { + "military", + "steel-processing", + "electronics" + }, + effects = + { + { + type = "unlock-recipe", + recipe = "radar-2" + }, + }, + unit = + { + count = 25, + ingredients = + { + {"science-pack-1", 1}, + }, + time = 30 + }, + order = "e-b-a", + upgrade = "true", + }, + + { + type = "technology", + name = "radars-2", + icon = "__bobwarfare__/graphics/icons/technology/radars.png", + icon_size = 128, + prerequisites = + { + "radars", + "military-2", + "advanced-electronics" + }, + effects = + { + { + type = "unlock-recipe", + recipe = "radar-3" + }, + }, + unit = + { + count = 50, + ingredients = + { + {"science-pack-1", 1}, + {"science-pack-2", 1}, + }, + time = 30 + }, + order = "e-b-b", + upgrade = "true", + }, + + { + type = "technology", + name = "radars-3", + icon = "__bobwarfare__/graphics/icons/technology/radars.png", + icon_size = 128, + prerequisites = + { + "radars-2", + "military-3", + "advanced-electronics-2" + }, + effects = + { + { + type = "unlock-recipe", + recipe = "radar-4" + }, + }, + unit = + { + count = 75, + ingredients = + { + {"science-pack-1", 1}, + {"science-pack-2", 1}, + {"science-pack-3", 1} + }, + time = 30 + }, + order = "e-b-c", + upgrade = "true", + }, + + { + type = "technology", + name = "radars-4", + icon = "__bobwarfare__/graphics/icons/technology/radars.png", + icon_size = 128, + prerequisites = + { + "radars-3", + "military-4", + }, + effects = + { + { + type = "unlock-recipe", + recipe = "radar-5" + }, + }, + unit = + { + count = 100, + ingredients = + { + {"science-pack-1", 1}, + {"science-pack-2", 1}, + {"science-pack-3", 1}, + {"alien-science-pack", 1} + }, + time = 30 + }, + order = "e-b-d", + upgrade = "true", + }, +} +) + diff --git a/bobwarfare_0.14.0/prototypes/technology/rocket-upgrades.lua b/bobwarfare_0.14.1/prototypes/technology/rocket-upgrades.lua similarity index 94% rename from bobwarfare_0.14.0/prototypes/technology/rocket-upgrades.lua rename to bobwarfare_0.14.1/prototypes/technology/rocket-upgrades.lua index d9523c2..3aae74f 100644 --- a/bobwarfare_0.14.0/prototypes/technology/rocket-upgrades.lua +++ b/bobwarfare_0.14.1/prototypes/technology/rocket-upgrades.lua @@ -1,60 +1,60 @@ -data:extend( -{ - { - type = "technology", - name = "rocket-damage-6", - icon = "__base__/graphics/technology/rocket-damage.png", - effects = - { - { - type = "ammo-damage", - ammo_category = "rocket", - modifier = "0.4" - } - }, - prerequisites = {"rocket-damage-5"}, - unit = - { - count = 300, - ingredients = - { - {"alien-science-pack", 1}, - {"science-pack-1", 1}, - {"science-pack-2", 1}, - {"science-pack-3", 1} - }, - time = 60 - }, - upgrade = "true", - order = "e-j-f" - }, - { - type = "technology", - name = "rocket-speed-6", - icon = "__base__/graphics/technology/rocket-speed.png", - effects = - { - { - type = "gun-speed", - ammo_category = "rocket", - modifier = "0.3" - } - }, - prerequisites = {"rocket-speed-5"}, - unit = - { - count = 300, - ingredients = - { - {"alien-science-pack", 1}, - {"science-pack-1", 1}, - {"science-pack-2", 1}, - {"science-pack-3", 1} - }, - time = 60 - }, - upgrade = "true", - order = "e-j-k" - } -} -) +data:extend( +{ + { + type = "technology", + name = "rocket-damage-6", + icon = "__base__/graphics/technology/rocket-damage.png", + effects = + { + { + type = "ammo-damage", + ammo_category = "rocket", + modifier = "0.4" + } + }, + prerequisites = {"rocket-damage-5"}, + unit = + { + count = 300, + ingredients = + { + {"alien-science-pack", 1}, + {"science-pack-1", 1}, + {"science-pack-2", 1}, + {"science-pack-3", 1} + }, + time = 60 + }, + upgrade = "true", + order = "e-j-f" + }, + { + type = "technology", + name = "rocket-speed-6", + icon = "__base__/graphics/technology/rocket-speed.png", + effects = + { + { + type = "gun-speed", + ammo_category = "rocket", + modifier = "0.3" + } + }, + prerequisites = {"rocket-speed-5"}, + unit = + { + count = 300, + ingredients = + { + {"alien-science-pack", 1}, + {"science-pack-1", 1}, + {"science-pack-2", 1}, + {"science-pack-3", 1} + }, + time = 60 + }, + upgrade = "true", + order = "e-j-k" + } +} +) diff --git a/bobwarfare_0.14.0/prototypes/technology/sniper-turret-upgrades.lua b/bobwarfare_0.14.1/prototypes/technology/sniper-turret-upgrades.lua similarity index 95% rename from bobwarfare_0.14.0/prototypes/technology/sniper-turret-upgrades.lua rename to bobwarfare_0.14.1/prototypes/technology/sniper-turret-upgrades.lua index 1a99acc..ea769d3 100644 --- a/bobwarfare_0.14.0/prototypes/technology/sniper-turret-upgrades.lua +++ b/bobwarfare_0.14.1/prototypes/technology/sniper-turret-upgrades.lua @@ -1,225 +1,225 @@ -data:extend( -{ - { - type = "technology", - name = "bob-sniper-turret-damage-1", - icon = "__base__/graphics/technology/gun-turret-damage.png", - effects = - { - { - type = "turret-attack", - turret_id = "bob-sniper-turret-1", - modifier = "0.1" - }, - { - type = "turret-attack", - turret_id = "bob-sniper-turret-2", - modifier = "0.1" - }, - { - type = "turret-attack", - turret_id = "bob-sniper-turret-3", - modifier = "0.1" - }, - }, - prerequisites = {"bob-sniper-turrets-1"}, - unit = - { - count = 50, - ingredients = - { - {"science-pack-1", 1}, - {"science-pack-2", 1} - }, - time = 30 - }, - upgrade = true, - order = "e-o-a" - }, - { - type = "technology", - name = "bob-sniper-turret-damage-2", - icon = "__base__/graphics/technology/gun-turret-damage.png", - effects = - { - { - type = "turret-attack", - turret_id = "bob-sniper-turret-1", - modifier = "0.1" - }, - { - type = "turret-attack", - turret_id = "bob-sniper-turret-2", - modifier = "0.1" - }, - { - type = "turret-attack", - turret_id = "bob-sniper-turret-3", - modifier = "0.1" - }, - }, - prerequisites = {"bob-sniper-turret-damage-1"}, - unit = - { - count = 100, - ingredients = - { - {"science-pack-1", 1}, - {"science-pack-2", 1} - }, - time = 30 - }, - upgrade = true, - order = "e-o-b" - }, - { - type = "technology", - name = "bob-sniper-turret-damage-3", - icon = "__base__/graphics/technology/gun-turret-damage.png", - effects = - { - { - type = "turret-attack", - turret_id = "bob-sniper-turret-1", - modifier = "0.2" - }, - { - type = "turret-attack", - turret_id = "bob-sniper-turret-2", - modifier = "0.2" - }, - { - type = "turret-attack", - turret_id = "bob-sniper-turret-3", - modifier = "0.2" - }, - }, - prerequisites = {"bob-sniper-turret-damage-2"}, - unit = - { - count = 200, - ingredients = - { - {"science-pack-1", 1}, - {"science-pack-2", 1} - }, - time = 60 - }, - upgrade = true, - order = "e-o-c" - }, - { - type = "technology", - name = "bob-sniper-turret-damage-4", - icon = "__base__/graphics/technology/gun-turret-damage.png", - effects = - { - { - type = "turret-attack", - turret_id = "bob-sniper-turret-1", - modifier = "0.2" - }, - { - type = "turret-attack", - turret_id = "bob-sniper-turret-2", - modifier = "0.2" - }, - { - type = "turret-attack", - turret_id = "bob-sniper-turret-3", - modifier = "0.2" - }, - }, - prerequisites = {"bob-sniper-turret-damage-3"}, - unit = - { - count = 100, - ingredients = - { - {"science-pack-1", 1}, - {"science-pack-2", 1}, - {"science-pack-3", 1}, - }, - time = 60 - }, - upgrade = true, - order = "e-o-d" - }, - { - type = "technology", - name = "bob-sniper-turret-damage-5", - icon = "__base__/graphics/technology/gun-turret-damage.png", - effects = - { - { - type = "turret-attack", - turret_id = "bob-sniper-turret-1", - modifier = "0.2" - }, - { - type = "turret-attack", - turret_id = "bob-sniper-turret-2", - modifier = "0.2" - }, - { - type = "turret-attack", - turret_id = "bob-sniper-turret-3", - modifier = "0.2" - }, - }, - prerequisites = {"bob-sniper-turret-damage-4"}, - unit = - { - count = 200, - ingredients = - { - {"science-pack-1", 1}, - {"science-pack-2", 1}, - {"science-pack-3", 1}, - {"alien-science-pack", 1}, - }, - time = 60 - }, - upgrade = true, - order = "e-o-e" - }, - { - type = "technology", - name = "bob-sniper-turret-damage-6", - icon = "__base__/graphics/technology/gun-turret-damage.png", - effects = - { - { - type = "turret-attack", - turret_id = "bob-sniper-turret-1", - modifier = "0.4" - }, - { - type = "turret-attack", - turret_id = "bob-sniper-turret-2", - modifier = "0.4" - }, - { - type = "turret-attack", - turret_id = "bob-sniper-turret-3", - modifier = "0.4" - }, - }, - prerequisites = {"bob-sniper-turret-damage-5"}, - unit = - { - count = 300, - ingredients = - { - {"alien-science-pack", 1}, - {"science-pack-1", 1}, - {"science-pack-2", 1}, - {"science-pack-3", 1} - }, - time = 60 - }, - upgrade = true, - order = "e-o-f" - } -} -) +data:extend( +{ + { + type = "technology", + name = "bob-sniper-turret-damage-1", + icon = "__base__/graphics/technology/gun-turret-damage.png", + effects = + { + { + type = "turret-attack", + turret_id = "bob-sniper-turret-1", + modifier = "0.1" + }, + { + type = "turret-attack", + turret_id = "bob-sniper-turret-2", + modifier = "0.1" + }, + { + type = "turret-attack", + turret_id = "bob-sniper-turret-3", + modifier = "0.1" + }, + }, + prerequisites = {"bob-sniper-turrets-1"}, + unit = + { + count = 50, + ingredients = + { + {"science-pack-1", 1}, + {"science-pack-2", 1} + }, + time = 30 + }, + upgrade = true, + order = "e-o-a" + }, + { + type = "technology", + name = "bob-sniper-turret-damage-2", + icon = "__base__/graphics/technology/gun-turret-damage.png", + effects = + { + { + type = "turret-attack", + turret_id = "bob-sniper-turret-1", + modifier = "0.1" + }, + { + type = "turret-attack", + turret_id = "bob-sniper-turret-2", + modifier = "0.1" + }, + { + type = "turret-attack", + turret_id = "bob-sniper-turret-3", + modifier = "0.1" + }, + }, + prerequisites = {"bob-sniper-turret-damage-1"}, + unit = + { + count = 100, + ingredients = + { + {"science-pack-1", 1}, + {"science-pack-2", 1} + }, + time = 30 + }, + upgrade = true, + order = "e-o-b" + }, + { + type = "technology", + name = "bob-sniper-turret-damage-3", + icon = "__base__/graphics/technology/gun-turret-damage.png", + effects = + { + { + type = "turret-attack", + turret_id = "bob-sniper-turret-1", + modifier = "0.2" + }, + { + type = "turret-attack", + turret_id = "bob-sniper-turret-2", + modifier = "0.2" + }, + { + type = "turret-attack", + turret_id = "bob-sniper-turret-3", + modifier = "0.2" + }, + }, + prerequisites = {"bob-sniper-turret-damage-2"}, + unit = + { + count = 200, + ingredients = + { + {"science-pack-1", 1}, + {"science-pack-2", 1} + }, + time = 60 + }, + upgrade = true, + order = "e-o-c" + }, + { + type = "technology", + name = "bob-sniper-turret-damage-4", + icon = "__base__/graphics/technology/gun-turret-damage.png", + effects = + { + { + type = "turret-attack", + turret_id = "bob-sniper-turret-1", + modifier = "0.2" + }, + { + type = "turret-attack", + turret_id = "bob-sniper-turret-2", + modifier = "0.2" + }, + { + type = "turret-attack", + turret_id = "bob-sniper-turret-3", + modifier = "0.2" + }, + }, + prerequisites = {"bob-sniper-turret-damage-3"}, + unit = + { + count = 100, + ingredients = + { + {"science-pack-1", 1}, + {"science-pack-2", 1}, + {"science-pack-3", 1}, + }, + time = 60 + }, + upgrade = true, + order = "e-o-d" + }, + { + type = "technology", + name = "bob-sniper-turret-damage-5", + icon = "__base__/graphics/technology/gun-turret-damage.png", + effects = + { + { + type = "turret-attack", + turret_id = "bob-sniper-turret-1", + modifier = "0.2" + }, + { + type = "turret-attack", + turret_id = "bob-sniper-turret-2", + modifier = "0.2" + }, + { + type = "turret-attack", + turret_id = "bob-sniper-turret-3", + modifier = "0.2" + }, + }, + prerequisites = {"bob-sniper-turret-damage-4"}, + unit = + { + count = 200, + ingredients = + { + {"science-pack-1", 1}, + {"science-pack-2", 1}, + {"science-pack-3", 1}, + {"alien-science-pack", 1}, + }, + time = 60 + }, + upgrade = true, + order = "e-o-e" + }, + { + type = "technology", + name = "bob-sniper-turret-damage-6", + icon = "__base__/graphics/technology/gun-turret-damage.png", + effects = + { + { + type = "turret-attack", + turret_id = "bob-sniper-turret-1", + modifier = "0.4" + }, + { + type = "turret-attack", + turret_id = "bob-sniper-turret-2", + modifier = "0.4" + }, + { + type = "turret-attack", + turret_id = "bob-sniper-turret-3", + modifier = "0.4" + }, + }, + prerequisites = {"bob-sniper-turret-damage-5"}, + unit = + { + count = 300, + ingredients = + { + {"alien-science-pack", 1}, + {"science-pack-1", 1}, + {"science-pack-2", 1}, + {"science-pack-3", 1} + }, + time = 60 + }, + upgrade = true, + order = "e-o-f" + } +} +) diff --git a/bobwarfare_0.14.0/prototypes/technology/tank-artillery-upgrades.lua b/bobwarfare_0.14.1/prototypes/technology/tank-artillery-upgrades.lua similarity index 94% rename from bobwarfare_0.14.0/prototypes/technology/tank-artillery-upgrades.lua rename to bobwarfare_0.14.1/prototypes/technology/tank-artillery-upgrades.lua index 2c5395f..85eb1eb 100644 --- a/bobwarfare_0.14.0/prototypes/technology/tank-artillery-upgrades.lua +++ b/bobwarfare_0.14.1/prototypes/technology/tank-artillery-upgrades.lua @@ -1,325 +1,325 @@ -data:extend( -{ - { - type = "technology", - name = "bob-tank-artillery-damage-1", - icon = "__bobwarfare__/graphics/icons/technology/tank-cannon-damage.png", - effects = - { - { - type = "ammo-damage", - ammo_category = "artillery-shell", - modifier = "0.1" - } - }, - prerequisites = {"tanks-2"}, - unit = - { - count = 50, - ingredients = - { - {"science-pack-1", 1}, - {"science-pack-2", 1} - }, - time = 30 - }, - upgrade = "true", - order = "e-o-a" - }, - { - type = "technology", - name = "bob-tank-artillery-damage-2", - icon = "__bobwarfare__/graphics/icons/technology/tank-cannon-damage.png", - effects = - { - { - type = "ammo-damage", - ammo_category = "artillery-shell", - modifier = "0.1" - } - }, - prerequisites = {"bob-tank-artillery-damage-1"}, - unit = - { - count = 100, - ingredients = - { - {"science-pack-1", 1}, - {"science-pack-2", 1} - }, - time = 30 - }, - upgrade = "true", - order = "e-o-b" - }, - { - type = "technology", - name = "bob-tank-artillery-damage-3", - icon = "__bobwarfare__/graphics/icons/technology/tank-cannon-damage.png", - effects = - { - { - type = "ammo-damage", - ammo_category = "artillery-shell", - modifier = "0.2" - } - }, - prerequisites = {"bob-tank-artillery-damage-2"}, - unit = - { - count = 200, - ingredients = - { - {"science-pack-1", 1}, - {"science-pack-2", 1} - }, - time = 60 - }, - upgrade = "true", - order = "e-o-c" - }, - { - type = "technology", - name = "bob-tank-artillery-damage-4", - icon = "__bobwarfare__/graphics/icons/technology/tank-cannon-damage.png", - effects = - { - { - type = "ammo-damage", - ammo_category = "artillery-shell", - modifier = "0.2" - } - }, - prerequisites = {"bob-tank-artillery-damage-3"}, - unit = - { - count = 100, - ingredients = - { - {"science-pack-1", 1}, - {"science-pack-2", 1}, - {"science-pack-3", 1} - }, - time = 60 - }, - upgrade = "true", - order = "e-o-d" - }, - { - type = "technology", - name = "bob-tank-artillery-damage-5", - icon = "__bobwarfare__/graphics/icons/technology/tank-cannon-damage.png", - effects = - { - { - type = "ammo-damage", - ammo_category = "artillery-shell", - modifier = "0.2" - } - }, - prerequisites = {"bob-tank-artillery-damage-4"}, - unit = - { - count = 200, - ingredients = - { - {"science-pack-1", 1}, - {"science-pack-2", 1}, - {"science-pack-3", 1}, - {"alien-science-pack", 1}, - }, - time = 60 - }, - upgrade = "true", - order = "e-o-e" - }, - { - type = "technology", - name = "bob-tank-artillery-damage-6", - icon = "__bobwarfare__/graphics/icons/technology/tank-cannon-damage.png", - effects = - { - { - type = "ammo-damage", - ammo_category = "artillery-shell", - modifier = "0.4" - } - }, - prerequisites = {"bob-tank-artillery-damage-5"}, - unit = - { - count = 300, - ingredients = - { - {"science-pack-1", 1}, - {"science-pack-2", 1}, - {"science-pack-3", 1}, - {"alien-science-pack", 1}, - }, - time = 60 - }, - upgrade = "true", - order = "e-o-f" - }, - { - type = "technology", - name = "bob-tank-artillery-speed-1", - icon = "__bobwarfare__/graphics/icons/technology/tank-cannon.png", - effects = - { - { - type = "gun-speed", - ammo_category = "artillery-shell", - modifier = "0.2" - } - }, - prerequisites = {"tanks-2"}, - unit = - { - count = 50, - ingredients = - { - {"science-pack-1", 1} - }, - time = 30 - }, - upgrade = "true", - order = "e-o-g" - }, - { - type = "technology", - name = "bob-tank-artillery-speed-2", - icon = "__bobwarfare__/graphics/icons/technology/tank-cannon.png", - effects = - { - { - type = "gun-speed", - ammo_category = "artillery-shell", - modifier = "0.2" - } - }, - prerequisites = {"bob-tank-artillery-speed-1"}, - unit = - { - count = 100, - ingredients = - { - {"science-pack-1", 1}, - {"science-pack-2", 1} - }, - time = 30 - }, - upgrade = "true", - order = "e-o-h" - }, - { - type = "technology", - name = "bob-tank-artillery-speed-3", - icon = "__bobwarfare__/graphics/icons/technology/tank-cannon.png", - effects = - { - { - type = "gun-speed", - ammo_category = "artillery-shell", - modifier = "0.3" - } - }, - prerequisites = {"bob-tank-artillery-speed-2"}, - unit = - { - count = 200, - ingredients = - { - {"science-pack-1", 1}, - {"science-pack-2", 1} - }, - time = 60 - }, - upgrade = "true", - order = "e-o-i" - }, - { - type = "technology", - name = "bob-tank-artillery-speed-4", - icon = "__bobwarfare__/graphics/icons/technology/tank-cannon.png", - effects = - { - { - type = "gun-speed", - ammo_category = "artillery-shell", - modifier = "0.3" - } - }, - prerequisites = {"bob-tank-artillery-speed-3"}, - unit = - { - count = 200, - ingredients = - { - {"science-pack-1", 1}, - {"science-pack-2", 1}, - {"science-pack-3", 1} - }, - time = 60 - }, - upgrade = "true", - order = "e-o-j" - }, - { - type = "technology", - name = "bob-tank-artillery-speed-5", - icon = "__bobwarfare__/graphics/icons/technology/tank-cannon.png", - effects = - { - { - type = "gun-speed", - ammo_category = "artillery-shell", - modifier = "0.3" - } - }, - prerequisites = {"bob-tank-artillery-speed-4"}, - unit = - { - count = 200, - ingredients = - { - {"science-pack-1", 1}, - {"science-pack-2", 1}, - {"science-pack-3", 1}, - {"alien-science-pack", 1}, - }, - time = 60 - }, - upgrade = "true", - order = "e-o-k" - }, - { - type = "technology", - name = "bob-tank-artillery-speed-6", - icon = "__bobwarfare__/graphics/icons/technology/tank-cannon.png", - effects = - { - { - type = "gun-speed", - ammo_category = "artillery-shell", - modifier = "0.3" - } - }, - prerequisites = {"bob-tank-artillery-speed-5"}, - unit = - { - count = 300, - ingredients = - { - {"science-pack-1", 1}, - {"science-pack-2", 1}, - {"science-pack-3", 1}, - {"alien-science-pack", 1}, - }, - time = 60 - }, - upgrade = "true", - order = "e-o-l" - } -} -) +data:extend( +{ + { + type = "technology", + name = "bob-tank-artillery-damage-1", + icon = "__bobwarfare__/graphics/icons/technology/tank-cannon-damage.png", + effects = + { + { + type = "ammo-damage", + ammo_category = "artillery-shell", + modifier = "0.1" + } + }, + prerequisites = {"bob-tanks-2"}, + unit = + { + count = 50, + ingredients = + { + {"science-pack-1", 1}, + {"science-pack-2", 1} + }, + time = 30 + }, + upgrade = "true", + order = "e-o-a" + }, + { + type = "technology", + name = "bob-tank-artillery-damage-2", + icon = "__bobwarfare__/graphics/icons/technology/tank-cannon-damage.png", + effects = + { + { + type = "ammo-damage", + ammo_category = "artillery-shell", + modifier = "0.1" + } + }, + prerequisites = {"bob-tank-artillery-damage-1"}, + unit = + { + count = 100, + ingredients = + { + {"science-pack-1", 1}, + {"science-pack-2", 1} + }, + time = 30 + }, + upgrade = "true", + order = "e-o-b" + }, + { + type = "technology", + name = "bob-tank-artillery-damage-3", + icon = "__bobwarfare__/graphics/icons/technology/tank-cannon-damage.png", + effects = + { + { + type = "ammo-damage", + ammo_category = "artillery-shell", + modifier = "0.2" + } + }, + prerequisites = {"bob-tank-artillery-damage-2"}, + unit = + { + count = 200, + ingredients = + { + {"science-pack-1", 1}, + {"science-pack-2", 1} + }, + time = 60 + }, + upgrade = "true", + order = "e-o-c" + }, + { + type = "technology", + name = "bob-tank-artillery-damage-4", + icon = "__bobwarfare__/graphics/icons/technology/tank-cannon-damage.png", + effects = + { + { + type = "ammo-damage", + ammo_category = "artillery-shell", + modifier = "0.2" + } + }, + prerequisites = {"bob-tank-artillery-damage-3"}, + unit = + { + count = 100, + ingredients = + { + {"science-pack-1", 1}, + {"science-pack-2", 1}, + {"science-pack-3", 1} + }, + time = 60 + }, + upgrade = "true", + order = "e-o-d" + }, + { + type = "technology", + name = "bob-tank-artillery-damage-5", + icon = "__bobwarfare__/graphics/icons/technology/tank-cannon-damage.png", + effects = + { + { + type = "ammo-damage", + ammo_category = "artillery-shell", + modifier = "0.2" + } + }, + prerequisites = {"bob-tank-artillery-damage-4"}, + unit = + { + count = 200, + ingredients = + { + {"science-pack-1", 1}, + {"science-pack-2", 1}, + {"science-pack-3", 1}, + {"alien-science-pack", 1}, + }, + time = 60 + }, + upgrade = "true", + order = "e-o-e" + }, + { + type = "technology", + name = "bob-tank-artillery-damage-6", + icon = "__bobwarfare__/graphics/icons/technology/tank-cannon-damage.png", + effects = + { + { + type = "ammo-damage", + ammo_category = "artillery-shell", + modifier = "0.4" + } + }, + prerequisites = {"bob-tank-artillery-damage-5"}, + unit = + { + count = 300, + ingredients = + { + {"science-pack-1", 1}, + {"science-pack-2", 1}, + {"science-pack-3", 1}, + {"alien-science-pack", 1}, + }, + time = 60 + }, + upgrade = "true", + order = "e-o-f" + }, + { + type = "technology", + name = "bob-tank-artillery-speed-1", + icon = "__bobwarfare__/graphics/icons/technology/tank-cannon.png", + effects = + { + { + type = "gun-speed", + ammo_category = "artillery-shell", + modifier = "0.2" + } + }, + prerequisites = {"bob-tanks-2"}, + unit = + { + count = 50, + ingredients = + { + {"science-pack-1", 1} + }, + time = 30 + }, + upgrade = "true", + order = "e-o-g" + }, + { + type = "technology", + name = "bob-tank-artillery-speed-2", + icon = "__bobwarfare__/graphics/icons/technology/tank-cannon.png", + effects = + { + { + type = "gun-speed", + ammo_category = "artillery-shell", + modifier = "0.2" + } + }, + prerequisites = {"bob-tank-artillery-speed-1"}, + unit = + { + count = 100, + ingredients = + { + {"science-pack-1", 1}, + {"science-pack-2", 1} + }, + time = 30 + }, + upgrade = "true", + order = "e-o-h" + }, + { + type = "technology", + name = "bob-tank-artillery-speed-3", + icon = "__bobwarfare__/graphics/icons/technology/tank-cannon.png", + effects = + { + { + type = "gun-speed", + ammo_category = "artillery-shell", + modifier = "0.3" + } + }, + prerequisites = {"bob-tank-artillery-speed-2"}, + unit = + { + count = 200, + ingredients = + { + {"science-pack-1", 1}, + {"science-pack-2", 1} + }, + time = 60 + }, + upgrade = "true", + order = "e-o-i" + }, + { + type = "technology", + name = "bob-tank-artillery-speed-4", + icon = "__bobwarfare__/graphics/icons/technology/tank-cannon.png", + effects = + { + { + type = "gun-speed", + ammo_category = "artillery-shell", + modifier = "0.3" + } + }, + prerequisites = {"bob-tank-artillery-speed-3"}, + unit = + { + count = 200, + ingredients = + { + {"science-pack-1", 1}, + {"science-pack-2", 1}, + {"science-pack-3", 1} + }, + time = 60 + }, + upgrade = "true", + order = "e-o-j" + }, + { + type = "technology", + name = "bob-tank-artillery-speed-5", + icon = "__bobwarfare__/graphics/icons/technology/tank-cannon.png", + effects = + { + { + type = "gun-speed", + ammo_category = "artillery-shell", + modifier = "0.3" + } + }, + prerequisites = {"bob-tank-artillery-speed-4"}, + unit = + { + count = 200, + ingredients = + { + {"science-pack-1", 1}, + {"science-pack-2", 1}, + {"science-pack-3", 1}, + {"alien-science-pack", 1}, + }, + time = 60 + }, + upgrade = "true", + order = "e-o-k" + }, + { + type = "technology", + name = "bob-tank-artillery-speed-6", + icon = "__bobwarfare__/graphics/icons/technology/tank-cannon.png", + effects = + { + { + type = "gun-speed", + ammo_category = "artillery-shell", + modifier = "0.3" + } + }, + prerequisites = {"bob-tank-artillery-speed-5"}, + unit = + { + count = 300, + ingredients = + { + {"science-pack-1", 1}, + {"science-pack-2", 1}, + {"science-pack-3", 1}, + {"alien-science-pack", 1}, + }, + time = 60 + }, + upgrade = "true", + order = "e-o-l" + } +} +) diff --git a/bobwarfare_0.14.0/prototypes/technology/tank-cannon-upgrades.lua b/bobwarfare_0.14.1/prototypes/technology/tank-cannon-upgrades.lua similarity index 95% rename from bobwarfare_0.14.0/prototypes/technology/tank-cannon-upgrades.lua rename to bobwarfare_0.14.1/prototypes/technology/tank-cannon-upgrades.lua index 6f2aac0..9ce323f 100644 --- a/bobwarfare_0.14.0/prototypes/technology/tank-cannon-upgrades.lua +++ b/bobwarfare_0.14.1/prototypes/technology/tank-cannon-upgrades.lua @@ -1,325 +1,325 @@ -data:extend( -{ - { - type = "technology", - name = "bob-tank-cannon-damage-1", - icon = "__bobwarfare__/graphics/icons/technology/tank-cannon-damage.png", - effects = - { - { - type = "ammo-damage", - ammo_category = "cannon-shell", - modifier = "0.1" - } - }, - prerequisites = {"tanks"}, - unit = - { - count = 50, - ingredients = - { - {"science-pack-1", 1}, - {"science-pack-2", 1} - }, - time = 30 - }, - upgrade = "true", - order = "e-o-a" - }, - { - type = "technology", - name = "bob-tank-cannon-damage-2", - icon = "__bobwarfare__/graphics/icons/technology/tank-cannon-damage.png", - effects = - { - { - type = "ammo-damage", - ammo_category = "cannon-shell", - modifier = "0.1" - } - }, - prerequisites = {"bob-tank-cannon-damage-1"}, - unit = - { - count = 100, - ingredients = - { - {"science-pack-1", 1}, - {"science-pack-2", 1} - }, - time = 30 - }, - upgrade = "true", - order = "e-o-b" - }, - { - type = "technology", - name = "bob-tank-cannon-damage-3", - icon = "__bobwarfare__/graphics/icons/technology/tank-cannon-damage.png", - effects = - { - { - type = "ammo-damage", - ammo_category = "cannon-shell", - modifier = "0.2" - } - }, - prerequisites = {"bob-tank-cannon-damage-2"}, - unit = - { - count = 200, - ingredients = - { - {"science-pack-1", 1}, - {"science-pack-2", 1} - }, - time = 60 - }, - upgrade = "true", - order = "e-o-c" - }, - { - type = "technology", - name = "bob-tank-cannon-damage-4", - icon = "__bobwarfare__/graphics/icons/technology/tank-cannon-damage.png", - effects = - { - { - type = "ammo-damage", - ammo_category = "cannon-shell", - modifier = "0.2" - } - }, - prerequisites = {"bob-tank-cannon-damage-3"}, - unit = - { - count = 100, - ingredients = - { - {"science-pack-1", 1}, - {"science-pack-2", 1}, - {"science-pack-3", 1} - }, - time = 60 - }, - upgrade = "true", - order = "e-o-d" - }, - { - type = "technology", - name = "bob-tank-cannon-damage-5", - icon = "__bobwarfare__/graphics/icons/technology/tank-cannon-damage.png", - effects = - { - { - type = "ammo-damage", - ammo_category = "cannon-shell", - modifier = "0.2" - } - }, - prerequisites = {"bob-tank-cannon-damage-4"}, - unit = - { - count = 200, - ingredients = - { - {"science-pack-1", 1}, - {"science-pack-2", 1}, - {"science-pack-3", 1}, - {"alien-science-pack", 1}, - }, - time = 60 - }, - upgrade = "true", - order = "e-o-e" - }, - { - type = "technology", - name = "bob-tank-cannon-damage-6", - icon = "__bobwarfare__/graphics/icons/technology/tank-cannon-damage.png", - effects = - { - { - type = "ammo-damage", - ammo_category = "cannon-shell", - modifier = "0.4" - } - }, - prerequisites = {"bob-tank-cannon-damage-5"}, - unit = - { - count = 300, - ingredients = - { - {"science-pack-1", 1}, - {"science-pack-2", 1}, - {"science-pack-3", 1}, - {"alien-science-pack", 1}, - }, - time = 60 - }, - upgrade = "true", - order = "e-o-f" - }, - { - type = "technology", - name = "bob-tank-cannon-speed-1", - icon = "__bobwarfare__/graphics/icons/technology/tank-cannon.png", - effects = - { - { - type = "gun-speed", - ammo_category = "cannon-shell", - modifier = "0.2" - } - }, - prerequisites = {"tanks"}, - unit = - { - count = 50, - ingredients = - { - {"science-pack-1", 1} - }, - time = 30 - }, - upgrade = "true", - order = "e-o-g" - }, - { - type = "technology", - name = "bob-tank-cannon-speed-2", - icon = "__bobwarfare__/graphics/icons/technology/tank-cannon.png", - effects = - { - { - type = "gun-speed", - ammo_category = "cannon-shell", - modifier = "0.2" - } - }, - prerequisites = {"bob-tank-cannon-speed-1"}, - unit = - { - count = 100, - ingredients = - { - {"science-pack-1", 1}, - {"science-pack-2", 1} - }, - time = 30 - }, - upgrade = "true", - order = "e-o-h" - }, - { - type = "technology", - name = "bob-tank-cannon-speed-3", - icon = "__bobwarfare__/graphics/icons/technology/tank-cannon.png", - effects = - { - { - type = "gun-speed", - ammo_category = "cannon-shell", - modifier = "0.3" - } - }, - prerequisites = {"bob-tank-cannon-speed-2"}, - unit = - { - count = 200, - ingredients = - { - {"science-pack-1", 1}, - {"science-pack-2", 1} - }, - time = 60 - }, - upgrade = "true", - order = "e-o-i" - }, - { - type = "technology", - name = "bob-tank-cannon-speed-4", - icon = "__bobwarfare__/graphics/icons/technology/tank-cannon.png", - effects = - { - { - type = "gun-speed", - ammo_category = "cannon-shell", - modifier = "0.3" - } - }, - prerequisites = {"bob-tank-cannon-speed-3"}, - unit = - { - count = 200, - ingredients = - { - {"science-pack-1", 1}, - {"science-pack-2", 1}, - {"science-pack-3", 1} - }, - time = 60 - }, - upgrade = "true", - order = "e-o-j" - }, - { - type = "technology", - name = "bob-tank-cannon-speed-5", - icon = "__bobwarfare__/graphics/icons/technology/tank-cannon.png", - effects = - { - { - type = "gun-speed", - ammo_category = "cannon-shell", - modifier = "0.3" - } - }, - prerequisites = {"bob-tank-cannon-speed-4"}, - unit = - { - count = 200, - ingredients = - { - {"science-pack-1", 1}, - {"science-pack-2", 1}, - {"science-pack-3", 1}, - {"alien-science-pack", 1}, - }, - time = 60 - }, - upgrade = "true", - order = "e-o-k" - }, - { - type = "technology", - name = "bob-tank-cannon-speed-6", - icon = "__bobwarfare__/graphics/icons/technology/tank-cannon.png", - effects = - { - { - type = "gun-speed", - ammo_category = "cannon-shell", - modifier = "0.3" - } - }, - prerequisites = {"bob-tank-cannon-speed-5"}, - unit = - { - count = 300, - ingredients = - { - {"science-pack-1", 1}, - {"science-pack-2", 1}, - {"science-pack-3", 1}, - {"alien-science-pack", 1}, - }, - time = 60 - }, - upgrade = "true", - order = "e-o-l" - } -} -) +data:extend( +{ + { + type = "technology", + name = "bob-tank-cannon-damage-1", + icon = "__bobwarfare__/graphics/icons/technology/tank-cannon-damage.png", + effects = + { + { + type = "ammo-damage", + ammo_category = "cannon-shell", + modifier = "0.1" + } + }, + prerequisites = {"tanks"}, + unit = + { + count = 50, + ingredients = + { + {"science-pack-1", 1}, + {"science-pack-2", 1} + }, + time = 30 + }, + upgrade = "true", + order = "e-o-a" + }, + { + type = "technology", + name = "bob-tank-cannon-damage-2", + icon = "__bobwarfare__/graphics/icons/technology/tank-cannon-damage.png", + effects = + { + { + type = "ammo-damage", + ammo_category = "cannon-shell", + modifier = "0.1" + } + }, + prerequisites = {"bob-tank-cannon-damage-1"}, + unit = + { + count = 100, + ingredients = + { + {"science-pack-1", 1}, + {"science-pack-2", 1} + }, + time = 30 + }, + upgrade = "true", + order = "e-o-b" + }, + { + type = "technology", + name = "bob-tank-cannon-damage-3", + icon = "__bobwarfare__/graphics/icons/technology/tank-cannon-damage.png", + effects = + { + { + type = "ammo-damage", + ammo_category = "cannon-shell", + modifier = "0.2" + } + }, + prerequisites = {"bob-tank-cannon-damage-2"}, + unit = + { + count = 200, + ingredients = + { + {"science-pack-1", 1}, + {"science-pack-2", 1} + }, + time = 60 + }, + upgrade = "true", + order = "e-o-c" + }, + { + type = "technology", + name = "bob-tank-cannon-damage-4", + icon = "__bobwarfare__/graphics/icons/technology/tank-cannon-damage.png", + effects = + { + { + type = "ammo-damage", + ammo_category = "cannon-shell", + modifier = "0.2" + } + }, + prerequisites = {"bob-tank-cannon-damage-3"}, + unit = + { + count = 100, + ingredients = + { + {"science-pack-1", 1}, + {"science-pack-2", 1}, + {"science-pack-3", 1} + }, + time = 60 + }, + upgrade = "true", + order = "e-o-d" + }, + { + type = "technology", + name = "bob-tank-cannon-damage-5", + icon = "__bobwarfare__/graphics/icons/technology/tank-cannon-damage.png", + effects = + { + { + type = "ammo-damage", + ammo_category = "cannon-shell", + modifier = "0.2" + } + }, + prerequisites = {"bob-tank-cannon-damage-4"}, + unit = + { + count = 200, + ingredients = + { + {"science-pack-1", 1}, + {"science-pack-2", 1}, + {"science-pack-3", 1}, + {"alien-science-pack", 1}, + }, + time = 60 + }, + upgrade = "true", + order = "e-o-e" + }, + { + type = "technology", + name = "bob-tank-cannon-damage-6", + icon = "__bobwarfare__/graphics/icons/technology/tank-cannon-damage.png", + effects = + { + { + type = "ammo-damage", + ammo_category = "cannon-shell", + modifier = "0.4" + } + }, + prerequisites = {"bob-tank-cannon-damage-5"}, + unit = + { + count = 300, + ingredients = + { + {"science-pack-1", 1}, + {"science-pack-2", 1}, + {"science-pack-3", 1}, + {"alien-science-pack", 1}, + }, + time = 60 + }, + upgrade = "true", + order = "e-o-f" + }, + { + type = "technology", + name = "bob-tank-cannon-speed-1", + icon = "__bobwarfare__/graphics/icons/technology/tank-cannon.png", + effects = + { + { + type = "gun-speed", + ammo_category = "cannon-shell", + modifier = "0.2" + } + }, + prerequisites = {"tanks"}, + unit = + { + count = 50, + ingredients = + { + {"science-pack-1", 1} + }, + time = 30 + }, + upgrade = "true", + order = "e-o-g" + }, + { + type = "technology", + name = "bob-tank-cannon-speed-2", + icon = "__bobwarfare__/graphics/icons/technology/tank-cannon.png", + effects = + { + { + type = "gun-speed", + ammo_category = "cannon-shell", + modifier = "0.2" + } + }, + prerequisites = {"bob-tank-cannon-speed-1"}, + unit = + { + count = 100, + ingredients = + { + {"science-pack-1", 1}, + {"science-pack-2", 1} + }, + time = 30 + }, + upgrade = "true", + order = "e-o-h" + }, + { + type = "technology", + name = "bob-tank-cannon-speed-3", + icon = "__bobwarfare__/graphics/icons/technology/tank-cannon.png", + effects = + { + { + type = "gun-speed", + ammo_category = "cannon-shell", + modifier = "0.3" + } + }, + prerequisites = {"bob-tank-cannon-speed-2"}, + unit = + { + count = 200, + ingredients = + { + {"science-pack-1", 1}, + {"science-pack-2", 1} + }, + time = 60 + }, + upgrade = "true", + order = "e-o-i" + }, + { + type = "technology", + name = "bob-tank-cannon-speed-4", + icon = "__bobwarfare__/graphics/icons/technology/tank-cannon.png", + effects = + { + { + type = "gun-speed", + ammo_category = "cannon-shell", + modifier = "0.3" + } + }, + prerequisites = {"bob-tank-cannon-speed-3"}, + unit = + { + count = 200, + ingredients = + { + {"science-pack-1", 1}, + {"science-pack-2", 1}, + {"science-pack-3", 1} + }, + time = 60 + }, + upgrade = "true", + order = "e-o-j" + }, + { + type = "technology", + name = "bob-tank-cannon-speed-5", + icon = "__bobwarfare__/graphics/icons/technology/tank-cannon.png", + effects = + { + { + type = "gun-speed", + ammo_category = "cannon-shell", + modifier = "0.3" + } + }, + prerequisites = {"bob-tank-cannon-speed-4"}, + unit = + { + count = 200, + ingredients = + { + {"science-pack-1", 1}, + {"science-pack-2", 1}, + {"science-pack-3", 1}, + {"alien-science-pack", 1}, + }, + time = 60 + }, + upgrade = "true", + order = "e-o-k" + }, + { + type = "technology", + name = "bob-tank-cannon-speed-6", + icon = "__bobwarfare__/graphics/icons/technology/tank-cannon.png", + effects = + { + { + type = "gun-speed", + ammo_category = "cannon-shell", + modifier = "0.3" + } + }, + prerequisites = {"bob-tank-cannon-speed-5"}, + unit = + { + count = 300, + ingredients = + { + {"science-pack-1", 1}, + {"science-pack-2", 1}, + {"science-pack-3", 1}, + {"alien-science-pack", 1}, + }, + time = 60 + }, + upgrade = "true", + order = "e-o-l" + } +} +) diff --git a/bobwarfare_0.14.0/prototypes/technology/tank.lua b/bobwarfare_0.14.1/prototypes/technology/tank.lua similarity index 84% rename from bobwarfare_0.14.0/prototypes/technology/tank.lua rename to bobwarfare_0.14.1/prototypes/technology/tank.lua index f84293f..106a124 100644 --- a/bobwarfare_0.14.0/prototypes/technology/tank.lua +++ b/bobwarfare_0.14.1/prototypes/technology/tank.lua @@ -1,84 +1,86 @@ -data.raw.technology["tanks"].upgrade = "true" - -data:extend( -{ - { - type = "technology", - name = "tanks-2", - icon = "__base__/graphics/technology/tanks.png", - prerequisites = - { - "tanks", - "advanced-electronics-2" - }, - effects = - { - { - type = "unlock-recipe", - recipe = "tank-2" - }, - { - type = "unlock-recipe", - recipe = "scatter-cannon-shell" - }, - { - type = "unlock-recipe", - recipe = "poison-artillery-shell" - }, - }, - unit = - { - count = 100, - ingredients = - { - {"science-pack-1", 1}, - {"science-pack-2", 1}, - {"science-pack-3", 1} - }, - time = 30 - }, - order = "e-c-c2", - upgrade = "true", - }, - - { - type = "technology", - name = "tanks-3", - icon = "__base__/graphics/technology/tanks.png", - prerequisites = - { - "tanks-2", - }, - effects = - { - { - type = "unlock-recipe", - recipe = "tank-3" - }, - { - type = "unlock-recipe", - recipe = "explosive-artillery-shell" - }, - { - type = "unlock-recipe", - recipe = "distractor-artillery-shell" - }, - }, - unit = - { - count = 150, - ingredients = - { - {"science-pack-1", 1}, - {"science-pack-2", 1}, - {"science-pack-3", 1}, - {"alien-science-pack", 1} - }, - time = 45 - }, - order = "e-c-c3", - upgrade = "true", - }, -} -) - +data.raw.technology["tanks"].upgrade = "true" + +data:extend( +{ + { + type = "technology", + name = "bob-tanks-2", + icon = "__base__/graphics/technology/tanks.png", + icon_size = 128, + prerequisites = + { + "tanks", + "advanced-electronics-2" + }, + effects = + { + { + type = "unlock-recipe", + recipe = "bob-tank-2" + }, + { + type = "unlock-recipe", + recipe = "scatter-cannon-shell" + }, + { + type = "unlock-recipe", + recipe = "poison-artillery-shell" + }, + }, + unit = + { + count = 100, + ingredients = + { + {"science-pack-1", 1}, + {"science-pack-2", 1}, + {"science-pack-3", 1} + }, + time = 30 + }, + order = "e-c-c2", + upgrade = "true", + }, + + { + type = "technology", + name = "bob-tanks-3", + icon = "__base__/graphics/technology/tanks.png", + icon_size = 128, + prerequisites = + { + "bob-tanks-2", + }, + effects = + { + { + type = "unlock-recipe", + recipe = "bob-tank-3" + }, + { + type = "unlock-recipe", + recipe = "explosive-artillery-shell" + }, + { + type = "unlock-recipe", + recipe = "distractor-artillery-shell" + }, + }, + unit = + { + count = 150, + ingredients = + { + {"science-pack-1", 1}, + {"science-pack-2", 1}, + {"science-pack-3", 1}, + {"alien-science-pack", 1} + }, + time = 45 + }, + order = "e-c-c3", + upgrade = "true", + }, +} +) + diff --git a/bobwarfare_0.14.0/prototypes/technology/technology-updates.lua b/bobwarfare_0.14.1/prototypes/technology/technology-updates.lua similarity index 98% rename from bobwarfare_0.14.0/prototypes/technology/technology-updates.lua rename to bobwarfare_0.14.1/prototypes/technology/technology-updates.lua index 6c427e7..4850ca4 100644 --- a/bobwarfare_0.14.0/prototypes/technology/technology-updates.lua +++ b/bobwarfare_0.14.1/prototypes/technology/technology-updates.lua @@ -1,294 +1,294 @@ -if data.raw.tool["science-pack-4"] then - bobmods.lib.tech.replace_science_pack("bob-turrets-5", "alien-science-pack", "science-pack-4") - bobmods.lib.tech.replace_science_pack("bob-laser-turrets-5", "alien-science-pack", "science-pack-4") - bobmods.lib.tech.replace_science_pack("bob-sniper-turrets-3", "alien-science-pack", "science-pack-4") - - bobmods.lib.tech.replace_science_pack("bob-laser-rifle-ammo-4", "alien-science-pack", "science-pack-4") - bobmods.lib.tech.replace_science_pack("bob-laser-rifle-ammo-5", "alien-science-pack", "science-pack-4") - bobmods.lib.tech.add_new_science_pack("bob-laser-rifle-ammo-6", "science-pack-4", 1) - - bobmods.lib.tech.replace_science_pack("personal-laser-defense-equipment-5", "alien-science-pack", "science-pack-4") - bobmods.lib.tech.add_new_science_pack("personal-laser-defense-equipment-6", "science-pack-4", 1) - - bobmods.lib.tech.replace_science_pack("tanks-3", "alien-science-pack", "science-pack-4") - - bobmods.lib.tech.replace_science_pack("radars-4", "alien-science-pack", "science-pack-4") - - bobmods.lib.tech.replace_science_pack("bullet-damage-5", "alien-science-pack", "science-pack-4") - bobmods.lib.tech.replace_science_pack("bullet-speed-5", "alien-science-pack", "science-pack-4") - bobmods.lib.tech.add_new_science_pack("bullet-damage-6", "science-pack-4", 1) - bobmods.lib.tech.add_new_science_pack("bullet-speed-6", "science-pack-4", 1) - - bobmods.lib.tech.replace_science_pack("shotgun-shell-damage-5", "alien-science-pack", "science-pack-4") - bobmods.lib.tech.replace_science_pack("shotgun-shell-speed-5", "alien-science-pack", "science-pack-4") - bobmods.lib.tech.add_new_science_pack("shotgun-shell-damage-6", "science-pack-4", 1) - bobmods.lib.tech.add_new_science_pack("shotgun-shell-speed-6", "science-pack-4", 1) - - bobmods.lib.tech.add_new_science_pack("rocket-damage-5", "science-pack-4", 1) - bobmods.lib.tech.add_new_science_pack("rocket-speed-5", "science-pack-4", 1) - bobmods.lib.tech.add_new_science_pack("rocket-damage-6", "science-pack-4", 1) - bobmods.lib.tech.add_new_science_pack("rocket-speed-6", "science-pack-4", 1) - - bobmods.lib.tech.replace_science_pack("bob-tank-cannon-damage-5", "alien-science-pack", "science-pack-4") - bobmods.lib.tech.replace_science_pack("bob-tank-cannon-speed-5", "alien-science-pack", "science-pack-4") - bobmods.lib.tech.add_new_science_pack("bob-tank-cannon-damage-6", "science-pack-4", 1) - bobmods.lib.tech.add_new_science_pack("bob-tank-cannon-speed-6", "science-pack-4", 1) - - bobmods.lib.tech.replace_science_pack("bob-laser-rifle-damage-5", "alien-science-pack", "science-pack-4") - bobmods.lib.tech.replace_science_pack("bob-laser-rifle-speed-5", "alien-science-pack", "science-pack-4") - bobmods.lib.tech.add_new_science_pack("bob-laser-rifle-damage-6", "science-pack-4", 1) - bobmods.lib.tech.add_new_science_pack("bob-laser-rifle-speed-6", "science-pack-4", 1) - - bobmods.lib.tech.replace_science_pack("gun-turret-damage-5", "alien-science-pack", "science-pack-4") - bobmods.lib.tech.add_new_science_pack("gun-turret-damage-6", "science-pack-4", 1) - - bobmods.lib.tech.replace_science_pack("laser-turret-damage-5", "alien-science-pack", "science-pack-4") - bobmods.lib.tech.replace_science_pack("laser-turret-speed-5", "alien-science-pack", "science-pack-4") - bobmods.lib.tech.add_new_science_pack("laser-turret-damage-6", "science-pack-4", 1) - bobmods.lib.tech.add_new_science_pack("laser-turret-speed-6", "science-pack-4", 1) - - bobmods.lib.tech.replace_science_pack("bob-sniper-turret-damage-5", "alien-science-pack", "science-pack-4") - bobmods.lib.tech.add_new_science_pack("bob-sniper-turret-damage-6", "science-pack-4", 1) -end - - -if data.raw.tool["science-pack-gold"] and - data.raw.tool["alien-science-pack-blue"] and - data.raw.tool["alien-science-pack-orange"] and - data.raw.tool["alien-science-pack-purple"] and - data.raw.tool["alien-science-pack-yellow"] and - data.raw.tool["alien-science-pack-green"] and - data.raw.tool["alien-science-pack-red"] -then - data.raw.technology["bob-ap-bullets"].unit.ingredients = {{"science-pack-gold", 1},{"alien-science-pack-blue", 1}} - data.raw.technology["bob-shotgun-ap-shells"].unit.ingredients = {{"science-pack-gold", 1},{"alien-science-pack-blue", 1}} - data.raw.technology["bob-piercing-rocket"].unit.ingredients = {{"science-pack-gold", 1},{"alien-science-pack-blue", 1}} - - data.raw.technology["bob-electric-bullets"].unit.ingredients = {{"science-pack-gold", 1},{"alien-science-pack-orange", 1}} - data.raw.technology["bob-shotgun-electric-shells"].unit.ingredients = {{"science-pack-gold", 1},{"alien-science-pack-orange", 1}} - data.raw.technology["bob-electric-rocket"].unit.ingredients = {{"science-pack-gold", 1},{"alien-science-pack-orange", 1}} - - data.raw.technology["bob-acid-bullets"].unit.ingredients = {{"science-pack-gold", 1},{"alien-science-pack-purple", 1}} - data.raw.technology["bob-shotgun-acid-shells"].unit.ingredients = {{"science-pack-gold", 1},{"alien-science-pack-purple", 1}} - data.raw.technology["bob-acid-rocket"].unit.ingredients = {{"science-pack-gold", 1},{"alien-science-pack-purple", 1}} - - data.raw.technology["bob-he-bullets"].unit.ingredients = {{"science-pack-gold", 1},{"alien-science-pack-yellow", 1}} - data.raw.technology["bob-shotgun-explosive-shells"].unit.ingredients = {{"science-pack-gold", 1},{"alien-science-pack-yellow", 1}} - data.raw.technology["bob-explosive-rocket"].unit.ingredients = {{"science-pack-gold", 1},{"alien-science-pack-yellow", 1}} - - data.raw.technology["bob-poison-bullets"].unit.ingredients = {{"science-pack-gold", 1},{"alien-science-pack-green", 1}} - data.raw.technology["bob-shotgun-poison-shells"].unit.ingredients = {{"science-pack-gold", 1},{"alien-science-pack-green", 1}} - data.raw.technology["bob-poison-rocket"].unit.ingredients = {{"science-pack-gold", 1},{"alien-science-pack-green", 1}} - - data.raw.technology["bob-flame-bullets"].unit.ingredients = {{"science-pack-gold", 1},{"alien-science-pack-red", 1}} - data.raw.technology["bob-shotgun-flame-shells"].unit.ingredients = {{"science-pack-gold", 1},{"alien-science-pack-red", 1}} - data.raw.technology["bob-flame-rocket"].unit.ingredients = {{"science-pack-gold", 1},{"alien-science-pack-red", 1}} - - data.raw.technology["bob-power-armor-3"].unit.ingredients = {{"science-pack-gold", 1},{"alien-science-pack", 1},{"alien-science-pack-blue", 1},{"alien-science-pack-orange", 1}} - data.raw.technology["energy-shield-equipment-4"].unit.ingredients = {{"science-pack-gold", 1},{"alien-science-pack", 1},{"alien-science-pack-blue", 1},{"alien-science-pack-orange", 1}} - data.raw.technology["battery-equipment-4"].unit.ingredients = {{"science-pack-gold", 1},{"alien-science-pack", 1},{"alien-science-pack-blue", 1},{"alien-science-pack-orange", 1}} - data.raw.technology["fusion-reactor-equipment-2"].unit.ingredients = {{"science-pack-gold", 1},{"alien-science-pack", 1},{"alien-science-pack-blue", 1},{"alien-science-pack-orange", 1}} - - data.raw.technology["bob-power-armor-4"].unit.ingredients = {{"science-pack-gold", 1},{"alien-science-pack", 1},{"alien-science-pack-purple", 1},{"alien-science-pack-yellow", 1}} - data.raw.technology["energy-shield-equipment-5"].unit.ingredients = {{"science-pack-gold", 1},{"alien-science-pack", 1},{"alien-science-pack-purple", 1},{"alien-science-pack-yellow", 1}} - data.raw.technology["battery-equipment-5"].unit.ingredients = {{"science-pack-gold", 1},{"alien-science-pack", 1},{"alien-science-pack-purple", 1},{"alien-science-pack-yellow", 1}} - data.raw.technology["fusion-reactor-equipment-3"].unit.ingredients = {{"science-pack-gold", 1},{"alien-science-pack", 1},{"alien-science-pack-purple", 1},{"alien-science-pack-yellow", 1}} - - data.raw.technology["bob-power-armor-5"].unit.ingredients = {{"science-pack-gold", 1},{"alien-science-pack", 1},{"alien-science-pack-green", 1},{"alien-science-pack-red", 1}} - data.raw.technology["energy-shield-equipment-6"].unit.ingredients = {{"science-pack-gold", 1},{"alien-science-pack", 1},{"alien-science-pack-green", 1},{"alien-science-pack-red", 1}} - data.raw.technology["battery-equipment-6"].unit.ingredients = {{"science-pack-gold", 1},{"alien-science-pack", 1},{"alien-science-pack-green", 1},{"alien-science-pack-red", 1}} - data.raw.technology["fusion-reactor-equipment-4"].unit.ingredients = {{"science-pack-gold", 1},{"alien-science-pack", 1},{"alien-science-pack-green", 1},{"alien-science-pack-red", 1}} -else - if data.raw.tool["science-pack-4"] then - bobmods.lib.tech.replace_science_pack("bob-ap-bullets", "alien-science-pack", "science-pack-4") - bobmods.lib.tech.replace_science_pack("bob-shotgun-ap-shells", "alien-science-pack", "science-pack-4") - bobmods.lib.tech.replace_science_pack("bob-piercing-rocket", "alien-science-pack", "science-pack-4") - - bobmods.lib.tech.replace_science_pack("bob-electric-bullets", "alien-science-pack", "science-pack-4") - bobmods.lib.tech.replace_science_pack("bob-shotgun-electric-shells", "alien-science-pack", "science-pack-4") - bobmods.lib.tech.replace_science_pack("bob-electric-rocket", "alien-science-pack", "science-pack-4") - - bobmods.lib.tech.replace_science_pack("bob-acid-bullets", "alien-science-pack", "science-pack-4") - bobmods.lib.tech.replace_science_pack("bob-shotgun-acid-shells", "alien-science-pack", "science-pack-4") - bobmods.lib.tech.replace_science_pack("bob-acid-rocket", "alien-science-pack", "science-pack-4") - - bobmods.lib.tech.replace_science_pack("bob-he-bullets", "alien-science-pack", "science-pack-4") - bobmods.lib.tech.replace_science_pack("bob-shotgun-explosive-shells", "alien-science-pack", "science-pack-4") - bobmods.lib.tech.replace_science_pack("bob-explosive-rocket", "alien-science-pack", "science-pack-4") - - bobmods.lib.tech.replace_science_pack("bob-poison-bullets", "alien-science-pack", "science-pack-4") - bobmods.lib.tech.replace_science_pack("bob-shotgun-poison-shells", "alien-science-pack", "science-pack-4") - bobmods.lib.tech.replace_science_pack("bob-poison-rocket", "alien-science-pack", "science-pack-4") - - bobmods.lib.tech.replace_science_pack("bob-flame-bullets", "alien-science-pack", "science-pack-4") - bobmods.lib.tech.replace_science_pack("bob-shotgun-flame-shells", "alien-science-pack", "science-pack-4") - bobmods.lib.tech.replace_science_pack("bob-flame-rocket", "alien-science-pack", "science-pack-4") - - bobmods.lib.tech.add_new_science_pack("bob-power-armor-3", "science-pack-4", 1) - bobmods.lib.tech.add_new_science_pack("energy-shield-equipment-4", "science-pack-4", 1) - - bobmods.lib.tech.add_new_science_pack("bob-power-armor-4", "science-pack-4", 1) - bobmods.lib.tech.add_new_science_pack("energy-shield-equipment-5", "science-pack-4", 1) - bobmods.lib.tech.add_new_science_pack("battery-equipment-5", "science-pack-4", 1) - bobmods.lib.tech.add_new_science_pack("fusion-reactor-equipment-3", "science-pack-4", 1) - - bobmods.lib.tech.add_new_science_pack("bob-power-armor-5", "science-pack-4", 1) - bobmods.lib.tech.add_new_science_pack("energy-shield-equipment-6", "science-pack-4", 1) - bobmods.lib.tech.add_new_science_pack("battery-equipment-6", "science-pack-4", 1) - bobmods.lib.tech.add_new_science_pack("fusion-reactor-equipment-4", "science-pack-4", 1) - end -end - - -if data.raw.technology["alien-blue-research"] then - bobmods.lib.tech.add_prerequisite("bob-ap-bullets", "alien-blue-research") - bobmods.lib.tech.add_prerequisite("bob-shotgun-ap-shells", "alien-blue-research") - bobmods.lib.tech.add_prerequisite("bob-piercing-rocket", "alien-blue-research") -elseif data.raw.technology["tungsten-processing"] then - bobmods.lib.tech.add_prerequisite("bob-ap-bullets", "tungsten-processing") - bobmods.lib.tech.add_prerequisite("bob-shotgun-ap-shells", "tungsten-processing") -end - -if data.raw.technology["alien-orange-research"] then - bobmods.lib.tech.add_prerequisite("bob-electric-bullets", "alien-orange-research") - bobmods.lib.tech.add_prerequisite("bob-shotgun-electric-shells", "alien-orange-research") - bobmods.lib.tech.add_prerequisite("bob-electric-rocket", "alien-orange-research") -end - -if data.raw.technology["alien-purple-research"] then - bobmods.lib.tech.add_prerequisite("bob-acid-bullets", "alien-purple-research") - bobmods.lib.tech.add_prerequisite("bob-shotgun-acid-shells", "alien-purple-research") - bobmods.lib.tech.add_prerequisite("bob-acid-rocket", "alien-purple-research") -else - bobmods.lib.tech.add_prerequisite("bob-acid-rocket", "nitrogen-processing") -end - -if data.raw.technology["alien-yellow-research"] then - bobmods.lib.tech.add_prerequisite("bob-he-bullets", "alien-yellow-research") - bobmods.lib.tech.add_prerequisite("bob-shotgun-explosive-shells", "alien-yellow-research") - bobmods.lib.tech.add_prerequisite("bob-explosive-rocket", "alien-yellow-research") -else - bobmods.lib.tech.add_prerequisite("bob-he-bullets", "explosives") - bobmods.lib.tech.add_prerequisite("bob-shotgun-explosive-shells", "explosives") -end - -if data.raw.technology["alien-green-research"] then - bobmods.lib.tech.add_prerequisite("bob-poison-bullets", "alien-green-research") - bobmods.lib.tech.add_prerequisite("bob-shotgun-poison-shells", "alien-green-research") - bobmods.lib.tech.add_prerequisite("bob-poison-rocket", "alien-green-research") -end - -if data.raw.technology["alien-red-research"] then - bobmods.lib.tech.add_prerequisite("bob-flame-bullets", "alien-red-research") - bobmods.lib.tech.add_prerequisite("bob-shotgun-flame-shells", "alien-red-research") - bobmods.lib.tech.add_prerequisite("bob-flame-rocket", "alien-red-research") -else - bobmods.lib.tech.add_prerequisite("bob-flame-bullets", "flammables") - bobmods.lib.tech.add_prerequisite("bob-shotgun-flame-shells", "flammables") -end - - -bobmods.lib.tech.add_recipe_unlock("military-3", "rifle") -bobmods.lib.tech.add_recipe_unlock("military-3", "sniper-rifle") - -bobmods.lib.tech.add_recipe_unlock("rocketry", "rocket-engine") -if data.raw.technology["tungsten-processing"] then - bobmods.lib.tech.add_prerequisite("bob-rocket", "tungsten-processing") -end - -table.insert(data.raw.technology["gun-turret-damage-1"].effects,{type = "turret-attack", turret_id = "bob-gun-turret-2", modifier = "0.1"}) -table.insert(data.raw.technology["gun-turret-damage-1"].effects,{type = "turret-attack", turret_id = "bob-gun-turret-3", modifier = "0.1"}) -table.insert(data.raw.technology["gun-turret-damage-1"].effects,{type = "turret-attack", turret_id = "bob-gun-turret-4", modifier = "0.1"}) -table.insert(data.raw.technology["gun-turret-damage-1"].effects,{type = "turret-attack", turret_id = "bob-gun-turret-5", modifier = "0.1"}) - -table.insert(data.raw.technology["gun-turret-damage-2"].effects,{type = "turret-attack", turret_id = "bob-gun-turret-2", modifier = "0.1"}) -table.insert(data.raw.technology["gun-turret-damage-2"].effects,{type = "turret-attack", turret_id = "bob-gun-turret-3", modifier = "0.1"}) -table.insert(data.raw.technology["gun-turret-damage-2"].effects,{type = "turret-attack", turret_id = "bob-gun-turret-4", modifier = "0.1"}) -table.insert(data.raw.technology["gun-turret-damage-2"].effects,{type = "turret-attack", turret_id = "bob-gun-turret-5", modifier = "0.1"}) - -table.insert(data.raw.technology["gun-turret-damage-3"].effects,{type = "turret-attack", turret_id = "bob-gun-turret-2", modifier = "0.2"}) -table.insert(data.raw.technology["gun-turret-damage-3"].effects,{type = "turret-attack", turret_id = "bob-gun-turret-3", modifier = "0.2"}) -table.insert(data.raw.technology["gun-turret-damage-3"].effects,{type = "turret-attack", turret_id = "bob-gun-turret-4", modifier = "0.2"}) -table.insert(data.raw.technology["gun-turret-damage-3"].effects,{type = "turret-attack", turret_id = "bob-gun-turret-5", modifier = "0.2"}) - -table.insert(data.raw.technology["gun-turret-damage-4"].effects,{type = "turret-attack", turret_id = "bob-gun-turret-2", modifier = "0.2"}) -table.insert(data.raw.technology["gun-turret-damage-4"].effects,{type = "turret-attack", turret_id = "bob-gun-turret-3", modifier = "0.2"}) -table.insert(data.raw.technology["gun-turret-damage-4"].effects,{type = "turret-attack", turret_id = "bob-gun-turret-4", modifier = "0.2"}) -table.insert(data.raw.technology["gun-turret-damage-4"].effects,{type = "turret-attack", turret_id = "bob-gun-turret-5", modifier = "0.2"}) - -table.insert(data.raw.technology["gun-turret-damage-5"].effects,{type = "turret-attack", turret_id = "bob-gun-turret-2", modifier = "0.2"}) -table.insert(data.raw.technology["gun-turret-damage-5"].effects,{type = "turret-attack", turret_id = "bob-gun-turret-3", modifier = "0.2"}) -table.insert(data.raw.technology["gun-turret-damage-5"].effects,{type = "turret-attack", turret_id = "bob-gun-turret-4", modifier = "0.2"}) -table.insert(data.raw.technology["gun-turret-damage-5"].effects,{type = "turret-attack", turret_id = "bob-gun-turret-5", modifier = "0.2"}) - -table.insert(data.raw.technology["gun-turret-damage-6"].effects,{type = "turret-attack", turret_id = "bob-gun-turret-2", modifier = "0.4"}) -table.insert(data.raw.technology["gun-turret-damage-6"].effects,{type = "turret-attack", turret_id = "bob-gun-turret-3", modifier = "0.4"}) -table.insert(data.raw.technology["gun-turret-damage-6"].effects,{type = "turret-attack", turret_id = "bob-gun-turret-4", modifier = "0.4"}) -table.insert(data.raw.technology["gun-turret-damage-6"].effects,{type = "turret-attack", turret_id = "bob-gun-turret-5", modifier = "0.4"}) - - -if data.raw.recipe["gun-cotton-synthetic"] then - bobmods.lib.tech.add_recipe_unlock("cordite-processing", "gun-cotton-synthetic") -end - - -if data.raw.technology["speed-module-4"] then - bobmods.lib.tech.add_prerequisite("bob-power-armor-3", "speed-module-4") - bobmods.lib.tech.add_prerequisite("fusion-reactor-equipment-2", "speed-module-4") -else - bobmods.lib.tech.add_prerequisite("fusion-reactor-equipment-2", "speed-module-3") -end - -if data.raw.technology["effectivity-module-4"] then - bobmods.lib.tech.add_prerequisite("bob-power-armor-3", "effectivity-module-4") - bobmods.lib.tech.add_prerequisite("energy-shield-equipment-4", "effectivity-module-4") - bobmods.lib.tech.add_prerequisite("fusion-reactor-equipment-2", "effectivity-module-4") -else - bobmods.lib.tech.add_prerequisite("energy-shield-equipment-4", "effectivity-module-3") - bobmods.lib.tech.add_prerequisite("fusion-reactor-equipment-2", "effectivity-module-3") -end - -if data.raw.technology["productivity-module-4"] then - bobmods.lib.tech.add_prerequisite("energy-shield-equipment-4", "productivity-module-4") - bobmods.lib.tech.add_prerequisite("fusion-reactor-equipment-2", "productivity-module-4") -else - bobmods.lib.tech.add_prerequisite("energy-shield-equipment-4", "productivity-module-3") - bobmods.lib.tech.add_prerequisite("fusion-reactor-equipment-2", "productivity-module-3") -end - - -if data.raw.technology["speed-module-6"] then - bobmods.lib.tech.add_prerequisite("bob-power-armor-4", "speed-module-6") - bobmods.lib.tech.add_prerequisite("fusion-reactor-equipment-3", "speed-module-6") -end - -if data.raw.technology["effectivity-module-6"] then - bobmods.lib.tech.add_prerequisite("bob-power-armor-4", "effectivity-module-6") - bobmods.lib.tech.add_prerequisite("energy-shield-equipment-5", "effectivity-module-6") - bobmods.lib.tech.add_prerequisite("fusion-reactor-equipment-3", "effectivity-module-6") -end - -if data.raw.technology["productivity-module-6"] then - bobmods.lib.tech.add_prerequisite("energy-shield-equipment-5", "productivity-module-6") - bobmods.lib.tech.add_prerequisite("fusion-reactor-equipment-3", "productivity-module-6") -end - - -if data.raw.technology["speed-module-8"] then - bobmods.lib.tech.add_prerequisite("bob-power-armor-5", "speed-module-8") - bobmods.lib.tech.add_prerequisite("fusion-reactor-equipment-4", "speed-module-8") -end - -if data.raw.technology["effectivity-module-8"] then - bobmods.lib.tech.add_prerequisite("bob-power-armor-5", "effectivity-module-8") - bobmods.lib.tech.add_prerequisite("energy-shield-equipment-6", "effectivity-module-8") - bobmods.lib.tech.add_prerequisite("fusion-reactor-equipment-4", "effectivity-module-8") -end - -if data.raw.technology["productivity-module-8"] then - bobmods.lib.tech.add_prerequisite("energy-shield-equipment-6", "productivity-module-8") - bobmods.lib.tech.add_prerequisite("fusion-reactor-equipment-4", "productivity-module-8") -end - - - +if data.raw.tool["science-pack-4"] then + bobmods.lib.tech.replace_science_pack("bob-turrets-5", "alien-science-pack", "science-pack-4") + bobmods.lib.tech.replace_science_pack("bob-laser-turrets-5", "alien-science-pack", "science-pack-4") + bobmods.lib.tech.replace_science_pack("bob-sniper-turrets-3", "alien-science-pack", "science-pack-4") + + bobmods.lib.tech.replace_science_pack("bob-laser-rifle-ammo-4", "alien-science-pack", "science-pack-4") + bobmods.lib.tech.replace_science_pack("bob-laser-rifle-ammo-5", "alien-science-pack", "science-pack-4") + bobmods.lib.tech.add_new_science_pack("bob-laser-rifle-ammo-6", "science-pack-4", 1) + + bobmods.lib.tech.replace_science_pack("personal-laser-defense-equipment-5", "alien-science-pack", "science-pack-4") + bobmods.lib.tech.add_new_science_pack("personal-laser-defense-equipment-6", "science-pack-4", 1) + + bobmods.lib.tech.replace_science_pack("bob-tanks-3", "alien-science-pack", "science-pack-4") + + bobmods.lib.tech.replace_science_pack("radars-4", "alien-science-pack", "science-pack-4") + + bobmods.lib.tech.replace_science_pack("bullet-damage-5", "alien-science-pack", "science-pack-4") + bobmods.lib.tech.replace_science_pack("bullet-speed-5", "alien-science-pack", "science-pack-4") + bobmods.lib.tech.add_new_science_pack("bullet-damage-6", "science-pack-4", 1) + bobmods.lib.tech.add_new_science_pack("bullet-speed-6", "science-pack-4", 1) + + bobmods.lib.tech.replace_science_pack("shotgun-shell-damage-5", "alien-science-pack", "science-pack-4") + bobmods.lib.tech.replace_science_pack("shotgun-shell-speed-5", "alien-science-pack", "science-pack-4") + bobmods.lib.tech.add_new_science_pack("shotgun-shell-damage-6", "science-pack-4", 1) + bobmods.lib.tech.add_new_science_pack("shotgun-shell-speed-6", "science-pack-4", 1) + + bobmods.lib.tech.add_new_science_pack("rocket-damage-5", "science-pack-4", 1) + bobmods.lib.tech.add_new_science_pack("rocket-speed-5", "science-pack-4", 1) + bobmods.lib.tech.add_new_science_pack("rocket-damage-6", "science-pack-4", 1) + bobmods.lib.tech.add_new_science_pack("rocket-speed-6", "science-pack-4", 1) + + bobmods.lib.tech.replace_science_pack("bob-tank-cannon-damage-5", "alien-science-pack", "science-pack-4") + bobmods.lib.tech.replace_science_pack("bob-tank-cannon-speed-5", "alien-science-pack", "science-pack-4") + bobmods.lib.tech.add_new_science_pack("bob-tank-cannon-damage-6", "science-pack-4", 1) + bobmods.lib.tech.add_new_science_pack("bob-tank-cannon-speed-6", "science-pack-4", 1) + + bobmods.lib.tech.replace_science_pack("bob-laser-rifle-damage-5", "alien-science-pack", "science-pack-4") + bobmods.lib.tech.replace_science_pack("bob-laser-rifle-speed-5", "alien-science-pack", "science-pack-4") + bobmods.lib.tech.add_new_science_pack("bob-laser-rifle-damage-6", "science-pack-4", 1) + bobmods.lib.tech.add_new_science_pack("bob-laser-rifle-speed-6", "science-pack-4", 1) + + bobmods.lib.tech.replace_science_pack("gun-turret-damage-5", "alien-science-pack", "science-pack-4") + bobmods.lib.tech.add_new_science_pack("gun-turret-damage-6", "science-pack-4", 1) + + bobmods.lib.tech.replace_science_pack("laser-turret-damage-5", "alien-science-pack", "science-pack-4") + bobmods.lib.tech.replace_science_pack("laser-turret-speed-5", "alien-science-pack", "science-pack-4") + bobmods.lib.tech.add_new_science_pack("laser-turret-damage-6", "science-pack-4", 1) + bobmods.lib.tech.add_new_science_pack("laser-turret-speed-6", "science-pack-4", 1) + + bobmods.lib.tech.replace_science_pack("bob-sniper-turret-damage-5", "alien-science-pack", "science-pack-4") + bobmods.lib.tech.add_new_science_pack("bob-sniper-turret-damage-6", "science-pack-4", 1) +end + + +if data.raw.tool["science-pack-gold"] and + data.raw.tool["alien-science-pack-blue"] and + data.raw.tool["alien-science-pack-orange"] and + data.raw.tool["alien-science-pack-purple"] and + data.raw.tool["alien-science-pack-yellow"] and + data.raw.tool["alien-science-pack-green"] and + data.raw.tool["alien-science-pack-red"] +then + data.raw.technology["bob-ap-bullets"].unit.ingredients = {{"science-pack-gold", 1},{"alien-science-pack-blue", 1}} + data.raw.technology["bob-shotgun-ap-shells"].unit.ingredients = {{"science-pack-gold", 1},{"alien-science-pack-blue", 1}} + data.raw.technology["bob-piercing-rocket"].unit.ingredients = {{"science-pack-gold", 1},{"alien-science-pack-blue", 1}} + + data.raw.technology["bob-electric-bullets"].unit.ingredients = {{"science-pack-gold", 1},{"alien-science-pack-orange", 1}} + data.raw.technology["bob-shotgun-electric-shells"].unit.ingredients = {{"science-pack-gold", 1},{"alien-science-pack-orange", 1}} + data.raw.technology["bob-electric-rocket"].unit.ingredients = {{"science-pack-gold", 1},{"alien-science-pack-orange", 1}} + + data.raw.technology["bob-acid-bullets"].unit.ingredients = {{"science-pack-gold", 1},{"alien-science-pack-purple", 1}} + data.raw.technology["bob-shotgun-acid-shells"].unit.ingredients = {{"science-pack-gold", 1},{"alien-science-pack-purple", 1}} + data.raw.technology["bob-acid-rocket"].unit.ingredients = {{"science-pack-gold", 1},{"alien-science-pack-purple", 1}} + + data.raw.technology["bob-he-bullets"].unit.ingredients = {{"science-pack-gold", 1},{"alien-science-pack-yellow", 1}} + data.raw.technology["bob-shotgun-explosive-shells"].unit.ingredients = {{"science-pack-gold", 1},{"alien-science-pack-yellow", 1}} + data.raw.technology["bob-explosive-rocket"].unit.ingredients = {{"science-pack-gold", 1},{"alien-science-pack-yellow", 1}} + + data.raw.technology["bob-poison-bullets"].unit.ingredients = {{"science-pack-gold", 1},{"alien-science-pack-green", 1}} + data.raw.technology["bob-shotgun-poison-shells"].unit.ingredients = {{"science-pack-gold", 1},{"alien-science-pack-green", 1}} + data.raw.technology["bob-poison-rocket"].unit.ingredients = {{"science-pack-gold", 1},{"alien-science-pack-green", 1}} + + data.raw.technology["bob-flame-bullets"].unit.ingredients = {{"science-pack-gold", 1},{"alien-science-pack-red", 1}} + data.raw.technology["bob-shotgun-flame-shells"].unit.ingredients = {{"science-pack-gold", 1},{"alien-science-pack-red", 1}} + data.raw.technology["bob-flame-rocket"].unit.ingredients = {{"science-pack-gold", 1},{"alien-science-pack-red", 1}} + + data.raw.technology["bob-power-armor-3"].unit.ingredients = {{"science-pack-gold", 1},{"alien-science-pack", 1},{"alien-science-pack-blue", 1},{"alien-science-pack-orange", 1}} + data.raw.technology["energy-shield-equipment-4"].unit.ingredients = {{"science-pack-gold", 1},{"alien-science-pack", 1},{"alien-science-pack-blue", 1},{"alien-science-pack-orange", 1}} + data.raw.technology["battery-equipment-4"].unit.ingredients = {{"science-pack-gold", 1},{"alien-science-pack", 1},{"alien-science-pack-blue", 1},{"alien-science-pack-orange", 1}} + data.raw.technology["fusion-reactor-equipment-2"].unit.ingredients = {{"science-pack-gold", 1},{"alien-science-pack", 1},{"alien-science-pack-blue", 1},{"alien-science-pack-orange", 1}} + + data.raw.technology["bob-power-armor-4"].unit.ingredients = {{"science-pack-gold", 1},{"alien-science-pack", 1},{"alien-science-pack-purple", 1},{"alien-science-pack-yellow", 1}} + data.raw.technology["energy-shield-equipment-5"].unit.ingredients = {{"science-pack-gold", 1},{"alien-science-pack", 1},{"alien-science-pack-purple", 1},{"alien-science-pack-yellow", 1}} + data.raw.technology["battery-equipment-5"].unit.ingredients = {{"science-pack-gold", 1},{"alien-science-pack", 1},{"alien-science-pack-purple", 1},{"alien-science-pack-yellow", 1}} + data.raw.technology["fusion-reactor-equipment-3"].unit.ingredients = {{"science-pack-gold", 1},{"alien-science-pack", 1},{"alien-science-pack-purple", 1},{"alien-science-pack-yellow", 1}} + + data.raw.technology["bob-power-armor-5"].unit.ingredients = {{"science-pack-gold", 1},{"alien-science-pack", 1},{"alien-science-pack-green", 1},{"alien-science-pack-red", 1}} + data.raw.technology["energy-shield-equipment-6"].unit.ingredients = {{"science-pack-gold", 1},{"alien-science-pack", 1},{"alien-science-pack-green", 1},{"alien-science-pack-red", 1}} + data.raw.technology["battery-equipment-6"].unit.ingredients = {{"science-pack-gold", 1},{"alien-science-pack", 1},{"alien-science-pack-green", 1},{"alien-science-pack-red", 1}} + data.raw.technology["fusion-reactor-equipment-4"].unit.ingredients = {{"science-pack-gold", 1},{"alien-science-pack", 1},{"alien-science-pack-green", 1},{"alien-science-pack-red", 1}} +else + if data.raw.tool["science-pack-4"] then + bobmods.lib.tech.replace_science_pack("bob-ap-bullets", "alien-science-pack", "science-pack-4") + bobmods.lib.tech.replace_science_pack("bob-shotgun-ap-shells", "alien-science-pack", "science-pack-4") + bobmods.lib.tech.replace_science_pack("bob-piercing-rocket", "alien-science-pack", "science-pack-4") + + bobmods.lib.tech.replace_science_pack("bob-electric-bullets", "alien-science-pack", "science-pack-4") + bobmods.lib.tech.replace_science_pack("bob-shotgun-electric-shells", "alien-science-pack", "science-pack-4") + bobmods.lib.tech.replace_science_pack("bob-electric-rocket", "alien-science-pack", "science-pack-4") + + bobmods.lib.tech.replace_science_pack("bob-acid-bullets", "alien-science-pack", "science-pack-4") + bobmods.lib.tech.replace_science_pack("bob-shotgun-acid-shells", "alien-science-pack", "science-pack-4") + bobmods.lib.tech.replace_science_pack("bob-acid-rocket", "alien-science-pack", "science-pack-4") + + bobmods.lib.tech.replace_science_pack("bob-he-bullets", "alien-science-pack", "science-pack-4") + bobmods.lib.tech.replace_science_pack("bob-shotgun-explosive-shells", "alien-science-pack", "science-pack-4") + bobmods.lib.tech.replace_science_pack("bob-explosive-rocket", "alien-science-pack", "science-pack-4") + + bobmods.lib.tech.replace_science_pack("bob-poison-bullets", "alien-science-pack", "science-pack-4") + bobmods.lib.tech.replace_science_pack("bob-shotgun-poison-shells", "alien-science-pack", "science-pack-4") + bobmods.lib.tech.replace_science_pack("bob-poison-rocket", "alien-science-pack", "science-pack-4") + + bobmods.lib.tech.replace_science_pack("bob-flame-bullets", "alien-science-pack", "science-pack-4") + bobmods.lib.tech.replace_science_pack("bob-shotgun-flame-shells", "alien-science-pack", "science-pack-4") + bobmods.lib.tech.replace_science_pack("bob-flame-rocket", "alien-science-pack", "science-pack-4") + + bobmods.lib.tech.add_new_science_pack("bob-power-armor-3", "science-pack-4", 1) + bobmods.lib.tech.add_new_science_pack("energy-shield-equipment-4", "science-pack-4", 1) + + bobmods.lib.tech.add_new_science_pack("bob-power-armor-4", "science-pack-4", 1) + bobmods.lib.tech.add_new_science_pack("energy-shield-equipment-5", "science-pack-4", 1) + bobmods.lib.tech.add_new_science_pack("battery-equipment-5", "science-pack-4", 1) + bobmods.lib.tech.add_new_science_pack("fusion-reactor-equipment-3", "science-pack-4", 1) + + bobmods.lib.tech.add_new_science_pack("bob-power-armor-5", "science-pack-4", 1) + bobmods.lib.tech.add_new_science_pack("energy-shield-equipment-6", "science-pack-4", 1) + bobmods.lib.tech.add_new_science_pack("battery-equipment-6", "science-pack-4", 1) + bobmods.lib.tech.add_new_science_pack("fusion-reactor-equipment-4", "science-pack-4", 1) + end +end + + +if data.raw.technology["alien-blue-research"] then + bobmods.lib.tech.add_prerequisite("bob-ap-bullets", "alien-blue-research") + bobmods.lib.tech.add_prerequisite("bob-shotgun-ap-shells", "alien-blue-research") + bobmods.lib.tech.add_prerequisite("bob-piercing-rocket", "alien-blue-research") +elseif data.raw.technology["tungsten-processing"] then + bobmods.lib.tech.add_prerequisite("bob-ap-bullets", "tungsten-processing") + bobmods.lib.tech.add_prerequisite("bob-shotgun-ap-shells", "tungsten-processing") +end + +if data.raw.technology["alien-orange-research"] then + bobmods.lib.tech.add_prerequisite("bob-electric-bullets", "alien-orange-research") + bobmods.lib.tech.add_prerequisite("bob-shotgun-electric-shells", "alien-orange-research") + bobmods.lib.tech.add_prerequisite("bob-electric-rocket", "alien-orange-research") +end + +if data.raw.technology["alien-purple-research"] then + bobmods.lib.tech.add_prerequisite("bob-acid-bullets", "alien-purple-research") + bobmods.lib.tech.add_prerequisite("bob-shotgun-acid-shells", "alien-purple-research") + bobmods.lib.tech.add_prerequisite("bob-acid-rocket", "alien-purple-research") +else + bobmods.lib.tech.add_prerequisite("bob-acid-rocket", "nitrogen-processing") +end + +if data.raw.technology["alien-yellow-research"] then + bobmods.lib.tech.add_prerequisite("bob-he-bullets", "alien-yellow-research") + bobmods.lib.tech.add_prerequisite("bob-shotgun-explosive-shells", "alien-yellow-research") + bobmods.lib.tech.add_prerequisite("bob-explosive-rocket", "alien-yellow-research") +else + bobmods.lib.tech.add_prerequisite("bob-he-bullets", "explosives") + bobmods.lib.tech.add_prerequisite("bob-shotgun-explosive-shells", "explosives") +end + +if data.raw.technology["alien-green-research"] then + bobmods.lib.tech.add_prerequisite("bob-poison-bullets", "alien-green-research") + bobmods.lib.tech.add_prerequisite("bob-shotgun-poison-shells", "alien-green-research") + bobmods.lib.tech.add_prerequisite("bob-poison-rocket", "alien-green-research") +end + +if data.raw.technology["alien-red-research"] then + bobmods.lib.tech.add_prerequisite("bob-flame-bullets", "alien-red-research") + bobmods.lib.tech.add_prerequisite("bob-shotgun-flame-shells", "alien-red-research") + bobmods.lib.tech.add_prerequisite("bob-flame-rocket", "alien-red-research") +else + bobmods.lib.tech.add_prerequisite("bob-flame-bullets", "flammables") + bobmods.lib.tech.add_prerequisite("bob-shotgun-flame-shells", "flammables") +end + + +bobmods.lib.tech.add_recipe_unlock("military-3", "rifle") +bobmods.lib.tech.add_recipe_unlock("military-3", "sniper-rifle") + +bobmods.lib.tech.add_recipe_unlock("rocketry", "rocket-engine") +if data.raw.technology["tungsten-processing"] then + bobmods.lib.tech.add_prerequisite("bob-rocket", "tungsten-processing") +end + +table.insert(data.raw.technology["gun-turret-damage-1"].effects,{type = "turret-attack", turret_id = "bob-gun-turret-2", modifier = "0.1"}) +table.insert(data.raw.technology["gun-turret-damage-1"].effects,{type = "turret-attack", turret_id = "bob-gun-turret-3", modifier = "0.1"}) +table.insert(data.raw.technology["gun-turret-damage-1"].effects,{type = "turret-attack", turret_id = "bob-gun-turret-4", modifier = "0.1"}) +table.insert(data.raw.technology["gun-turret-damage-1"].effects,{type = "turret-attack", turret_id = "bob-gun-turret-5", modifier = "0.1"}) + +table.insert(data.raw.technology["gun-turret-damage-2"].effects,{type = "turret-attack", turret_id = "bob-gun-turret-2", modifier = "0.1"}) +table.insert(data.raw.technology["gun-turret-damage-2"].effects,{type = "turret-attack", turret_id = "bob-gun-turret-3", modifier = "0.1"}) +table.insert(data.raw.technology["gun-turret-damage-2"].effects,{type = "turret-attack", turret_id = "bob-gun-turret-4", modifier = "0.1"}) +table.insert(data.raw.technology["gun-turret-damage-2"].effects,{type = "turret-attack", turret_id = "bob-gun-turret-5", modifier = "0.1"}) + +table.insert(data.raw.technology["gun-turret-damage-3"].effects,{type = "turret-attack", turret_id = "bob-gun-turret-2", modifier = "0.2"}) +table.insert(data.raw.technology["gun-turret-damage-3"].effects,{type = "turret-attack", turret_id = "bob-gun-turret-3", modifier = "0.2"}) +table.insert(data.raw.technology["gun-turret-damage-3"].effects,{type = "turret-attack", turret_id = "bob-gun-turret-4", modifier = "0.2"}) +table.insert(data.raw.technology["gun-turret-damage-3"].effects,{type = "turret-attack", turret_id = "bob-gun-turret-5", modifier = "0.2"}) + +table.insert(data.raw.technology["gun-turret-damage-4"].effects,{type = "turret-attack", turret_id = "bob-gun-turret-2", modifier = "0.2"}) +table.insert(data.raw.technology["gun-turret-damage-4"].effects,{type = "turret-attack", turret_id = "bob-gun-turret-3", modifier = "0.2"}) +table.insert(data.raw.technology["gun-turret-damage-4"].effects,{type = "turret-attack", turret_id = "bob-gun-turret-4", modifier = "0.2"}) +table.insert(data.raw.technology["gun-turret-damage-4"].effects,{type = "turret-attack", turret_id = "bob-gun-turret-5", modifier = "0.2"}) + +table.insert(data.raw.technology["gun-turret-damage-5"].effects,{type = "turret-attack", turret_id = "bob-gun-turret-2", modifier = "0.2"}) +table.insert(data.raw.technology["gun-turret-damage-5"].effects,{type = "turret-attack", turret_id = "bob-gun-turret-3", modifier = "0.2"}) +table.insert(data.raw.technology["gun-turret-damage-5"].effects,{type = "turret-attack", turret_id = "bob-gun-turret-4", modifier = "0.2"}) +table.insert(data.raw.technology["gun-turret-damage-5"].effects,{type = "turret-attack", turret_id = "bob-gun-turret-5", modifier = "0.2"}) + +table.insert(data.raw.technology["gun-turret-damage-6"].effects,{type = "turret-attack", turret_id = "bob-gun-turret-2", modifier = "0.4"}) +table.insert(data.raw.technology["gun-turret-damage-6"].effects,{type = "turret-attack", turret_id = "bob-gun-turret-3", modifier = "0.4"}) +table.insert(data.raw.technology["gun-turret-damage-6"].effects,{type = "turret-attack", turret_id = "bob-gun-turret-4", modifier = "0.4"}) +table.insert(data.raw.technology["gun-turret-damage-6"].effects,{type = "turret-attack", turret_id = "bob-gun-turret-5", modifier = "0.4"}) + + +if data.raw.recipe["gun-cotton-synthetic"] then + bobmods.lib.tech.add_recipe_unlock("cordite-processing", "gun-cotton-synthetic") +end + + +if data.raw.technology["speed-module-4"] then + bobmods.lib.tech.add_prerequisite("bob-power-armor-3", "speed-module-4") + bobmods.lib.tech.add_prerequisite("fusion-reactor-equipment-2", "speed-module-4") +else + bobmods.lib.tech.add_prerequisite("fusion-reactor-equipment-2", "speed-module-3") +end + +if data.raw.technology["effectivity-module-4"] then + bobmods.lib.tech.add_prerequisite("bob-power-armor-3", "effectivity-module-4") + bobmods.lib.tech.add_prerequisite("energy-shield-equipment-4", "effectivity-module-4") + bobmods.lib.tech.add_prerequisite("fusion-reactor-equipment-2", "effectivity-module-4") +else + bobmods.lib.tech.add_prerequisite("energy-shield-equipment-4", "effectivity-module-3") + bobmods.lib.tech.add_prerequisite("fusion-reactor-equipment-2", "effectivity-module-3") +end + +if data.raw.technology["productivity-module-4"] then + bobmods.lib.tech.add_prerequisite("energy-shield-equipment-4", "productivity-module-4") + bobmods.lib.tech.add_prerequisite("fusion-reactor-equipment-2", "productivity-module-4") +else + bobmods.lib.tech.add_prerequisite("energy-shield-equipment-4", "productivity-module-3") + bobmods.lib.tech.add_prerequisite("fusion-reactor-equipment-2", "productivity-module-3") +end + + +if data.raw.technology["speed-module-6"] then + bobmods.lib.tech.add_prerequisite("bob-power-armor-4", "speed-module-6") + bobmods.lib.tech.add_prerequisite("fusion-reactor-equipment-3", "speed-module-6") +end + +if data.raw.technology["effectivity-module-6"] then + bobmods.lib.tech.add_prerequisite("bob-power-armor-4", "effectivity-module-6") + bobmods.lib.tech.add_prerequisite("energy-shield-equipment-5", "effectivity-module-6") + bobmods.lib.tech.add_prerequisite("fusion-reactor-equipment-3", "effectivity-module-6") +end + +if data.raw.technology["productivity-module-6"] then + bobmods.lib.tech.add_prerequisite("energy-shield-equipment-5", "productivity-module-6") + bobmods.lib.tech.add_prerequisite("fusion-reactor-equipment-3", "productivity-module-6") +end + + +if data.raw.technology["speed-module-8"] then + bobmods.lib.tech.add_prerequisite("bob-power-armor-5", "speed-module-8") + bobmods.lib.tech.add_prerequisite("fusion-reactor-equipment-4", "speed-module-8") +end + +if data.raw.technology["effectivity-module-8"] then + bobmods.lib.tech.add_prerequisite("bob-power-armor-5", "effectivity-module-8") + bobmods.lib.tech.add_prerequisite("energy-shield-equipment-6", "effectivity-module-8") + bobmods.lib.tech.add_prerequisite("fusion-reactor-equipment-4", "effectivity-module-8") +end + +if data.raw.technology["productivity-module-8"] then + bobmods.lib.tech.add_prerequisite("energy-shield-equipment-6", "productivity-module-8") + bobmods.lib.tech.add_prerequisite("fusion-reactor-equipment-4", "productivity-module-8") +end + + + diff --git a/bobwarfare_0.14.0/prototypes/technology/technology.lua b/bobwarfare_0.14.1/prototypes/technology/technology.lua similarity index 94% rename from bobwarfare_0.14.0/prototypes/technology/technology.lua rename to bobwarfare_0.14.1/prototypes/technology/technology.lua index dd29f2f..c399a59 100644 --- a/bobwarfare_0.14.0/prototypes/technology/technology.lua +++ b/bobwarfare_0.14.1/prototypes/technology/technology.lua @@ -1,74 +1,74 @@ -data:extend( -{ - { - type = "technology", - name = "nitroglycerin-processing", - icon = "__bobwarfare__/graphics/icons/technology/nitroglycerin.png", - prerequisites = - { - "oil-processing" - }, - effects = - { - { - type = "unlock-recipe", - recipe = "glycerol" - }, - { - type = "unlock-recipe", - recipe = "nitroglycerin" - }, - }, - unit = - { - count = 50, - ingredients = - { - {"science-pack-1", 1}, - {"science-pack-2", 1}, - {"science-pack-3", 1}, - }, - time = 30 - }, - order = "d-b-b5-a" - }, - - { - type = "technology", - name = "cordite-processing", - icon = "__bobwarfare__/graphics/icons/technology/cordite.png", - prerequisites = - { - "nitroglycerin-processing" - }, - effects = - { - { - type = "unlock-recipe", - recipe = "petroleum-jelly" - }, - { - type = "unlock-recipe", - recipe = "gun-cotton" - }, - { - type = "unlock-recipe", - recipe = "cordite" - }, - }, - unit = - { - count = 50, - ingredients = - { - {"science-pack-1", 1}, - {"science-pack-2", 1}, - {"science-pack-3", 1}, - }, - time = 30 - }, - order = "d-b-b5-b" - }, -} -) - +data:extend( +{ + { + type = "technology", + name = "nitroglycerin-processing", + icon = "__bobwarfare__/graphics/icons/technology/nitroglycerin.png", + prerequisites = + { + "oil-processing" + }, + effects = + { + { + type = "unlock-recipe", + recipe = "glycerol" + }, + { + type = "unlock-recipe", + recipe = "nitroglycerin" + }, + }, + unit = + { + count = 50, + ingredients = + { + {"science-pack-1", 1}, + {"science-pack-2", 1}, + {"science-pack-3", 1}, + }, + time = 30 + }, + order = "d-b-b5-a" + }, + + { + type = "technology", + name = "cordite-processing", + icon = "__bobwarfare__/graphics/icons/technology/cordite.png", + prerequisites = + { + "nitroglycerin-processing" + }, + effects = + { + { + type = "unlock-recipe", + recipe = "petroleum-jelly" + }, + { + type = "unlock-recipe", + recipe = "gun-cotton" + }, + { + type = "unlock-recipe", + recipe = "cordite" + }, + }, + unit = + { + count = 50, + ingredients = + { + {"science-pack-1", 1}, + {"science-pack-2", 1}, + {"science-pack-3", 1}, + }, + time = 30 + }, + order = "d-b-b5-b" + }, +} +) + diff --git a/bobwarfare_0.14.0/prototypes/technology/turrets.lua b/bobwarfare_0.14.1/prototypes/technology/turrets.lua similarity index 94% rename from bobwarfare_0.14.0/prototypes/technology/turrets.lua rename to bobwarfare_0.14.1/prototypes/technology/turrets.lua index 52e7851..0dd27a3 100644 --- a/bobwarfare_0.14.0/prototypes/technology/turrets.lua +++ b/bobwarfare_0.14.1/prototypes/technology/turrets.lua @@ -1,337 +1,337 @@ -data:extend( -{ - { - type = "technology", - name = "bob-turrets-2", - icon = "__base__/graphics/technology/turrets.png", - upgrade = "true", - order = "a-j-a-2", - prerequisites = - { - "turrets", - "steel-processing", - }, - effects = - { - { - type = "unlock-recipe", - recipe = "bob-gun-turret-2" - } - }, - unit = - { - count = 30, - time = 15, - ingredients = - { - {"science-pack-1", 1}, - {"science-pack-2", 1}, - }, - }, - }, - - { - type = "technology", - name = "bob-turrets-3", - icon = "__base__/graphics/technology/turrets.png", - upgrade = "true", - order = "a-j-a-3", - prerequisites = - { - "bob-turrets-2", - }, - effects = - { - { - type = "unlock-recipe", - recipe = "bob-gun-turret-3" - } - }, - unit = - { - count = 50, - time = 15, - ingredients = - { - {"science-pack-1", 1}, - {"science-pack-2", 1}, - }, - }, - }, - - { - type = "technology", - name = "bob-turrets-4", - icon = "__base__/graphics/technology/turrets.png", - upgrade = "true", - order = "a-j-a-4", - prerequisites = - { - "bob-turrets-3", - }, - effects = - { - { - type = "unlock-recipe", - recipe = "bob-gun-turret-4" - } - }, - unit = - { - count = 75, - time = 30, - ingredients = - { - {"science-pack-1", 1}, - {"science-pack-2", 1}, - {"science-pack-3", 1}, - }, - }, - }, - - { - type = "technology", - name = "bob-turrets-5", - icon = "__base__/graphics/technology/turrets.png", - upgrade = "true", - order = "a-j-a-5", - prerequisites = - { - "bob-turrets-4", - }, - effects = - { - { - type = "unlock-recipe", - recipe = "bob-gun-turret-5" - } - }, - unit = - { - count = 100, - time = 30, - ingredients = - { - {"science-pack-1", 1}, - {"science-pack-2", 1}, - {"science-pack-3", 1}, - {"alien-science-pack", 1}, - }, - }, - }, - - - { - type = "technology", - name = "bob-laser-turrets-2", - icon = "__base__/graphics/technology/laser-turrets.png", - order = "a-j-b-2", - upgrade = "true", - prerequisites = - { - "laser-turrets", - "advanced-electronics", - }, - effects = - { - { - type = "unlock-recipe", - recipe = "bob-laser-turret-2" - } - }, - unit = - { - count = 75, - time = 30, - ingredients = - { - {"science-pack-1", 1}, - {"science-pack-2", 1}, - }, - }, - }, - - { - type = "technology", - name = "bob-laser-turrets-3", - icon = "__base__/graphics/technology/laser-turrets.png", - order = "a-j-b-3", - upgrade = "true", - prerequisites = - { - "bob-laser-turrets-2", - }, - unit = - { - count = 75, - time = 30, - ingredients = - { - {"science-pack-1", 1}, - {"science-pack-2", 1}, - {"science-pack-3", 1}, - }, - }, - effects = - { - { - type = "unlock-recipe", - recipe = "bob-laser-turret-3" - } - }, - }, - - { - type = "technology", - name = "bob-laser-turrets-4", - icon = "__base__/graphics/technology/laser-turrets.png", - order = "a-j-b-4", - upgrade = "true", - prerequisites = - { - "bob-laser-turrets-3", - "advanced-electronics-2" - }, - unit = - { - count = 100, - time = 30, - ingredients = - { - {"science-pack-1", 1}, - {"science-pack-2", 1}, - {"science-pack-3", 1}, - }, - }, - effects = - { - { - type = "unlock-recipe", - recipe = "bob-laser-turret-4" - } - }, - }, - - { - type = "technology", - name = "bob-laser-turrets-5", - icon = "__base__/graphics/technology/laser-turrets.png", - order = "a-j-b-5", - upgrade = "true", - prerequisites = - { - "bob-laser-turrets-4", - }, - unit = - { - count = 100, - time = 30, - ingredients = - { - {"science-pack-1", 1}, - {"science-pack-2", 1}, - {"science-pack-3", 1}, - {"alien-science-pack", 1}, - }, - }, - effects = - { - { - type = "unlock-recipe", - recipe = "bob-laser-turret-5" - } - }, - }, - - { - type = "technology", - name = "bob-sniper-turrets-1", - icon = "__base__/graphics/technology/turrets.png", - order = "a-j-c-1", - upgrade = "true", - prerequisites = - { - "turrets", - }, - effects = - { - { - type = "unlock-recipe", - recipe = "bob-sniper-turret-1" - } - }, - unit = - { - count = 25, - time = 30, - ingredients = - { - {"science-pack-1", 1}, - {"science-pack-2", 1}, - }, - }, - }, - { - type = "technology", - name = "bob-sniper-turrets-2", - icon = "__base__/graphics/technology/turrets.png", - order = "a-j-c-2", - upgrade = "true", - prerequisites = - { - "bob-sniper-turrets-1", - "steel-processing", - }, - effects = - { - { - type = "unlock-recipe", - recipe = "bob-sniper-turret-2" - } - }, - unit = - { - count = 75, - time = 30, - ingredients = - { - {"science-pack-1", 1}, - {"science-pack-2", 1}, - {"science-pack-3", 1}, - }, - }, - }, - { - type = "technology", - name = "bob-sniper-turrets-3", - icon = "__base__/graphics/technology/turrets.png", - order = "a-j-c-3", - upgrade = "true", - prerequisites = - { - "bob-sniper-turrets-2", - }, - effects = - { - { - type = "unlock-recipe", - recipe = "bob-sniper-turret-3" - } - }, - unit = - { - count = 125, - time = 30, - ingredients = - { - {"science-pack-1", 1}, - {"science-pack-2", 1}, - {"science-pack-3", 1}, - {"alien-science-pack", 1}, - }, - }, - }, -} -) - - +data:extend( +{ + { + type = "technology", + name = "bob-turrets-2", + icon = "__base__/graphics/technology/turrets.png", + upgrade = "true", + order = "a-j-a-2", + prerequisites = + { + "turrets", + "steel-processing", + }, + effects = + { + { + type = "unlock-recipe", + recipe = "bob-gun-turret-2" + } + }, + unit = + { + count = 30, + time = 15, + ingredients = + { + {"science-pack-1", 1}, + {"science-pack-2", 1}, + }, + }, + }, + + { + type = "technology", + name = "bob-turrets-3", + icon = "__base__/graphics/technology/turrets.png", + upgrade = "true", + order = "a-j-a-3", + prerequisites = + { + "bob-turrets-2", + }, + effects = + { + { + type = "unlock-recipe", + recipe = "bob-gun-turret-3" + } + }, + unit = + { + count = 50, + time = 15, + ingredients = + { + {"science-pack-1", 1}, + {"science-pack-2", 1}, + }, + }, + }, + + { + type = "technology", + name = "bob-turrets-4", + icon = "__base__/graphics/technology/turrets.png", + upgrade = "true", + order = "a-j-a-4", + prerequisites = + { + "bob-turrets-3", + }, + effects = + { + { + type = "unlock-recipe", + recipe = "bob-gun-turret-4" + } + }, + unit = + { + count = 75, + time = 30, + ingredients = + { + {"science-pack-1", 1}, + {"science-pack-2", 1}, + {"science-pack-3", 1}, + }, + }, + }, + + { + type = "technology", + name = "bob-turrets-5", + icon = "__base__/graphics/technology/turrets.png", + upgrade = "true", + order = "a-j-a-5", + prerequisites = + { + "bob-turrets-4", + }, + effects = + { + { + type = "unlock-recipe", + recipe = "bob-gun-turret-5" + } + }, + unit = + { + count = 100, + time = 30, + ingredients = + { + {"science-pack-1", 1}, + {"science-pack-2", 1}, + {"science-pack-3", 1}, + {"alien-science-pack", 1}, + }, + }, + }, + + + { + type = "technology", + name = "bob-laser-turrets-2", + icon = "__base__/graphics/technology/laser-turrets.png", + order = "a-j-b-2", + upgrade = "true", + prerequisites = + { + "laser-turrets", + "advanced-electronics", + }, + effects = + { + { + type = "unlock-recipe", + recipe = "bob-laser-turret-2" + } + }, + unit = + { + count = 75, + time = 30, + ingredients = + { + {"science-pack-1", 1}, + {"science-pack-2", 1}, + }, + }, + }, + + { + type = "technology", + name = "bob-laser-turrets-3", + icon = "__base__/graphics/technology/laser-turrets.png", + order = "a-j-b-3", + upgrade = "true", + prerequisites = + { + "bob-laser-turrets-2", + }, + unit = + { + count = 75, + time = 30, + ingredients = + { + {"science-pack-1", 1}, + {"science-pack-2", 1}, + {"science-pack-3", 1}, + }, + }, + effects = + { + { + type = "unlock-recipe", + recipe = "bob-laser-turret-3" + } + }, + }, + + { + type = "technology", + name = "bob-laser-turrets-4", + icon = "__base__/graphics/technology/laser-turrets.png", + order = "a-j-b-4", + upgrade = "true", + prerequisites = + { + "bob-laser-turrets-3", + "advanced-electronics-2" + }, + unit = + { + count = 100, + time = 30, + ingredients = + { + {"science-pack-1", 1}, + {"science-pack-2", 1}, + {"science-pack-3", 1}, + }, + }, + effects = + { + { + type = "unlock-recipe", + recipe = "bob-laser-turret-4" + } + }, + }, + + { + type = "technology", + name = "bob-laser-turrets-5", + icon = "__base__/graphics/technology/laser-turrets.png", + order = "a-j-b-5", + upgrade = "true", + prerequisites = + { + "bob-laser-turrets-4", + }, + unit = + { + count = 100, + time = 30, + ingredients = + { + {"science-pack-1", 1}, + {"science-pack-2", 1}, + {"science-pack-3", 1}, + {"alien-science-pack", 1}, + }, + }, + effects = + { + { + type = "unlock-recipe", + recipe = "bob-laser-turret-5" + } + }, + }, + + { + type = "technology", + name = "bob-sniper-turrets-1", + icon = "__base__/graphics/technology/turrets.png", + order = "a-j-c-1", + upgrade = "true", + prerequisites = + { + "turrets", + }, + effects = + { + { + type = "unlock-recipe", + recipe = "bob-sniper-turret-1" + } + }, + unit = + { + count = 25, + time = 30, + ingredients = + { + {"science-pack-1", 1}, + {"science-pack-2", 1}, + }, + }, + }, + { + type = "technology", + name = "bob-sniper-turrets-2", + icon = "__base__/graphics/technology/turrets.png", + order = "a-j-c-2", + upgrade = "true", + prerequisites = + { + "bob-sniper-turrets-1", + "steel-processing", + }, + effects = + { + { + type = "unlock-recipe", + recipe = "bob-sniper-turret-2" + } + }, + unit = + { + count = 75, + time = 30, + ingredients = + { + {"science-pack-1", 1}, + {"science-pack-2", 1}, + {"science-pack-3", 1}, + }, + }, + }, + { + type = "technology", + name = "bob-sniper-turrets-3", + icon = "__base__/graphics/technology/turrets.png", + order = "a-j-c-3", + upgrade = "true", + prerequisites = + { + "bob-sniper-turrets-2", + }, + effects = + { + { + type = "unlock-recipe", + recipe = "bob-sniper-turret-3" + } + }, + unit = + { + count = 125, + time = 30, + ingredients = + { + {"science-pack-1", 1}, + {"science-pack-2", 1}, + {"science-pack-3", 1}, + {"alien-science-pack", 1}, + }, + }, + }, +} +) + + diff --git a/bobwarfare_0.14.0/prototypes/technology/wall.lua b/bobwarfare_0.14.1/prototypes/technology/wall.lua similarity index 94% rename from bobwarfare_0.14.0/prototypes/technology/wall.lua rename to bobwarfare_0.14.1/prototypes/technology/wall.lua index 1510da8..cea4409 100644 --- a/bobwarfare_0.14.0/prototypes/technology/wall.lua +++ b/bobwarfare_0.14.1/prototypes/technology/wall.lua @@ -1,33 +1,33 @@ -data:extend( -{ - { - type = "technology", - name = "reinforced-wall", - icon = "__base__/graphics/technology/stone-walls.png", - prerequisites = {"gates"}, - effects = - { - { - type = "unlock-recipe", - recipe = "reinforced-wall" - }, - { - type = "unlock-recipe", - recipe = "reinforced-gate" - }, - }, - unit = - { - count = 100, - ingredients = - { - {"science-pack-1", 1}, - {"science-pack-2", 1}, - }, - time = 10 - }, - order = "a-k-b" - }, -} -) - +data:extend( +{ + { + type = "technology", + name = "reinforced-wall", + icon = "__base__/graphics/technology/stone-walls.png", + prerequisites = {"gates"}, + effects = + { + { + type = "unlock-recipe", + recipe = "reinforced-wall" + }, + { + type = "unlock-recipe", + recipe = "reinforced-gate" + }, + }, + unit = + { + count = 100, + ingredients = + { + {"science-pack-1", 1}, + {"science-pack-2", 1}, + }, + time = 10 + }, + order = "a-k-b" + }, +} +) + diff --git a/manual-inventory-sort_1.4.4/changelog.txt b/manual-inventory-sort_1.4.5/changelog.txt similarity index 81% rename from manual-inventory-sort_1.4.4/changelog.txt rename to manual-inventory-sort_1.4.5/changelog.txt index 5792e5e..34e0db8 100644 --- a/manual-inventory-sort_1.4.4/changelog.txt +++ b/manual-inventory-sort_1.4.5/changelog.txt @@ -1,39 +1,44 @@ -##1.0.0## -+ Initial release - -##1.0.1## -* Fixed a bug causing items to be lost when inserted in the tick after sorting was triggered - -##1.1.0## -* Fixed a bug making it possible to duplicate items with durability in certain cases -+ Added the auto-sort feature. It has performance problems to be solved though. - -##1.1.1## -* Fixed auto-sort performance, now sortingis done only when actually needed - -##1.1.2## -* Use of new API features of 0.13.12 to get rid of the need to place temporary entities - -##1.2.0## -+ Addded an options menu -+ Added part inventory sorting - -##1.3.0## -* Changed the default shortcuts to use shift instead of ctrl (it's a lot more comfortable this way) -+ Added chest sorting - -##1.4.0## -* Fixed broken migration script (hopefully), apologies to anyone who had problems with this - it should be safe now to migrate from any version to 1.4 -+ Added sorting GUI - -##1.4.1## -* Fixed a bug causing a crash when loading existing saves without the mod installed before ([1494](https://mods.factorio.com/mods/theRustyKnife/manual-inventory-sort/discussion/1494)) - -##1.4.2## -* Fixed logistic chests were not sortable ([1519](https://mods.factorio.com/mods/theRustyKnife/manual-inventory-sort/discussion/1519)) - -##1.4.3## -* Fixed sorting big chests caused a crash ([2008](https://mods.factorio.com/mods/theRustyKnife/manual-inventory-sort/discussion/2008)) - -##1.4.4## -* Updated for Factorio 0.14 \ No newline at end of file +##1.0.0## ++ Initial release + +##1.0.1## +* Fixed a bug causing items to be lost when inserted in the tick after sorting was triggered + +##1.1.0## +* Fixed a bug making it possible to duplicate items with durability in certain cases ++ Added the auto-sort feature. It has performance problems to be solved though. + +##1.1.1## +* Fixed auto-sort performance, now sortingis done only when actually needed + +##1.1.2## +* Use of new API features of 0.13.12 to get rid of the need to place temporary entities + +##1.2.0## ++ Addded an options menu ++ Added part inventory sorting + +##1.3.0## +* Changed the default shortcuts to use shift instead of ctrl (it's a lot more comfortable this way) ++ Added chest sorting + +##1.4.0## +* Fixed broken migration script (hopefully), apologies to anyone who had problems with this - it should be safe now to migrate from any version to 1.4 ++ Added sorting GUI + +##1.4.1## +* Fixed a bug causing a crash when loading existing saves without the mod installed before ([1494](https://mods.factorio.com/mods/theRustyKnife/manual-inventory-sort/discussion/1494)) + +##1.4.2## +* Fixed logistic chests were not sortable ([1519](https://mods.factorio.com/mods/theRustyKnife/manual-inventory-sort/discussion/1519)) + +##1.4.3## +* Fixed sorting big chests caused a crash ([2008](https://mods.factorio.com/mods/theRustyKnife/manual-inventory-sort/discussion/2008)) + +##1.4.4## +* Updated for Factorio 0.14 + +##1.4.5## +* Fixed GUI buttons would not appear when opened a logistic chest ++ Added car and wagon sorting ++ Added Russian translation thanks to [Apriori](https://mods.factorio.com/mods/theRustyKnife/manual-inventory-sort/discussion/3041) \ No newline at end of file diff --git a/manual-inventory-sort_1.4.4/control.lua b/manual-inventory-sort_1.4.5/control.lua similarity index 90% rename from manual-inventory-sort_1.4.4/control.lua rename to manual-inventory-sort_1.4.5/control.lua index d8a7597..3f566b5 100644 --- a/manual-inventory-sort_1.4.4/control.lua +++ b/manual-inventory-sort_1.4.5/control.lua @@ -1,316 +1,326 @@ -gui = require "gui" - -function add_unique(tab, value) - for i, v in pairs(tab) do if v == value then return end end - table.insert(tab, value) -end - -function get_staks_with_order(order, stacks) - res = {} - for i, v in pairs(stacks) do if v.stack.valid and v.order == order then table.insert(res, v) end end - return res -end - -function get_total_ammo(stack) return stack.ammo + (stack.count - 1) * game.item_prototypes[stack.name].magazine_size end -function get_total_ammo_capacity(name) return game.item_prototypes[name].magazine_size * game.item_prototypes[name].stack_size end - -function get_total_durability(stack) return stack.durability + (stack.count - 1) * game.item_prototypes[stack.name].durability end -function get_total_durability_prototype(name) return game.item_prototypes[name].durability * game.item_prototypes[name].stack_size end - -function compress_ammo(stack1, stack2) - local stack1_missing_ammo = get_total_ammo_capacity(stack1.name) - get_total_ammo(stack1) - local stack2_ammo = get_total_ammo(stack2) - - local stack2_valid = false - - if stack2_ammo == stack1_missing_ammo then - stack1.add_ammo(stack1_missing_ammo) - stack2.clear() - elseif stack2_ammo < stack1_missing_ammo then - stack1.add_ammo(stack2_ammo) - stack2.clear() - elseif stack2_ammo > stack1_missing_ammo then - stack1.add_ammo(stack1_missing_ammo) - stack2.drain_ammo(stack1_missing_ammo) - - stack2_valid = true - end - - return stack2_valid -end - -function compress_usable_stacks(stack1, stack2) - local stack1_missing_durability = get_total_durability_prototype(stack1.name) - get_total_durability(stack1) - local stack2_durability = get_total_durability(stack2) - local full_durability = game.item_prototypes[stack1.name].durability - local t_stack1_missing_durability = full_durability - stack1.durability - - local stack2_valid = false - - if stack2_durability == stack1_missing_durability then - stack1.add_durability(stack1_missing_durability) - stack2.clear() - elseif stack2_durability < stack1_missing_durability then - stack1.add_durability(stack2_durability) - stack2.clear() - elseif stack2_durability > stack1_missing_durability then - stack1.add_durability(stack1_missing_durability) - stack2.drain_durability(stack1_missing_durability) - stack2_valid = true - end - - return stack2_valid -end - -function sort_inventory(arg) - local player_index = 0 - local sort_limit_override = false - local force_override = false - local inventory = nil - - if (type(arg) == "table") then - player_index = arg.player_index - if arg.override_possible then sort_limit_override = arg.override_possible end - if arg.force_override then force_override = arg.force_override end - if arg.inventory then inventory = arg.inventory end - else player_index = arg - end - - check_settings(player_index) - - sort_limit_override = (sort_limit_override and global.player_settings[player_index].sort_limit_override) or force_override - - local player = game.players[player_index] - if not inventory then inventory = player.get_inventory(defines.inventory.player_main) end - local stacks = {} - local orders = {} - local sort_limit = #inventory - - if (not sort_limit_override) and global.player_settings[player_index].sort_limit_enabled then - if global.player_settings[player_index].sort_limit >= 0 and global.player_settings[player_index].sort_limit < sort_limit then - sort_limit = global.player_settings[player_index].sort_limit - elseif global.player_settings[player_index].sort_limit < 0 and global.player_settings[player_index].sort_limit > 0 - sort_limit then - sort_limit = sort_limit + global.player_settings[player_index].sort_limit - end - end - - for i = 1, sort_limit do -- put the content into a table - local stack = inventory[i] - if stack ~= nil and stack.valid_for_read and stack.valid then - local prototype = game.item_prototypes[stack.name] - - local order = "" - if (prototype.group) then order = order .. prototype.group.order .. prototype.group.name end - if (prototype.subgroup) then order = order .. prototype.subgroup.order .. prototype.subgroup.name end - if (prototype.order) then order = order .. prototype.order end - order = order .. prototype.name - - table.insert(stacks, {stack = stack, prototype = prototype, order = order}) - end - end - - for i, v in pairs(stacks) do -- make a list of all the order strings - add_unique(orders, v.order) - end - table.sort(orders) -- sort the strings alphabetically - - -- build a temporary chest to put the items into - this is a lazier way of saving all the stack properties - local t_chest = player.surface.create_entity{name = "manual-inventory-sort-tmp-chest", position = player.position} - t_chest.destructible = false - t_chest.operable = false - local t_chest_inventory = t_chest.get_inventory(defines.inventory.chest) - - local i_slot = 1 - for i = 1, #orders do -- order the items into the chest (this is where the actual sorting is done) - local t_stacks = get_staks_with_order(orders[i], stacks) - local damaged_stacks = {} - local first = true - - for i_stack = 1, #t_stacks do - local c_stack = t_stacks[i_stack] - - if (not first) and t_chest_inventory[i_slot].name == c_stack.stack.name then - local free_space = c_stack.prototype.stack_size - t_chest_inventory[i_slot].count - - local extra_properties = {} - if c_stack.stack.type == "ammo" then extra_properties.ammo = c_stack.stack.ammo end - if c_stack.stack.health and c_stack.stack.health ~= 1 then extra_properties.health = c_stack.stack.health end - if c_stack.stack.durability then extra_properties.durability = c_stack.stack.durability end - - if extra_properties.ammo then -- ammo - t_chest_inventory[i_slot + 1].set_stack(c_stack.stack) - if compress_ammo(t_chest_inventory[i_slot], t_chest_inventory[i_slot + 1]) then i_slot = i_slot + 1 end - elseif extra_properties.health then -- item is damaged - put at the end and do not stack! - table.insert(damaged_stacks, c_stack) - elseif extra_properties.durability then -- durability - t_chest_inventory[i_slot + 1].set_stack(c_stack.stack) - if compress_usable_stacks(t_chest_inventory[i_slot], t_chest_inventory[i_slot + 1]) then i_slot = i_slot + 1 end - else -- everything else - if c_stack.stack.count == free_space then - t_chest_inventory[i_slot].count = c_stack.prototype.stack_size - - elseif c_stack.stack.count < free_space then t_chest_inventory[i_slot].count = t_chest_inventory[i_slot].count + c_stack.stack.count - elseif c_stack.stack.count > free_space then - t_chest_inventory[i_slot].count = c_stack.prototype.stack_size - i_slot = i_slot + 1 - c_stack.stack.count = c_stack.stack.count - free_space - t_chest_inventory[i_slot].set_stack(c_stack.stack) - end - end - else - if c_stack.stack.health and c_stack.stack.health ~= 1 then table.insert(damaged_stacks, c_stack) - else - t_chest_inventory[i_slot].set_stack(c_stack.stack) - first = false - end - end - end - - for i_damaged = 1, #damaged_stacks do - if not first then i_slot = i_slot + 1 else first = false end - t_chest_inventory[i_slot].set_stack(damaged_stacks[i_damaged].stack) - end - - i_slot = i_slot + 1 - end - - if (t_chest.valid) then - for i = 1, sort_limit do inventory[i].set_stack(t_chest_inventory[i]) end - t_chest.destroy() - end -end - -function is_sortable(entity) - local sortable_entities = {"container", "logistic-container"} - - for _, v in pairs(sortable_entities) do - if entity.type == v then return true end - end - - return false -end - -function check_settings(index) - if type(global.player_settings[index]) ~= "table" then - global.player_settings[index] = - { - auto_sort = false, - sort_limit_enabled = false, - sort_limit = 10, - sort_limit_override = false, - sort_buttons_enabled = false - } - end -end - -function init() - if global.player_settings == nil then global.player_settings = {} end - if global.last_sorted == nil then global.last_sorted = {} end -end - -script.on_configuration_changed(function(data) - init() - - if data.mod_changes["manual-inventory-sort"] and data.mod_changes["manual-inventory-sort"].old_version and data.mod_changes["manual-inventory-sort"].old_version < "1.2.0" then -- migration of old settings format - local res = {} - for i, v in pairs(global.player_settings) do - res[i] = - { - auto_sort = v, - sort_limit_enabled = false, - sort_limit = 10, - sort_limit_override = false - } - end - global.player_settings = res - end - - if data.mod_changes["manual-inventory-sort"] and data.mod_changes["manual-inventory-sort"].old_version and data.mod_changes["manual-inventory-sort"].old_version < "1.4.0" then -- add sort buttons option to old settings - game.players[1].print("migration to 1.4.0") - for i, _ in pairs(global.player_settings) do - global.player_settings[i].sort_buttons_enabled = false - end - end -end) -script.on_init(init) - -script.on_event(defines.events.on_tick, function(event) - for player_index, _ in pairs(game.players) do -- open/close the sort gui - check_settings(player_index) - - if global.player_settings[player_index].sort_buttons_enabled then - gui.sort_buttons_gui(game.players[player_index]) - else - gui.destroy_sort_buttons_gui(game.players[player_index]) - end - end -end) - -script.on_event(defines.events.on_player_main_inventory_changed, function(event) -- players inventory has changed - sort it - check_settings(event.player_index) - - if global.player_settings[event.player_index].auto_sort == true and (global.last_sorted[event.player_index] == nil or global.last_sorted[event.player_index] < game.tick - 1) then - sort_inventory(event.player_index) - global.last_sorted[event.player_index] = game.tick - end -end) - -script.on_event("manual-inventory-sort", function(event) -- sort key event - sort_inventory{player_index = event.player_index, override_possible = true} -end) - -script.on_event("manual-inventory-auto-sort-toggle", function(event) -- auto sort toggle - check_settings(event.player_index) - - local player = game.players[event.player_index] - - if global.player_settings[event.player_index].auto_sort == true then - player.print{"manual-inventory-auto-sort-off"} - global.player_settings[event.player_index].auto_sort = false - else - player.print{"manual-inventory-auto-sort-on"} - global.player_settings[event.player_index].auto_sort = true - sort_inventory(event.player_index) - end - - gui.update_options_gui(game.players[event.player_index].gui, global.player_settings[event.player_index]) -end) - -script.on_event("manual-inventory-options", function(event) -- open/close options - check_settings(event.player_index) - - gui.options_gui(game.players[event.player_index].gui, global.player_settings[event.player_index]) - - if global.player_settings[event.player_index].auto_sort == true and (global.last_sorted[event.player_index] == nil or global.last_sorted[event.player_index] < game.tick - 1) then -- sort, if the player turned auto-sort on - sort_inventory(event.player_index) - global.last_sorted[event.player_index] = game.tick - end -end) - -script.on_event("manual-inventory-sort-opened", function(event) -- sort chest key - check_settings(event.player_index) - - local player = game.players[event.player_index] - if player.opened and is_sortable(player.opened) then - sort_inventory{player_index = event.player_index, inventory = player.opened.get_inventory(defines.inventory.chest), force_override = true} - end -end) - -script.on_event(defines.events.on_gui_click, function(event) - if event.element.name == "manual-inventory-options-save" then - gui.options_gui(game.players[event.player_index].gui, global.player_settings[event.player_index]) - - elseif event.element.name == "manual-inventory-sort_player" then - check_settings(event.player_index) - - sort_inventory{player_index = event.player_index, override_possible = true} - - elseif event.element.name == "manual-inventory-sort_chest" then - check_settings(event.player_index) - - local player = game.players[event.player_index] - if player.opened and is_sortable(player.opened) then - sort_inventory{player_index = event.player_index, inventory = player.opened.get_inventory(defines.inventory.chest), force_override = true} - end - end +gui = require "gui" + +function add_unique(tab, value) + for i, v in pairs(tab) do if v == value then return end end + table.insert(tab, value) +end + +function get_staks_with_order(order, stacks) + res = {} + for i, v in pairs(stacks) do if v.stack.valid and v.order == order then table.insert(res, v) end end + return res +end + +function get_total_ammo(stack) return stack.ammo + (stack.count - 1) * game.item_prototypes[stack.name].magazine_size end +function get_total_ammo_capacity(name) return game.item_prototypes[name].magazine_size * game.item_prototypes[name].stack_size end + +function get_total_durability(stack) return stack.durability + (stack.count - 1) * game.item_prototypes[stack.name].durability end +function get_total_durability_prototype(name) return game.item_prototypes[name].durability * game.item_prototypes[name].stack_size end + +function compress_ammo(stack1, stack2) + local stack1_missing_ammo = get_total_ammo_capacity(stack1.name) - get_total_ammo(stack1) + local stack2_ammo = get_total_ammo(stack2) + + local stack2_valid = false + + if stack2_ammo == stack1_missing_ammo then + stack1.add_ammo(stack1_missing_ammo) + stack2.clear() + elseif stack2_ammo < stack1_missing_ammo then + stack1.add_ammo(stack2_ammo) + stack2.clear() + elseif stack2_ammo > stack1_missing_ammo then + stack1.add_ammo(stack1_missing_ammo) + stack2.drain_ammo(stack1_missing_ammo) + + stack2_valid = true + end + + return stack2_valid +end + +function compress_usable_stacks(stack1, stack2) + local stack1_missing_durability = get_total_durability_prototype(stack1.name) - get_total_durability(stack1) + local stack2_durability = get_total_durability(stack2) + local full_durability = game.item_prototypes[stack1.name].durability + local t_stack1_missing_durability = full_durability - stack1.durability + + local stack2_valid = false + + if stack2_durability == stack1_missing_durability then + stack1.add_durability(stack1_missing_durability) + stack2.clear() + elseif stack2_durability < stack1_missing_durability then + stack1.add_durability(stack2_durability) + stack2.clear() + elseif stack2_durability > stack1_missing_durability then + stack1.add_durability(stack1_missing_durability) + stack2.drain_durability(stack1_missing_durability) + stack2_valid = true + end + + return stack2_valid +end + +function sort_inventory(arg) + local player_index = 0 + local sort_limit_override = false + local force_override = false + local inventory = nil + + if (type(arg) == "table") then + player_index = arg.player_index + if arg.override_possible then sort_limit_override = arg.override_possible end + if arg.force_override then force_override = arg.force_override end + if arg.inventory then inventory = arg.inventory end + else player_index = arg + end + + check_settings(player_index) + + sort_limit_override = (sort_limit_override and global.player_settings[player_index].sort_limit_override) or force_override + + local player = game.players[player_index] + if not inventory then inventory = player.get_inventory(defines.inventory.player_main) end + local stacks = {} + local orders = {} + local sort_limit = #inventory + + if (not sort_limit_override) and global.player_settings[player_index].sort_limit_enabled then + if global.player_settings[player_index].sort_limit >= 0 and global.player_settings[player_index].sort_limit < sort_limit then + sort_limit = global.player_settings[player_index].sort_limit + elseif global.player_settings[player_index].sort_limit < 0 and global.player_settings[player_index].sort_limit > 0 - sort_limit then + sort_limit = sort_limit + global.player_settings[player_index].sort_limit + end + end + + for i = 1, sort_limit do -- put the content into a table + local stack = inventory[i] + if stack ~= nil and stack.valid_for_read and stack.valid then + local prototype = game.item_prototypes[stack.name] + + local order = "" + if (prototype.group) then order = order .. prototype.group.order .. prototype.group.name end + if (prototype.subgroup) then order = order .. prototype.subgroup.order .. prototype.subgroup.name end + if (prototype.order) then order = order .. prototype.order end + order = order .. prototype.name + + table.insert(stacks, {stack = stack, prototype = prototype, order = order}) + end + end + + for i, v in pairs(stacks) do -- make a list of all the order strings + add_unique(orders, v.order) + end + table.sort(orders) -- sort the strings alphabetically + + -- build a temporary chest to put the items into - this is a lazier way of saving all the stack properties + local t_chest = player.surface.create_entity{name = "manual-inventory-sort-tmp-chest", position = player.position} + t_chest.destructible = false + t_chest.operable = false + local t_chest_inventory = t_chest.get_inventory(defines.inventory.chest) + + local i_slot = 1 + for i = 1, #orders do -- order the items into the chest (this is where the actual sorting is done) + local t_stacks = get_staks_with_order(orders[i], stacks) + local damaged_stacks = {} + local first = true + + for i_stack = 1, #t_stacks do + local c_stack = t_stacks[i_stack] + + if (not first) and t_chest_inventory[i_slot].name == c_stack.stack.name then + local free_space = c_stack.prototype.stack_size - t_chest_inventory[i_slot].count + + local extra_properties = {} + if c_stack.stack.type == "ammo" then extra_properties.ammo = c_stack.stack.ammo end + if c_stack.stack.health and c_stack.stack.health ~= 1 then extra_properties.health = c_stack.stack.health end + if c_stack.stack.durability then extra_properties.durability = c_stack.stack.durability end + + if extra_properties.ammo then -- ammo + t_chest_inventory[i_slot + 1].set_stack(c_stack.stack) + if compress_ammo(t_chest_inventory[i_slot], t_chest_inventory[i_slot + 1]) then i_slot = i_slot + 1 end + elseif extra_properties.health then -- item is damaged - put at the end and do not stack! + table.insert(damaged_stacks, c_stack) + elseif extra_properties.durability then -- durability + t_chest_inventory[i_slot + 1].set_stack(c_stack.stack) + if compress_usable_stacks(t_chest_inventory[i_slot], t_chest_inventory[i_slot + 1]) then i_slot = i_slot + 1 end + else -- everything else + if c_stack.stack.count == free_space then + t_chest_inventory[i_slot].count = c_stack.prototype.stack_size + + elseif c_stack.stack.count < free_space then t_chest_inventory[i_slot].count = t_chest_inventory[i_slot].count + c_stack.stack.count + elseif c_stack.stack.count > free_space then + t_chest_inventory[i_slot].count = c_stack.prototype.stack_size + i_slot = i_slot + 1 + c_stack.stack.count = c_stack.stack.count - free_space + t_chest_inventory[i_slot].set_stack(c_stack.stack) + end + end + else + if c_stack.stack.health and c_stack.stack.health ~= 1 then table.insert(damaged_stacks, c_stack) + else + t_chest_inventory[i_slot].set_stack(c_stack.stack) + first = false + end + end + end + + for i_damaged = 1, #damaged_stacks do + if not first then i_slot = i_slot + 1 else first = false end + t_chest_inventory[i_slot].set_stack(damaged_stacks[i_damaged].stack) + end + + i_slot = i_slot + 1 + end + + if (t_chest.valid) then + for i = 1, sort_limit do inventory[i].set_stack(t_chest_inventory[i]) end + t_chest.destroy() + end +end + +function is_sortable(entity) + local sortable_entities = {"container", "logistic-container", "cargo-wagon", "car"} + + for _, v in pairs(sortable_entities) do + if entity.type == v then return true end + end + + return false +end + +function check_settings(index) + if type(global.player_settings[index]) ~= "table" then + global.player_settings[index] = + { + auto_sort = false, + sort_limit_enabled = false, + sort_limit = 10, + sort_limit_override = false, + sort_buttons_enabled = false + } + end +end + +function init() + if global.player_settings == nil then global.player_settings = {} end + if global.last_sorted == nil then global.last_sorted = {} end +end + +script.on_configuration_changed(function(data) + init() + + if data.mod_changes["manual-inventory-sort"] and data.mod_changes["manual-inventory-sort"].old_version and data.mod_changes["manual-inventory-sort"].old_version < "1.2.0" then -- migration of old settings format + local res = {} + for i, v in pairs(global.player_settings) do + res[i] = + { + auto_sort = v, + sort_limit_enabled = false, + sort_limit = 10, + sort_limit_override = false + } + end + global.player_settings = res + end + + if data.mod_changes["manual-inventory-sort"] and data.mod_changes["manual-inventory-sort"].old_version and data.mod_changes["manual-inventory-sort"].old_version < "1.4.0" then -- add sort buttons option to old settings + game.players[1].print("migration to 1.4.0") + for i, _ in pairs(global.player_settings) do + global.player_settings[i].sort_buttons_enabled = false + end + end +end) +script.on_init(init) + +script.on_event(defines.events.on_tick, function(event) + for player_index, _ in pairs(game.players) do -- open/close the sort gui + check_settings(player_index) + + if global.player_settings[player_index].sort_buttons_enabled then + gui.sort_buttons_gui(game.players[player_index]) + else + gui.destroy_sort_buttons_gui(game.players[player_index]) + end + end +end) + +script.on_event(defines.events.on_player_main_inventory_changed, function(event) -- players inventory has changed - sort it + check_settings(event.player_index) + + if global.player_settings[event.player_index].auto_sort == true and (global.last_sorted[event.player_index] == nil or global.last_sorted[event.player_index] < game.tick - 1) then + sort_inventory(event.player_index) + global.last_sorted[event.player_index] = game.tick + end +end) + +script.on_event("manual-inventory-sort", function(event) -- sort key event + sort_inventory{player_index = event.player_index, override_possible = true} +end) + +script.on_event("manual-inventory-auto-sort-toggle", function(event) -- auto sort toggle + check_settings(event.player_index) + + local player = game.players[event.player_index] + + if global.player_settings[event.player_index].auto_sort == true then + player.print{"manual-inventory-auto-sort-off"} + global.player_settings[event.player_index].auto_sort = false + else + player.print{"manual-inventory-auto-sort-on"} + global.player_settings[event.player_index].auto_sort = true + sort_inventory(event.player_index) + end + + gui.update_options_gui(game.players[event.player_index].gui, global.player_settings[event.player_index]) +end) + +script.on_event("manual-inventory-options", function(event) -- open/close options + check_settings(event.player_index) + + gui.options_gui(game.players[event.player_index].gui, global.player_settings[event.player_index]) + + if global.player_settings[event.player_index].auto_sort == true and (global.last_sorted[event.player_index] == nil or global.last_sorted[event.player_index] < game.tick - 1) then -- sort, if the player turned auto-sort on + sort_inventory(event.player_index) + global.last_sorted[event.player_index] = game.tick + end +end) + +script.on_event("manual-inventory-sort-opened", function(event) -- sort chest key + check_settings(event.player_index) + + local player = game.players[event.player_index] + if player.opened and is_sortable(player.opened) then + local inventory + local e_type = player.opened.type + if (e_type == "container" or e_type == "logistic-container") then inventory = player.opened.get_inventory(defines.inventory.chest) + elseif (e_type == "cargo-wagon") then inventory = player.opened.get_inventory(defines.inventory.cargo_wagon) + elseif (e_type == "car") then inventory = player.opened.get_inventory(defines.inventory.car_trunk) end + sort_inventory{player_index = event.player_index, inventory = inventory, force_override = true} + end +end) + +script.on_event(defines.events.on_gui_click, function(event) + if event.element.name == "manual-inventory-options-save" then + gui.options_gui(game.players[event.player_index].gui, global.player_settings[event.player_index]) + + elseif event.element.name == "manual-inventory-sort_player" then + check_settings(event.player_index) + + sort_inventory{player_index = event.player_index, override_possible = true} + + elseif event.element.name == "manual-inventory-sort_chest" then + check_settings(event.player_index) + + local player = game.players[event.player_index] + if player.opened and is_sortable(player.opened) then + local inventory + local e_type = player.opened.type + if (e_type == "container" or e_type == "logistic-container") then inventory = player.opened.get_inventory(defines.inventory.chest) + elseif (e_type == "cargo-wagon") then inventory = player.opened.get_inventory(defines.inventory.cargo_wagon) + elseif (e_type == "car") then inventory = player.opened.get_inventory(defines.inventory.car_trunk) end + sort_inventory{player_index = event.player_index, inventory = inventory, force_override = true} + end + end end) \ No newline at end of file diff --git a/manual-inventory-sort_1.4.4/data-updates.lua b/manual-inventory-sort_1.4.5/data-updates.lua similarity index 58% rename from manual-inventory-sort_1.4.4/data-updates.lua rename to manual-inventory-sort_1.4.5/data-updates.lua index 6fa1f08..fb628f4 100644 --- a/manual-inventory-sort_1.4.4/data-updates.lua +++ b/manual-inventory-sort_1.4.5/data-updates.lua @@ -1,11 +1,19 @@ -local size = 1000 - -for i, v in pairs(data.raw["container"]) do - if v.inventory_size > size then size = v.inventory_size end -end - -for i, v in pairs(data.raw["logistic-container"]) do - if v.inventory_size > size then size = v.inventory_size end -end - +local size = 1000 + +for i, v in pairs(data.raw["container"]) do + if v.inventory_size > size then size = v.inventory_size end +end + +for i, v in pairs(data.raw["logistic-container"]) do + if v.inventory_size > size then size = v.inventory_size end +end + +for i, v in pairs(data.raw["cargo-wagon"]) do + if v.inventory_size > size then size = v.inventory_size end +end + +for i, v in pairs(data.raw["car"]) do + if v.inventory_size > size then size = v.inventory_size end +end + data.raw["container"]["manual-inventory-sort-tmp-chest"].inventory_size = size \ No newline at end of file diff --git a/manual-inventory-sort_1.4.4/data.lua b/manual-inventory-sort_1.4.5/data.lua similarity index 96% rename from manual-inventory-sort_1.4.4/data.lua rename to manual-inventory-sort_1.4.5/data.lua index d8fb5dc..888c222 100644 --- a/manual-inventory-sort_1.4.4/data.lua +++ b/manual-inventory-sort_1.4.5/data.lua @@ -1,64 +1,64 @@ -data:extend({ - { - type = "custom-input", - name = "manual-inventory-sort", - key_sequence = "SHIFT + Q", - consuming = "all" - }, - { - type = "custom-input", - name = "manual-inventory-sort-opened", - key_sequence = "CONTROL + Q", - consuming = "all" - }, - { - type = "custom-input", - name = "manual-inventory-auto-sort-toggle", - key_sequence = "SHIFT + Y", - consuming = "all" - }, - { - type = "custom-input", - name = "manual-inventory-options", - key_sequence = "SHIFT + X", - consuming = "all" - }, - { - type = "container", - name = "manual-inventory-sort-tmp-chest", - icon = "__manual-inventory-sort__/graphics/trans.png", - flags = {"placeable-neutral", "placeable-off-grid"}, - max_health = 10000, - corpse = "small-remnants", - collision_mask = {}, - collision_box = {{0, 0}, {0, 0}}, - selection_box = {{-0.5, -0.5}, {0.5, 0.5}}, - inventory_size = 1000, - order = "none", - 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 }, - picture = - { - filename = "__manual-inventory-sort__/graphics/trans.png", - priority = "extra-high", - width = 0, - height = 0 - }, - circuit_wire_connection_point = - { - shadow = - { - red = {0.734375, 0.453125}, - green = {0.609375, 0.515625}, - }, - wire = - { - red = {0.40625, 0.21875}, - green = {0.40625, 0.375}, - } - }, - circuit_connector_sprites = get_circuit_connector_sprites({0.1875, 0.15625}, nil, 18), - circuit_wire_max_distance = 0 - }, +data:extend({ + { + type = "custom-input", + name = "manual-inventory-sort", + key_sequence = "SHIFT + Q", + consuming = "all" + }, + { + type = "custom-input", + name = "manual-inventory-sort-opened", + key_sequence = "CONTROL + Q", + consuming = "all" + }, + { + type = "custom-input", + name = "manual-inventory-auto-sort-toggle", + key_sequence = "SHIFT + Y", + consuming = "all" + }, + { + type = "custom-input", + name = "manual-inventory-options", + key_sequence = "SHIFT + X", + consuming = "all" + }, + { + type = "container", + name = "manual-inventory-sort-tmp-chest", + icon = "__manual-inventory-sort__/graphics/trans.png", + flags = {"placeable-neutral", "placeable-off-grid"}, + max_health = 10000, + corpse = "small-remnants", + collision_mask = {}, + collision_box = {{0, 0}, {0, 0}}, + selection_box = {{-0.5, -0.5}, {0.5, 0.5}}, + inventory_size = 1000, + order = "none", + 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 }, + picture = + { + filename = "__manual-inventory-sort__/graphics/trans.png", + priority = "extra-high", + width = 0, + height = 0 + }, + circuit_wire_connection_point = + { + shadow = + { + red = {0.734375, 0.453125}, + green = {0.609375, 0.515625}, + }, + wire = + { + red = {0.40625, 0.21875}, + green = {0.40625, 0.375}, + } + }, + circuit_connector_sprites = get_circuit_connector_sprites({0.1875, 0.15625}, nil, 18), + circuit_wire_max_distance = 0 + }, }) \ No newline at end of file diff --git a/manual-inventory-sort_1.4.4/graphics/trans.png b/manual-inventory-sort_1.4.5/graphics/trans.png similarity index 100% rename from manual-inventory-sort_1.4.4/graphics/trans.png rename to manual-inventory-sort_1.4.5/graphics/trans.png diff --git a/manual-inventory-sort_1.4.4/gui.lua b/manual-inventory-sort_1.4.5/gui.lua similarity index 89% rename from manual-inventory-sort_1.4.4/gui.lua rename to manual-inventory-sort_1.4.5/gui.lua index 6ef8046..0159193 100644 --- a/manual-inventory-sort_1.4.4/gui.lua +++ b/manual-inventory-sort_1.4.5/gui.lua @@ -1,67 +1,77 @@ -local gui = {} - -function gui.options_gui(gui, settings) - if gui.center["manual-inventory-options-container"] then - gui = gui.center["manual-inventory-options-container"] - - settings.auto_sort = gui["auto_sort"].state - settings.sort_limit_enabled = gui["sort_limit_enabled"].state - settings.sort_limit = tonumber(gui["sort_limit_flow"]["sort_limit"].text) - settings.sort_limit_override = gui["flow_fix"]["sort_limit_override"].state - if gui["flow_fix"]["sort_buttons_enabled"] then settings.sort_buttons_enabled = gui["flow_fix"]["sort_buttons_enabled"].state end - - if settings.sort_limit == nil then settings.sort_limit = 10 end - - gui.gui.center["manual-inventory-options-container"].destroy() - else - gui.center.add{type = "frame", name = "manual-inventory-options-container", direction = "vertical", caption = {"manual-inventory-gui-title"}} - gui = gui.center["manual-inventory-options-container"] - - gui.add{type = "checkbox", name = "auto_sort", state = settings.auto_sort, caption = {"manual-inventory-gui-auto_sort"}} - - gui.add{type = "checkbox", name = "sort_limit_enabled", state = settings.sort_limit_enabled, caption = {"manual-inventory-gui-sort_limit_enabled"}} - - sort_limit_flow = gui.add{type = "flow", name = "sort_limit_flow"} - sort_limit_flow.add{type = "label", name = "sort_limit_caption", caption = {"manual-inventory-gui-sort_limit"}} - sort_limit_flow.add{type = "textfield", name = "sort_limit", text = tostring(settings.sort_limit)} - - flow_fix = gui.add{type = "flow", name = "flow_fix", direction = "vertical"} - - flow_fix.add{type = "checkbox", name = "sort_limit_override", state = settings.sort_limit_override, caption = {"manual-inventory-gui-sort_limit_override"}} - - flow_fix.add{type = "checkbox", name = "sort_buttons_enabled", state = settings.sort_buttons_enabled, caption = {"manual-inventory-gui-sort_buttons_enabled"}} - - flow_fix.add{type = "button", name = "manual-inventory-options-save", caption = {"manual-inventory-gui-save"}} - end -end - -function gui.sort_buttons_gui(player) - if player.opened ~= nil or player.opened_self then - if player.gui.left["manual-inventory-sort_buttons-container"] == nil then - local gui = player.gui.left.add{type = "frame", name = "manual-inventory-sort_buttons-container", direction = "vertical", caption = {"manual-inventory-gui-sort-title"}} - gui.add{type = "button", name = "manual-inventory-sort_player", caption = {"manual-inventory-gui-sort_player"}} - - if player.opened ~= nil and player.opened.type == "container" then - gui.add{type = "button", name = "manual-inventory-sort_chest", caption = {"manual-inventory-gui-sort_chest"}} - end - end - elseif player.gui.left["manual-inventory-sort_buttons-container"] then - player.gui.left["manual-inventory-sort_buttons-container"].destroy() - end -end - -function gui.destroy_sort_buttons_gui(player) - if player.gui.left["manual-inventory-sort_buttons-container"] then - player.gui.left["manual-inventory-sort_buttons-container"].destroy() - end -end - -function gui.update_options_gui(gui, settings) - if gui.center["manual-inventory-options-container"] then - gui = gui.center["manual-inventory-options-container"] - - gui["auto_sort"].state = settings.auto_sort - end -end - +local gui = {} + +function gui.options_gui(gui, settings) + if gui.center["manual-inventory-options-container"] then + gui = gui.center["manual-inventory-options-container"] + + settings.auto_sort = gui["auto_sort"].state + settings.sort_limit_enabled = gui["sort_limit_enabled"].state + settings.sort_limit = tonumber(gui["sort_limit_flow"]["sort_limit"].text) + settings.sort_limit_override = gui["flow_fix"]["sort_limit_override"].state + if gui["flow_fix"]["sort_buttons_enabled"] then settings.sort_buttons_enabled = gui["flow_fix"]["sort_buttons_enabled"].state end + + if settings.sort_limit == nil then settings.sort_limit = 10 end + + gui.gui.center["manual-inventory-options-container"].destroy() + else + gui.center.add{type = "frame", name = "manual-inventory-options-container", direction = "vertical", caption = {"manual-inventory-gui-title"}} + gui = gui.center["manual-inventory-options-container"] + + gui.add{type = "checkbox", name = "auto_sort", state = settings.auto_sort, caption = {"manual-inventory-gui-auto_sort"}} + + gui.add{type = "checkbox", name = "sort_limit_enabled", state = settings.sort_limit_enabled, caption = {"manual-inventory-gui-sort_limit_enabled"}} + + sort_limit_flow = gui.add{type = "flow", name = "sort_limit_flow"} + sort_limit_flow.add{type = "label", name = "sort_limit_caption", caption = {"manual-inventory-gui-sort_limit"}} + sort_limit_flow.add{type = "textfield", name = "sort_limit", text = tostring(settings.sort_limit)} + + flow_fix = gui.add{type = "flow", name = "flow_fix", direction = "vertical"} + + flow_fix.add{type = "checkbox", name = "sort_limit_override", state = settings.sort_limit_override, caption = {"manual-inventory-gui-sort_limit_override"}} + + flow_fix.add{type = "checkbox", name = "sort_buttons_enabled", state = settings.sort_buttons_enabled, caption = {"manual-inventory-gui-sort_buttons_enabled"}} + + flow_fix.add{type = "button", name = "manual-inventory-options-save", caption = {"manual-inventory-gui-save"}} + end +end + +local function is_sortable(entity) + local sortable_entities = {"container", "logistic-container", "cargo-wagon", "car"} + + for _, v in pairs(sortable_entities) do + if entity.type == v then return true end + end + + return false +end + +function gui.sort_buttons_gui(player) + if player.opened ~= nil or player.opened_self then + if player.gui.left["manual-inventory-sort_buttons-container"] == nil then + local gui = player.gui.left.add{type = "frame", name = "manual-inventory-sort_buttons-container", direction = "vertical", caption = {"manual-inventory-gui-sort-title"}} + gui.add{type = "button", name = "manual-inventory-sort_player", caption = {"manual-inventory-gui-sort_player"}} + + if player.opened ~= nil and is_sortable(player.opened) then + gui.add{type = "button", name = "manual-inventory-sort_chest", caption = {"manual-inventory-gui-sort_chest"}} + end + end + elseif player.gui.left["manual-inventory-sort_buttons-container"] then + player.gui.left["manual-inventory-sort_buttons-container"].destroy() + end +end + +function gui.destroy_sort_buttons_gui(player) + if player.gui.left["manual-inventory-sort_buttons-container"] then + player.gui.left["manual-inventory-sort_buttons-container"].destroy() + end +end + +function gui.update_options_gui(gui, settings) + if gui.center["manual-inventory-options-container"] then + gui = gui.center["manual-inventory-options-container"] + + gui["auto_sort"].state = settings.auto_sort + end +end + return gui \ No newline at end of file diff --git a/manual-inventory-sort_1.4.4/info.json b/manual-inventory-sort_1.4.5/info.json similarity index 83% rename from manual-inventory-sort_1.4.4/info.json rename to manual-inventory-sort_1.4.5/info.json index 33c083b..3e91c40 100644 --- a/manual-inventory-sort_1.4.4/info.json +++ b/manual-inventory-sort_1.4.5/info.json @@ -1,11 +1,11 @@ -{ - "name": "manual-inventory-sort", - "version": "1.4.4", - "factorio_version": "0.14", - "title": "Manual Inventory Sorting", - "author": "TheRustyKnife", - "description": "Makes some tweaks to the way inventory sorting works.\nYou can sort your inventory on demand or toggle auto-sort. It's even possible to auto-sort just a part of the inventory.\nHotkeys are supported.\nNow with chest support!", - "homepage": "http://mods.factorio.com/mods/theRustyKnife/manual-inventory-sort", - "date": "26.08.2016", - "dependencies": [] +{ + "name": "manual-inventory-sort", + "version": "1.4.5", + "factorio_version": "0.14", + "title": "Manual Inventory Sorting", + "author": "TheRustyKnife", + "description": "Makes some tweaks to the way inventory sorting works.\nYou can sort your inventory on demand or toggle auto-sort. It's even possible to auto-sort just a part of the inventory.\nHotkeys are supported.\nNow with chest support!", + "homepage": "http://mods.factorio.com/mods/theRustyKnife/manual-inventory-sort", + "date": "06.09.2016", + "dependencies": ["base >= 0.14.4"] } \ No newline at end of file diff --git a/manual-inventory-sort_1.4.4/locale/cs/locale.cfg b/manual-inventory-sort_1.4.5/locale/cs/locale.cfg similarity index 98% rename from manual-inventory-sort_1.4.4/locale/cs/locale.cfg rename to manual-inventory-sort_1.4.5/locale/cs/locale.cfg index 3af9fc6..e27923e 100644 --- a/manual-inventory-sort_1.4.4/locale/cs/locale.cfg +++ b/manual-inventory-sort_1.4.5/locale/cs/locale.cfg @@ -1,20 +1,20 @@ -manual-inventory-auto-sort-off=Automatické třídÄ›ní inventáře VYPNUTO -manual-inventory-auto-sort-on=Automatické třídÄ›ní inventáře ZAPNUTO - -manual-inventory-gui-title=Nastavení Å™azení inventáře -manual-inventory-gui-auto_sort=Zapnout automatické Å™azení inventáře -manual-inventory-gui-sort_limit_enabled=Zapnout ÄásteÄné Å™azení inventáře -manual-inventory-gui-sort_limit=Řadit pouze (poÄet slotů): -manual-inventory-gui-sort_limit_override=Manuální Å™azení ignoruje limit -manual-inventory-gui-sort_buttons_enabled=Zobrazit tlaÄítka pro třídÄ›ní pokud je otevÅ™ený inventář -manual-inventory-gui-save=Uložit - -manual-inventory-gui-sort-title=SeÅ™adit -manual-inventory-gui-sort_player=HráÄův inventář -manual-inventory-gui-sort_chest=Truhlu - -[controls] -manual-inventory-sort=SeÅ™adit inventář -manual-inventory-sort-opened=SeÅ™adit inventář otevÅ™ené truhly -manual-inventory-auto-sort-toggle=PÅ™epnout automatické Å™azení inventáře +manual-inventory-auto-sort-off=Automatické třídÄ›ní inventáře VYPNUTO +manual-inventory-auto-sort-on=Automatické třídÄ›ní inventáře ZAPNUTO + +manual-inventory-gui-title=Nastavení Å™azení inventáře +manual-inventory-gui-auto_sort=Zapnout automatické Å™azení inventáře +manual-inventory-gui-sort_limit_enabled=Zapnout ÄásteÄné Å™azení inventáře +manual-inventory-gui-sort_limit=Řadit pouze (poÄet slotů): +manual-inventory-gui-sort_limit_override=Manuální Å™azení ignoruje limit +manual-inventory-gui-sort_buttons_enabled=Zobrazit tlaÄítka pro třídÄ›ní pokud je otevÅ™ený inventář +manual-inventory-gui-save=Uložit + +manual-inventory-gui-sort-title=SeÅ™adit +manual-inventory-gui-sort_player=HráÄův inventář +manual-inventory-gui-sort_chest=Truhlu + +[controls] +manual-inventory-sort=SeÅ™adit inventář +manual-inventory-sort-opened=SeÅ™adit inventář otevÅ™ené truhly +manual-inventory-auto-sort-toggle=PÅ™epnout automatické Å™azení inventáře manual-inventory-options=Otevřít nastavení Å™azení inventáře \ No newline at end of file diff --git a/manual-inventory-sort_1.4.4/locale/en/locale.cfg b/manual-inventory-sort_1.4.5/locale/en/locale.cfg similarity index 97% rename from manual-inventory-sort_1.4.4/locale/en/locale.cfg rename to manual-inventory-sort_1.4.5/locale/en/locale.cfg index 34a28a4..0003c0b 100644 --- a/manual-inventory-sort_1.4.4/locale/en/locale.cfg +++ b/manual-inventory-sort_1.4.5/locale/en/locale.cfg @@ -1,20 +1,20 @@ -manual-inventory-auto-sort-off=Automatic inventory sorting OFF -manual-inventory-auto-sort-on=Automatic inventory sorting ON - -manual-inventory-gui-title=Inventory sorting settings -manual-inventory-gui-auto_sort=Enable automatic inventory sorting -manual-inventory-gui-sort_limit_enabled=Enable part inventory sorting -manual-inventory-gui-sort_limit=Sort only (slot count): -manual-inventory-gui-sort_limit_override=Manual sorting ignores the limit -manual-inventory-gui-sort_buttons_enabled=Display sorting buttons when in inventory -manual-inventory-gui-save=Save - -manual-inventory-gui-sort-title=Sort -manual-inventory-gui-sort_player=Players inventory -manual-inventory-gui-sort_chest=Chest - -[controls] -manual-inventory-sort=Sort inventory -manual-inventory-sort-opened=Sort inventory of opened chest -manual-inventory-auto-sort-toggle=Toggle automatic inventory sorting +manual-inventory-auto-sort-off=Automatic inventory sorting OFF +manual-inventory-auto-sort-on=Automatic inventory sorting ON + +manual-inventory-gui-title=Inventory sorting settings +manual-inventory-gui-auto_sort=Enable automatic inventory sorting +manual-inventory-gui-sort_limit_enabled=Enable part inventory sorting +manual-inventory-gui-sort_limit=Sort only (slot count): +manual-inventory-gui-sort_limit_override=Manual sorting ignores the limit +manual-inventory-gui-sort_buttons_enabled=Display sorting buttons when in inventory +manual-inventory-gui-save=Save + +manual-inventory-gui-sort-title=Sort +manual-inventory-gui-sort_player=Players inventory +manual-inventory-gui-sort_chest=Chest + +[controls] +manual-inventory-sort=Sort inventory +manual-inventory-sort-opened=Sort inventory of opened chest +manual-inventory-auto-sort-toggle=Toggle automatic inventory sorting manual-inventory-options=Open inventory sorting options \ No newline at end of file diff --git a/manual-inventory-sort_1.4.5/locale/ru/locale.cfg b/manual-inventory-sort_1.4.5/locale/ru/locale.cfg new file mode 100644 index 0000000..a6a3e60 --- /dev/null +++ b/manual-inventory-sort_1.4.5/locale/ru/locale.cfg @@ -0,0 +1,20 @@ +manual-inventory-auto-sort-off=Выкл автоÑортировку +manual-inventory-auto-sort-on=Вкл автоÑортировку + +manual-inventory-gui-title=ÐаÑтройки Ñортирови +manual-inventory-gui-auto_sort=Разрешить автоÑортировку +manual-inventory-gui-sort_limit_enabled=Разрешить чаÑтичную Ñотрировку +manual-inventory-gui-sort_limit=Лимит Ñлотов автоÑортировки (колич.): +manual-inventory-gui-sort_limit_override=Ð ÑƒÑ‡Ð½Ð°Ñ Ñортировка игнорирует лимит +manual-inventory-gui-sort_buttons_enabled=Показывать кнопки Ñортировки, еÑли в инвентаре +manual-inventory-gui-save=Сохранить + +manual-inventory-gui-sort-title=Сортировать +manual-inventory-gui-sort_player=Инв.игрока +manual-inventory-gui-sort_chest=Сундук + +[controls] +manual-inventory-sort=Сортировать инвентарь +manual-inventory-sort-opened=Сортировать инвентарь Ñундука +manual-inventory-auto-sort-toggle=Переключить автоÑортировку Ð¸Ð½Ð²ÐµÐ½Ñ‚Ð°Ñ€Ñ +manual-inventory-options=Открыть наÑтройки Ñортировки \ No newline at end of file diff --git a/rso-mod_2.1.0/resourceconfigs/hardcrafting.lua b/rso-mod_2.1.0/resourceconfigs/hardcrafting.lua deleted file mode 100644 index 08fff94..0000000 --- a/rso-mod_2.1.0/resourceconfigs/hardcrafting.lua +++ /dev/null @@ -1,14 +0,0 @@ -function fillHardCraftingConfig() - - config["rich-copper-ore"] = { - type="resource-ore", - - allotment=5, - spawns_per_region={min=1, max=1}, - richness=10000, - size={min=10, max=15}, - min_amount=500, - - starting={richness=5000, size=25, probability=1}, - } -end \ No newline at end of file diff --git a/rso-mod_2.1.0/config.lua b/rso-mod_2.2.2/config.lua similarity index 98% rename from rso-mod_2.1.0/config.lua rename to rso-mod_2.2.2/config.lua index ca05889..2b111c2 100644 --- a/rso-mod_2.1.0/config.lua +++ b/rso-mod_2.2.2/config.lua @@ -1,58 +1,58 @@ - -debug_enabled = false -debug_items_enabled = false - -region_size = 7 -- alternative mean to control how further away resources would be, default - 256 tiles or 8 chunks - -- each region is region_size*region_size chunks - -- each chunk is 32*32 tiles - -use_donut_shapes = false -- setting this to false will remove donuts from possible resource layouts - -starting_area_size = 1 -- starting area in regions, safe from random nonsense - -absolute_resource_chance = 0.60 -- chance to spawn an resource in a region -starting_richness_mult = 1 -- multiply starting area richness for resources -global_richness_mult = 1 -- multiply richness for all resources except starting area -global_size_mult = 1 -- multiply size for all ores, doesn't affect starting area - -absolute_enemy_chance = 0.25 -- chance to spawn enemies per sector (can be more then one base if spawned) -enemy_base_size_multiplier = 1 -- all base sizes will be multiplied by this - larger number means bigger bases - -multi_resource_active = true -- global switch for multi resource chances -multi_resource_richness_factor = 0.60 -- any additional resource is multiplied by this value times resources-1 -multi_resource_size_factor = 0.90 -multi_resource_chance_diminish = 0.6 -- diminishing effect factor on multi_resource_chance - -min_amount=250 -- default value for minimum amount of resource in single pile - -richness_distance_factor=0.7 -- exponent for richness distance factor calculation -size_distance_factor=0.1 -- exponent for size distance factor calculation - -deterministic = true -- set to false to use system for all decisions math.random - --- mode is no longer used by generation process - it autodetects endless resources --- endless_resource_mode = false -- if true, the size of each resource is modified by the following modifier. Use with the endless resources mod. -endless_resource_mode_sizeModifier = 0.80 - -disableEnemyExpansion = false -- allows for disabling of in-game biter base building -use_RSO_biter_spawning = true -- enables spawning of biters controlled by RSO mod - less enemies around with more space between bases -use_vanilla_biter_spawning = false -- enables using of vanilla spawning - -biter_ratio_segment=1 --the ratio components determining how many biters to spitters will be spawned -spitter_ratio_segment=1 --eg. 1 and 1 -> equal number of biters and spitters, 10 and 1 -> 10 times as many biters to spitters - -useEnemiesInPeaceMod = false -- additional override for peace mod detection - when set to true it will spawn enemies normally, needs to have enemies enabled in peace mod - -useStraightWorldMod = false -- enables Straight World mod - actual mod code copied into RSO to make it compatible - -ignoreMapGenSettings = false -- stops the default behaviour of reading map gen settings - -fluidResourcesFactor = 20 -- temporary factor for calculation of resource %-ages for fluids - -useResourceCollisionDetection = true -- enables avoidace calculations to reduce ores overlaping of each other -resourceCollisionDetectionRatio = 0.8 -- at least this much of ore field needs to be placable to spawn it -resourceCollisionFieldSkip = true -- determines if ore field should be skipped completely if placement based on ratio failed - --- Angels Ores section -infiniteResourceSpawnThreshold = 0.7 -- should be between 0 and 1 - 0 means all nodes are infinite, 1 or more will result with no infinite nodes -infiniteResourceInStartArea = false + +debug_enabled = false +debug_items_enabled = false + +region_size = 7 -- alternative mean to control how further away resources would be, default - 256 tiles or 8 chunks + -- each region is region_size*region_size chunks + -- each chunk is 32*32 tiles + +use_donut_shapes = false -- setting this to false will remove donuts from possible resource layouts + +starting_area_size = 1 -- starting area in regions, safe from random nonsense + +absolute_resource_chance = 0.60 -- chance to spawn an resource in a region +starting_richness_mult = 1 -- multiply starting area richness for resources +global_richness_mult = 1 -- multiply richness for all resources except starting area +global_size_mult = 1 -- multiply size for all ores, doesn't affect starting area + +absolute_enemy_chance = 0.25 -- chance to spawn enemies per sector (can be more then one base if spawned) +enemy_base_size_multiplier = 1 -- all base sizes will be multiplied by this - larger number means bigger bases + +multi_resource_active = true -- global switch for multi resource chances +multi_resource_richness_factor = 0.60 -- any additional resource is multiplied by this value times resources-1 +multi_resource_size_factor = 0.90 +multi_resource_chance_diminish = 0.6 -- diminishing effect factor on multi_resource_chance + +min_amount=250 -- default value for minimum amount of resource in single pile + +richness_distance_factor=0.7 -- exponent for richness distance factor calculation +size_distance_factor=0.1 -- exponent for size distance factor calculation + +deterministic = true -- set to false to use system for all decisions math.random + +-- mode is no longer used by generation process - it autodetects endless resources +-- endless_resource_mode = false -- if true, the size of each resource is modified by the following modifier. Use with the endless resources mod. +endless_resource_mode_sizeModifier = 0.80 + +disableEnemyExpansion = false -- allows for disabling of in-game biter base building +use_RSO_biter_spawning = true -- enables spawning of biters controlled by RSO mod - less enemies around with more space between bases +use_vanilla_biter_spawning = false -- enables using of vanilla spawning + +biter_ratio_segment=1 --the ratio components determining how many biters to spitters will be spawned +spitter_ratio_segment=1 --eg. 1 and 1 -> equal number of biters and spitters, 10 and 1 -> 10 times as many biters to spitters + +useEnemiesInPeaceMod = false -- additional override for peace mod detection - when set to true it will spawn enemies normally, needs to have enemies enabled in peace mod + +useStraightWorldMod = false -- enables Straight World mod - actual mod code copied into RSO to make it compatible + +ignoreMapGenSettings = false -- stops the default behaviour of reading map gen settings + +fluidResourcesFactor = 20 -- temporary factor for calculation of resource %-ages for fluids + +useResourceCollisionDetection = true -- enables avoidace calculations to reduce ores overlaping of each other +resourceCollisionDetectionRatio = 0.8 -- at least this much of ore field needs to be placable to spawn it +resourceCollisionFieldSkip = true -- determines if ore field should be skipped completely if placement based on ratio failed + +-- Angels Ores section +infiniteResourceSpawnThreshold = 0.7 -- should be between 0 and 1 - 0 means all nodes are infinite, 1 or more will result with no infinite nodes +infiniteResourceInStartArea = false diff --git a/rso-mod_2.1.0/control.lua b/rso-mod_2.2.2/control.lua similarity index 89% rename from rso-mod_2.1.0/control.lua rename to rso-mod_2.2.2/control.lua index 2657008..19cb064 100644 --- a/rso-mod_2.1.0/control.lua +++ b/rso-mod_2.2.2/control.lua @@ -1,1701 +1,1726 @@ -require "config" -require "util" - -require "resourceconfigs.mainconfig" -require "libs.straight_world" - -local MB=require "libs/metaball" -local drand = require 'libs/drand' -local rng = drand.mwvc -if not deterministic then rng = drand.sys_rand end - -local logger = require 'libs/logger' -local l = logger.new_logger() - --- math shortcuts -local floor = math.floor -local abs = math.abs -local cos = math.cos -local sin = math.sin -local pi = math.pi -local max = math.max - -local function round(value) - return math.floor(value + 0.5) -end - -local function debug(str) - if debug_enabled then - l:log(str) - end -end - --- constants -local CHUNK_SIZE = 32 -local REGION_TILE_SIZE = CHUNK_SIZE*region_size -local MIN_BALL_DISTANCE = CHUNK_SIZE/6 -local P_BALL_SIZE_FACTOR = 0.7 -local N_BALL_SIZE_FACTOR = 0.95 -local NEGATIVE_MODIFICATOR = 123456 - -local meta_shapes = nil - -if use_donut_shapes then - meta_shapes = {MB.MetaEllipse, MB.MetaSquare, MB.MetaDonut} -else - meta_shapes = {MB.MetaEllipse, MB.MetaSquare} -end - --- local globals -local index_is_built = false -local max_allotment = 0 -local rgen = nil -local distance = util.distance -local spawner_probability_edge = 0 -- below this value a biter spawner, above/equal this value a spitter spawner -local invalidResources = {} -local config = nil -local configIndexed = nil - --- map gen settings mapping - -local startingAreaMultiplier = -{ - none = 0, - ["very-low"] = 0.25, - low = 0.5, - normal = 1, - high = 1.5, - ["very-high"] = 2, -} - -local frequencyAllotmentMultiplier = -{ - ["very-low"] = 0.5, - low = 0.75, - normal = 1, - high = 1.5, - ["very-high"] = 2, -} - -local sizeMultiplier = -{ - none = 0, - ["very-low"] = 0.5, - low = 0.75, - normal = 1, - high = 1.25, - ["very-high"] = 1.5, -} - -local richnessMultiplier = -{ - ["very-low"] = 0.125, - low = 0.25, - normal = 1, - high = 2, - ["very-high"] = 4, -} - -local entityFrequencyMultiplier = -{ - ["very-low"] = 0.25, - low = 0.5, - normal = 1, - high = 2, - ["very-high"] = 4, -} - -local entitySizeMultiplier = -{ - none = 0, - ["very-low"] = 0.5, - low = 0.75, - normal = 1, - high = 2, - ["very-high"] = 4, -} - ---[[ HELPER METHODS ]]-- - -local function normalize(n) --keep numbers at (positive) 32 bits - return floor(n) % 0x80000000 -end - -local function bearing(origin, dest) - -- finds relative angle - local xd = dest.x - origin.x - local yd = dest.y - origin.y - return math.atan2(xd, yd); -end - -local function str2num(s) - local num = 0 - for i=1,s:len() do - num=num + (s:byte(i) - 33)*i - end - return num -end - -local function mult_for_pos(pos) - local num = 0 - local x = pos.x - local y = pos.y - - if x == 0 then x = 0.5 end - if y == 0 then y = 0.5 end - if x < 0 then - x = abs(x) + NEGATIVE_MODIFICATOR - end - if y < 0 then - y = abs(y) + NEGATIVE_MODIFICATOR - end - - return drand.lcg(y, 'mvc'):random(0)*drand.lcg(x, 'nr'):random(0) -end - -local function rng_for_reg_pos(pos) - local rgen = rng(normalize(global.seed*mult_for_pos(pos))) - rgen:random() - rgen:random() - rgen:random() - return rgen -end - -local function rng_restricted_angle(restrictions) - local rng = rgen:random() - local x_scale, y_scale - local deformX = rgen:random() * 2 - 1 - local deformY = rgen:random() * 2 - 1 - - if restrictions=='xy' then - y_scale=1.0 + deformY*0.5 - x_scale=1.0 + deformX*0.5 - angle = rng*pi*2 - elseif restrictions=='x' then - y_scale=1.0 + deformY*0.6 - x_scale=1.0 + deformX*0.6 - angle = rng*pi/2 - pi/4 - elseif restrictions=='y' then - y_scale=1.0 + deformY*0.6 - x_scale=1.0 + deformX*0.6 - angle = rng*pi/2 + pi/2 - else - y_scale=1.0 + deformY*0.3 - x_scale=1.0 + deformX*0.3 - angle = rng*pi*2 - end - - return angle, x_scale, y_scale -end - -local function vary_by_percentage(x, p) - return x + (0.5 - rgen:random())*2*x*p -end - - -local function remove_trees(surface, x, y, x_size, y_size ) - local bb={{x - x_size, y - y_size}, {x + x_size, y + y_size}} - for _, entity in pairs(surface.find_entities_filtered{area = bb, type="tree"}) do - if entity.valid then - entity.destroy() - end - end -end - -local function removeDecorations(surface, x, y, width, height ) - local bb={{x, y}, {x + width, y + height}} - for _, entity in pairs(surface.find_entities_filtered{area = bb, type="decorative"}) do - if entity.valid then - entity.destroy() - end - end -end - -local function find_intersection(surface, x, y) - -- try to get position in between of valid chunks by probing map - -- this may breaks determinism of generation, but so far it returned on first if - local gt = surface.get_tile - local restriction = '' - if gt(x + CHUNK_SIZE*2, y + CHUNK_SIZE*2).valid and gt(x - CHUNK_SIZE*2, y - CHUNK_SIZE*2).valid and gt(x + CHUNK_SIZE*2, y - CHUNK_SIZE*2).valid and gt(x - CHUNK_SIZE*2, y + CHUNK_SIZE*2).valid then - restriction = 'xy' - elseif gt(x + CHUNK_SIZE*2, y + CHUNK_SIZE*2).valid and gt(x + CHUNK_SIZE*2, y).valid and gt(x, y + CHUNK_SIZE*2).valid then - x=x + CHUNK_SIZE/2 - y=y + CHUNK_SIZE/2 - restriction = 'xy' - elseif gt(x + CHUNK_SIZE*2, y - CHUNK_SIZE*2).valid and gt(x + CHUNK_SIZE*2, y).valid and gt(x, y - CHUNK_SIZE*2).valid then - x=x + CHUNK_SIZE/2 - y=y - CHUNK_SIZE/2 - restriction = 'xy' - elseif gt(x - CHUNK_SIZE*2, y + CHUNK_SIZE*2).valid and gt(x - CHUNK_SIZE*2, y).valid and gt(x, y + CHUNK_SIZE*2).valid then - x=x - CHUNK_SIZE/2 - y=y + CHUNK_SIZE/2 - restriction = 'xy' - elseif gt(x - CHUNK_SIZE*2, y - CHUNK_SIZE*2).valid and gt(x - CHUNK_SIZE*2, y).valid and gt(x, y - CHUNK_SIZE*2).valid then - x=x - CHUNK_SIZE/2 - y=y - CHUNK_SIZE/2 - restriction = 'xy' - elseif gt(x + CHUNK_SIZE*2, y).valid then - x=x + CHUNK_SIZE/2 - restriction = 'x' - elseif gt(x - CHUNK_SIZE*2, y).valid then - x=x - CHUNK_SIZE/2 - restriction = 'x' - elseif gt(x, y + CHUNK_SIZE*2).valid then - y=y + CHUNK_SIZE/2 - restriction = 'y' - elseif gt(x, y - CHUNK_SIZE*2).valid then - y=y - CHUNK_SIZE/2 - restriction = 'y' - end - return x, y, restriction -end - -local function find_random_chunk(r_x, r_y) - local offset_x=rgen:random(region_size)-1 - local offset_y=rgen:random(region_size)-1 - local c_x=r_x*REGION_TILE_SIZE + offset_x*CHUNK_SIZE - local c_y=r_y*REGION_TILE_SIZE + offset_y*CHUNK_SIZE - return c_x, c_y -end - -local function is_same_region(c_x1, c_y1, c_x2, c_y2) - if not floor(c_x1/REGION_TILE_SIZE) == floor(c_x2/REGION_TILE_SIZE) then - return false - end - if not floor(c_y1/REGION_TILE_SIZE) == floor(c_y2/REGION_TILE_SIZE) then - return false - end - return true -end - -local function find_random_neighbour_chunk(ocx, ocy) - -- somewhat bruteforce and unoptimized - local x_dir = rgen:random(-1,1) - local y_dir = rgen:random(-1,1) - local ncx = ocx + x_dir*CHUNK_SIZE - local ncy = ocy + y_dir*CHUNK_SIZE - if is_same_region(ncx, ncy, ocx, ocy) then - return ncx, ncy - end - - ncx = ocx - x_dir*CHUNK_SIZE - ncy = ocy - y_dir*CHUNK_SIZE - if is_same_region(ncx, ncy, ocx, ocy) then - return ncx, ncy - end - - ncx = ocx - x_dir*CHUNK_SIZE - if is_same_region(ncx, ocy, ocx, ocy) then - return ncx, ocy - end - - ncy = ocy - y_dir*CHUNK_SIZE - if is_same_region(ocx, ncy, ocx, ocy) then - return ocx, ncy - end - - return ocx, ocy -end - -local function isInStartingArea( regionX, regionY ) - if ((regionX * regionX + regionY * regionY) <= starting_area_size * starting_area_size) then - return true - end - - return false -end --- modifies the resource size - only used in endless_resource_mode -local function modify_resource_size(resourceName, resourceSize, startingArea) - - if not startingArea then - resourceSize = math.ceil(resourceSize * global_size_mult) - end - - resourceEntity = game.entity_prototypes[resourceName] - if resourceEntity and resourceEntity.infinite_resource then - - newResourceSize = resourceSize * endless_resource_mode_sizeModifier - - -- make sure it's still an integer - newResourceSize = math.ceil(newResourceSize) - -- make sure it's not 0 - if newResourceSize == 0 then newResourceSize = 1 end - return newResourceSize - else - return resourceSize - end -end - ---[[ SPAWN METHODS ]]-- - -local locationOrder = -{ - { x = 0, y = 0 }, - { x = -1, y = 0 }, - { x = 1, y = 0 }, - { x = 0, y = -1 }, - { x = 0, y = 1 }, - { x = -1, y = -1 }, - { x = 1, y = -1 }, - { x = -1, y = 1 }, - { x = 1, y = 1 } -} - ---[[ entity-field ]]-- -local function spawn_resource_ore(surface, rname, pos, size, richness, startingArea, restrictions) - -- blob generator, centered at pos, size controls blob diameter - restrictions = restrictions or '' - debug("Entering spawn_resource_ore "..rname.." at:"..pos.x..","..pos.y.." size:"..size.." richness:"..richness.." isStart:"..tostring(startingArea).." restrictions:"..restrictions) - - size = modify_resource_size(rname, size, startingArea) - local radius = size / 2 -- to radius - - local p_balls={} - local n_balls={} - local MIN_BALL_DISTANCE = math.min(MIN_BALL_DISTANCE, radius/2) - - local maxPradius = 0 - local outside = { xmin = 1e10, xmax = -1e10, ymin = 1e10, ymax = -1e10 } - local inside = { xmin = 1e10, xmax = -1e10, ymin = 1e10, ymax = -1e10 } - - local function adjustRadius(radius, scaleX, scaleY, up) --- if scaleX < 1 then --- scaleX = 1 --- end --- if scaleY < 1 then --- scaleY = 1 --- end - --- if up then --- return radius * math.max(scaleX, scaleY) --- else --- return radius / math.max(scaleX, scaleY) --- end - return radius - end - - local function updateRect(rect, x, y, radius) - rect.xmin = math.min(rect.xmin, x - radius) - rect.xmax = math.max(rect.xmax, x + radius) - rect.ymin = math.min(rect.ymin, y - radius) - rect.ymax = math.max(rect.ymax, y + radius) - end - - local function updateRects(x, y, radius, scaleX, scaleY) - local adjustedRadius = adjustRadius(radius, scaleX, scaleY, true) - local radiusMax = adjustedRadius * 3 -- arbitrary multiplier - needs to be big enough to not cut any metaballs - updateRect(outside, x, y, radiusMax) - updateRect(inside, x, y, adjustedRadius) - end - - local function generate_p_ball() - local angle, x_scale, y_scale, x, y, b_radius, shape - angle, x_scale, y_scale=rng_restricted_angle(restrictions) - local dev = radius / 2 + rgen:random() * radius / 4--math.min(CHUNK_SIZE/3, radius*1.5) - local dev_x, dev_y = pos.x, pos.y - x = rgen:random(-dev, dev)+dev_x - y = rgen:random(-dev, dev)+dev_y - if p_balls[#p_balls] and distance(p_balls[#p_balls], {x=x, y=y}) < MIN_BALL_DISTANCE then - local new_angle = bearing(p_balls[#p_balls], {x=x, y=y}) - debug("Move ball old xy @ "..x..","..y) - x=(cos(new_angle)*MIN_BALL_DISTANCE) + x - y=(sin(new_angle)*MIN_BALL_DISTANCE) + y - debug("Move ball new xy @ "..x..","..y) - end - - if #p_balls == 0 then - b_radius = ( 3 * radius / 4 + rgen:random() * radius / 4) -- * (P_BALL_SIZE_FACTOR^#p_balls) - else - b_radius = ( radius / 4 + rgen:random() * radius / 2) -- * (P_BALL_SIZE_FACTOR^#p_balls) - end - - - if #p_balls > 0 then - local tempRect = table.deepcopy(inside) - updateRect(tempRect, x, y, adjustRadius(b_radius, x_scale, y_scale)) - local rectSize = math.max(tempRect.xmax - tempRect.xmin, tempRect.ymax - tempRect.ymin) - local targetSize = size * 1.25 - debug("Rect size "..rectSize.." targetSize "..targetSize) - if rectSize > targetSize then - local widthLeft = (targetSize - (inside.xmax - inside.xmin)) - local heightLeft = (targetSize - (inside.ymax - inside.ymin)) - local widthMod = math.min(x - inside.xmin, inside.xmax - x) - local heightMod = math.min(y - inside.ymin, inside.ymax - y) - local radiusBackup = b_radius - b_radius = math.min(widthLeft + widthMod, heightLeft + heightMod) - b_radius = adjustRadius(b_radius, x_scale, y_scale, false) - debug("Reduced ball radius from "..radiusBackup.." to "..b_radius.." widthLeft:"..widthLeft.." heightLeft:"..heightLeft.." widthMod:"..widthMod.." heightMod:"..heightMod) - end - end - - if b_radius < 2 and #p_balls == 0 then - b_radius = 2 - end - - if b_radius > 0 then - - maxPradius = math.max(maxPradius, b_radius) - shape = meta_shapes[rgen:random(1,#meta_shapes)] - local radiusText = "" - if shape.type == "MetaDonut" then - local inRadius = b_radius / 4 + b_radius / 2 * rgen:random() - radiusText = " inRadius:"..inRadius - p_balls[#p_balls+1] = shape:new(x, y, b_radius, inRadius, angle, x_scale, y_scale, 1.1) - else - p_balls[#p_balls+1] = shape:new(x, y, b_radius, angle, x_scale, y_scale, 1.1) - end - updateRects(x, y, b_radius, x_scale, y_scale) - - debug("P+Ball "..shape.type.." @ "..x..","..y.." radius: "..b_radius..radiusText.." angle: "..math.deg(angle).." scale: "..x_scale..", "..y_scale) - end - end - - local function generate_n_ball(i) - local angle, x_scale, y_scale, x, y, b_radius, shape - angle, x_scale, y_scale=rng_restricted_angle('xy') - if p_balls[i] then - local new_angle = p_balls[i].angle + pi*rgen:random(0,1) + (rgen:random()-0.5)*pi/2 - local dist = p_balls[i].radius - x=(cos(new_angle)*dist) + p_balls[i].x - y=(sin(new_angle)*dist) + p_balls[i].y - angle = p_balls[i].angle + pi/2 + (rgen:random()-0.5)*pi*2/3 - else - x = rgen:random(-radius, radius)+pos.x - y = rgen:random(-radius, radius)+pos.y - end - - if p_balls[i] then - b_radius = (p_balls[i].radius / 4 + rgen:random() * p_balls[i].radius / 2) -- * (N_BALL_SIZE_FACTOR^#n_balls) - else - b_radius = (radius / 4 + rgen:random() * radius / 2) -- * (N_BALL_SIZE_FACTOR^#n_balls) - end - - if b_radius < 1 then - b_radius = 1 - end - - shape = meta_shapes[rgen:random(1,#meta_shapes)] - local radiusText = "" - if shape.type == "MetaDonut" then - local inRadius = b_radius / 4 + b_radius / 2 * rgen:random() - radiusText = " inRadius:"..inRadius - n_balls[#n_balls+1] = shape:new(x, y, b_radius, inRadius, angle, x_scale, y_scale, 1.15) - else - n_balls[#n_balls+1] = shape:new(x, y, b_radius, angle, x_scale, y_scale, 1.15) - end - -- updateRects(x, y, b_radius, x_scale, y_scale) -- should not be needed here - only positive ball can generate ore - debug("N-Ball "..shape.type.." @ "..x..","..y.." radius: "..b_radius..radiusText.." angle: "..math.deg(angle).." scale: "..x_scale..", "..y_scale) - end - - local function calculate_force(x,y) - local p_force = 0 - local n_force = 0 - for _,ball in ipairs(p_balls) do - p_force = p_force + ball:force(x,y) - end - for _,ball in ipairs(n_balls) do - n_force = n_force + ball:force(x,y) - end - local totalForce = 0 - if p_force > n_force then - totalForce = 1 - 1/(p_force - n_force) - end - --debug("Force at "..x..","..y.." p:"..p_force.." n:"..n_force.." result:"..totalForce) - --return (1 - 1/p_force) - n_force - return totalForce - end - - local max_p_balls = 2 - local min_amount = config[rname].min_amount or min_amount - if restrictions == 'xy' then - -- we have full 4 chunks - --radius = radius * 1.5 - --richness = richness * 2 / 3 - --min_amount = min_amount / 3 - max_p_balls = 3 - end - - radius = math.min(radius, 2*CHUNK_SIZE) - - local force - -- generate blobs - for i=1,max_p_balls do - generate_p_ball() - end - - for i=1,rgen:random(1, #p_balls) do - generate_n_ball(i) - end - ---* local _a = {} - local _total = 0 - local oreLocations = {} - local forceTotal = 0 - - -- fill the map --- for y=pos.y-CHUNK_SIZE*2, pos.y+CHUNK_SIZE*2-1 do - for y=outside.ymin, outside.ymax do ---* local _b = {} ---* _a[#_a+1] = _b --- for x=pos.x-CHUNK_SIZE*2, pos.x+CHUNK_SIZE*2-1 do - for x=outside.xmin, outside.xmax do --- if surface.get_tile(x,y).valid then - force = calculate_force(x, y) - if force > 0 then - --debug("@ "..x..","..y.." force: "..force.." amount: "..amount) - -- if not surface.get_tile(x,y).collides_with("water-tile") and surface.can_place_entity{name = rname, position = {x,y}} then ---* _b[#_b+1] = '#' - oreLocations[#oreLocations + 1] = {x = x, y = y, force = force, valid = false} - forceTotal = forceTotal + force --- elseif not startingArea then -- we don't want to make ultra rich nodes in starting area - failing to make them will add second spawn in different location --- entities = game.find_entities_filtered{area = {{x-2.75, y-2.75}, {x+2.75, y+2.75}}, name=rname} --- if entities and #entities > 0 then ---* _b[#_b+1] = 'O' --- _total = _total + amount --- for k, ent in pairs(entities) do --- ent.amount = ent.amount + floor(amount/#entities) --- end --- else --- _b[#_b+1] = '.' --- end - -- else - -- _b[#_b+1] = 'c' - -- end ---* else ---* _b[#_b+1] = '<' - end ---* else ---* _b[#_b+1] = 'x' --- end - end - end - - local validCount, resOffsetX, resOffsetY, ratio - - for _,locationOffset in ipairs(locationOrder) do - validCount = 0 - resOffsetX = locationOffset.x * CHUNK_SIZE - resOffsetY = locationOffset.y * CHUNK_SIZE - - for _, location in ipairs(oreLocations) do - - local newX = location.x + resOffsetX - local newY = location.y + resOffsetY - location.valid = false --- debug("Checking ".. newX .. "," .. newY .."("..location.x..","..location.y..")") - if surface.can_place_entity{name = rname, position = {x = newX,y = newY}} then - location.valid = true - validCount = validCount + 1 --- debug("Passed") - end - end - - ratio = 0 - - if validCount > 0 then - ratio = validCount / #oreLocations - end - - debug("Valid ratio ".. ratio) - - if not useResourceCollisionDetection then - break - end - - if ratio > resourceCollisionDetectionRatio then - break - elseif resourceCollisionFieldSkip then -- in case no valid ratio was found we skip the field completely - validCount = 0 - end - end - - if validCount > 0 then - local rectSize = ((inside.xmax - inside.xmin) + (inside.ymax - inside.ymin)) / 2 - - local sizeMultiplier = rectSize ^ 0.6 - local minSize = richness * 5 * sizeMultiplier - local maxSize = richness * 10 * sizeMultiplier - local approxDepositSize = rgen:random(minSize, maxSize) - - approxDepositSize = approxDepositSize - validCount * min_amount - - if approxDepositSize < 0 then - approxDepositSize = 100 * validCount - end - - local forceFactor = approxDepositSize / forceTotal - - -- don't create very dense resources in starting area - another field will be generated - if startingArea and forceFactor > 4000 then - forceFactor = rgen:random(3000, 4000) - end --- elseif forceFactor > 25000 then -- limit size of one resource pile --- forceFactor = rgen:random(20000, 25000) --- end - - debug( "Force total:"..forceTotal.." sizeMin:"..minSize.." sizeMax:"..maxSize.." factor:"..forceFactor.." location#:"..validCount.." rectSize:"..rectSize.." sizeMultiplier:"..sizeMultiplier) - local richnessMultiplier = global_richness_mult - - if startingArea then - richnessMultiplier = starting_richness_mult - end --- if game.players[1] then --- game.players[1].print("Spawning "..rname.." total amount "..(approxDepositSize + validCount * min_amount)*richnessMultiplier) --- end - - -- infinite ore handling for Angels Ores mod - local infiniteOrePresent = false - local infiniteOreName = "infinite-"..rname - local minimumInfiniteOreAmount = nil - local spawnName = rname - - if game.entity_prototypes[infiniteOreName] then - infiniteOrePresent = true - minimumInfiniteOreAmount = game.entity_prototypes[infiniteOreName].minimum_resource_amount - end - - if startingArea and not infiniteResourceInStartArea then - infiniteOrePresent = false - end - - for _,location in ipairs(oreLocations) do - -- local amount=floor((richness*location.force*(0.8^#p_balls)) + min_amount) - if location.valid then - - local amount = floor(( forceFactor * location.force + min_amount ) * richnessMultiplier) - - if amount > 1e9 then - amount = 1e9 - end - - _total = _total + amount - - spawnName = rname - if infiniteOrePresent and location.force > infiniteResourceSpawnThreshold then - spawnName = infiniteOreName - if minimumInfiniteOreAmount and amount < minimumInfiniteOreAmount then - amount = minimumInfiniteOreAmount - end --- debug("Infinite spawn: "..location.force) - end - - if amount > 0 then - surface.create_entity{name = spawnName, - position = {location.x + resOffsetX,location.y + resOffsetY}, - force = game.forces.neutral, - amount = amount} - end - end - end - - -- special handling for homeworld - sand resource has no graphics and is simply marked as sand tiles - if rname == "sand-source" then - local tileTable = {} - for _,location in ipairs(oreLocations) do - if location.valid then - table.insert(tileTable,{ name = "sand", position = {location.x + resOffsetX,location.y + resOffsetY}}) - end - end - if #tileTable > 1 then - surface.set_tiles(tileTable) - end - end - end - - if debug_enabled then - debug("Total amount: ".._total) ---* for _,v in pairs(_a) do - --output a nice ASCII map ---* debug(table.concat(v)) ---* end - debug("Leaving spawn_resource_ore") - end - return _total -end - ---[[ entity-liquid ]]-- -local function spawn_resource_liquid(surface, rname, pos, size, richness, startingArea, restrictions) - restrictions = restrictions or '' - debug("Entering spawn_resource_liquid "..rname.." "..pos.x..","..pos.y.." "..size.." "..richness.." "..tostring(startingArea).." "..restrictions) - local _total = 0 - local max_radius = rgen:random()*CHUNK_SIZE/2 + CHUNK_SIZE - --[[ - if restrictions == 'xy' then - -- we have full 4 chunks - max_radius = floor(max_radius*1.5) - size = floor(size*1.2) - end - ]]-- - -- don't reduce amount of liquids - they are already infinite - -- size = modify_resource_size(size) - - richness = ( 0.75 + rgen:random() / 2 ) * richness * size - - resourceEntity = game.entity_prototypes[rname] - --- if resourceEntity and resourceEntity.infinite_resource then --- local avgRichness = richness / size --- local sizeBefore = size --- if avgRichness > fluidResourcesFactor * resourceEntity.minimum_resource_amount then --- size = math.floor (richness / (fluidResourcesFactor * resourceEntity.minimum_resource_amount)) --- end --- debug("Updated size for "..rname.." from "..sizeBefore.." to "..size.." average "..avgRichness.." compared to "..(fluidResourcesFactor * resourceEntity.minimum_resource_amount)) --- end - - - local total_share = 0 - local avg_share = 1/size - local angle = rgen:random()*pi*2 - local saved = 0 - while total_share < 1 do - local new_share = vary_by_percentage(avg_share, 0.25) - if new_share + total_share > 1 then - new_share = 1 - total_share - end - total_share = new_share + total_share - if new_share < avg_share/10 then - -- too small - break - end - local amount = floor(richness*new_share) + saved - - local richnessMultiplier = global_richness_mult - - if startingArea then - richnessMultiplier = starting_richness_mult - end - - --if amount >= game.entity_prototypes[rname].minimum then - if amount >= config[rname].minimum_amount then - saved = 0 - for try=1,5 do - local dist = rgen:random()*(max_radius - max_radius*0.1) - angle = angle + pi/4 + rgen:random()*pi/2 - local x, y = pos.x + cos(angle)*dist, pos.y + sin(angle)*dist - if surface.can_place_entity{name = rname, position = {x,y}} then - debug("@ "..x..","..y.." amount: "..amount.." new_share: "..new_share.." try: "..try) - amount = floor(amount * richnessMultiplier) - - if amount > 1e9 then - amount = 1e9 - end - - _total = _total + amount - - if amount > 0 then - surface.create_entity{name = rname, - position = {x,y}, - force = game.forces.neutral, - amount = amount, - direction = rgen:random(4)} - end - break - elseif not startingArea then -- we don't want to make ultra rich nodes in starting area - failing to make them will add second spawn in different location - entities = surface.find_entities_filtered{area = {{x-2.75, y-2.75}, {x+2.75, y+2.75}}, name=rname} - if entities and #entities > 0 then - _total = _total + amount - for k, ent in pairs(entities) do - ent.amount = ent.amount + floor(amount/#entities) - end - break - end - end - end - else - saved = amount - end - end - debug("Total amount: ".._total) - debug("Leaving spawn_resource_liquid") - return _total -end - -local spawnerTable = nil - -local function initSpawnerTable() - if spawnerTable == nil then - spawnerTable = {} - spawnerTable["biter-spawner"] = game.entity_prototypes["biter-spawner"] ~= nil - spawnerTable["bob-biter-spawner"] = game.entity_prototypes["bob-biter-spawner"] ~= nil - spawnerTable["spitter-spawner"] = game.entity_prototypes["spitter-spawner"] ~= nil - spawnerTable["bob-spitter-spawner"] = game.entity_prototypes["bob-spitter-spawner"] ~= nil - end -end - -local function spawn_entity(surface, ent, r_config, x, y) - if not use_RSO_biter_spawning then return end - local size=rgen:random(r_config.size.min, r_config.size.max) - - local _total = 0 - local r_distance = distance({x=0,y=0},{x=x/REGION_TILE_SIZE,y=y/REGION_TILE_SIZE}) - - local distanceMultiplier = math.min(r_distance^r_config.size_per_region_factor, 5) - if r_config.size_per_region_factor then - size = size*distanceMultiplier - end - - size = size * enemy_base_size_multiplier - - debug("Entering spawn_entity "..ent.." "..x..","..y.." "..size) - - local maxAttemptCount = 5 - local distancePerAttempt = 0.2 - - initSpawnerTable() - - for i=1,size do - for attempt = 1, maxAttemptCount do - local richness=r_config.richness*(r_distance^richness_distance_factor) - local max_d = floor(CHUNK_SIZE*(0.5 + distancePerAttempt*attempt)) - local s_x = x + rgen:random(0, floor(max_d - r_config.clear_range[1])) - max_d/2 + r_config.clear_range[1] - local s_y = y + rgen:random(0, floor(max_d - r_config.clear_range[2])) - max_d/2 + r_config.clear_range[2] - - if surface.get_tile(s_x, s_y).valid then - - remove_trees(surface, s_x, s_y, r_config.clear_range[1], r_config.clear_range[2]) - - local spawnerName = nil - - if spawner_probability_edge > 0 then - - bigSpawnerChance = rgen:random() - - if rgen:random() < spawner_probability_edge then - if ( useBobEntity and bigSpawnerChance > 0.75 ) then - spawnerName = "bob-biter-spawner" - else - spawnerName = "biter-spawner" - end - else - if ( useBobEntity and bigSpawnerChance > 0.75 ) then - spawnerName = "bob-spitter-spawner" - else - spawnerName = "spitter-spawner" - end - end - end - - if spawnerName and spawnerTable[spawnerName] then - if surface.can_place_entity{name=spawnerName, position={s_x, s_y}} then - _total = _total + richness - debug(spawnerName.." @ "..s_x..","..s_y.." placed on "..attempt.." attempt") - - surface.create_entity{name=spawnerName, position={s_x, s_y}, force=game.forces[r_config.force], amount=floor(richness)}--, direction=rgen:random(4) - -- else - -- game.players[1].print("Entity "..spawnerName.." spawn failed") - break; - else - if attempt == maxAttemptCount then - debug(spawnerName.." @ "..s_x..","..s_y.." failed to spawn") - end - end - else - game.players[1].print("Entity "..spawnerName.." doesn't exist") - end - end - end - - if r_config.sub_spawn_probability then - local sub_spawn_prob = r_config.sub_spawn_probability*math.min(r_config.sub_spawn_max_distance_factor, r_config.sub_spawn_distance_factor^r_distance) - if rgen:random() < sub_spawn_prob then - for i=1,(rgen:random(r_config.sub_spawn_size.min, r_config.sub_spawn_size.max)*distanceMultiplier) do - local allotment_max = 0 - -- build table - for k,v in pairs(r_config.sub_spawns) do - if not v.min_distance or r_distance > v.min_distance then - local allotment = v.allotment - if v.allotment_distance_factor then - allotment = allotment * (v.allotment_distance_factor^r_distance) - end - v.allotment_range ={min = allotment_max, max = allotment_max + allotment} - allotment_max = allotment_max + allotment - else - v.allotment_range = nil - end - end - local sub_type = rgen:random(0, allotment_max) - for sub_spawn,v in pairs(r_config.sub_spawns) do - if v.allotment_range and sub_type >= v.allotment_range.min and sub_type <= v.allotment_range.max then - for attempt = 1, maxAttemptCount do - local max_d = floor(CHUNK_SIZE*distancePerAttempt*attempt) - s_x = x + rgen:random(max_d) - max_d/2 - s_y = y + rgen:random(max_d) - max_d/2 - remove_trees(surface, s_x, s_y, v.clear_range[1], v.clear_range[2]) - if surface.can_place_entity{name=sub_spawn, position={s_x, s_y}} then - surface.create_entity{name=sub_spawn, position={s_x, s_y}, force=game.forces[r_config.force]}--, direction=rgen:random(4) - debug("Rolled subspawn "..sub_spawn.." @ "..s_x..","..s_x.." after "..attempt.." attempts") - break; - else - if attempt == maxAttemptCount then - debug("Rolling subspawn "..sub_spawn.." @ "..s_x..","..s_x.." failed") - end - end - end - break - end - end - end - end - end - end - debug("Total amount: ".._total) - debug("Leaving spawn_entity") -end - ---[[ EVENT/INIT METHODS ]]-- - -local function spawn_starting_resources( surface ) - if global.start_resources_spawned or game.tick > 3600 then return end -- starting resources already there or game was started without mod - if surface.map_gen_settings.starting_area == "none" and not ignoreMapGenSettings then return end -- starting area disabled by map gen - if starting_area_size < 0.1 then return end -- skip spawning if starting area is to small - - rgen = rng_for_reg_pos({x=0,y=0}) - local status = true - for index,v in ipairs(configIndexed) do - if v.starting then - local prob = rgen:random() -- probability that this resource is spawned - debug("starting resource probability rolled "..prob) - if v.starting.probability > 0 and prob <= v.starting.probability then - local total = 0 - local radius = 25 - local min_threshold = 0 - - if v.type == "resource-ore" then - min_threshold = v.starting.richness * rgen:random(5, 10) -- lets make sure that there is at least 10-15 times starting richness ore at start - elseif v.type == "resource-liquid" then - min_threshold = v.starting.richness * 0.5 * v.starting.size - end - - while (radius < 200) and (total < min_threshold) do - local angle = rgen:random() * pi * 2 - local dist = rgen:random() * 30 + radius * 2 - local pos = { x = floor(cos(angle) * dist), y = floor(sin(angle) * dist)} - if v.type == "resource-ore" then - total = total + spawn_resource_ore(surface, v.name, pos, v.starting.size, v.starting.richness, true) - elseif v.type == "resource-liquid" then - total = total + spawn_resource_liquid(surface, v.name, pos, v.starting.size, v.starting.richness, true) - end - radius=radius + 10 - end - if total < min_threshold then - status = false - end - end - end - end - global.start_resources_spawned = true - --l:dump('logs/start_'..global.seed..'.log') -end - -local function modifyMinMax(value, mod) - value.min = round( value.min * mod ) - value.max = round( value.max * mod ) -end - -local function prebuild_config_data(surface) - if index_is_built then return false end - - local mapGenSettings = nil - - if not ignoreMapGenSettings then - mapGenSettings = surface.map_gen_settings - end - local autoPlaceSettings = nil - if mapGenSettings then - autoPlaceSettings = mapGenSettings.autoplace_controls - end - - configIndexed = {} - -- build additional indexed array to the associative array - for res_name, res_conf in pairs(config) do - if res_conf.valid then -- only add valid resources - res_conf.name = res_name - - local settingsForResource = nil - local isEntity = (res_conf.type == "entity") - local addResource = true - - local autoplaceName = res_name - - if res_conf.autoplace_name then - autoplaceName = res_conf.autoplace_name - end - - if autoPlaceSettings then - settingsForResource = autoPlaceSettings[autoplaceName] - end - - if settingsForResource then - local allotmentMod = nil - local sizeMod = nil - if isEntity then - allotmentMod = entityFrequencyMultiplier[settingsForResource.frequency] - sizeMod = entitySizeMultiplier[settingsForResource.size] - else - allotmentMod =frequencyAllotmentMultiplier[settingsForResource.frequency] - sizeMod = sizeMultiplier[settingsForResource.size] - end - - local richnessMod = richnessMultiplier[settingsForResource.richness] - - -- special case to modify global chance of enemy base spawns --- if res_name == "enemy-base" and allotmentMod then --- absolute_enemy_chance = absolute_enemy_chance * allotmentMod --- debug("Enemy base chance modified to "..absolute_enemy_chance) --- end - - debug(res_name .. " allotment mod " .. allotmentMod .. " size mod " .. sizeMod .. " richness mod " .. richnessMod ) - - - if allotmentMod then - if isEntity then - res_conf.absolute_probability = res_conf.absolute_probability * allotmentMod - debug("Entity chance modified to "..res_conf.absolute_probability) - else - res_conf.allotment = round( res_conf.allotment * allotmentMod ) - end - end - - if sizeMod ~= nil and sizeMod == 0 then - addResource = false - end - - if sizeMod then - modifyMinMax(res_conf.size, sizeMod) - - if res_conf.starting then - res_conf.starting.size = round( res_conf.starting.size * sizeMod ) - end - - if isEntity then - if res_conf.sub_spawn_size then - modifyMinMax(res_conf.sub_spawn_size, sizeMod) - end - modifyMinMax(res_conf.spawns_per_region, sizeMod) - end - end - - if richnessMod then - if type == "resource-ore" then - res_conf.richness = round( res_conf.richness * richnessMod ) - elseif type == "resource-liquid" then - modifyMinMax(res_conf.richness, richnessMod) - end - - if res_conf.starting then - res_conf.starting.richness = round( res_conf.starting.richness * richnessMod ) - end - end - end - - if addResource then - configIndexed[#configIndexed + 1] = res_conf - if res_conf.multi_resource and multi_resource_active then - local new_list = {} - for sub_res_name, allotment in pairs(res_conf.multi_resource) do - if config[sub_res_name] and config[sub_res_name].valid then - new_list[#new_list+1] = {name = sub_res_name, allotment = allotment} - end - end - table.sort(new_list, function(a, b) return a.name < b.name end) - res_conf.multi_resource = new_list - else - res_conf.multi_resource_chance = nil - end - end - end - end - - table.sort(configIndexed, function(a, b) return a.name < b.name end) - - local pr=0 - for index,v in pairs(config) do - if v.along_resource_probability then - v.along_resource_probability_range={min=pr, max=pr+v.along_resource_probability} - pr=pr+v.along_resource_probability - end - if v.allotment and v.allotment > 0 then - v.allotment_range={min=max_allotment, max=max_allotment+v.allotment} - max_allotment=max_allotment+v.allotment - end - end - - if mapGenSettings and mapGenSettings.starting_area then - local multiplier = startingAreaMultiplier[mapGenSettings.starting_area] - if multiplier ~= nil then - starting_area_size = starting_area_size * multiplier - debug("Starting area "..starting_area_size) - end - end - - index_is_built = true -end - --- set up the probabilty segments from which to roll between for biter and spitter spawners -local function calculate_spawner_ratio() - if (biter_ratio_segment ~= 0 and spitter_ratio_segment ~= 0) and biter_ratio_segment >= 0 and spitter_ratio_segment >= 0 then - spawner_probability_edge=biter_ratio_segment/(biter_ratio_segment+spitter_ratio_segment) -- normalize to between 0 and 1 - end -end - -local function checkConfigForInvalidResources() - --make sure that every resource in the config is actually available. - --call this function, before the auxiliary config is prebuilt! - if index_is_built then return end - - local prototypes = game.entity_prototypes - - for resourceName, resourceConfig in pairs(config) do - if prototypes[resourceName] or resourceConfig.type == "entity" then - resourceConfig.valid = true - else - -- resource was in config, but it doesn't exist in game files anymore - mark it invalid - resourceConfig.valid = false - - table.insert(invalidResources, "Resource not available: " .. resourceName) - debug("Resource not available: " .. resourceName) - end - - if resourceConfig.valid and resourceConfig.type ~= "entity" then - if prototypes[resourceName].autoplace_specification == nil then - resourceConfig.valid = false - debug("Resource "..resourceName.." invalidated - autoplace not present") - end - end - end -end - -local function checkForBobEnemies() - if game.entity_prototypes["bob-biter-spawner"] and game.entity_prototypes["bob-spitter-spawner"] then - useBobEntity = true - end -end - -local function roll_region(c_x, c_y) - --in what region is this chunk? - local r_x=floor(c_x/REGION_TILE_SIZE) - local r_y=floor(c_y/REGION_TILE_SIZE) - local r_data = nil - --don't spawn stuff in starting area - if isInStartingArea( c_x/REGION_TILE_SIZE, c_y/REGION_TILE_SIZE ) then - return false - end - - if global.regions[r_x] and global.regions[r_x][r_y] then - r_data = global.regions[r_x][r_y] - else - --if this chunk is the first in its region to be generated - if not global.regions[r_x] then global.regions[r_x] = {} end - global.regions[r_x][r_y]={} - r_data = global.regions[r_x][r_y] - rgen = rng_for_reg_pos{x=r_x,y=r_y} - - local rollCount = math.ceil(#configIndexed / 10) - 1 -- 0 based counter is more convenient here - rollCount = math.min(rollCount, 3) - - for rollNumber = 0,rollCount do - - local resourceChance = absolute_resource_chance - rollNumber * 0.1 - --absolute chance to spawn resource - local abct = rgen:random() - debug("Rolling resource "..abct.." against "..resourceChance.." roll "..rollNumber) - if abct <= resourceChance then - local res_type=rgen:random(1, max_allotment) - for index,v in ipairs(configIndexed) do - if v.allotment_range and ((res_type >= v.allotment_range.min) and (res_type <= v.allotment_range.max)) then - debug("Rolled primary resource "..v.name.." with res_type="..res_type.." @ "..r_x..","..r_y) - local num_spawns=rgen:random(v.spawns_per_region.min, v.spawns_per_region.max) - local last_spawn_coords = {} - local along_ - for i=1,num_spawns do - local c_x, c_y = find_random_chunk(r_x, r_y) - if not r_data[c_x] then r_data[c_x] = {} end - if not r_data[c_x][c_y] then r_data[c_x][c_y] = {} end - local c_data = r_data[c_x][c_y] - c_data[#c_data+1]={v.name, rollNumber} - last_spawn_coords[#last_spawn_coords+1] = {c_x, c_y} - debug("Rolled primary chunk "..v.name.." @ "..c_x.."."..c_y.." reg: "..r_x..","..r_y) - -- Along resource spawn, only once - if i == 1 then - local am_roll = rgen:random() - for index,vv in ipairs(configIndexed) do - if vv.along_resource_probability_range and am_roll >= vv.along_resource_probability_range.min and am_roll <= vv.along_resource_probability_range.max then - c_data = r_data[c_x][c_y] - c_data[#c_data+1]={vv.name, rollNumber} - debug("Rolled along "..vv.name.." @ "..c_x.."."..c_y.." reg: "..r_x..","..r_y) - end - end - end - end - -- roll multiple resources in same region - local deep=0 - while v.multi_resource_chance and rgen:random() <= v.multi_resource_chance*(multi_resource_chance_diminish^deep) do - deep = deep + 1 - local max_allotment = 0 - for index,sub_res in pairs(v.multi_resource) do max_allotment=max_allotment+sub_res.allotment end - - local res_type=rgen:random(1, max_allotment) - local min=0 - for _, sub_res in pairs(v.multi_resource) do - if (res_type >= min) and (res_type <= sub_res.allotment + min) then - local last_coords = last_spawn_coords[rgen:random(1, #last_spawn_coords)] - local c_x, c_y = find_random_neighbour_chunk(last_coords[1], last_coords[2]) -- in same as primary resource chunk - if not r_data[c_x] then r_data[c_x] = {} end - if not r_data[c_x][c_y] then r_data[c_x][c_y] = {} end - local c_data = r_data[c_x][c_y] - c_data[#c_data+1]={sub_res.name, deep} - debug("Rolled multiple "..sub_res.name..":"..deep.." with res_type="..res_type.." @ "..c_x.."."..c_y.." reg: "..r_x.."."..r_y) - break - else - min = min + sub_res.allotment - end - end - end - break - end - end - - end - end - -- roll for absolute_probability - this rolls the enemies - - for index,v in ipairs(configIndexed) do - if v.absolute_probability then - local prob_factor = 1 - if v.probability_distance_factor then - prob_factor = math.min(v.max_probability_distance_factor, v.probability_distance_factor^distance({x=0,y=0},{x=r_x,y=r_y})) - end - local abs_roll = rgen:random() - if abs_roll 0 then debug("Destroyed - ".._count) end -end - -local function regenerate_everything(surface) - -- step 1: clear the map and mark chunks for in place generation - global.regions = {} - local valid_chunks = {} - local i = 1 - local status = true - local iter_y_start, iter_y_end, iter_y_step, iter_x_start, iter_x_end, iter_x_step - local function set_iterators(case) - if case == 1 then - -- top_left -> bottom_left - iter_y_start = i - iter_y_end = -i + 1 - iter_y_step = -1 - iter_x_start = i - iter_x_end = i - iter_x_step = 1 - elseif case == 2 then - -- bottom_left -> bottom_rigth - iter_y_start = -i - iter_y_end = -i - iter_y_step = 1 - iter_x_start = i - iter_x_end = -i + 1 - iter_x_step = -1 - elseif case == 3 then - -- bottom_right -> top_right - iter_y_start = -i - iter_y_end = i - 1 - iter_y_step = 1 - iter_x_start = -i - iter_x_end = -i - iter_x_step = 1 - elseif case == 4 then - -- top_right -> top_left - iter_y_start = i - iter_y_end = i - iter_y_step = 1 - iter_x_start = -i - iter_x_end = i - 1 - iter_x_step = 1 - end - end - - local ent_list = {} - for _,v in ipairs(configIndexed) do - ent_list[v.name] = 1 - local infiniteOreName = "infinite-".. v.name - - if game.entity_prototypes[infiniteOreName] then - ent_list[infiniteOreName] = 1 - end - - if v.sub_spawns then - for ent,vv in pairs(v.sub_spawns) do - ent_list[ent] = 1 - end - end - end - - ent_list["biter-spawner"] = 1 - ent_list["spitter-spawner"] = 1 - - if useBobEntity then - ent_list["bob-biter-spawner"] = 1 - ent_list["bob-spitter-spawner"] = 1 - end - - while status do - status = false - for case=1,4 do - set_iterators(case) - for yi=iter_y_start, iter_y_end, iter_y_step do - for xi=iter_x_start, iter_x_end, iter_x_step do - local c_x = CHUNK_SIZE*xi - local c_y = CHUNK_SIZE*yi - if not isInStartingArea( c_x/REGION_TILE_SIZE, c_y/REGION_TILE_SIZE ) then - local cen_x, cen_y = c_x + CHUNK_SIZE/2, c_y + CHUNK_SIZE/2 - local _x, _y, restriction = find_intersection(surface, cen_x, cen_y) - if restriction == 'xy' and c_x + CHUNK_SIZE/2 == _x and c_y + CHUNK_SIZE/2 == _y then - valid_chunks[c_x] = valid_chunks[c_x] or {} - valid_chunks[c_x][c_y] = true - clear_chunk(surface, cen_x, cen_y, ent_list) - debug("Added "..c_x..","..c_y.." center: "..cen_x..","..cen_y) - status = true - end - else - status = true - end - end - end - end - i = i + 1 - end - - -- step 2: regenerate chunks again - disabled since normal generation is not used anymore - i = 1 --- for k, v in pairs(config) do - -- regenerate small patches --- game.regenerate_entity(k) --- end - -- regenerate RSO chunks - status = true - while status do - status = false - for case=1,4 do - set_iterators(case) - for yi=iter_y_start, iter_y_end, iter_y_step do - for xi=iter_x_start, iter_x_end, iter_x_step do - local c_x = CHUNK_SIZE*xi - local c_y = CHUNK_SIZE*yi - if not isInStartingArea( c_x/REGION_TILE_SIZE, c_y/REGION_TILE_SIZE ) then - status = true - end - if valid_chunks[c_x] and valid_chunks[c_x][c_y] then - roll_region(c_x, c_y) - roll_chunk(surface, c_x, c_y) - - if useStraightWorldMod then - straightWorld(surface, {x = c_x, y = c_y}, {x = c_x + CHUNK_SIZE, y = c_y + CHUNK_SIZE}) - end - - status = true - end - end - end - end - i = i + 1 - end - --l:dump("logs/"..global.seed..'regenerated.log') - game.players[1].print('Done') -end - -local function extendRect(leftTop, bottomRight) - leftTop.x = leftTop.x - CHUNK_SIZE / 2 - leftTop.y = leftTop.y - CHUNK_SIZE / 2 - bottomRight.x = bottomRight.x + CHUNK_SIZE - bottomRight.x = bottomRight.x + CHUNK_SIZE - - return leftTop, bottomRight -end - -local function printResourceProbability(player) - -- prints the probability of each resource - how likely it is to be spawned in percent - -- this ignores the multi resource chance - player.print("Max allotment"..string.format("%.1f",max_allotment)) - debug("Max allotment"..string.format("%.1f",max_allotment)) - local sanityCheckAllotment = 0 - for index,v in ipairs(configIndexed) do - if v.type ~= "entity" then -- ignore enemies - they don't have allotment set - if v.allotment then - local resProbability = (v.allotment/max_allotment) * 100 - sanityCheckAllotment = sanityCheckAllotment + v.allotment - player.print("Resource: "..v.name.." Prob: "..string.format("%.1f",resProbability)) - debug("Resource: "..v.name.." Prob: "..string.format("%.1f",resProbability)) - else - player.print("Resource: "..v.name.." Allotment not set") - debug("Resource: "..v.name.." Allotment not set") - end - end - end - - player.print("SanityCheck Allotment: "..string.format("%.1f", sanityCheckAllotment)) - debug("SanityCheck Allotment: "..string.format("%.1f", sanityCheckAllotment)) -end - -local function IsIgnoreResource(ResourcePrototype) - if string.find( ResourcePrototype.name, "underground-" ) ~= nil then - return true - end - if string.find( ResourcePrototype.name, "infinite-" ) ~= nil then - return true - end - if ResourcePrototype.autoplace_specification == nil then - return true - end - return false -end - -local function checkForUnusedResources(player) - -- find all resources and check if we have it in our config - -- if not, tell the user that this resource won't be spawned (with RSO) - for prototypeName, prototype in pairs(game.entity_prototypes) do - if prototype.type == "resource" then - if not config[prototypeName] then - if IsIgnoreResource(prototype) then -- ignore resources which are not autoplace - debug("Resource not configured but ignored (non-autoplace): "..prototypeName) - else - player.print("The resource "..prototypeName.." is not configured in RSO. It won't be spawned!") - debug("Resource not configured: "..prototypeName) - end - else - -- these are the configured ones - if IsIgnoreResource(prototype) then - debug("Configured resource (but it is in ignore list - will be used!): " .. prototypeName) - else - debug("Configured resource: " .. prototypeName) - end - end - end - end -end - -local function printInvalidResources(player) - -- prints all invalid resources which were found when the config was processed. - for _, message in pairs(invalidResources) do - player.print(message) - end -end - -local function init() - if not initDone then - - local surface = game.surfaces['nauvis'] - - if not global.regions then - global.regions = {} - end - - if not config then - config = loadResourceConfig() - checkConfigForInvalidResources() - prebuild_config_data(surface) - end - - global.seed = surface.map_gen_settings.seed - - calculate_spawner_ratio() - spawn_starting_resources(surface) - - checkForBobEnemies() - - initDone = true - end - - script.on_event(defines.events.on_tick, nil) -end - -local function delayedInit() - script.on_event(defines.events.on_tick, init) -end - ---script.on_init(delayedInit) - no longer required -script.on_load(delayedInit) - -script.on_event(defines.events.on_chunk_generated, function(event) - - --changes by xiaoHong - ignore surfaces interface - 11/29/2015 - if global.ignoreSurfaceNames and global.ignoreSurfaceNames[event.surface.name] then - return - end - - local c_x = event.area.left_top.x - local c_y = event.area.left_top.y - - init() - - roll_region(c_x, c_y) - roll_chunk(event.surface, c_x, c_y) - - - if useStraightWorldMod then - straightWorld(event.surface, event.area.left_top, event.area.right_bottom) - end -end) - -script.on_event(defines.events.on_player_created, function(event) - - init() - local player = game.players[event.player_index] - - checkForUnusedResources(player) - printInvalidResources(player) - - if debug_enabled then - - printResourceProbability(player) - - if useBobEntity then - player.print("RSO: BobEnemies found") - end - - if debug_items_enabled then - player.character.insert{name = "coal", count = 1000} - player.character.insert{name = "raw-wood", count = 100} - player.character.insert{name = "car", count = 1} - player.character.insert{name = "car", count = 1} - player.character.insert{name = "car", count = 1} - - if game.item_prototypes["resource-monitor"] then - player.character.insert{name = "resource-monitor", count = 1} - end - end - end - - l:dump() -end) - -remote.add_interface("RSO", { - -- remote.call("RSO", "regenerate", true/false) - regenerate = function(new_seed) - if new_seed then - global.seed = math.random(0x80000000) - end - - local surface = game.surfaces['nauvis'] - init() - regenerate_everything(surface) - end, - - --changes by xiaoHong - ignore surfaces interface - 11/29/2015 - -- remote.call("RSO", "ignoreSurface", "name-of-surface") - ignoreSurface = function(surfaceName) - if type(surfaceName) ~= "string" then - game.players[1].print("RSO ignoreSurface interface: surfaceName should be a string") - end - if debug_enabled then - game.players[1].print("RSO ignoring surface " .. surfaceName .. " for generation") - end - global.ignoreSurfaceNames = global.ignoreSurfaceNames or {} - global.ignoreSurfaceNames[surfaceName] = true - end, - - saveLog = function() - l:dump() - end -}) - - +require "config" +require "util" + +require "resourceconfigs.mainconfig" +require "libs.straight_world" + +local MB=require "libs/metaball" +local drand = require 'libs/drand' +local rng = drand.mwvc +if not deterministic then rng = drand.sys_rand end + +local logger = require 'libs/logger' +local l = logger.new_logger() + +-- math shortcuts +local floor = math.floor +local abs = math.abs +local cos = math.cos +local sin = math.sin +local pi = math.pi +local max = math.max + +local function round(value) + return math.floor(value + 0.5) +end + +local function debug(str) + if debug_enabled then + l:log(str) + end +end + +-- constants +local CHUNK_SIZE = 32 +local REGION_TILE_SIZE = CHUNK_SIZE*region_size +local MIN_BALL_DISTANCE = CHUNK_SIZE/6 +local P_BALL_SIZE_FACTOR = 0.7 +local N_BALL_SIZE_FACTOR = 0.95 +local NEGATIVE_MODIFICATOR = 123456 + +local meta_shapes = nil + +if use_donut_shapes then + meta_shapes = {MB.MetaEllipse, MB.MetaSquare, MB.MetaDonut} +else + meta_shapes = {MB.MetaEllipse, MB.MetaSquare} +end + +-- local globals +local index_is_built = false +local max_allotment = 0 +local rgen = nil +local distance = util.distance +local spawner_probability_edge = 0 -- below this value a biter spawner, above/equal this value a spitter spawner +local invalidResources = {} +local config = nil +local configIndexed = nil + +-- map gen settings mapping + +local startingAreaMultiplier = +{ + none = 0, + ["very-low"] = 0.25, + low = 0.5, + normal = 1, + high = 1.5, + ["very-high"] = 2, +} + +local frequencyAllotmentMultiplier = +{ + ["very-low"] = 0.5, + low = 0.75, + normal = 1, + high = 1.5, + ["very-high"] = 2, +} + +local sizeMultiplier = +{ + none = 0, + ["very-low"] = 0.5, + low = 0.75, + normal = 1, + high = 1.25, + ["very-high"] = 1.5, +} + +local richnessMultiplier = +{ + ["very-low"] = 0.125, + low = 0.25, + normal = 1, + high = 2, + ["very-high"] = 4, +} + +local entityFrequencyMultiplier = +{ + ["very-low"] = 0.25, + low = 0.5, + normal = 1, + high = 2, + ["very-high"] = 4, +} + +local entitySizeMultiplier = +{ + none = 0, + ["very-low"] = 0.5, + low = 0.75, + normal = 1, + high = 2, + ["very-high"] = 4, +} + +--[[ HELPER METHODS ]]-- + +local function normalize(n) --keep numbers at (positive) 32 bits + return floor(n) % 0x80000000 +end + +local function bearing(origin, dest) + -- finds relative angle + local xd = dest.x - origin.x + local yd = dest.y - origin.y + return math.atan2(xd, yd); +end + +local function str2num(s) + local num = 0 + for i=1,s:len() do + num=num + (s:byte(i) - 33)*i + end + return num +end + +local function mult_for_pos(pos) + local num = 0 + local x = pos.x + local y = pos.y + + if x == 0 then x = 0.5 end + if y == 0 then y = 0.5 end + if x < 0 then + x = abs(x) + NEGATIVE_MODIFICATOR + end + if y < 0 then + y = abs(y) + NEGATIVE_MODIFICATOR + end + + return drand.lcg(y, 'mvc'):random(0)*drand.lcg(x, 'nr'):random(0) +end + +local function rng_for_reg_pos(pos) + local rgen = rng(normalize(global.seed*mult_for_pos(pos))) + rgen:random() + rgen:random() + rgen:random() + return rgen +end + +local function rng_restricted_angle(restrictions) + local rng = rgen:random() + local x_scale, y_scale + local deformX = rgen:random() * 2 - 1 + local deformY = rgen:random() * 2 - 1 + + if restrictions=='xy' then + y_scale=1.0 + deformY*0.5 + x_scale=1.0 + deformX*0.5 + angle = rng*pi*2 + elseif restrictions=='x' then + y_scale=1.0 + deformY*0.6 + x_scale=1.0 + deformX*0.6 + angle = rng*pi/2 - pi/4 + elseif restrictions=='y' then + y_scale=1.0 + deformY*0.6 + x_scale=1.0 + deformX*0.6 + angle = rng*pi/2 + pi/2 + else + y_scale=1.0 + deformY*0.3 + x_scale=1.0 + deformX*0.3 + angle = rng*pi*2 + end + + return angle, x_scale, y_scale +end + +local function vary_by_percentage(x, p) + return x + (0.5 - rgen:random())*2*x*p +end + + +local function remove_trees(surface, x, y, x_size, y_size ) + local bb={{x - x_size, y - y_size}, {x + x_size, y + y_size}} + for _, entity in pairs(surface.find_entities_filtered{area = bb, type="tree"}) do + if entity.valid then + entity.destroy() + end + end +end + +local function removeDecorations(surface, x, y, width, height ) + local bb={{x, y}, {x + width, y + height}} + for _, entity in pairs(surface.find_entities_filtered{area = bb, type="decorative"}) do + if entity.valid then + entity.destroy() + end + end +end + +local function find_intersection(surface, x, y) + -- try to get position in between of valid chunks by probing map + -- this may breaks determinism of generation, but so far it returned on first if + local gt = surface.get_tile + local restriction = '' + if gt(x + CHUNK_SIZE*2, y + CHUNK_SIZE*2).valid and gt(x - CHUNK_SIZE*2, y - CHUNK_SIZE*2).valid and gt(x + CHUNK_SIZE*2, y - CHUNK_SIZE*2).valid and gt(x - CHUNK_SIZE*2, y + CHUNK_SIZE*2).valid then + restriction = 'xy' + elseif gt(x + CHUNK_SIZE*2, y + CHUNK_SIZE*2).valid and gt(x + CHUNK_SIZE*2, y).valid and gt(x, y + CHUNK_SIZE*2).valid then + x=x + CHUNK_SIZE/2 + y=y + CHUNK_SIZE/2 + restriction = 'xy' + elseif gt(x + CHUNK_SIZE*2, y - CHUNK_SIZE*2).valid and gt(x + CHUNK_SIZE*2, y).valid and gt(x, y - CHUNK_SIZE*2).valid then + x=x + CHUNK_SIZE/2 + y=y - CHUNK_SIZE/2 + restriction = 'xy' + elseif gt(x - CHUNK_SIZE*2, y + CHUNK_SIZE*2).valid and gt(x - CHUNK_SIZE*2, y).valid and gt(x, y + CHUNK_SIZE*2).valid then + x=x - CHUNK_SIZE/2 + y=y + CHUNK_SIZE/2 + restriction = 'xy' + elseif gt(x - CHUNK_SIZE*2, y - CHUNK_SIZE*2).valid and gt(x - CHUNK_SIZE*2, y).valid and gt(x, y - CHUNK_SIZE*2).valid then + x=x - CHUNK_SIZE/2 + y=y - CHUNK_SIZE/2 + restriction = 'xy' + elseif gt(x + CHUNK_SIZE*2, y).valid then + x=x + CHUNK_SIZE/2 + restriction = 'x' + elseif gt(x - CHUNK_SIZE*2, y).valid then + x=x - CHUNK_SIZE/2 + restriction = 'x' + elseif gt(x, y + CHUNK_SIZE*2).valid then + y=y + CHUNK_SIZE/2 + restriction = 'y' + elseif gt(x, y - CHUNK_SIZE*2).valid then + y=y - CHUNK_SIZE/2 + restriction = 'y' + end + return x, y, restriction +end + +local function find_random_chunk(r_x, r_y) + local offset_x=rgen:random(region_size)-1 + local offset_y=rgen:random(region_size)-1 + local c_x=r_x*REGION_TILE_SIZE + offset_x*CHUNK_SIZE + local c_y=r_y*REGION_TILE_SIZE + offset_y*CHUNK_SIZE + return c_x, c_y +end + +local function is_same_region(c_x1, c_y1, c_x2, c_y2) + if not floor(c_x1/REGION_TILE_SIZE) == floor(c_x2/REGION_TILE_SIZE) then + return false + end + if not floor(c_y1/REGION_TILE_SIZE) == floor(c_y2/REGION_TILE_SIZE) then + return false + end + return true +end + +local function find_random_neighbour_chunk(ocx, ocy) + -- somewhat bruteforce and unoptimized + local x_dir = rgen:random(-1,1) + local y_dir = rgen:random(-1,1) + local ncx = ocx + x_dir*CHUNK_SIZE + local ncy = ocy + y_dir*CHUNK_SIZE + if is_same_region(ncx, ncy, ocx, ocy) then + return ncx, ncy + end + + ncx = ocx - x_dir*CHUNK_SIZE + ncy = ocy - y_dir*CHUNK_SIZE + if is_same_region(ncx, ncy, ocx, ocy) then + return ncx, ncy + end + + ncx = ocx - x_dir*CHUNK_SIZE + if is_same_region(ncx, ocy, ocx, ocy) then + return ncx, ocy + end + + ncy = ocy - y_dir*CHUNK_SIZE + if is_same_region(ocx, ncy, ocx, ocy) then + return ocx, ncy + end + + return ocx, ocy +end + +local function isInStartingArea( regionX, regionY ) + + for idx, pos in pairs( global.startingAreas ) do + + local adjustedX = regionX - pos.x / REGION_TILE_SIZE + local adjustedY = regionY - pos.y / REGION_TILE_SIZE + if ((adjustedX * adjustedX + adjustedY * adjustedY) <= starting_area_size * starting_area_size) then +-- log("Adjusted coords "..adjustedX..","..adjustedY.." region coords"..regionX..","..regionY.." in starting area") + return true + end + end + +-- log("Coords "..regionX..","..regionY.. " outside starting area") + return false +end +-- modifies the resource size - only used in endless_resource_mode +local function modify_resource_size(resourceName, resourceSize, startingArea) + + if not startingArea then + resourceSize = math.ceil(resourceSize * global_size_mult) + end + + resourceEntity = game.entity_prototypes[resourceName] + if resourceEntity and resourceEntity.infinite_resource then + + newResourceSize = resourceSize * endless_resource_mode_sizeModifier + + -- make sure it's still an integer + newResourceSize = math.ceil(newResourceSize) + -- make sure it's not 0 + if newResourceSize == 0 then newResourceSize = 1 end + return newResourceSize + else + return resourceSize + end +end + +--[[ SPAWN METHODS ]]-- + +local locationOrder = +{ + { x = 0, y = 0 }, + { x = -1, y = 0 }, + { x = 1, y = 0 }, + { x = 0, y = -1 }, + { x = 0, y = 1 }, + { x = -1, y = -1 }, + { x = 1, y = -1 }, + { x = -1, y = 1 }, + { x = 1, y = 1 } +} + +--[[ entity-field ]]-- +local function spawn_resource_ore(surface, rname, pos, size, richness, startingArea, restrictions) + -- blob generator, centered at pos, size controls blob diameter + restrictions = restrictions or '' + debug("Entering spawn_resource_ore "..rname.." at:"..pos.x..","..pos.y.." size:"..size.." richness:"..richness.." isStart:"..tostring(startingArea).." restrictions:"..restrictions) + + size = modify_resource_size(rname, size, startingArea) + local radius = size / 2 -- to radius + + local p_balls={} + local n_balls={} + local MIN_BALL_DISTANCE = math.min(MIN_BALL_DISTANCE, radius/2) + + local maxPradius = 0 + local outside = { xmin = 1e10, xmax = -1e10, ymin = 1e10, ymax = -1e10 } + local inside = { xmin = 1e10, xmax = -1e10, ymin = 1e10, ymax = -1e10 } + + local function adjustRadius(radius, scaleX, scaleY, up) +-- if scaleX < 1 then +-- scaleX = 1 +-- end +-- if scaleY < 1 then +-- scaleY = 1 +-- end + +-- if up then +-- return radius * math.max(scaleX, scaleY) +-- else +-- return radius / math.max(scaleX, scaleY) +-- end + return radius + end + + local function updateRect(rect, x, y, radius) + rect.xmin = math.min(rect.xmin, x - radius) + rect.xmax = math.max(rect.xmax, x + radius) + rect.ymin = math.min(rect.ymin, y - radius) + rect.ymax = math.max(rect.ymax, y + radius) + end + + local function updateRects(x, y, radius, scaleX, scaleY) + local adjustedRadius = adjustRadius(radius, scaleX, scaleY, true) + local radiusMax = adjustedRadius * 3 -- arbitrary multiplier - needs to be big enough to not cut any metaballs + updateRect(outside, x, y, radiusMax) + updateRect(inside, x, y, adjustedRadius) + end + + local function generate_p_ball() + local angle, x_scale, y_scale, x, y, b_radius, shape + angle, x_scale, y_scale=rng_restricted_angle(restrictions) + local dev = radius / 2 + rgen:random() * radius / 4--math.min(CHUNK_SIZE/3, radius*1.5) + local dev_x, dev_y = pos.x, pos.y + x = rgen:random(-dev, dev)+dev_x + y = rgen:random(-dev, dev)+dev_y + if p_balls[#p_balls] and distance(p_balls[#p_balls], {x=x, y=y}) < MIN_BALL_DISTANCE then + local new_angle = bearing(p_balls[#p_balls], {x=x, y=y}) + debug("Move ball old xy @ "..x..","..y) + x=(cos(new_angle)*MIN_BALL_DISTANCE) + x + y=(sin(new_angle)*MIN_BALL_DISTANCE) + y + debug("Move ball new xy @ "..x..","..y) + end + + if #p_balls == 0 then + b_radius = ( 3 * radius / 4 + rgen:random() * radius / 4) -- * (P_BALL_SIZE_FACTOR^#p_balls) + else + b_radius = ( radius / 4 + rgen:random() * radius / 2) -- * (P_BALL_SIZE_FACTOR^#p_balls) + end + + + if #p_balls > 0 then + local tempRect = table.deepcopy(inside) + updateRect(tempRect, x, y, adjustRadius(b_radius, x_scale, y_scale)) + local rectSize = math.max(tempRect.xmax - tempRect.xmin, tempRect.ymax - tempRect.ymin) + local targetSize = size * 1.25 + debug("Rect size "..rectSize.." targetSize "..targetSize) + if rectSize > targetSize then + local widthLeft = (targetSize - (inside.xmax - inside.xmin)) + local heightLeft = (targetSize - (inside.ymax - inside.ymin)) + local widthMod = math.min(x - inside.xmin, inside.xmax - x) + local heightMod = math.min(y - inside.ymin, inside.ymax - y) + local radiusBackup = b_radius + b_radius = math.min(widthLeft + widthMod, heightLeft + heightMod) + b_radius = adjustRadius(b_radius, x_scale, y_scale, false) + debug("Reduced ball radius from "..radiusBackup.." to "..b_radius.." widthLeft:"..widthLeft.." heightLeft:"..heightLeft.." widthMod:"..widthMod.." heightMod:"..heightMod) + end + end + + if b_radius < 2 and #p_balls == 0 then + b_radius = 2 + end + + if b_radius > 0 then + + maxPradius = math.max(maxPradius, b_radius) + shape = meta_shapes[rgen:random(1,#meta_shapes)] + local radiusText = "" + if shape.type == "MetaDonut" then + local inRadius = b_radius / 4 + b_radius / 2 * rgen:random() + radiusText = " inRadius:"..inRadius + p_balls[#p_balls+1] = shape:new(x, y, b_radius, inRadius, angle, x_scale, y_scale, 1.1) + else + p_balls[#p_balls+1] = shape:new(x, y, b_radius, angle, x_scale, y_scale, 1.1) + end + updateRects(x, y, b_radius, x_scale, y_scale) + + debug("P+Ball "..shape.type.." @ "..x..","..y.." radius: "..b_radius..radiusText.." angle: "..math.deg(angle).." scale: "..x_scale..", "..y_scale) + end + end + + local function generate_n_ball(i) + local angle, x_scale, y_scale, x, y, b_radius, shape + angle, x_scale, y_scale=rng_restricted_angle('xy') + if p_balls[i] then + local new_angle = p_balls[i].angle + pi*rgen:random(0,1) + (rgen:random()-0.5)*pi/2 + local dist = p_balls[i].radius + x=(cos(new_angle)*dist) + p_balls[i].x + y=(sin(new_angle)*dist) + p_balls[i].y + angle = p_balls[i].angle + pi/2 + (rgen:random()-0.5)*pi*2/3 + else + x = rgen:random(-radius, radius)+pos.x + y = rgen:random(-radius, radius)+pos.y + end + + if p_balls[i] then + b_radius = (p_balls[i].radius / 4 + rgen:random() * p_balls[i].radius / 2) -- * (N_BALL_SIZE_FACTOR^#n_balls) + else + b_radius = (radius / 4 + rgen:random() * radius / 2) -- * (N_BALL_SIZE_FACTOR^#n_balls) + end + + if b_radius < 1 then + b_radius = 1 + end + + shape = meta_shapes[rgen:random(1,#meta_shapes)] + local radiusText = "" + if shape.type == "MetaDonut" then + local inRadius = b_radius / 4 + b_radius / 2 * rgen:random() + radiusText = " inRadius:"..inRadius + n_balls[#n_balls+1] = shape:new(x, y, b_radius, inRadius, angle, x_scale, y_scale, 1.15) + else + n_balls[#n_balls+1] = shape:new(x, y, b_radius, angle, x_scale, y_scale, 1.15) + end + -- updateRects(x, y, b_radius, x_scale, y_scale) -- should not be needed here - only positive ball can generate ore + debug("N-Ball "..shape.type.." @ "..x..","..y.." radius: "..b_radius..radiusText.." angle: "..math.deg(angle).." scale: "..x_scale..", "..y_scale) + end + + local function calculate_force(x,y) + local p_force = 0 + local n_force = 0 + for _,ball in ipairs(p_balls) do + p_force = p_force + ball:force(x,y) + end + for _,ball in ipairs(n_balls) do + n_force = n_force + ball:force(x,y) + end + local totalForce = 0 + if p_force > n_force then + totalForce = 1 - 1/(p_force - n_force) + end + --debug("Force at "..x..","..y.." p:"..p_force.." n:"..n_force.." result:"..totalForce) + --return (1 - 1/p_force) - n_force + return totalForce + end + + local max_p_balls = 2 + local min_amount = config[rname].min_amount or min_amount + if restrictions == 'xy' then + -- we have full 4 chunks + --radius = radius * 1.5 + --richness = richness * 2 / 3 + --min_amount = min_amount / 3 + max_p_balls = 3 + end + + radius = math.min(radius, 2*CHUNK_SIZE) + + local force + -- generate blobs + for i=1,max_p_balls do + generate_p_ball() + end + + for i=1,rgen:random(1, #p_balls) do + generate_n_ball(i) + end + +--* local _a = {} + local _total = 0 + local oreLocations = {} + local forceTotal = 0 + + -- fill the map +-- for y=pos.y-CHUNK_SIZE*2, pos.y+CHUNK_SIZE*2-1 do + for y=outside.ymin, outside.ymax do +--* local _b = {} +--* _a[#_a+1] = _b +-- for x=pos.x-CHUNK_SIZE*2, pos.x+CHUNK_SIZE*2-1 do + for x=outside.xmin, outside.xmax do +-- if surface.get_tile(x,y).valid then + force = calculate_force(x, y) + if force > 0 then + --debug("@ "..x..","..y.." force: "..force.." amount: "..amount) + -- if not surface.get_tile(x,y).collides_with("water-tile") and surface.can_place_entity{name = rname, position = {x,y}} then +--* _b[#_b+1] = '#' + oreLocations[#oreLocations + 1] = {x = x, y = y, force = force, valid = false} + forceTotal = forceTotal + force +-- elseif not startingArea then -- we don't want to make ultra rich nodes in starting area - failing to make them will add second spawn in different location +-- entities = game.find_entities_filtered{area = {{x-2.75, y-2.75}, {x+2.75, y+2.75}}, name=rname} +-- if entities and #entities > 0 then +--* _b[#_b+1] = 'O' +-- _total = _total + amount +-- for k, ent in pairs(entities) do +-- ent.amount = ent.amount + floor(amount/#entities) +-- end +-- else +-- _b[#_b+1] = '.' +-- end + -- else + -- _b[#_b+1] = 'c' + -- end +--* else +--* _b[#_b+1] = '<' + end +--* else +--* _b[#_b+1] = 'x' +-- end + end + end + + local validCount, resOffsetX, resOffsetY, ratio + + for _,locationOffset in ipairs(locationOrder) do + validCount = 0 + resOffsetX = locationOffset.x * CHUNK_SIZE + resOffsetY = locationOffset.y * CHUNK_SIZE + + for _, location in ipairs(oreLocations) do + + local newX = location.x + resOffsetX + local newY = location.y + resOffsetY + location.valid = false +-- debug("Checking ".. newX .. "," .. newY .."("..location.x..","..location.y..")") + if surface.can_place_entity{name = rname, position = {x = newX,y = newY}} then + location.valid = true + validCount = validCount + 1 +-- debug("Passed") + end + end + + ratio = 0 + + if validCount > 0 then + ratio = validCount / #oreLocations + end + + debug("Valid ratio ".. ratio) + + if not useResourceCollisionDetection then + break + end + + if ratio > resourceCollisionDetectionRatio then + break + elseif resourceCollisionFieldSkip then -- in case no valid ratio was found we skip the field completely + validCount = 0 + end + end + + if validCount > 0 then + local rectSize = ((inside.xmax - inside.xmin) + (inside.ymax - inside.ymin)) / 2 + + local sizeMultiplier = rectSize ^ 0.6 + local minSize = richness * 5 * sizeMultiplier + local maxSize = richness * 10 * sizeMultiplier + local approxDepositSize = rgen:random(minSize, maxSize) + + approxDepositSize = approxDepositSize - validCount * min_amount + + if approxDepositSize < 0 then + approxDepositSize = 100 * validCount + end + + local forceFactor = approxDepositSize / forceTotal + + -- don't create very dense resources in starting area - another field will be generated + if startingArea and forceFactor > 4000 then + forceFactor = rgen:random(3000, 4000) + end +-- elseif forceFactor > 25000 then -- limit size of one resource pile +-- forceFactor = rgen:random(20000, 25000) +-- end + + debug( "Force total:"..forceTotal.." sizeMin:"..minSize.." sizeMax:"..maxSize.." factor:"..forceFactor.." location#:"..validCount.." rectSize:"..rectSize.." sizeMultiplier:"..sizeMultiplier) + local richnessMultiplier = global_richness_mult + + if startingArea then + richnessMultiplier = starting_richness_mult + end +-- if game.players[1] then +-- game.players[1].print("Spawning "..rname.." total amount "..(approxDepositSize + validCount * min_amount)*richnessMultiplier) +-- end + + -- infinite ore handling for Angels Ores mod + local infiniteOrePresent = false + local infiniteOreName = "infinite-"..rname + local minimumInfiniteOreAmount = nil + local spawnName = rname + + if game.entity_prototypes[infiniteOreName] then + infiniteOrePresent = true + minimumInfiniteOreAmount = game.entity_prototypes[infiniteOreName].minimum_resource_amount + end + + if startingArea and not infiniteResourceInStartArea then + infiniteOrePresent = false + end + + for _,location in ipairs(oreLocations) do + -- local amount=floor((richness*location.force*(0.8^#p_balls)) + min_amount) + if location.valid then + + local amount = floor(( forceFactor * location.force + min_amount ) * richnessMultiplier) + + if amount > 1e9 then + amount = 1e9 + end + + _total = _total + amount + + spawnName = rname + if infiniteOrePresent and location.force > infiniteResourceSpawnThreshold then + spawnName = infiniteOreName + if minimumInfiniteOreAmount and amount < minimumInfiniteOreAmount then + amount = minimumInfiniteOreAmount + end +-- debug("Infinite spawn: "..location.force) + end + + if amount > 0 then + surface.create_entity{name = spawnName, + position = {location.x + resOffsetX,location.y + resOffsetY}, + force = game.forces.neutral, + amount = amount} + end + end + end + + -- special handling for homeworld - sand resource has no graphics and is simply marked as sand tiles + if rname == "sand-source" then + local tileTable = {} + for _,location in ipairs(oreLocations) do + if location.valid then + table.insert(tileTable,{ name = "sand", position = {location.x + resOffsetX,location.y + resOffsetY}}) + end + end + if #tileTable > 1 then + surface.set_tiles(tileTable) + end + end + end + + if debug_enabled then + debug("Total amount: ".._total) +--* for _,v in pairs(_a) do + --output a nice ASCII map +--* debug(table.concat(v)) +--* end + debug("Leaving spawn_resource_ore") + end + return _total +end + +--[[ entity-liquid ]]-- +local function spawn_resource_liquid(surface, rname, pos, size, richness, startingArea, restrictions) + restrictions = restrictions or '' + debug("Entering spawn_resource_liquid "..rname.." "..pos.x..","..pos.y.." "..size.." "..richness.." "..tostring(startingArea).." "..restrictions) + local _total = 0 + local max_radius = rgen:random()*CHUNK_SIZE/2 + CHUNK_SIZE + --[[ + if restrictions == 'xy' then + -- we have full 4 chunks + max_radius = floor(max_radius*1.5) + size = floor(size*1.2) + end + ]]-- + -- don't reduce amount of liquids - they are already infinite + -- size = modify_resource_size(size) + + richness = ( 0.75 + rgen:random() / 2 ) * richness * size + + resourceEntity = game.entity_prototypes[rname] + +-- if resourceEntity and resourceEntity.infinite_resource then +-- local avgRichness = richness / size +-- local sizeBefore = size +-- if avgRichness > fluidResourcesFactor * resourceEntity.minimum_resource_amount then +-- size = math.floor (richness / (fluidResourcesFactor * resourceEntity.minimum_resource_amount)) +-- end +-- debug("Updated size for "..rname.." from "..sizeBefore.." to "..size.." average "..avgRichness.." compared to "..(fluidResourcesFactor * resourceEntity.minimum_resource_amount)) +-- end + + + local total_share = 0 + local avg_share = 1/size + local angle = rgen:random()*pi*2 + local saved = 0 + while total_share < 1 do + local new_share = vary_by_percentage(avg_share, 0.25) + if new_share + total_share > 1 then + new_share = 1 - total_share + end + total_share = new_share + total_share + if new_share < avg_share/10 then + -- too small + break + end + local amount = floor(richness*new_share) + saved + + local richnessMultiplier = global_richness_mult + + if startingArea then + richnessMultiplier = starting_richness_mult + end + + --if amount >= game.entity_prototypes[rname].minimum then + if amount >= config[rname].minimum_amount then + saved = 0 + for try=1,5 do + local dist = rgen:random()*(max_radius - max_radius*0.1) + angle = angle + pi/4 + rgen:random()*pi/2 + local x, y = pos.x + cos(angle)*dist, pos.y + sin(angle)*dist + if surface.can_place_entity{name = rname, position = {x,y}} then + debug("@ "..x..","..y.." amount: "..amount.." new_share: "..new_share.." try: "..try) + amount = floor(amount * richnessMultiplier) + + if amount > 1e9 then + amount = 1e9 + end + + _total = _total + amount + + if amount > 0 then + surface.create_entity{name = rname, + position = {x,y}, + force = game.forces.neutral, + amount = amount, + direction = rgen:random(4)} + end + break + elseif not startingArea then -- we don't want to make ultra rich nodes in starting area - failing to make them will add second spawn in different location + entities = surface.find_entities_filtered{area = {{x-2.75, y-2.75}, {x+2.75, y+2.75}}, name=rname} + if entities and #entities > 0 then + _total = _total + amount + for k, ent in pairs(entities) do + ent.amount = ent.amount + floor(amount/#entities) + end + break + end + end + end + else + saved = amount + end + end + debug("Total amount: ".._total) + debug("Leaving spawn_resource_liquid") + return _total +end + +local spawnerTable = nil + +local function initSpawnerTable() + if spawnerTable == nil then + spawnerTable = {} + spawnerTable["biter-spawner"] = game.entity_prototypes["biter-spawner"] ~= nil + spawnerTable["bob-biter-spawner"] = game.entity_prototypes["bob-biter-spawner"] ~= nil + spawnerTable["spitter-spawner"] = game.entity_prototypes["spitter-spawner"] ~= nil + spawnerTable["bob-spitter-spawner"] = game.entity_prototypes["bob-spitter-spawner"] ~= nil + end +end + +local function spawn_entity(surface, ent, r_config, x, y) + if not use_RSO_biter_spawning then return end + local size=rgen:random(r_config.size.min, r_config.size.max) + + local _total = 0 + local r_distance = distance({x=0,y=0},{x=x/REGION_TILE_SIZE,y=y/REGION_TILE_SIZE}) + + local distanceMultiplier = math.min(r_distance^r_config.size_per_region_factor, 5) + if r_config.size_per_region_factor then + size = size*distanceMultiplier + end + + size = size * enemy_base_size_multiplier + + debug("Entering spawn_entity "..ent.." "..x..","..y.." "..size) + + local maxAttemptCount = 5 + local distancePerAttempt = 0.2 + + initSpawnerTable() + + for i=1,size do + for attempt = 1, maxAttemptCount do + local richness=r_config.richness*(r_distance^richness_distance_factor) + local max_d = floor(CHUNK_SIZE*(0.5 + distancePerAttempt*attempt)) + local s_x = x + rgen:random(0, floor(max_d - r_config.clear_range[1])) - max_d/2 + r_config.clear_range[1] + local s_y = y + rgen:random(0, floor(max_d - r_config.clear_range[2])) - max_d/2 + r_config.clear_range[2] + + if surface.get_tile(s_x, s_y).valid then + + remove_trees(surface, s_x, s_y, r_config.clear_range[1], r_config.clear_range[2]) + + local spawnerName = nil + + if spawner_probability_edge > 0 then + + bigSpawnerChance = rgen:random() + + if rgen:random() < spawner_probability_edge then + if ( useBobEntity and bigSpawnerChance > 0.75 ) then + spawnerName = "bob-biter-spawner" + else + spawnerName = "biter-spawner" + end + else + if ( useBobEntity and bigSpawnerChance > 0.75 ) then + spawnerName = "bob-spitter-spawner" + else + spawnerName = "spitter-spawner" + end + end + end + + if spawnerName and spawnerTable[spawnerName] then + if surface.can_place_entity{name=spawnerName, position={s_x, s_y}} then + _total = _total + richness + debug(spawnerName.." @ "..s_x..","..s_y.." placed on "..attempt.." attempt") + + surface.create_entity{name=spawnerName, position={s_x, s_y}, force=game.forces[r_config.force], amount=floor(richness)}--, direction=rgen:random(4) + -- else + -- game.players[1].print("Entity "..spawnerName.." spawn failed") + break; + else + if attempt == maxAttemptCount then + debug(spawnerName.." @ "..s_x..","..s_y.." failed to spawn") + end + end + else + game.players[1].print("Entity "..spawnerName.." doesn't exist") + end + end + end + + if r_config.sub_spawn_probability then + local sub_spawn_prob = r_config.sub_spawn_probability*math.min(r_config.sub_spawn_max_distance_factor, r_config.sub_spawn_distance_factor^r_distance) + if rgen:random() < sub_spawn_prob then + for i=1,(rgen:random(r_config.sub_spawn_size.min, r_config.sub_spawn_size.max)*distanceMultiplier) do + local allotment_max = 0 + -- build table + for k,v in pairs(r_config.sub_spawns) do + if not v.min_distance or r_distance > v.min_distance then + local allotment = v.allotment + if v.allotment_distance_factor then + allotment = allotment * (v.allotment_distance_factor^r_distance) + end + v.allotment_range ={min = allotment_max, max = allotment_max + allotment} + allotment_max = allotment_max + allotment + else + v.allotment_range = nil + end + end + local sub_type = rgen:random(0, allotment_max) + for sub_spawn,v in pairs(r_config.sub_spawns) do + if v.allotment_range and sub_type >= v.allotment_range.min and sub_type <= v.allotment_range.max then + for attempt = 1, maxAttemptCount do + local max_d = floor(CHUNK_SIZE*distancePerAttempt*attempt) + s_x = x + rgen:random(max_d) - max_d/2 + s_y = y + rgen:random(max_d) - max_d/2 + remove_trees(surface, s_x, s_y, v.clear_range[1], v.clear_range[2]) + if surface.can_place_entity{name=sub_spawn, position={s_x, s_y}} then + surface.create_entity{name=sub_spawn, position={s_x, s_y}, force=game.forces[r_config.force]}--, direction=rgen:random(4) + debug("Rolled subspawn "..sub_spawn.." @ "..s_x..","..s_x.." after "..attempt.." attempts") + break; + else + if attempt == maxAttemptCount then + debug("Rolling subspawn "..sub_spawn.." @ "..s_x..","..s_x.." failed") + end + end + end + break + end + end + end + end + end + end + debug("Total amount: ".._total) + debug("Leaving spawn_entity") +end + +--[[ EVENT/INIT METHODS ]]-- + +local function spawn_starting_resources( surface, index ) + + if global.startingAreas[index].spawned then return end + if surface.map_gen_settings.starting_area == "none" and not ignoreMapGenSettings then return end -- starting area disabled by map gen + if starting_area_size < 0.1 then return end -- skip spawning if starting area is to small + + local position = global.startingAreas[index] + + rgen = rng_for_reg_pos( position ) + local status = true + for index,v in ipairs(configIndexed) do + if v.starting then + local prob = rgen:random() -- probability that this resource is spawned + debug("starting resource probability rolled "..prob) + if v.starting.probability > 0 and prob <= v.starting.probability then + local total = 0 + local radius = 25 + local min_threshold = 0 + + if v.type == "resource-ore" then + min_threshold = v.starting.richness * rgen:random(5, 10) -- lets make sure that there is at least 10-15 times starting richness ore at start + elseif v.type == "resource-liquid" then + min_threshold = v.starting.richness * 0.5 * v.starting.size + end + + while (radius < 200) and (total < min_threshold) do + local angle = rgen:random() * pi * 2 + local dist = rgen:random() * 30 + radius * 2 + local pos = { x = floor(cos(angle) * dist) + position.x, y = floor(sin(angle) * dist) + position.y } + if v.type == "resource-ore" then + total = total + spawn_resource_ore(surface, v.name, pos, v.starting.size, v.starting.richness, true) + elseif v.type == "resource-liquid" then + total = total + spawn_resource_liquid(surface, v.name, pos, v.starting.size, v.starting.richness, true) + end + radius = radius + 10 + end + if total < min_threshold then + status = false + end + end + end + end + + global.startingAreas[index].spawned = true + --l:dump('logs/start_'..global.seed..'.log') +end + +local function modifyMinMax(value, mod) + value.min = round( value.min * mod ) + value.max = round( value.max * mod ) +end + +local function prebuild_config_data(surface) + if index_is_built then return false end + + local mapGenSettings = nil + + if not ignoreMapGenSettings then + mapGenSettings = surface.map_gen_settings + end + local autoPlaceSettings = nil + if mapGenSettings then + autoPlaceSettings = mapGenSettings.autoplace_controls + end + + configIndexed = {} + -- build additional indexed array to the associative array + for res_name, res_conf in pairs(config) do + if res_conf.valid then -- only add valid resources + res_conf.name = res_name + + local settingsForResource = nil + local isEntity = (res_conf.type == "entity") + local addResource = true + + local autoplaceName = res_name + + if res_conf.autoplace_name then + autoplaceName = res_conf.autoplace_name + end + + if autoPlaceSettings then + settingsForResource = autoPlaceSettings[autoplaceName] + end + + if settingsForResource then + local allotmentMod = nil + local sizeMod = nil + if isEntity then + allotmentMod = entityFrequencyMultiplier[settingsForResource.frequency] + sizeMod = entitySizeMultiplier[settingsForResource.size] + else + allotmentMod =frequencyAllotmentMultiplier[settingsForResource.frequency] + sizeMod = sizeMultiplier[settingsForResource.size] + end + + local richnessMod = richnessMultiplier[settingsForResource.richness] + + -- special case to modify global chance of enemy base spawns +-- if res_name == "enemy-base" and allotmentMod then +-- absolute_enemy_chance = absolute_enemy_chance * allotmentMod +-- debug("Enemy base chance modified to "..absolute_enemy_chance) +-- end + + debug(res_name .. " allotment mod " .. allotmentMod .. " size mod " .. sizeMod .. " richness mod " .. richnessMod ) + + + if allotmentMod then + if isEntity then + res_conf.absolute_probability = res_conf.absolute_probability * allotmentMod + debug("Entity chance modified to "..res_conf.absolute_probability) + else + res_conf.allotment = round( res_conf.allotment * allotmentMod ) + end + end + + if sizeMod ~= nil and sizeMod == 0 then + addResource = false + end + + if sizeMod then + modifyMinMax(res_conf.size, sizeMod) + + if res_conf.starting then + res_conf.starting.size = round( res_conf.starting.size * sizeMod ) + end + + if isEntity then + if res_conf.sub_spawn_size then + modifyMinMax(res_conf.sub_spawn_size, sizeMod) + end + modifyMinMax(res_conf.spawns_per_region, sizeMod) + end + end + + if richnessMod then + if type == "resource-ore" then + res_conf.richness = round( res_conf.richness * richnessMod ) + elseif type == "resource-liquid" then + modifyMinMax(res_conf.richness, richnessMod) + end + + if res_conf.starting then + res_conf.starting.richness = round( res_conf.starting.richness * richnessMod ) + end + end + end + + if addResource then + configIndexed[#configIndexed + 1] = res_conf + if res_conf.multi_resource and multi_resource_active then + local new_list = {} + for sub_res_name, allotment in pairs(res_conf.multi_resource) do + if config[sub_res_name] and config[sub_res_name].valid then + new_list[#new_list+1] = {name = sub_res_name, allotment = allotment} + end + end + table.sort(new_list, function(a, b) return a.name < b.name end) + res_conf.multi_resource = new_list + else + res_conf.multi_resource_chance = nil + end + end + end + end + + table.sort(configIndexed, function(a, b) return a.name < b.name end) + + local pr=0 + for index,v in pairs(config) do + if v.along_resource_probability then + v.along_resource_probability_range={min=pr, max=pr+v.along_resource_probability} + pr=pr+v.along_resource_probability + end + if v.allotment and v.allotment > 0 then + v.allotment_range={min=max_allotment, max=max_allotment+v.allotment} + max_allotment=max_allotment+v.allotment + end + end + + if mapGenSettings and mapGenSettings.starting_area then + local multiplier = startingAreaMultiplier[mapGenSettings.starting_area] + if multiplier ~= nil then + starting_area_size = starting_area_size * multiplier + debug("Starting area "..starting_area_size) + end + end + + index_is_built = true +end + +-- set up the probabilty segments from which to roll between for biter and spitter spawners +local function calculate_spawner_ratio() + if (biter_ratio_segment ~= 0 and spitter_ratio_segment ~= 0) and biter_ratio_segment >= 0 and spitter_ratio_segment >= 0 then + spawner_probability_edge=biter_ratio_segment/(biter_ratio_segment+spitter_ratio_segment) -- normalize to between 0 and 1 + end +end + +local function checkConfigForInvalidResources() + --make sure that every resource in the config is actually available. + --call this function, before the auxiliary config is prebuilt! + if index_is_built then return end + + local prototypes = game.entity_prototypes + + for resourceName, resourceConfig in pairs(config) do + if prototypes[resourceName] or resourceConfig.type == "entity" then + resourceConfig.valid = true + else + -- resource was in config, but it doesn't exist in game files anymore - mark it invalid + resourceConfig.valid = false + + table.insert(invalidResources, "Resource not available: " .. resourceName) + debug("Resource not available: " .. resourceName) + end + + if resourceConfig.valid and resourceConfig.type ~= "entity" then + if prototypes[resourceName].autoplace_specification == nil then + resourceConfig.valid = false + debug("Resource "..resourceName.." invalidated - autoplace not present") + end + end + end +end + +local function checkForBobEnemies() + if game.entity_prototypes["bob-biter-spawner"] and game.entity_prototypes["bob-spitter-spawner"] then + useBobEntity = true + end +end + +local function roll_region(c_x, c_y) + --in what region is this chunk? + local r_x=floor(c_x/REGION_TILE_SIZE) + local r_y=floor(c_y/REGION_TILE_SIZE) + local r_data = nil + --don't spawn stuff in starting area + if isInStartingArea( c_x/REGION_TILE_SIZE, c_y/REGION_TILE_SIZE ) then + return false + end + + if global.regions[r_x] and global.regions[r_x][r_y] then + r_data = global.regions[r_x][r_y] + else + --if this chunk is the first in its region to be generated + if not global.regions[r_x] then global.regions[r_x] = {} end + global.regions[r_x][r_y]={} + r_data = global.regions[r_x][r_y] + rgen = rng_for_reg_pos{x=r_x,y=r_y} + + local rollCount = math.ceil(#configIndexed / 10) - 1 -- 0 based counter is more convenient here + rollCount = math.min(rollCount, 3) + + for rollNumber = 0,rollCount do + + local resourceChance = absolute_resource_chance - rollNumber * 0.1 + --absolute chance to spawn resource + local abct = rgen:random() + debug("Rolling resource "..abct.." against "..resourceChance.." roll "..rollNumber) + if abct <= resourceChance then + local res_type=rgen:random(1, max_allotment) + for index,v in ipairs(configIndexed) do + if v.allotment_range and ((res_type >= v.allotment_range.min) and (res_type <= v.allotment_range.max)) then + debug("Rolled primary resource "..v.name.." with res_type="..res_type.." @ "..r_x..","..r_y) + local num_spawns=rgen:random(v.spawns_per_region.min, v.spawns_per_region.max) + local last_spawn_coords = {} + local along_ + for i=1,num_spawns do + local c_x, c_y = find_random_chunk(r_x, r_y) + if not r_data[c_x] then r_data[c_x] = {} end + if not r_data[c_x][c_y] then r_data[c_x][c_y] = {} end + local c_data = r_data[c_x][c_y] + c_data[#c_data+1]={v.name, rollNumber} + last_spawn_coords[#last_spawn_coords+1] = {c_x, c_y} + debug("Rolled primary chunk "..v.name.." @ "..c_x.."."..c_y.." reg: "..r_x..","..r_y) + -- Along resource spawn, only once + if i == 1 then + local am_roll = rgen:random() + for index,vv in ipairs(configIndexed) do + if vv.along_resource_probability_range and am_roll >= vv.along_resource_probability_range.min and am_roll <= vv.along_resource_probability_range.max then + c_data = r_data[c_x][c_y] + c_data[#c_data+1]={vv.name, rollNumber} + debug("Rolled along "..vv.name.." @ "..c_x.."."..c_y.." reg: "..r_x..","..r_y) + end + end + end + end + -- roll multiple resources in same region + local deep=0 + while v.multi_resource_chance and rgen:random() <= v.multi_resource_chance*(multi_resource_chance_diminish^deep) do + deep = deep + 1 + local max_allotment = 0 + for index,sub_res in pairs(v.multi_resource) do max_allotment=max_allotment+sub_res.allotment end + + local res_type=rgen:random(1, max_allotment) + local min=0 + for _, sub_res in pairs(v.multi_resource) do + if (res_type >= min) and (res_type <= sub_res.allotment + min) then + local last_coords = last_spawn_coords[rgen:random(1, #last_spawn_coords)] + local c_x, c_y = find_random_neighbour_chunk(last_coords[1], last_coords[2]) -- in same as primary resource chunk + if not r_data[c_x] then r_data[c_x] = {} end + if not r_data[c_x][c_y] then r_data[c_x][c_y] = {} end + local c_data = r_data[c_x][c_y] + c_data[#c_data+1]={sub_res.name, deep} + debug("Rolled multiple "..sub_res.name..":"..deep.." with res_type="..res_type.." @ "..c_x.."."..c_y.." reg: "..r_x.."."..r_y) + break + else + min = min + sub_res.allotment + end + end + end + break + end + end + + end + end + -- roll for absolute_probability - this rolls the enemies + + for index,v in ipairs(configIndexed) do + if v.absolute_probability then + local prob_factor = 1 + if v.probability_distance_factor then + prob_factor = math.min(v.max_probability_distance_factor, v.probability_distance_factor^distance({x=0,y=0},{x=r_x,y=r_y})) + end + local abs_roll = rgen:random() + if abs_roll 0 then debug("Destroyed - ".._count) end +end + +local function prepareEntityList() + local entityList = {} + + for _,v in pairs(configIndexed) do + entityList[v.name] = 1 + local infiniteOreName = "infinite-".. v.name + + if game.entity_prototypes[infiniteOreName] then + entityList[infiniteOreName] = 1 + end + + if v.sub_spawns then + for ent,vv in pairs(v.sub_spawns) do + entityList[ent] = 1 + end + end + end + + entityList["biter-spawner"] = 1 + entityList["spitter-spawner"] = 1 + + if useBobEntity then + entityList["bob-biter-spawner"] = 1 + entityList["bob-spitter-spawner"] = 1 + end + + return entityList +end + +local function regenerate_everything(surface, clearOnly) + + global.regions = {} + + local entityList = prepareEntityList() + + local chunkList = {} + + for chunk in surface.get_chunks() do + table.insert( chunkList, { x = chunk.x,y = chunk.y }) + end + + for idx, pos in pairs( chunkList ) do +-- game.players[1].print("x: " .. pos.x .. ", y: " .. pos.y) + + local chunkX = pos.x * CHUNK_SIZE + local chunkY = pos.y * CHUNK_SIZE + + if not isInStartingArea( chunkX / REGION_TILE_SIZE, chunkY / REGION_TILE_SIZE ) then + + clear_chunk(surface, chunkX, chunkY, entityList) + + if not clearOnly then + roll_region(chunkX, chunkY) + roll_chunk(surface, chunkX, chunkY) + + if useStraightWorldMod then + straightWorld(surface, {x = chunkX, y = chunkY}, {x = chunkX + CHUNK_SIZE, y = chunkY + CHUNK_SIZE}) + end + end + end + end + + --l:dump("logs/"..global.seed..'regenerated.log') + game.players[1].print('Done') +end + +local function clearStartingArea( surface, pos ) + + local startingAreaTilesSize = math.ceil( starting_area_size * REGION_TILE_SIZE ) + + local chunkPosX = math.floor( pos.x/CHUNK_SIZE ) * CHUNK_SIZE + local chunkPosY = math.floor( pos.y/CHUNK_SIZE ) * CHUNK_SIZE + local entityList = prepareEntityList() + + for posX = chunkPosX - startingAreaTilesSize, chunkPosX + startingAreaTilesSize, CHUNK_SIZE do + for posY = chunkPosY - startingAreaTilesSize, chunkPosY + startingAreaTilesSize, CHUNK_SIZE do + clear_chunk(surface, posX, posY, entityList) + end + end +end + +local function extendRect(leftTop, bottomRight) + leftTop.x = leftTop.x - CHUNK_SIZE / 2 + leftTop.y = leftTop.y - CHUNK_SIZE / 2 + bottomRight.x = bottomRight.x + CHUNK_SIZE + bottomRight.x = bottomRight.x + CHUNK_SIZE + + return leftTop, bottomRight +end + +local function printResourceProbability(player) + -- prints the probability of each resource - how likely it is to be spawned in percent + -- this ignores the multi resource chance + player.print("Max allotment"..string.format("%.1f",max_allotment)) + debug("Max allotment"..string.format("%.1f",max_allotment)) + local sanityCheckAllotment = 0 + for index,v in ipairs(configIndexed) do + if v.type ~= "entity" then -- ignore enemies - they don't have allotment set + if v.allotment then + local resProbability = (v.allotment/max_allotment) * 100 + sanityCheckAllotment = sanityCheckAllotment + v.allotment + player.print("Resource: "..v.name.." Prob: "..string.format("%.1f",resProbability)) + debug("Resource: "..v.name.." Prob: "..string.format("%.1f",resProbability)) + else + player.print("Resource: "..v.name.." Allotment not set") + debug("Resource: "..v.name.." Allotment not set") + end + end + end + + player.print("SanityCheck Allotment: "..string.format("%.1f", sanityCheckAllotment)) + debug("SanityCheck Allotment: "..string.format("%.1f", sanityCheckAllotment)) +end + +local function IsIgnoreResource(ResourcePrototype) + if string.find( ResourcePrototype.name, "underground-" ) ~= nil then + return true + end + if string.find( ResourcePrototype.name, "infinite-" ) ~= nil then + return true + end + if ResourcePrototype.autoplace_specification == nil then + return true + end + return false +end + +local function checkForUnusedResources(player) + -- find all resources and check if we have it in our config + -- if not, tell the user that this resource won't be spawned (with RSO) + for prototypeName, prototype in pairs(game.entity_prototypes) do + if prototype.type == "resource" then + if not config[prototypeName] then + if IsIgnoreResource(prototype) then -- ignore resources which are not autoplace + debug("Resource not configured but ignored (non-autoplace): "..prototypeName) + else + player.print("The resource "..prototypeName.." is not configured in RSO. It won't be spawned!") + debug("Resource not configured: "..prototypeName) + end + else + -- these are the configured ones + if IsIgnoreResource(prototype) then + debug("Configured resource (but it is in ignore list - will be used!): " .. prototypeName) + else + debug("Configured resource: " .. prototypeName) + end + end + end + end +end + +local function printInvalidResources(player) + -- prints all invalid resources which were found when the config was processed. + for _, message in pairs(invalidResources) do + player.print(message) + end +end + +local function init() + if not initDone then + + local surface = game.surfaces['nauvis'] + + if not global.regions then + global.regions = {} + end + + if not config then + config = loadResourceConfig() + checkConfigForInvalidResources() + prebuild_config_data(surface) + end + + global.seed = surface.map_gen_settings.seed + + if not global.startingAreas then + global.startingAreas = {} + table.insert( global.startingAreas, { x = 0, y = 0, spawned = false } ) + + if global.start_resources_spawned then + global.startingAreas[1].spawned = true + end + end + + calculate_spawner_ratio() + spawn_starting_resources(surface, 1 ) + + checkForBobEnemies() + + initDone = true + end + + script.on_event(defines.events.on_tick, nil) +end + +local function delayedInit() + script.on_event(defines.events.on_tick, init) +end + +--script.on_init(delayedInit) - no longer required +script.on_load(delayedInit) + +script.on_event(defines.events.on_chunk_generated, function(event) + + --changes by xiaoHong - ignore surfaces interface - 11/29/2015 + if global.ignoreSurfaceNames and global.ignoreSurfaceNames[event.surface.name] then + return + end + + local c_x = event.area.left_top.x + local c_y = event.area.left_top.y + + init() + + roll_region(c_x, c_y) + roll_chunk(event.surface, c_x, c_y) + + + if useStraightWorldMod then + straightWorld(event.surface, event.area.left_top, event.area.right_bottom) + end +end) + +script.on_event(defines.events.on_player_created, function(event) + + init() + local player = game.players[event.player_index] + + checkForUnusedResources(player) + printInvalidResources(player) + + if debug_enabled then + + printResourceProbability(player) + + if useBobEntity then + player.print("RSO: BobEnemies found") + end + + if debug_items_enabled then + player.character.insert{name = "coal", count = 1000} + player.character.insert{name = "raw-wood", count = 100} + player.character.insert{name = "car", count = 1} + player.character.insert{name = "car", count = 1} + player.character.insert{name = "car", count = 1} + + if game.item_prototypes["resource-monitor"] then + player.character.insert{name = "resource-monitor", count = 1} + end + end + end + + l:dump() +end) + +remote.add_interface("RSO", { + -- remote.call("RSO", "regenerate", true/false) + regenerate = function(new_seed) + if new_seed then + global.seed = math.random(0x80000000) + end + + local surface = game.surfaces['nauvis'] + init() + regenerate_everything(surface) + end, + + clear = function() + local surface = game.surfaces['nauvis'] + init() + regenerate_everything(surface, true) + end, + + --changes by xiaoHong - ignore surfaces interface - 11/29/2015 + -- remote.call("RSO", "ignoreSurface", "name-of-surface") + ignoreSurface = function(surfaceName) + if type(surfaceName) ~= "string" then + game.players[1].print("RSO ignoreSurface interface: surfaceName should be a string") + end + if debug_enabled then + game.players[1].print("RSO ignoring surface " .. surfaceName .. " for generation") + end + global.ignoreSurfaceNames = global.ignoreSurfaceNames or {} + global.ignoreSurfaceNames[surfaceName] = true + end, + + addStartLocation = function(pos, player) + local outputPlayer = nil + + if game.player then + outputPlayer = game.player + end + + if player then + outputPlayer = player + end + + if not ( pos and pos.x and pos.y ) then + if outputPlayer then + outputPlayer.print("Invalid parameters for new start location - please use following format: {x=0, y=0}") + end + return + end + + local radius = starting_area_size * REGION_TILE_SIZE + + for idx, startingPos in pairs( global.startingAreas ) do + if distance( startingPos, pos ) < 2 * radius then + if outputPlayer then + outputPlayer.print("New starting area creation failed - to close to starting area at "..startingPos.x..","..startingPos.y) + end + return + end + end + + local surface = game.surfaces['nauvis'] + + if outputPlayer then + surface = outputPlayer.surface + outputPlayer.print("Creating new starting area at "..pos.x..","..pos.y) + end + + clearStartingArea( surface, pos ) + + pos.spawned = false; + + table.insert( global.startingAreas, pos ) + + spawn_starting_resources( surface, #global.startingAreas ) + +-- if outputPlayer then +-- outputPlayer.force.chart(outputPlayer.surface, {{x = pos.x - radius, y = pos.y - radius}, {x = pos.x + radius, y = pos.y + radius}}) +-- end + end, + + saveLog = function() + l:dump() + end +}) + + diff --git a/rso-mod_2.1.0/data-updates.lua b/rso-mod_2.2.2/data-updates.lua similarity index 96% rename from rso-mod_2.1.0/data-updates.lua rename to rso-mod_2.2.2/data-updates.lua index e14e053..d930fec 100644 --- a/rso-mod_2.1.0/data-updates.lua +++ b/rso-mod_2.2.2/data-updates.lua @@ -1,27 +1,27 @@ -require("config") -require("prototypes.prototype_utils") - -for _, resource in pairs(data.raw.resource) do - resetRichness(resource) -end - -if not use_vanilla_biter_spawning then - - for _, spawner in pairs(data.raw["unit-spawner"]) do - removePeaks(spawner) - end - - for _, turret in pairs(data.raw.turret) do - if turret.subgroup == "enemies" then - removePeaks(turret) - end - end -end - -data.raw["map-settings"]["map-settings"].enemy_expansion.enabled = not disableEnemyExpansion - -if debug_items_enabled then - data.raw["car"]["car"].max_health = 0x8000000 - data.raw["ammo"]["basic-bullet-magazine"].magazine_size = 1000 - data.raw["ammo"]["basic-bullet-magazine"].ammo_type.action[1].action_delivery[1].target_effects[2].damage.amount = 5000 +require("config") +require("prototypes.prototype_utils") + +for _, resource in pairs(data.raw.resource) do + resetRichness(resource) +end + +if not use_vanilla_biter_spawning then + + for _, spawner in pairs(data.raw["unit-spawner"]) do + removePeaks(spawner) + end + + for _, turret in pairs(data.raw.turret) do + if turret.subgroup == "enemies" then + removePeaks(turret) + end + end +end + +data.raw["map-settings"]["map-settings"].enemy_expansion.enabled = not disableEnemyExpansion + +if debug_items_enabled then + data.raw["car"]["car"].max_health = 0x8000000 + data.raw["ammo"]["basic-bullet-magazine"].magazine_size = 1000 + data.raw["ammo"]["basic-bullet-magazine"].ammo_type.action[1].action_delivery[1].target_effects[2].damage.amount = 5000 end \ No newline at end of file diff --git a/rso-mod_2.1.0/info.json b/rso-mod_2.2.2/info.json similarity index 92% rename from rso-mod_2.1.0/info.json rename to rso-mod_2.2.2/info.json index c50297b..2d2bbf8 100644 --- a/rso-mod_2.1.0/info.json +++ b/rso-mod_2.2.2/info.json @@ -1,12 +1,12 @@ - -{ - "name": "rso-mod", - "version": "2.1.0", - "factorio_version": "0.14", - "title": "Resource Spawner Overhaul", - "author": "Dark, orzelek", - "contact": "Message me on forums or use discussion board on mod portal", - "homepage": "https://forums.factorio.com/viewforum.php?f=79", - "description": "Overhauls resource spawning system.", - "dependencies": ["? MAIN-DyTech-Machine", "? CORE-DyTech-Core", "? bobenemies>=0.13.1", "? bobores", "? 5dim_ores"] + +{ + "name": "rso-mod", + "version": "2.2.2", + "factorio_version": "0.14", + "title": "Resource Spawner Overhaul", + "author": "Dark, orzelek", + "contact": "Message me on forums or use discussion board on mod portal", + "homepage": "https://forums.factorio.com/viewforum.php?f=79", + "description": "Overhauls resource spawning system.", + "dependencies": ["? MAIN-DyTech-Machine", "? CORE-DyTech-Core", "? bobenemies>=0.13.1", "? bobores", "? 5dim_ores"] } \ No newline at end of file diff --git a/rso-mod_2.1.0/libs/drand.lua b/rso-mod_2.2.2/libs/drand.lua similarity index 95% rename from rso-mod_2.1.0/libs/drand.lua rename to rso-mod_2.2.2/libs/drand.lua index 099eea6..efd8b0f 100644 --- a/rso-mod_2.1.0/libs/drand.lua +++ b/rso-mod_2.2.2/libs/drand.lua @@ -1,269 +1,269 @@ ---[[------------------------------------ -RandomLua v0.3.1 -Pure Lua Pseudo-Random Numbers Generator -Under the MIT license. -copyright(c) 2011 linux-man ---]]------------------------------------ - -local _M = {} -local mod = math.fmod -local floor = math.floor -local abs = math.abs - -local function normalize(n) --keep numbers at (positive) 32 bits - return n % 0x80000000 -end - -local function bit_and(a, b) - local r = 0 - local m = 0 - for m = 0, 31 do - if (a % 2 == 1) and (b % 2 == 1) then r = r + 2^m end - if a % 2 ~= 0 then a = a - 1 end - if b % 2 ~= 0 then b = b - 1 end - a = a / 2 b = b / 2 - end - return normalize(r) -end - -local function bit_or(a, b) - local r = 0 - local m = 0 - for m = 0, 31 do - if (a % 2 == 1) or (b % 2 == 1) then r = r + 2^m end - if a % 2 ~= 0 then a = a - 1 end - if b % 2 ~= 0 then b = b - 1 end - a = a / 2 b = b / 2 - end - return normalize(r) -end - -local function bit_xor(a, b) - local r = 0 - local m = 0 - for m = 0, 31 do - if a % 2 ~= b % 2 then r = r + 2^m end - if a % 2 ~= 0 then a = a - 1 end - if b % 2 ~= 0 then b = b - 1 end - a = a / 2 b = b / 2 - end - return normalize(r) -end - -local function seed() - --return normalize(tonumber(tostring(os.time()):reverse())) - return normalize(os.time()) -end - ---Mersenne twister -mersenne_twister = {} -mersenne_twister.__index = mersenne_twister - -function mersenne_twister:randomseed(s) - if not s then s = seed() end - self.mt[0] = normalize(s) - for i = 1, 623 do - self.mt[i] = normalize(0x6c078965 * bit_xor(self.mt[i-1], floor(self.mt[i-1] / 0x40000000)) + i) - end -end - -function mersenne_twister:random(a, b) - local y - if self.index == 0 then - for i = 0, 623 do - --y = bit_or(floor(self.mt[i] / 0x80000000) * 0x80000000, self.mt[(i + 1) % 624] % 0x80000000) - y = self.mt[(i + 1) % 624] % 0x80000000 - self.mt[i] = bit_xor(self.mt[(i + 397) % 624], floor(y / 2)) - if y % 2 ~= 0 then self.mt[i] = bit_xor(self.mt[i], 0x9908b0df) end - end - end - y = self.mt[self.index] - y = bit_xor(y, floor(y / 0x800)) - y = bit_xor(y, bit_and(normalize(y * 0x80), 0x9d2c5680)) - y = bit_xor(y, bit_and(normalize(y * 0x8000), 0xefc60000)) - y = bit_xor(y, floor(y / 0x40000)) - self.index = (self.index + 1) % 624 - if not a then return y / 0x80000000 - elseif not b then - if a == 0 then return y - else return 1 + (y % a) - end - else - return a + (y % (b - a + 1)) - end -end - -function _M.twister(s) - local temp = {} - setmetatable(temp, mersenne_twister) - temp.mt = {} - temp.index = 0 - temp:randomseed(s) - return temp -end - ---Linear Congruential Generator -linear_congruential_generator = {} -linear_congruential_generator.__index = linear_congruential_generator - -function linear_congruential_generator:random(a, b) - local y = (self.a * self.x + self.c) % self.m - self.x = y - if not a then return y / 0x10000 - elseif not b then - if a == 0 then return y - else return 1 + (y % a) end - else - return a + (y % (b - a + 1)) - end -end - -function linear_congruential_generator:randomseed(s) - if not s then s = seed() end - self.x = normalize(s) -end - -function _M.lcg(s, r) - local temp = {} - setmetatable(temp, linear_congruential_generator) - temp.a, temp.c, temp.m = 1103515245, 12345, 0x10000 --from Ansi C - if r then - if r == 'nr' then temp.a, temp.c, temp.m = 1664525, 1013904223, 0x10000 --from Numerical Recipes. - elseif r == 'mvc' then temp.a, temp.c, temp.m = 214013, 2531011, 0x10000 end--from MVC - end - temp:randomseed(s) - return temp -end - --- Multiply-with-carry -multiply_with_carry = {} -multiply_with_carry.__index = multiply_with_carry - -function multiply_with_carry:random(a, b) - local m = self.m - local t = self.a * self.x + self.c - local y = t % m - self.x = y - self.c = floor(t / m) - if not a then return y / 0x10000 - elseif not b then - if a == 0 then return y - else return 1 + (y % a) end - else - local diff = 0 - if a == b then return a end - if a < 0 then - diff = abs(a) - a = a + diff - b = b + diff - end - return a + (y % (b - a + 1)) - diff - end -end - -function multiply_with_carry:randomseed(s) - if not s then s = seed() end - self.c = self.ic - self.x = normalize(s) -end - -function _M.mwc(s, r) - local temp = {} - setmetatable(temp, multiply_with_carry) - temp.a, temp.c, temp.m = 1103515245, 12345, 0x10000 --from Ansi C - if r then - if r == 'nr' then temp.a, temp.c, temp.m = 1664525, 1013904223, 0x10000 --from Numerical Recipes. - elseif r == 'mvc' then temp.a, temp.c, temp.m = 214013, 2531011, 0x10000 end--from MVC - end - temp.ic = temp.c - temp:randomseed(s) - return temp -end - -function _M.mwvc(s) - return _M.mwc(s, 'mvc') -end - -local B = 0x10000 - --- rough adaptation of Knuth float generator -function _M.krandom( seedobj, fVal1, fVal2 ) - local ma = seedobj.ma - local seed = seedobj.seed - local mj, mk - if seed < 0 or not ma then - ma = {} - seedobj.ma = ma - mj = normalize( seed ) - mj = mod( mj, B ) - ma[55] = mj - mk = 1 - for i = 1, 54 do - local ii = mod( 21 * i, 55 ) - ma[ii] = mk - mk = mj - mk - if mk < 0 then mk = mk + B end - mj = ma[ii] - end - for k = 1, 4 do - for i = 1, 55 do - ma[i] = ma[i] - ma[ 1 + mod( i + 30, 55) ] - if ma[i] < 0 then ma[i] = ma[i] + B end - end - end - seedobj.inext = 0 - seedobj.inextp = 31 - seedobj.seed = 1 - end -- if - local inext = seedobj.inext - local inextp = seedobj.inextp - inext = inext + 1 - if inext == 56 then inext = 1 end - seedobj.inext = inext - inextp = inextp + 1 - if inextp == 56 then inextp = 1 end - seedobj.inextp = inextp - mj = ma[ inext ] - ma[ inextp ] - if mj < 0 then mj = mj + B end - ma[ inext ] = mj - local temp_rand = mj / B - if fVal2 then - return floor( fVal1 + 0.5 + temp_rand * ( fVal2 - fVal1 ) ) - elseif fVal1 then - return floor( temp_rand * fVal1 ) + 1 - else - return temp_rand - end -end - --- Sys rand -sys_rand = {} -sys_rand.__index = sys_rand -function sys_rand:random(a, b) - local diff = 0 - if a and b and a == b then math.random(); return a end - if a and b then - if a < 0 then - diff = abs(a) - a = a + diff - b = b + diff - end - return math.random(a, b) - diff - end - if a and a == 0 then return floor(math.random() * 0x10000) end - if a then return math.random(a) end - return math.random() -end - -function sys_rand:randomseed(s) - -- ignore - return -end - -function _M.sys_rand(s) - local temp = {} - setmetatable(temp, sys_rand) - return temp -end - +--[[------------------------------------ +RandomLua v0.3.1 +Pure Lua Pseudo-Random Numbers Generator +Under the MIT license. +copyright(c) 2011 linux-man +--]]------------------------------------ + +local _M = {} +local mod = math.fmod +local floor = math.floor +local abs = math.abs + +local function normalize(n) --keep numbers at (positive) 32 bits + return n % 0x80000000 +end + +local function bit_and(a, b) + local r = 0 + local m = 0 + for m = 0, 31 do + if (a % 2 == 1) and (b % 2 == 1) then r = r + 2^m end + if a % 2 ~= 0 then a = a - 1 end + if b % 2 ~= 0 then b = b - 1 end + a = a / 2 b = b / 2 + end + return normalize(r) +end + +local function bit_or(a, b) + local r = 0 + local m = 0 + for m = 0, 31 do + if (a % 2 == 1) or (b % 2 == 1) then r = r + 2^m end + if a % 2 ~= 0 then a = a - 1 end + if b % 2 ~= 0 then b = b - 1 end + a = a / 2 b = b / 2 + end + return normalize(r) +end + +local function bit_xor(a, b) + local r = 0 + local m = 0 + for m = 0, 31 do + if a % 2 ~= b % 2 then r = r + 2^m end + if a % 2 ~= 0 then a = a - 1 end + if b % 2 ~= 0 then b = b - 1 end + a = a / 2 b = b / 2 + end + return normalize(r) +end + +local function seed() + --return normalize(tonumber(tostring(os.time()):reverse())) + return normalize(os.time()) +end + +--Mersenne twister +mersenne_twister = {} +mersenne_twister.__index = mersenne_twister + +function mersenne_twister:randomseed(s) + if not s then s = seed() end + self.mt[0] = normalize(s) + for i = 1, 623 do + self.mt[i] = normalize(0x6c078965 * bit_xor(self.mt[i-1], floor(self.mt[i-1] / 0x40000000)) + i) + end +end + +function mersenne_twister:random(a, b) + local y + if self.index == 0 then + for i = 0, 623 do + --y = bit_or(floor(self.mt[i] / 0x80000000) * 0x80000000, self.mt[(i + 1) % 624] % 0x80000000) + y = self.mt[(i + 1) % 624] % 0x80000000 + self.mt[i] = bit_xor(self.mt[(i + 397) % 624], floor(y / 2)) + if y % 2 ~= 0 then self.mt[i] = bit_xor(self.mt[i], 0x9908b0df) end + end + end + y = self.mt[self.index] + y = bit_xor(y, floor(y / 0x800)) + y = bit_xor(y, bit_and(normalize(y * 0x80), 0x9d2c5680)) + y = bit_xor(y, bit_and(normalize(y * 0x8000), 0xefc60000)) + y = bit_xor(y, floor(y / 0x40000)) + self.index = (self.index + 1) % 624 + if not a then return y / 0x80000000 + elseif not b then + if a == 0 then return y + else return 1 + (y % a) + end + else + return a + (y % (b - a + 1)) + end +end + +function _M.twister(s) + local temp = {} + setmetatable(temp, mersenne_twister) + temp.mt = {} + temp.index = 0 + temp:randomseed(s) + return temp +end + +--Linear Congruential Generator +linear_congruential_generator = {} +linear_congruential_generator.__index = linear_congruential_generator + +function linear_congruential_generator:random(a, b) + local y = (self.a * self.x + self.c) % self.m + self.x = y + if not a then return y / 0x10000 + elseif not b then + if a == 0 then return y + else return 1 + (y % a) end + else + return a + (y % (b - a + 1)) + end +end + +function linear_congruential_generator:randomseed(s) + if not s then s = seed() end + self.x = normalize(s) +end + +function _M.lcg(s, r) + local temp = {} + setmetatable(temp, linear_congruential_generator) + temp.a, temp.c, temp.m = 1103515245, 12345, 0x10000 --from Ansi C + if r then + if r == 'nr' then temp.a, temp.c, temp.m = 1664525, 1013904223, 0x10000 --from Numerical Recipes. + elseif r == 'mvc' then temp.a, temp.c, temp.m = 214013, 2531011, 0x10000 end--from MVC + end + temp:randomseed(s) + return temp +end + +-- Multiply-with-carry +multiply_with_carry = {} +multiply_with_carry.__index = multiply_with_carry + +function multiply_with_carry:random(a, b) + local m = self.m + local t = self.a * self.x + self.c + local y = t % m + self.x = y + self.c = floor(t / m) + if not a then return y / 0x10000 + elseif not b then + if a == 0 then return y + else return 1 + (y % a) end + else + local diff = 0 + if a == b then return a end + if a < 0 then + diff = abs(a) + a = a + diff + b = b + diff + end + return a + (y % (b - a + 1)) - diff + end +end + +function multiply_with_carry:randomseed(s) + if not s then s = seed() end + self.c = self.ic + self.x = normalize(s) +end + +function _M.mwc(s, r) + local temp = {} + setmetatable(temp, multiply_with_carry) + temp.a, temp.c, temp.m = 1103515245, 12345, 0x10000 --from Ansi C + if r then + if r == 'nr' then temp.a, temp.c, temp.m = 1664525, 1013904223, 0x10000 --from Numerical Recipes. + elseif r == 'mvc' then temp.a, temp.c, temp.m = 214013, 2531011, 0x10000 end--from MVC + end + temp.ic = temp.c + temp:randomseed(s) + return temp +end + +function _M.mwvc(s) + return _M.mwc(s, 'mvc') +end + +local B = 0x10000 + +-- rough adaptation of Knuth float generator +function _M.krandom( seedobj, fVal1, fVal2 ) + local ma = seedobj.ma + local seed = seedobj.seed + local mj, mk + if seed < 0 or not ma then + ma = {} + seedobj.ma = ma + mj = normalize( seed ) + mj = mod( mj, B ) + ma[55] = mj + mk = 1 + for i = 1, 54 do + local ii = mod( 21 * i, 55 ) + ma[ii] = mk + mk = mj - mk + if mk < 0 then mk = mk + B end + mj = ma[ii] + end + for k = 1, 4 do + for i = 1, 55 do + ma[i] = ma[i] - ma[ 1 + mod( i + 30, 55) ] + if ma[i] < 0 then ma[i] = ma[i] + B end + end + end + seedobj.inext = 0 + seedobj.inextp = 31 + seedobj.seed = 1 + end -- if + local inext = seedobj.inext + local inextp = seedobj.inextp + inext = inext + 1 + if inext == 56 then inext = 1 end + seedobj.inext = inext + inextp = inextp + 1 + if inextp == 56 then inextp = 1 end + seedobj.inextp = inextp + mj = ma[ inext ] - ma[ inextp ] + if mj < 0 then mj = mj + B end + ma[ inext ] = mj + local temp_rand = mj / B + if fVal2 then + return floor( fVal1 + 0.5 + temp_rand * ( fVal2 - fVal1 ) ) + elseif fVal1 then + return floor( temp_rand * fVal1 ) + 1 + else + return temp_rand + end +end + +-- Sys rand +sys_rand = {} +sys_rand.__index = sys_rand +function sys_rand:random(a, b) + local diff = 0 + if a and b and a == b then math.random(); return a end + if a and b then + if a < 0 then + diff = abs(a) + a = a + diff + b = b + diff + end + return math.random(a, b) - diff + end + if a and a == 0 then return floor(math.random() * 0x10000) end + if a then return math.random(a) end + return math.random() +end + +function sys_rand:randomseed(s) + -- ignore + return +end + +function _M.sys_rand(s) + local temp = {} + setmetatable(temp, sys_rand) + return temp +end + return _M \ No newline at end of file diff --git a/rso-mod_2.1.0/libs/logger.lua b/rso-mod_2.2.2/libs/logger.lua similarity index 96% rename from rso-mod_2.1.0/libs/logger.lua rename to rso-mod_2.2.2/libs/logger.lua index 1bbbdb3..5a0a08a 100644 --- a/rso-mod_2.1.0/libs/logger.lua +++ b/rso-mod_2.2.2/libs/logger.lua @@ -1,29 +1,29 @@ ---[[-- -Simple logger by Dark ---]]-- - -local _M = {} -local Logger = {prefix='log_'} -Logger.__index = Logger - -function Logger:log(str) - local run_time_s = math.floor(game.tick/60) - local run_time_minutes = math.floor(run_time_s/60) - local run_time_hours = math.floor(run_time_minutes/60) - self.log_buffer[#self.log_buffer + 1] = string.format("%02d:%02d:%02d: %s\r\n", run_time_hours, run_time_minutes % 60, run_time_s % 60, str) -end - -function Logger:dump(file_name) - if #self.log_buffer == 0 then return false end - file_name = file_name or "logs/"..self.prefix..game.tick..".log" - game.write_file(file_name, table.concat(self.log_buffer)) - self.log_buffer = {} - return true -end - - -function _M.new_logger() - local temp = {log_buffer = {}} - return setmetatable(temp, Logger) -end +--[[-- +Simple logger by Dark +--]]-- + +local _M = {} +local Logger = {prefix='log_'} +Logger.__index = Logger + +function Logger:log(str) + local run_time_s = math.floor(game.tick/60) + local run_time_minutes = math.floor(run_time_s/60) + local run_time_hours = math.floor(run_time_minutes/60) + self.log_buffer[#self.log_buffer + 1] = string.format("%02d:%02d:%02d: %s\r\n", run_time_hours, run_time_minutes % 60, run_time_s % 60, str) +end + +function Logger:dump(file_name) + if #self.log_buffer == 0 then return false end + file_name = file_name or "logs/"..self.prefix..game.tick..".log" + game.write_file(file_name, table.concat(self.log_buffer)) + self.log_buffer = {} + return true +end + + +function _M.new_logger() + local temp = {log_buffer = {}} + return setmetatable(temp, Logger) +end return _M \ No newline at end of file diff --git a/rso-mod_2.1.0/libs/metaball.lua b/rso-mod_2.2.2/libs/metaball.lua similarity index 97% rename from rso-mod_2.1.0/libs/metaball.lua rename to rso-mod_2.2.2/libs/metaball.lua index ebcd979..58ef918 100644 --- a/rso-mod_2.1.0/libs/metaball.lua +++ b/rso-mod_2.2.2/libs/metaball.lua @@ -1,104 +1,104 @@ ---[[-- -Metaball implementation for LUA by Dark -For bruteforce usage, nor efficient nor fast - -Force scales to from inf to 1 at R ---]]-- -local _M = {} -local sqrt = math.sqrt -local cos = math.cos -local sin = math.sin -local abs = math.abs -local zero_value = 0x80000000 - ---Classic ball -local MetaBall = {x=0, y=0, radius=0, goo=1, type="MetaBall"} -MetaBall.__index = MetaBall -_M.MetaBall=MetaBall - -function MetaBall:new(x, y, radius, goo) - goo = goo or 1 - return setmetatable({x=x, y=y, radius=radius, goo=goo}, MetaBall) -end - -function MetaBall:force(x, y) - --Calculate force at point x y - local force = sqrt( (x - self.x)^2 + (y - self.y)^2 ) - if force == 0 then return zero_value end - return (self.radius / force)^self.goo -end - ---Ellipse -local MetaEllipse = {x=0, y=0, radius=0, angle=0, x_scale=1, y_scale=1, type="MetaEllipse"} -MetaEllipse.__index = MetaEllipse -_M.MetaEllipse=MetaEllipse - -function MetaEllipse:new(x, y, radius, angle, x_scale, y_scale, goo) - angle = angle or 0 - x_scale = x_scale or 1 - y_scale = y_scale or 1 - goo = goo or 1 - cosa = cos(angle) - sina = sin(angle) - return setmetatable({x=x, y=y, radius=radius, angle=angle, x_scale=x_scale, y_scale=y_scale, goo=goo, cosa=cosa, sina=sina}, MetaEllipse) -end - -function MetaEllipse:force(x, y) - --Calculate force at point x y - local force = sqrt( (( (x - self.x)*self.cosa + (y - self.y)*self.sina )^2)/(self.x_scale) + - (( (y - self.y)*self.cosa - (x - self.x)*self.sina )^2)/(self.y_scale) ) - if force == 0 then return zero_value end - return (self.radius / force)^self.goo -end - ---SquareBalls -local MetaSquare = {x=0, y=0, radius=0, angle=0, x_scale=1, y_scale=1, type="MetaSquare"} -MetaSquare.__index = MetaSquare -_M.MetaSquare=MetaSquare - -function MetaSquare:new(x, y, radius, angle, x_scale, y_scale, goo) - angle = angle or 0 - x_scale = x_scale or 1 - y_scale = y_scale or 1 - goo = goo or 1 - cosa = cos(angle) - sina = sin(angle) - return setmetatable({x=x, y=y, radius=radius, angle=angle, x_scale=x_scale, y_scale=y_scale, goo=goo, cosa=cosa, sina=sina}, MetaSquare) -end - -function MetaSquare:force(x, y) - --Calculate force at point x y - local force = ( abs( (x - self.x)*self.cosa + (y - self.y)*self.sina )/self.x_scale + - abs( (y - self.y)*self.cosa - (x - self.x)*self.sina )/self.y_scale ) - if force == 0 then return zero_value end - return (self.radius / force)^self.goo -end - ---Donuts -local MetaDonut = {x=0, y=0, radius=0, angle=0, x_scale=1, y_scale=1, type="MetaDonut"} -MetaDonut.__index = MetaDonut -_M.MetaDonut=MetaDonut - -function MetaDonut:new(x, y, out_r, int_r, angle, x_scale, y_scale, goo) - angle = angle or 0 - x_scale = x_scale or 1 - y_scale = y_scale or 1 - goo = goo or 1 - cosa = cos(angle) - sina = sin(angle) - if int_r >= out_r then error("int_r >= out_r ("..int_r.." > "..out_r); return; end - local radius = out_r--(out_r - int_r)*0.5 - local radius2 = int_r--(radius2 + radius)*0.5 - return setmetatable({x=x, y=y, radius=radius, radius2=radius2, x_scale=x_scale, y_scale=y_scale, goo=goo, cosa=cosa, sina=sina}, MetaDonut) -end - -function MetaDonut:force(x, y) - --Calculate force at point x y - local force = abs(self.radius - sqrt( (( (x - self.x)*self.cosa + (y - self.y)*self.sina )^2)/(self.x_scale) + - (( (y - self.y)*self.cosa - (x - self.x)*self.sina )^2)/(self.y_scale) )) - if force == 0 then return zero_value end - return (self.radius2 / force)^self.goo - -end - +--[[-- +Metaball implementation for LUA by Dark +For bruteforce usage, nor efficient nor fast + +Force scales to from inf to 1 at R +--]]-- +local _M = {} +local sqrt = math.sqrt +local cos = math.cos +local sin = math.sin +local abs = math.abs +local zero_value = 0x80000000 + +--Classic ball +local MetaBall = {x=0, y=0, radius=0, goo=1, type="MetaBall"} +MetaBall.__index = MetaBall +_M.MetaBall=MetaBall + +function MetaBall:new(x, y, radius, goo) + goo = goo or 1 + return setmetatable({x=x, y=y, radius=radius, goo=goo}, MetaBall) +end + +function MetaBall:force(x, y) + --Calculate force at point x y + local force = sqrt( (x - self.x)^2 + (y - self.y)^2 ) + if force == 0 then return zero_value end + return (self.radius / force)^self.goo +end + +--Ellipse +local MetaEllipse = {x=0, y=0, radius=0, angle=0, x_scale=1, y_scale=1, type="MetaEllipse"} +MetaEllipse.__index = MetaEllipse +_M.MetaEllipse=MetaEllipse + +function MetaEllipse:new(x, y, radius, angle, x_scale, y_scale, goo) + angle = angle or 0 + x_scale = x_scale or 1 + y_scale = y_scale or 1 + goo = goo or 1 + cosa = cos(angle) + sina = sin(angle) + return setmetatable({x=x, y=y, radius=radius, angle=angle, x_scale=x_scale, y_scale=y_scale, goo=goo, cosa=cosa, sina=sina}, MetaEllipse) +end + +function MetaEllipse:force(x, y) + --Calculate force at point x y + local force = sqrt( (( (x - self.x)*self.cosa + (y - self.y)*self.sina )^2)/(self.x_scale) + + (( (y - self.y)*self.cosa - (x - self.x)*self.sina )^2)/(self.y_scale) ) + if force == 0 then return zero_value end + return (self.radius / force)^self.goo +end + +--SquareBalls +local MetaSquare = {x=0, y=0, radius=0, angle=0, x_scale=1, y_scale=1, type="MetaSquare"} +MetaSquare.__index = MetaSquare +_M.MetaSquare=MetaSquare + +function MetaSquare:new(x, y, radius, angle, x_scale, y_scale, goo) + angle = angle or 0 + x_scale = x_scale or 1 + y_scale = y_scale or 1 + goo = goo or 1 + cosa = cos(angle) + sina = sin(angle) + return setmetatable({x=x, y=y, radius=radius, angle=angle, x_scale=x_scale, y_scale=y_scale, goo=goo, cosa=cosa, sina=sina}, MetaSquare) +end + +function MetaSquare:force(x, y) + --Calculate force at point x y + local force = ( abs( (x - self.x)*self.cosa + (y - self.y)*self.sina )/self.x_scale + + abs( (y - self.y)*self.cosa - (x - self.x)*self.sina )/self.y_scale ) + if force == 0 then return zero_value end + return (self.radius / force)^self.goo +end + +--Donuts +local MetaDonut = {x=0, y=0, radius=0, angle=0, x_scale=1, y_scale=1, type="MetaDonut"} +MetaDonut.__index = MetaDonut +_M.MetaDonut=MetaDonut + +function MetaDonut:new(x, y, out_r, int_r, angle, x_scale, y_scale, goo) + angle = angle or 0 + x_scale = x_scale or 1 + y_scale = y_scale or 1 + goo = goo or 1 + cosa = cos(angle) + sina = sin(angle) + if int_r >= out_r then error("int_r >= out_r ("..int_r.." > "..out_r); return; end + local radius = out_r--(out_r - int_r)*0.5 + local radius2 = int_r--(radius2 + radius)*0.5 + return setmetatable({x=x, y=y, radius=radius, radius2=radius2, x_scale=x_scale, y_scale=y_scale, goo=goo, cosa=cosa, sina=sina}, MetaDonut) +end + +function MetaDonut:force(x, y) + --Calculate force at point x y + local force = abs(self.radius - sqrt( (( (x - self.x)*self.cosa + (y - self.y)*self.sina )^2)/(self.x_scale) + + (( (y - self.y)*self.cosa - (x - self.x)*self.sina )^2)/(self.y_scale) )) + if force == 0 then return zero_value end + return (self.radius2 / force)^self.goo + +end + return _M \ No newline at end of file diff --git a/rso-mod_2.1.0/libs/straight_world.lua b/rso-mod_2.2.2/libs/straight_world.lua similarity index 100% rename from rso-mod_2.1.0/libs/straight_world.lua rename to rso-mod_2.2.2/libs/straight_world.lua diff --git a/rso-mod_2.1.0/prototypes/prototype_utils.lua b/rso-mod_2.2.2/prototypes/prototype_utils.lua similarity index 95% rename from rso-mod_2.1.0/prototypes/prototype_utils.lua rename to rso-mod_2.2.2/prototypes/prototype_utils.lua index 24381ef..48a549f 100644 --- a/rso-mod_2.1.0/prototypes/prototype_utils.lua +++ b/rso-mod_2.2.2/prototypes/prototype_utils.lua @@ -1,49 +1,49 @@ -require("../config") - -function add_peak(ent, peak) - if ent and ent.autoplace then - ent.autoplace.peaks[#ent.autoplace.peaks+1] = peak - end -end - -function change_ocataves(autoplace, octaves) - for k,v in pairs(autoplace.peaks) do - if v.noise_layer then - v.noise_octaves_difference = (v.noise_octaves_difference or 0) + octaves - end - end -end - -function generate_basic_peaks(noise_layer) - return { - { - influence = 0.1 - }, - { - influence = 0.67, - noise_layer = noise_layer, - noise_octaves_difference = -2.7, - noise_persistence = 0.3 - } - } - -end - -function resetRichness(ent) - if ent and ent.autoplace then - ent.autoplace.richness_multiplier = 0 - ent.autoplace.richness_base = 0 - end -end - -function removeAutoplace(ent) - if ent then - ent.autoplace = nil - end -end - -function removePeaks(ent) - if ent and ent.autoplace then - ent.autoplace.peaks = {} - end -end +require("../config") + +function add_peak(ent, peak) + if ent and ent.autoplace then + ent.autoplace.peaks[#ent.autoplace.peaks+1] = peak + end +end + +function change_ocataves(autoplace, octaves) + for k,v in pairs(autoplace.peaks) do + if v.noise_layer then + v.noise_octaves_difference = (v.noise_octaves_difference or 0) + octaves + end + end +end + +function generate_basic_peaks(noise_layer) + return { + { + influence = 0.1 + }, + { + influence = 0.67, + noise_layer = noise_layer, + noise_octaves_difference = -2.7, + noise_persistence = 0.3 + } + } + +end + +function resetRichness(ent) + if ent and ent.autoplace then + ent.autoplace.richness_multiplier = 0 + ent.autoplace.richness_base = 0 + end +end + +function removeAutoplace(ent) + if ent then + ent.autoplace = nil + end +end + +function removePeaks(ent) + if ent and ent.autoplace then + ent.autoplace.peaks = {} + end +end diff --git a/rso-mod_2.1.0/resourceconfigs/5dimores.lua b/rso-mod_2.2.2/resourceconfigs/5dimores.lua similarity index 94% rename from rso-mod_2.1.0/resourceconfigs/5dimores.lua rename to rso-mod_2.2.2/resourceconfigs/5dimores.lua index a7a3bc1..7d9afdd 100644 --- a/rso-mod_2.1.0/resourceconfigs/5dimores.lua +++ b/rso-mod_2.2.2/resourceconfigs/5dimores.lua @@ -1,100 +1,100 @@ -function fill5dimConfig() - - config["gold-ore"] = { - type="resource-ore", - - allotment=40, - spawns_per_region={min=1, max=1}, - richness=12000, - size={min=15, max=20}, - min_amount = 150, - - multi_resource_chance=0.30, - multi_resource={ - ["lead-ore"] = 3, - ["tin-ore"] = 3, - ["zinc-ore"] = 3, - ["bauxite-ore"] = 3, - } - } - - config["lead-ore"] = { - type="resource-ore", - - allotment=40, - spawns_per_region={min=1, max=1}, - richness=12000, - size={min=10, max=20}, - min_amount = 300, - - starting={richness=4000, size=15, probability=1}, - - multi_resource_chance=0.30, - multi_resource={ - ["gold-ore"] = 3, - ["tin-ore"] = 3, - ["zinc-ore"] = 3, - ["bauxite-ore"] = 3, - } - } - - config["tin-ore"] = { - type="resource-ore", - - allotment=40, - spawns_per_region={min=1, max=1}, - richness=15000, - size={min=15, max=25}, - min_amount = 300, - - starting={richness=4000, size=15, probability=1}, - - multi_resource_chance=0.30, - multi_resource={ - ["lead-ore"] = 3, - ["gold-ore"] = 3, - ["zinc-ore"] = 3, - ["copper-ore"] = 2, - ["bauxite-ore"] = 3, - } - } - - config["zinc-ore"] = { - type="resource-ore", - - allotment=40, - spawns_per_region={min=1, max=1}, - richness=7000, - size={min=10, max=20}, - min_amount = 250, - - starting={richness=1000, size=10, probability=1}, - - multi_resource_chance=0.30, - multi_resource={ - ["lead-ore"] = 3, - ["gold-ore"] = 3, - ["tin-ore"] = 3, - ["bauxite-ore"] = 3, - } - } - - config["bauxite-ore"] = { - type="resource-ore", - - allotment=40, - spawns_per_region={min=1, max=1}, - richness=8000, - size={min=10, max=20}, - min_amount = 200, - - multi_resource_chance=0.30, - multi_resource={ - ["lead-ore"] = 3, - ["gold-ore"] = 3, - ["tin-ore"] = 3, - ["zinc-ore"] = 3, - } - } - +function fill5dimConfig() + + config["gold-ore"] = { + type="resource-ore", + + allotment=40, + spawns_per_region={min=1, max=1}, + richness=12000, + size={min=15, max=20}, + min_amount = 150, + + multi_resource_chance=0.30, + multi_resource={ + ["lead-ore"] = 3, + ["tin-ore"] = 3, + ["zinc-ore"] = 3, + ["bauxite-ore"] = 3, + } + } + + config["lead-ore"] = { + type="resource-ore", + + allotment=40, + spawns_per_region={min=1, max=1}, + richness=12000, + size={min=10, max=20}, + min_amount = 300, + + starting={richness=4000, size=15, probability=1}, + + multi_resource_chance=0.30, + multi_resource={ + ["gold-ore"] = 3, + ["tin-ore"] = 3, + ["zinc-ore"] = 3, + ["bauxite-ore"] = 3, + } + } + + config["tin-ore"] = { + type="resource-ore", + + allotment=40, + spawns_per_region={min=1, max=1}, + richness=15000, + size={min=15, max=25}, + min_amount = 300, + + starting={richness=4000, size=15, probability=1}, + + multi_resource_chance=0.30, + multi_resource={ + ["lead-ore"] = 3, + ["gold-ore"] = 3, + ["zinc-ore"] = 3, + ["copper-ore"] = 2, + ["bauxite-ore"] = 3, + } + } + + config["zinc-ore"] = { + type="resource-ore", + + allotment=40, + spawns_per_region={min=1, max=1}, + richness=7000, + size={min=10, max=20}, + min_amount = 250, + + starting={richness=1000, size=10, probability=1}, + + multi_resource_chance=0.30, + multi_resource={ + ["lead-ore"] = 3, + ["gold-ore"] = 3, + ["tin-ore"] = 3, + ["bauxite-ore"] = 3, + } + } + + config["bauxite-ore"] = { + type="resource-ore", + + allotment=40, + spawns_per_region={min=1, max=1}, + richness=8000, + size={min=10, max=20}, + min_amount = 200, + + multi_resource_chance=0.30, + multi_resource={ + ["lead-ore"] = 3, + ["gold-ore"] = 3, + ["tin-ore"] = 3, + ["zinc-ore"] = 3, + } + } + end \ No newline at end of file diff --git a/rso-mod_2.1.0/resourceconfigs/alienwall.lua b/rso-mod_2.2.2/resourceconfigs/alienwall.lua similarity index 100% rename from rso-mod_2.1.0/resourceconfigs/alienwall.lua rename to rso-mod_2.2.2/resourceconfigs/alienwall.lua diff --git a/rso-mod_2.1.0/resourceconfigs/angelsores.lua b/rso-mod_2.2.2/resourceconfigs/angelsores.lua similarity index 100% rename from rso-mod_2.1.0/resourceconfigs/angelsores.lua rename to rso-mod_2.2.2/resourceconfigs/angelsores.lua diff --git a/rso-mod_2.1.0/resourceconfigs/bobenemies.lua b/rso-mod_2.2.2/resourceconfigs/bobenemies.lua similarity index 96% rename from rso-mod_2.1.0/resourceconfigs/bobenemies.lua rename to rso-mod_2.2.2/resourceconfigs/bobenemies.lua index 32e8911..4d07bda 100644 --- a/rso-mod_2.1.0/resourceconfigs/bobenemies.lua +++ b/rso-mod_2.2.2/resourceconfigs/bobenemies.lua @@ -1,87 +1,87 @@ -function fillBobEnemies() - - config["enemy-base"] = { - type="entity", - force="enemy", - clear_range = {6, 6}, - - spawns_per_region={min=2,max=4}, - size={min=2,max=4}, - size_per_region_factor=0.4, - richness=1, - - absolute_probability=absolute_enemy_chance, -- chance to spawn in region - probability_distance_factor=1.15, -- relative increase per region - max_probability_distance_factor=3.0, -- absolute value - - along_resource_probability=0.10, -- chance to spawn in resource chunk anyway, absolute value. Can happen once per resource. - - sub_spawn_probability=0.3, -- chance for this entity to spawn anything from sub_spawns table, absolute value - sub_spawn_size={min=1, max=2}, -- in same chunk - sub_spawn_distance_factor=1.04, - sub_spawn_max_distance_factor=3, - sub_spawns={ - ["small-worm-turret"]={ - min_distance=2, - allotment=200, - allotment_distance_factor=0.9, - clear_range = {2, 2}, - }, - ["medium-worm-turret"]={ - min_distance=4, - allotment=100, - allotment_distance_factor=1.05, - clear_range = {2, 2}, - }, - ["big-worm-turret"]={ - min_distance=6, - allotment=100, - allotment_distance_factor=1.1, - clear_range = {2, 2}, - }, - ["bob-big-explosive-worm-turret"]={ - min_distance=6, - allotment=100, - allotment_distance_factor=1.1, - clear_range = {2, 2}, - }, - ["bob-big-fire-worm-turret"]={ - min_distance=6, - allotment=100, - allotment_distance_factor=1.1, - clear_range = {2, 2}, - }, - ["bob-big-poison-worm-turret"]={ - min_distance=6, - allotment=100, - allotment_distance_factor=1.1, - clear_range = {2, 2}, - }, - ["bob-big-piercing-worm-turret"]={ - min_distance=6, - allotment=100, - allotment_distance_factor=1.1, - clear_range = {2, 2}, - }, - ["bob-big-electric-worm-turret"]={ - min_distance=6, - allotment=100, - allotment_distance_factor=1.1, - clear_range = {2, 2}, - }, - ["bob-giant-worm-turret"]={ - min_distance=8, - allotment=80, - allotment_distance_factor=1.15, - clear_range = {4, 4}, - }, - ["bob-behemoth-worm-turret"]={ - min_distance=8, - allotment=60, - allotment_distance_factor=1.2, - clear_range = {5, 5}, - }, - } - } - +function fillBobEnemies() + + config["enemy-base"] = { + type="entity", + force="enemy", + clear_range = {6, 6}, + + spawns_per_region={min=2,max=4}, + size={min=2,max=4}, + size_per_region_factor=0.4, + richness=1, + + absolute_probability=absolute_enemy_chance, -- chance to spawn in region + probability_distance_factor=1.15, -- relative increase per region + max_probability_distance_factor=3.0, -- absolute value + + along_resource_probability=0.10, -- chance to spawn in resource chunk anyway, absolute value. Can happen once per resource. + + sub_spawn_probability=0.3, -- chance for this entity to spawn anything from sub_spawns table, absolute value + sub_spawn_size={min=1, max=2}, -- in same chunk + sub_spawn_distance_factor=1.04, + sub_spawn_max_distance_factor=3, + sub_spawns={ + ["small-worm-turret"]={ + min_distance=2, + allotment=200, + allotment_distance_factor=0.9, + clear_range = {2, 2}, + }, + ["medium-worm-turret"]={ + min_distance=4, + allotment=100, + allotment_distance_factor=1.05, + clear_range = {2, 2}, + }, + ["big-worm-turret"]={ + min_distance=6, + allotment=100, + allotment_distance_factor=1.1, + clear_range = {2, 2}, + }, + ["bob-big-explosive-worm-turret"]={ + min_distance=6, + allotment=100, + allotment_distance_factor=1.1, + clear_range = {2, 2}, + }, + ["bob-big-fire-worm-turret"]={ + min_distance=6, + allotment=100, + allotment_distance_factor=1.1, + clear_range = {2, 2}, + }, + ["bob-big-poison-worm-turret"]={ + min_distance=6, + allotment=100, + allotment_distance_factor=1.1, + clear_range = {2, 2}, + }, + ["bob-big-piercing-worm-turret"]={ + min_distance=6, + allotment=100, + allotment_distance_factor=1.1, + clear_range = {2, 2}, + }, + ["bob-big-electric-worm-turret"]={ + min_distance=6, + allotment=100, + allotment_distance_factor=1.1, + clear_range = {2, 2}, + }, + ["bob-giant-worm-turret"]={ + min_distance=8, + allotment=80, + allotment_distance_factor=1.15, + clear_range = {4, 4}, + }, + ["bob-behemoth-worm-turret"]={ + min_distance=8, + allotment=60, + allotment_distance_factor=1.2, + clear_range = {5, 5}, + }, + } + } + end \ No newline at end of file diff --git a/rso-mod_2.1.0/resourceconfigs/bobores.lua b/rso-mod_2.2.2/resourceconfigs/bobores.lua similarity index 95% rename from rso-mod_2.1.0/resourceconfigs/bobores.lua rename to rso-mod_2.2.2/resourceconfigs/bobores.lua index 64949bd..e38f79e 100644 --- a/rso-mod_2.1.0/resourceconfigs/bobores.lua +++ b/rso-mod_2.2.2/resourceconfigs/bobores.lua @@ -1,327 +1,327 @@ -function fillBoboresConfig() - - -- BobOres - -- up the stone at start - config["stone"].allotment = 80 - config["stone"].starting.richness = 8000 - - config["gold-ore"] = { - type="resource-ore", - - allotment=40, - spawns_per_region={min=1, max=1}, - richness=12000, - size={min=15, max=20}, - min_amount = 150, - - multi_resource_chance=0.30, - multi_resource={ - ["lead-ore"] = 3, - ["silver-ore"] = 3, - ["tin-ore"] = 3, - ["tungsten-ore"] = 3, - ["zinc-ore"] = 3, - ["bauxite-ore"] = 3, - } - } - config["silver-ore"] = { - type="resource-ore", - - allotment=40, - spawns_per_region={min=1, max=1}, - richness=12000, - size={min=10, max=20}, - min_amount = 150, - - multi_resource_chance=0.30, - multi_resource={ - ["lead-ore"] = 3, - ["gold-ore"] = 3, - ["tin-ore"] = 3, - ["tungsten-ore"] = 3, - ["zinc-ore"] = 3, - ["bauxite-ore"] = 3, - } - } - - config["lead-ore"] = { - type="resource-ore", - - allotment=40, - spawns_per_region={min=1, max=1}, - richness=12000, - size={min=10, max=20}, - min_amount = 300, - - starting={richness=4000, size=15, probability=1}, - - multi_resource_chance=0.30, - multi_resource={ - ["silver-ore"] = 3, - ["gold-ore"] = 3, - ["tin-ore"] = 3, - ["tungsten-ore"] = 3, - ["zinc-ore"] = 3, - ["bauxite-ore"] = 3, - } - } - - config["tin-ore"] = { - type="resource-ore", - - allotment=40, - spawns_per_region={min=1, max=1}, - richness=15000, - size={min=15, max=25}, - min_amount = 300, - - starting={richness=4000, size=15, probability=1}, - - multi_resource_chance=0.30, - multi_resource={ - ["lead-ore"] = 3, - ["silver-ore"] = 3, - ["gold-ore"] = 3, - ["tungsten-ore"] = 3, - ["zinc-ore"] = 3, - ["copper-ore"] = 2, - ["bauxite-ore"] = 3, - } - } - - config["tungsten-ore"] = { - type="resource-ore", - - allotment=30, - spawns_per_region={min=1, max=1}, - richness=10000, - size={min=10, max=20}, - min_amount = 200, - - multi_resource_chance=0.30, - multi_resource={ - ["lead-ore"] = 3, - ["silver-ore"] = 3, - ["gold-ore"] = 3, - ["tin-ore"] = 3, - ["zinc-ore"] = 3, - ["bauxite-ore"] = 3, - ["rutile-ore"] = 3, - } - } - - config["zinc-ore"] = { - type="resource-ore", - - allotment=40, - spawns_per_region={min=1, max=1}, - richness=7000, - size={min=10, max=20}, - min_amount = 250, - - starting={richness=1000, size=10, probability=1}, - - multi_resource_chance=0.30, - multi_resource={ - ["lead-ore"] = 3, - ["silver-ore"] = 3, - ["gold-ore"] = 3, - ["tin-ore"] = 3, - ["tungsten-ore"] = 3, - ["bauxite-ore"] = 3, - } - } - - config["bauxite-ore"] = { - type="resource-ore", - - allotment=40, - spawns_per_region={min=1, max=1}, - richness=8000, - size={min=10, max=20}, - min_amount = 200, - - multi_resource_chance=0.30, - multi_resource={ - ["lead-ore"] = 3, - ["silver-ore"] = 3, - ["gold-ore"] = 3, - ["tin-ore"] = 3, - ["zinc-ore"] = 3, - } - } - - config["rutile-ore"] = { - type="resource-ore", - - allotment=40, - spawns_per_region={min=1, max=1}, - richness=8000, - size={min=10, max=20}, - min_amount = 200, - - multi_resource_chance=0.30, - multi_resource={ - ["lead-ore"] = 3, - ["silver-ore"] = 3, - ["gold-ore"] = 3, - ["tin-ore"] = 3, - ["zinc-ore"] = 3, - ["tungsten-ore"] = 3, - } - } - - config["quartz"] = { - type="resource-ore", - - allotment=40, - spawns_per_region={min=1, max=1}, - richness=8000, - size={min=10, max=20}, - min_amount = 250, - - starting={richness=2000, size=15, probability=1}, - - multi_resource_chance=0.30, - multi_resource={ - ["lead-ore"] = 3, - ["silver-ore"] = 3, - ["gold-ore"] = 3, - ["tin-ore"] = 3, - ["zinc-ore"] = 3, - } - } - - -- check if Nickel, Cobalt, Sulfur or GemOre is added by bobs ores - if game.entity_prototypes["cobalt-ore"] then - config["cobalt-ore"] = { - type="resource-ore", - - allotment=30, - spawns_per_region={min=1, max=1}, - richness=8000, - size={min=10, max=15}, - min_amount = 150, - - multi_resource_chance=0.30, - multi_resource={ - ["lead-ore"] = 3, - ["tungsten-ore"] = 3, - ["gold-ore"] = 3, - ["quartz"] = 3, - } - } - end - - if game.entity_prototypes["nickel-ore"] then - config["nickel-ore"] = { - type="resource-ore", - - allotment=40, - spawns_per_region={min=1, max=1}, - richness=8000, - size={min=10, max=20}, - min_amount = 200, - - starting={richness=2000, size=10, probability=1}, - - multi_resource_chance=0.30, - multi_resource={ - ["tungsten-ore"] = 3, - ["rutile-ore"] = 3, - ["lead-ore"] = 3, - ["quartz"] = 3, - } - } - - end - - if game.entity_prototypes["sulfur"] then - config["sulfur"] = { - type="resource-ore", - - allotment=40, - spawns_per_region={min=1, max=1}, - richness=8000, - size={min=10, max=15}, - min_amount = 250, - - multi_resource_chance=0.30, - multi_resource={ - ["lead-ore"] = 3, - ["tin-ore"] = 3, - ["tungsten-ore"] = 3, - ["rutile-ore"] = 3, - } - } - end - - if game.entity_prototypes["gem-ore"] then - config["gem-ore"] = { - type="resource-ore", - - allotment=30, - spawns_per_region={min=1, max=1}, - richness=6000, - size={min=10, max=15}, - min_amount = 250, - - multi_resource_chance=0.30, - multi_resource={ - ["silver-ore"] = 3, - ["gold-ore"] = 3, - ["tungsten-ore"] = 3, - ["rutile-ore"] = 3, - } - } - end - - if game.entity_prototypes["cobalt-ore"] and game.entity_prototypes["nickel-ore"] then - config["cobalt-ore"].multi_resource["nickel-ore"] = 3 - config["nickel-ore"].multi_resource["cobalt-ore"] = 3 - end - - if game.entity_prototypes["gem-ore"] and game.entity_prototypes["nickel-ore"] then - config["gem-ore"].multi_resource["nickel-ore"] = 3 - config["nickel-ore"].multi_resource["gem-ore"] = 3 - end - - if game.entity_prototypes["gem-ore"] and game.entity_prototypes["cobalt-ore"] then - config["gem-ore"].multi_resource["cobalt-ore"] = 3 - config["cobalt-ore"].multi_resource["gem-ore"] = 3 - end - - if game.entity_prototypes["ground-water"] then - config["ground-water"] = - { - type="resource-liquid", - minimum_amount=2000, - allotment=60, - spawns_per_region={min=1, max=1}, - richness={min=2000, max=5000}, -- richness per resource spawn - size={min=2, max=4}, - } - end - - if game.entity_prototypes["lithia-water"] then - config["lithia-water"] = - { - type="resource-liquid", - minimum_amount=2000, - allotment=60, - spawns_per_region={min=1, max=1}, - richness={min=2000, max=5000}, -- richness per resource spawn - size={min=2, max=4}, - } - end - - if game.entity_prototypes["ground-water"] and game.entity_prototypes["lithia-water"] then - config["ground-water"].multi_resource_chance = 0.50 - config["ground-water"].multi_resource = config["ground-water"].multi_resource or {} - config["ground-water"].multi_resource["lithia-water"] = 1 - config["lithia-water"].multi_resource = config["lithia-water"].multi_resource or {} - config["lithia-water"].multi_resource_chance = 0.50 - config["lithia-water"].multi_resource["ground-water"] = 1 - end - +function fillBoboresConfig() + + -- BobOres + -- up the stone at start + config["stone"].allotment = 80 + config["stone"].starting.richness = 8000 + + config["gold-ore"] = { + type="resource-ore", + + allotment=40, + spawns_per_region={min=1, max=1}, + richness=12000, + size={min=15, max=20}, + min_amount = 150, + + multi_resource_chance=0.30, + multi_resource={ + ["lead-ore"] = 3, + ["silver-ore"] = 3, + ["tin-ore"] = 3, + ["tungsten-ore"] = 3, + ["zinc-ore"] = 3, + ["bauxite-ore"] = 3, + } + } + config["silver-ore"] = { + type="resource-ore", + + allotment=40, + spawns_per_region={min=1, max=1}, + richness=12000, + size={min=10, max=20}, + min_amount = 150, + + multi_resource_chance=0.30, + multi_resource={ + ["lead-ore"] = 3, + ["gold-ore"] = 3, + ["tin-ore"] = 3, + ["tungsten-ore"] = 3, + ["zinc-ore"] = 3, + ["bauxite-ore"] = 3, + } + } + + config["lead-ore"] = { + type="resource-ore", + + allotment=40, + spawns_per_region={min=1, max=1}, + richness=12000, + size={min=10, max=20}, + min_amount = 300, + + starting={richness=4000, size=15, probability=1}, + + multi_resource_chance=0.30, + multi_resource={ + ["silver-ore"] = 3, + ["gold-ore"] = 3, + ["tin-ore"] = 3, + ["tungsten-ore"] = 3, + ["zinc-ore"] = 3, + ["bauxite-ore"] = 3, + } + } + + config["tin-ore"] = { + type="resource-ore", + + allotment=40, + spawns_per_region={min=1, max=1}, + richness=15000, + size={min=15, max=25}, + min_amount = 300, + + starting={richness=4000, size=15, probability=1}, + + multi_resource_chance=0.30, + multi_resource={ + ["lead-ore"] = 3, + ["silver-ore"] = 3, + ["gold-ore"] = 3, + ["tungsten-ore"] = 3, + ["zinc-ore"] = 3, + ["copper-ore"] = 2, + ["bauxite-ore"] = 3, + } + } + + config["tungsten-ore"] = { + type="resource-ore", + + allotment=30, + spawns_per_region={min=1, max=1}, + richness=10000, + size={min=10, max=20}, + min_amount = 200, + + multi_resource_chance=0.30, + multi_resource={ + ["lead-ore"] = 3, + ["silver-ore"] = 3, + ["gold-ore"] = 3, + ["tin-ore"] = 3, + ["zinc-ore"] = 3, + ["bauxite-ore"] = 3, + ["rutile-ore"] = 3, + } + } + + config["zinc-ore"] = { + type="resource-ore", + + allotment=40, + spawns_per_region={min=1, max=1}, + richness=7000, + size={min=10, max=20}, + min_amount = 250, + + starting={richness=1000, size=10, probability=1}, + + multi_resource_chance=0.30, + multi_resource={ + ["lead-ore"] = 3, + ["silver-ore"] = 3, + ["gold-ore"] = 3, + ["tin-ore"] = 3, + ["tungsten-ore"] = 3, + ["bauxite-ore"] = 3, + } + } + + config["bauxite-ore"] = { + type="resource-ore", + + allotment=40, + spawns_per_region={min=1, max=1}, + richness=8000, + size={min=10, max=20}, + min_amount = 200, + + multi_resource_chance=0.30, + multi_resource={ + ["lead-ore"] = 3, + ["silver-ore"] = 3, + ["gold-ore"] = 3, + ["tin-ore"] = 3, + ["zinc-ore"] = 3, + } + } + + config["rutile-ore"] = { + type="resource-ore", + + allotment=40, + spawns_per_region={min=1, max=1}, + richness=8000, + size={min=10, max=20}, + min_amount = 200, + + multi_resource_chance=0.30, + multi_resource={ + ["lead-ore"] = 3, + ["silver-ore"] = 3, + ["gold-ore"] = 3, + ["tin-ore"] = 3, + ["zinc-ore"] = 3, + ["tungsten-ore"] = 3, + } + } + + config["quartz"] = { + type="resource-ore", + + allotment=40, + spawns_per_region={min=1, max=1}, + richness=8000, + size={min=10, max=20}, + min_amount = 250, + + starting={richness=2000, size=15, probability=1}, + + multi_resource_chance=0.30, + multi_resource={ + ["lead-ore"] = 3, + ["silver-ore"] = 3, + ["gold-ore"] = 3, + ["tin-ore"] = 3, + ["zinc-ore"] = 3, + } + } + + -- check if Nickel, Cobalt, Sulfur or GemOre is added by bobs ores + if game.entity_prototypes["cobalt-ore"] then + config["cobalt-ore"] = { + type="resource-ore", + + allotment=30, + spawns_per_region={min=1, max=1}, + richness=8000, + size={min=10, max=15}, + min_amount = 150, + + multi_resource_chance=0.30, + multi_resource={ + ["lead-ore"] = 3, + ["tungsten-ore"] = 3, + ["gold-ore"] = 3, + ["quartz"] = 3, + } + } + end + + if game.entity_prototypes["nickel-ore"] then + config["nickel-ore"] = { + type="resource-ore", + + allotment=40, + spawns_per_region={min=1, max=1}, + richness=8000, + size={min=10, max=20}, + min_amount = 200, + + starting={richness=2000, size=10, probability=1}, + + multi_resource_chance=0.30, + multi_resource={ + ["tungsten-ore"] = 3, + ["rutile-ore"] = 3, + ["lead-ore"] = 3, + ["quartz"] = 3, + } + } + + end + + if game.entity_prototypes["sulfur"] then + config["sulfur"] = { + type="resource-ore", + + allotment=40, + spawns_per_region={min=1, max=1}, + richness=8000, + size={min=10, max=15}, + min_amount = 250, + + multi_resource_chance=0.30, + multi_resource={ + ["lead-ore"] = 3, + ["tin-ore"] = 3, + ["tungsten-ore"] = 3, + ["rutile-ore"] = 3, + } + } + end + + if game.entity_prototypes["gem-ore"] then + config["gem-ore"] = { + type="resource-ore", + + allotment=30, + spawns_per_region={min=1, max=1}, + richness=6000, + size={min=10, max=15}, + min_amount = 250, + + multi_resource_chance=0.30, + multi_resource={ + ["silver-ore"] = 3, + ["gold-ore"] = 3, + ["tungsten-ore"] = 3, + ["rutile-ore"] = 3, + } + } + end + + if game.entity_prototypes["cobalt-ore"] and game.entity_prototypes["nickel-ore"] then + config["cobalt-ore"].multi_resource["nickel-ore"] = 3 + config["nickel-ore"].multi_resource["cobalt-ore"] = 3 + end + + if game.entity_prototypes["gem-ore"] and game.entity_prototypes["nickel-ore"] then + config["gem-ore"].multi_resource["nickel-ore"] = 3 + config["nickel-ore"].multi_resource["gem-ore"] = 3 + end + + if game.entity_prototypes["gem-ore"] and game.entity_prototypes["cobalt-ore"] then + config["gem-ore"].multi_resource["cobalt-ore"] = 3 + config["cobalt-ore"].multi_resource["gem-ore"] = 3 + end + + if game.entity_prototypes["ground-water"] then + config["ground-water"] = + { + type="resource-liquid", + minimum_amount=2000, + allotment=60, + spawns_per_region={min=1, max=1}, + richness={min=2000, max=5000}, -- richness per resource spawn + size={min=2, max=4}, + } + end + + if game.entity_prototypes["lithia-water"] then + config["lithia-water"] = + { + type="resource-liquid", + minimum_amount=2000, + allotment=60, + spawns_per_region={min=1, max=1}, + richness={min=2000, max=5000}, -- richness per resource spawn + size={min=2, max=4}, + } + end + + if game.entity_prototypes["ground-water"] and game.entity_prototypes["lithia-water"] then + config["ground-water"].multi_resource_chance = 0.50 + config["ground-water"].multi_resource = config["ground-water"].multi_resource or {} + config["ground-water"].multi_resource["lithia-water"] = 1 + config["lithia-water"].multi_resource = config["lithia-water"].multi_resource or {} + config["lithia-water"].multi_resource_chance = 0.50 + config["lithia-water"].multi_resource["ground-water"] = 1 + end + end \ No newline at end of file diff --git a/rso-mod_2.1.0/resourceconfigs/darkmatter.lua b/rso-mod_2.2.2/resourceconfigs/darkmatter.lua similarity index 95% rename from rso-mod_2.1.0/resourceconfigs/darkmatter.lua rename to rso-mod_2.2.2/resourceconfigs/darkmatter.lua index a8ac558..ae93e43 100644 --- a/rso-mod_2.1.0/resourceconfigs/darkmatter.lua +++ b/rso-mod_2.2.2/resourceconfigs/darkmatter.lua @@ -1,26 +1,26 @@ -function fillDarkMatterConfig() - - config["tenemut"] = { - type="resource-ore", - - allotment=40, - - spawns_per_region={min=1, max=1}, - size={min=5, max=8}, - richness=13500, - - starting={richness=8000, size=7, probability=1}, - - multi_resource_chance=0.30, - multi_resource={ - ["iron-ore"] = 2, - ["coal"] = 2, - ["stone"] = 2, - } - } - - config["iron-ore"].multi_resource["tenemut"] = 2 - config["coal"].multi_resource["tenemut"] = 2 - config["stone"].multi_resource["tenemut"] = 2 - +function fillDarkMatterConfig() + + config["tenemut"] = { + type="resource-ore", + + allotment=40, + + spawns_per_region={min=1, max=1}, + size={min=5, max=8}, + richness=13500, + + starting={richness=8000, size=7, probability=1}, + + multi_resource_chance=0.30, + multi_resource={ + ["iron-ore"] = 2, + ["coal"] = 2, + ["stone"] = 2, + } + } + + config["iron-ore"].multi_resource["tenemut"] = 2 + config["coal"].multi_resource["tenemut"] = 2 + config["stone"].multi_resource["tenemut"] = 2 + end \ No newline at end of file diff --git a/rso-mod_2.1.0/resourceconfigs/deepores.lua b/rso-mod_2.2.2/resourceconfigs/deepores.lua similarity index 100% rename from rso-mod_2.1.0/resourceconfigs/deepores.lua rename to rso-mod_2.2.2/resourceconfigs/deepores.lua diff --git a/rso-mod_2.1.0/resourceconfigs/dytech.lua b/rso-mod_2.2.2/resourceconfigs/dytech.lua similarity index 95% rename from rso-mod_2.1.0/resourceconfigs/dytech.lua rename to rso-mod_2.2.2/resourceconfigs/dytech.lua index 248f5c4..38241c1 100644 --- a/rso-mod_2.1.0/resourceconfigs/dytech.lua +++ b/rso-mod_2.2.2/resourceconfigs/dytech.lua @@ -1,268 +1,268 @@ -function fillDytechConfig() - - -- dytech is the only mod which is listed in the dependencies (info.json) - -- so it is safe to use remote.interfaces (some resources are shared with bobs ores - so it's unsafe to check for those -> better use remote.interfaces) - if remote.interfaces["DyTech-Core"] then - config["stone"].allotment = 80 - config["stone"].richness = 20000 - config["stone"].starting.richness = 8000 - end - - if remote.interfaces["DyTech-Core"] then - -- exotic ores - config["gold-ore"] = { - type="resource-ore", - - allotment=40, - spawns_per_region={min=1, max=1}, - richness=10000, - size={min=15, max=20}, - min_amount = 150, - - multi_resource_chance=0.30, - multi_resource={ - ["lead-ore"] = 3, - ["silver-ore"] = 3, - ["tin-ore"] = 3, - ["tungsten-ore"] = 3, - ["zinc-ore"] = 3, - ["gems"] = 2 - } - } - config["silver-ore"] = { - type="resource-ore", - - allotment=40, - spawns_per_region={min=1, max=1}, - richness=10000, - size={min=10, max=20}, - min_amount = 150, - - multi_resource_chance=0.30, - multi_resource={ - ["lead-ore"] = 3, - ["gold-ore"] = 3, - ["tin-ore"] = 3, - ["tungsten-ore"] = 3, - ["zinc-ore"] = 3, - ["cobalt-ore"] = 2, - } - } - - config["lead-ore"] = { - type="resource-ore", - - allotment=40, - spawns_per_region={min=1, max=1}, - richness=10000, - size={min=10, max=20}, - min_amount = 300, - - starting={richness=3000, size=15, probability=1}, - - multi_resource_chance=0.30, - multi_resource={ - ["silver-ore"] = 3, - ["gold-ore"] = 3, - ["tin-ore"] = 3, - ["tungsten-ore"] = 3, - ["zinc-ore"] = 3, - ["gems"] = 2 - } - } - - config["bauxite-ore"] = { - type="resource-ore", - - allotment=40, - spawns_per_region={min=1, max=1}, - richness=10000, - size={min=10, max=20}, - min_amount = 300, - - starting={richness=3000, size=15, probability=1}, - - multi_resource_chance=0.30, - multi_resource={ - ["silver-ore"] = 3, - ["gold-ore"] = 3, - ["tin-ore"] = 3, - ["tungsten-ore"] = 3, - ["zinc-ore"] = 3, - ["gems"] = 2 - } - } - - config["tin-ore"] = { - type="resource-ore", - - allotment=40, - spawns_per_region={min=1, max=1}, - richness=12000, - size={min=15, max=25}, - min_amount = 300, - - starting={richness=4000, size=15, probability=1}, - - multi_resource_chance=0.30, - multi_resource={ - ["lead-ore"] = 3, - ["silver-ore"] = 3, - ["gold-ore"] = 3, - ["tungsten-ore"] = 3, - ["zinc-ore"] = 3, - ["copper-ore"] = 2, - } - } - - config["zinc-ore"] = { - type="resource-ore", - - allotment=40, - spawns_per_region={min=1, max=1}, - richness=6000, - size={min=10, max=20}, - min_amount = 250, - - starting={richness=2000, size=15, probability=1}, - - multi_resource_chance=0.30, - multi_resource={ - ["lead-ore"] = 3, - ["silver-ore"] = 3, - ["gold-ore"] = 3, - ["tin-ore"] = 3, - ["tungsten-ore"] = 3, - ["gems"] = 2 - } - } - - - config["tungsten-ore"] = { - type="resource-ore", - - allotment=30, - spawns_per_region={min=1, max=1}, - richness=8000, - size={min=10, max=20}, - min_amount = 200, - - multi_resource_chance=0.30, - multi_resource={ - ["lead-ore"] = 3, - ["silver-ore"] = 3, - ["gold-ore"] = 3, - ["tin-ore"] = 3, - ["zinc-ore"] = 3, - ["cobalt-ore"] = 1 - } - } - - config["gems"] = { - type="resource-ore", - - allotment=30, - spawns_per_region={min=1, max=1}, - richness=2000, - size={min=15, max=20}, - min_amount = 30, - - multi_resource_chance=0.30, - multi_resource={ - ["stone"] = 1, - ["lead-ore"] = 3, - ["silver-ore"] = 3, - ["gold-ore"] = 3, - ["tin-ore"] = 3, - ["tungsten-ore"] = 3, - ["zinc-ore"] = 3 - } - } - - config["chromite-ore"] = { - type="resource-ore", - - allotment=30, - spawns_per_region={min=1, max=1}, - richness=6000, - size={min=10, max=15}, - min_amount = 100, - - multi_resource_chance=0.30, - multi_resource={ - ["lead-ore"] = 3, - ["silver-ore"] = 3, - ["gold-ore"] = 3, - ["tin-ore"] = 3, - ["zinc-ore"] = 3, - ["cobalt-ore"] = 3, - } - } - - config["cobalt-ore"] = { - type="resource-ore", - - allotment=30, - spawns_per_region={min=1, max=1}, - richness=2000, - size={min=10, max=15}, - min_amount = 150, - - - multi_resource_chance=0.30, - multi_resource={ - ["lead-ore"] = 3, - ["silver-ore"] = 3, - ["gold-ore"] = 3, - ["tin-ore"] = 3, - ["zinc-ore"] = 3, - ["ardite-ore"] = 3, - } - } - - config["rutile-ore"] = { - type="resource-ore", - - allotment=30, - spawns_per_region={min=1, max=1}, - richness=2000, - size={min=10, max=15}, - min_amount = 150, - - - multi_resource_chance=0.30, - multi_resource={ - ["lead-ore"] = 3, - ["silver-ore"] = 3, - ["gold-ore"] = 3, - ["tin-ore"] = 3, - ["zinc-ore"] = 3, - ["ardite-ore"] = 3, - } - } - end - - -- lava is added by DyTech-Machine - if remote.interfaces["DyTech-Machine"] then - config["lava-600"] = { - type="resource-liquid", - minimum_amount=125000, - - allotment=25, - spawns_per_region={min=1, max=1}, - richness={min=150000, max=400000}, -- total richness of site - size={min=2, max=3}, -- richness divided by this number - - absolute_probability=0.01, - - starting={richness=150000, size=1, probability=0.4}, - multi_resource_chance=0.3, - multi_resource={ - ["lava-2800"] = 1, - ["lava-1400"] = 2, - ["lava-600"] = 4 - } - } - end - -end +function fillDytechConfig() + + -- dytech is the only mod which is listed in the dependencies (info.json) + -- so it is safe to use remote.interfaces (some resources are shared with bobs ores - so it's unsafe to check for those -> better use remote.interfaces) + if remote.interfaces["DyTech-Core"] then + config["stone"].allotment = 80 + config["stone"].richness = 20000 + config["stone"].starting.richness = 8000 + end + + if remote.interfaces["DyTech-Core"] then + -- exotic ores + config["gold-ore"] = { + type="resource-ore", + + allotment=40, + spawns_per_region={min=1, max=1}, + richness=10000, + size={min=15, max=20}, + min_amount = 150, + + multi_resource_chance=0.30, + multi_resource={ + ["lead-ore"] = 3, + ["silver-ore"] = 3, + ["tin-ore"] = 3, + ["tungsten-ore"] = 3, + ["zinc-ore"] = 3, + ["gems"] = 2 + } + } + config["silver-ore"] = { + type="resource-ore", + + allotment=40, + spawns_per_region={min=1, max=1}, + richness=10000, + size={min=10, max=20}, + min_amount = 150, + + multi_resource_chance=0.30, + multi_resource={ + ["lead-ore"] = 3, + ["gold-ore"] = 3, + ["tin-ore"] = 3, + ["tungsten-ore"] = 3, + ["zinc-ore"] = 3, + ["cobalt-ore"] = 2, + } + } + + config["lead-ore"] = { + type="resource-ore", + + allotment=40, + spawns_per_region={min=1, max=1}, + richness=10000, + size={min=10, max=20}, + min_amount = 300, + + starting={richness=3000, size=15, probability=1}, + + multi_resource_chance=0.30, + multi_resource={ + ["silver-ore"] = 3, + ["gold-ore"] = 3, + ["tin-ore"] = 3, + ["tungsten-ore"] = 3, + ["zinc-ore"] = 3, + ["gems"] = 2 + } + } + + config["bauxite-ore"] = { + type="resource-ore", + + allotment=40, + spawns_per_region={min=1, max=1}, + richness=10000, + size={min=10, max=20}, + min_amount = 300, + + starting={richness=3000, size=15, probability=1}, + + multi_resource_chance=0.30, + multi_resource={ + ["silver-ore"] = 3, + ["gold-ore"] = 3, + ["tin-ore"] = 3, + ["tungsten-ore"] = 3, + ["zinc-ore"] = 3, + ["gems"] = 2 + } + } + + config["tin-ore"] = { + type="resource-ore", + + allotment=40, + spawns_per_region={min=1, max=1}, + richness=12000, + size={min=15, max=25}, + min_amount = 300, + + starting={richness=4000, size=15, probability=1}, + + multi_resource_chance=0.30, + multi_resource={ + ["lead-ore"] = 3, + ["silver-ore"] = 3, + ["gold-ore"] = 3, + ["tungsten-ore"] = 3, + ["zinc-ore"] = 3, + ["copper-ore"] = 2, + } + } + + config["zinc-ore"] = { + type="resource-ore", + + allotment=40, + spawns_per_region={min=1, max=1}, + richness=6000, + size={min=10, max=20}, + min_amount = 250, + + starting={richness=2000, size=15, probability=1}, + + multi_resource_chance=0.30, + multi_resource={ + ["lead-ore"] = 3, + ["silver-ore"] = 3, + ["gold-ore"] = 3, + ["tin-ore"] = 3, + ["tungsten-ore"] = 3, + ["gems"] = 2 + } + } + + + config["tungsten-ore"] = { + type="resource-ore", + + allotment=30, + spawns_per_region={min=1, max=1}, + richness=8000, + size={min=10, max=20}, + min_amount = 200, + + multi_resource_chance=0.30, + multi_resource={ + ["lead-ore"] = 3, + ["silver-ore"] = 3, + ["gold-ore"] = 3, + ["tin-ore"] = 3, + ["zinc-ore"] = 3, + ["cobalt-ore"] = 1 + } + } + + config["gems"] = { + type="resource-ore", + + allotment=30, + spawns_per_region={min=1, max=1}, + richness=2000, + size={min=15, max=20}, + min_amount = 30, + + multi_resource_chance=0.30, + multi_resource={ + ["stone"] = 1, + ["lead-ore"] = 3, + ["silver-ore"] = 3, + ["gold-ore"] = 3, + ["tin-ore"] = 3, + ["tungsten-ore"] = 3, + ["zinc-ore"] = 3 + } + } + + config["chromite-ore"] = { + type="resource-ore", + + allotment=30, + spawns_per_region={min=1, max=1}, + richness=6000, + size={min=10, max=15}, + min_amount = 100, + + multi_resource_chance=0.30, + multi_resource={ + ["lead-ore"] = 3, + ["silver-ore"] = 3, + ["gold-ore"] = 3, + ["tin-ore"] = 3, + ["zinc-ore"] = 3, + ["cobalt-ore"] = 3, + } + } + + config["cobalt-ore"] = { + type="resource-ore", + + allotment=30, + spawns_per_region={min=1, max=1}, + richness=2000, + size={min=10, max=15}, + min_amount = 150, + + + multi_resource_chance=0.30, + multi_resource={ + ["lead-ore"] = 3, + ["silver-ore"] = 3, + ["gold-ore"] = 3, + ["tin-ore"] = 3, + ["zinc-ore"] = 3, + ["ardite-ore"] = 3, + } + } + + config["rutile-ore"] = { + type="resource-ore", + + allotment=30, + spawns_per_region={min=1, max=1}, + richness=2000, + size={min=10, max=15}, + min_amount = 150, + + + multi_resource_chance=0.30, + multi_resource={ + ["lead-ore"] = 3, + ["silver-ore"] = 3, + ["gold-ore"] = 3, + ["tin-ore"] = 3, + ["zinc-ore"] = 3, + ["ardite-ore"] = 3, + } + } + end + + -- lava is added by DyTech-Machine + if remote.interfaces["DyTech-Machine"] then + config["lava-600"] = { + type="resource-liquid", + minimum_amount=125000, + + allotment=25, + spawns_per_region={min=1, max=1}, + richness={min=150000, max=400000}, -- total richness of site + size={min=2, max=3}, -- richness divided by this number + + absolute_probability=0.01, + + starting={richness=150000, size=1, probability=0.4}, + multi_resource_chance=0.3, + multi_resource={ + ["lava-2800"] = 1, + ["lava-1400"] = 2, + ["lava-600"] = 4 + } + } + end + +end diff --git a/rso-mod_2.1.0/resourceconfigs/engineers.lua b/rso-mod_2.2.2/resourceconfigs/engineers.lua similarity index 95% rename from rso-mod_2.1.0/resourceconfigs/engineers.lua rename to rso-mod_2.2.2/resourceconfigs/engineers.lua index 9a7f87b..a8a3a33 100644 --- a/rso-mod_2.1.0/resourceconfigs/engineers.lua +++ b/rso-mod_2.2.2/resourceconfigs/engineers.lua @@ -1,399 +1,399 @@ -function fillEngineersConfig() - - if not game.active_mods["Engineersvsenvironmentalist"] then - return - end - - config["gold-ore"] = { - type="resource-ore", - - allotment=40, - spawns_per_region={min=1, max=1}, - richness=12000, - size={min=15, max=20}, - min_amount = 150, - - multi_resource_chance=0.30, - multi_resource={ - ["lead-ore"] = 3, - ["silver-ore"] = 3, - ["tin-ore"] = 3, - ["tungsten-ore"] = 3, - ["zinc-ore"] = 3, - ["bauxite-ore"] = 3, - } - } - config["silver-ore"] = { - type="resource-ore", - - allotment=40, - spawns_per_region={min=1, max=1}, - richness=12000, - size={min=10, max=20}, - min_amount = 150, - - multi_resource_chance=0.30, - multi_resource={ - ["lead-ore"] = 3, - ["gold-ore"] = 3, - ["tin-ore"] = 3, - ["tungsten-ore"] = 3, - ["zinc-ore"] = 3, - ["bauxite-ore"] = 3, - } - } - - config["lead-ore"] = { - type="resource-ore", - - allotment=40, - spawns_per_region={min=1, max=1}, - richness=12000, - size={min=10, max=20}, - min_amount = 300, - - starting={richness=4000, size=15, probability=1}, - - multi_resource_chance=0.30, - multi_resource={ - ["silver-ore"] = 3, - ["gold-ore"] = 3, - ["tin-ore"] = 3, - ["tungsten-ore"] = 3, - ["zinc-ore"] = 3, - ["bauxite-ore"] = 3, - } - } - - config["tin-ore"] = { - type="resource-ore", - - allotment=40, - spawns_per_region={min=1, max=1}, - richness=15000, - size={min=15, max=25}, - min_amount = 300, - - starting={richness=4000, size=15, probability=1}, - - multi_resource_chance=0.30, - multi_resource={ - ["lead-ore"] = 3, - ["silver-ore"] = 3, - ["gold-ore"] = 3, - ["tungsten-ore"] = 3, - ["zinc-ore"] = 3, - ["copper-ore"] = 2, - ["bauxite-ore"] = 3, - } - } - - config["tungsten-ore"] = { - type="resource-ore", - - allotment=30, - spawns_per_region={min=1, max=1}, - richness=10000, - size={min=10, max=20}, - min_amount = 200, - - multi_resource_chance=0.30, - multi_resource={ - ["lead-ore"] = 3, - ["silver-ore"] = 3, - ["gold-ore"] = 3, - ["tin-ore"] = 3, - ["zinc-ore"] = 3, - ["bauxite-ore"] = 3, - ["rutile-ore"] = 3, - } - } - - config["zinc-ore"] = { - type="resource-ore", - - allotment=40, - spawns_per_region={min=1, max=1}, - richness=7000, - size={min=10, max=20}, - min_amount = 250, - - starting={richness=1000, size=10, probability=1}, - - multi_resource_chance=0.30, - multi_resource={ - ["lead-ore"] = 3, - ["silver-ore"] = 3, - ["gold-ore"] = 3, - ["tin-ore"] = 3, - ["tungsten-ore"] = 3, - ["bauxite-ore"] = 3, - } - } - - config["bauxite-ore"] = { - type="resource-ore", - - allotment=40, - spawns_per_region={min=1, max=1}, - richness=8000, - size={min=10, max=20}, - min_amount = 200, - - multi_resource_chance=0.30, - multi_resource={ - ["lead-ore"] = 3, - ["silver-ore"] = 3, - ["gold-ore"] = 3, - ["tin-ore"] = 3, - ["zinc-ore"] = 3, - } - } - - config["rutile-ore"] = { - type="resource-ore", - - allotment=40, - spawns_per_region={min=1, max=1}, - richness=8000, - size={min=10, max=20}, - min_amount = 200, - - multi_resource_chance=0.30, - multi_resource={ - ["lead-ore"] = 3, - ["silver-ore"] = 3, - ["gold-ore"] = 3, - ["tin-ore"] = 3, - ["zinc-ore"] = 3, - ["tungsten-ore"] = 3, - } - } - - config["quartz"] = { - type="resource-ore", - - allotment=40, - spawns_per_region={min=1, max=1}, - richness=8000, - size={min=10, max=20}, - min_amount = 250, - - starting={richness=2000, size=15, probability=1}, - - multi_resource_chance=0.30, - multi_resource={ - ["lead-ore"] = 3, - ["silver-ore"] = 3, - ["gold-ore"] = 3, - ["tin-ore"] = 3, - ["zinc-ore"] = 3, - } - } - - -- check if Nickel, Cobalt, Sulfur or GemOre is added by bobs ores - if game.entity_prototypes["cobalt-ore"] then - config["cobalt-ore"] = { - type="resource-ore", - - allotment=30, - spawns_per_region={min=1, max=1}, - richness=8000, - size={min=10, max=15}, - min_amount = 150, - - multi_resource_chance=0.30, - multi_resource={ - ["lead-ore"] = 3, - ["tungsten-ore"] = 3, - ["gold-ore"] = 3, - ["quartz"] = 3, - } - } - end - - if game.entity_prototypes["nickel-ore"] then - config["nickel-ore"] = { - type="resource-ore", - - allotment=40, - spawns_per_region={min=1, max=1}, - richness=8000, - size={min=10, max=20}, - min_amount = 200, - - starting={richness=2000, size=10, probability=1}, - - multi_resource_chance=0.30, - multi_resource={ - ["tungsten-ore"] = 3, - ["rutile-ore"] = 3, - ["lead-ore"] = 3, - ["quartz"] = 3, - } - } - - end - - if game.entity_prototypes["sulfur"] then - config["sulfur"] = { - type="resource-ore", - - allotment=40, - spawns_per_region={min=1, max=1}, - richness=8000, - size={min=10, max=15}, - min_amount = 250, - - multi_resource_chance=0.30, - multi_resource={ - ["lead-ore"] = 3, - ["tin-ore"] = 3, - ["tungsten-ore"] = 3, - ["rutile-ore"] = 3, - } - } - end - - if game.entity_prototypes["gem-ore"] then - config["gem-ore"] = { - type="resource-ore", - - allotment=30, - spawns_per_region={min=1, max=1}, - richness=6000, - size={min=10, max=15}, - min_amount = 250, - - multi_resource_chance=0.30, - multi_resource={ - ["silver-ore"] = 3, - ["gold-ore"] = 3, - ["tungsten-ore"] = 3, - ["rutile-ore"] = 3, - } - } - end - - if game.entity_prototypes["cobalt-ore"] and game.entity_prototypes["nickel-ore"] then - config["cobalt-ore"].multi_resource["nickel-ore"] = 3 - config["nickel-ore"].multi_resource["cobalt-ore"] = 3 - end - - if game.entity_prototypes["gem-ore"] and game.entity_prototypes["nickel-ore"] then - config["gem-ore"].multi_resource["nickel-ore"] = 3 - config["nickel-ore"].multi_resource["gem-ore"] = 3 - end - - if game.entity_prototypes["gem-ore"] and game.entity_prototypes["cobalt-ore"] then - config["gem-ore"].multi_resource["cobalt-ore"] = 3 - config["cobalt-ore"].multi_resource["gem-ore"] = 3 - end - - config["chalcopyrite-ore"] = { - type="resource-ore", - - allotment=60, - spawns_per_region={min=1, max=1}, - richness=90000, - size={min=20, max=25}, - min_amount=1000, - - starting={richness=45000, size=20, probability=1}, - - } - - config["copper-ore"].starting = nil - config["copper-ore"].allotment = 60 - - config["hematite"] = { - type="resource-ore", - - -- general spawn params - allotment=80, -- how common resource is - spawns_per_region={min=1, max=1}, --number of chunks - richness=25000, -- resource_ore has only one richness value - resource-liquid has min/max - - size={min=15, max=25}, -- rough radius of area, too high value can produce square shaped areas - min_amount=500, - - -- resource provided at starting location - -- probability: 1 = 100% chance to be in starting area - -- 0 = resource is not in starting area - starting={richness=15000, size=20, probability=1}, - - } - - config["lignite-ore"] = { - type="resource-ore", - - -- general spawn params - allotment=80, -- how common resource is - spawns_per_region={min=1, max=1}, --number of chunks - richness=250000, -- resource_ore has only one richness value - resource-liquid has min/max - - size={min=20, max=30}, -- rough radius of area, too high value can produce square shaped areas - min_amount=10000, - - -- resource provided at starting location - -- probability: 1 = 100% chance to be in starting area - -- 0 = resource is not in starting area - starting={richness=150000, size=30, probability=1}, - } - - config["salpeter"] = { - type="resource-ore", - - -- general spawn params - allotment=50, -- how common resource is - spawns_per_region={min=1, max=1}, --number of chunks - richness=15000, -- resource_ore has only one richness value - resource-liquid has min/max - - size={min=10, max=20}, -- rough radius of area, too high value can produce square shaped areas - min_amount=250, - - } - - config["cryolite"] = { - type="resource-ore", - - -- general spawn params - allotment=50, -- how common resource is - spawns_per_region={min=1, max=1}, --number of chunks - richness=10000, -- resource_ore has only one richness value - resource-liquid has min/max - - size={min=10, max=20}, -- rough radius of area, too high value can produce square shaped areas - min_amount=250, - - } - - config["magma"] = { - type="resource-ore", - - -- general spawn params - allotment=60, -- how common resource is - spawns_per_region={min=1, max=1}, --number of chunks - richness=15000000, -- resource_ore has only one richness value - resource-liquid has min/max - - size={min=5, max=10}, -- rough radius of area, too high value can produce square shaped areas - min_amount=250000, - - -- resource provided at starting location - -- probability: 1 = 100% chance to be in starting area - -- 0 = resource is not in starting area - starting={richness=5000000, size=5, probability=1}, - } - - config["coal"] = { - type="resource-ore", - - allotment=80, - - spawns_per_region={min=1, max=1}, - size={min=20, max=30}, - richness=300000, - min_amount=5000, - - starting={richness=200000, size=30, probability=1}, - } +function fillEngineersConfig() + + if not game.active_mods["Engineersvsenvironmentalist"] then + return + end + + config["gold-ore"] = { + type="resource-ore", + + allotment=40, + spawns_per_region={min=1, max=1}, + richness=12000, + size={min=15, max=20}, + min_amount = 150, + + multi_resource_chance=0.30, + multi_resource={ + ["lead-ore"] = 3, + ["silver-ore"] = 3, + ["tin-ore"] = 3, + ["tungsten-ore"] = 3, + ["zinc-ore"] = 3, + ["bauxite-ore"] = 3, + } + } + config["silver-ore"] = { + type="resource-ore", + + allotment=40, + spawns_per_region={min=1, max=1}, + richness=12000, + size={min=10, max=20}, + min_amount = 150, + + multi_resource_chance=0.30, + multi_resource={ + ["lead-ore"] = 3, + ["gold-ore"] = 3, + ["tin-ore"] = 3, + ["tungsten-ore"] = 3, + ["zinc-ore"] = 3, + ["bauxite-ore"] = 3, + } + } + + config["lead-ore"] = { + type="resource-ore", + + allotment=40, + spawns_per_region={min=1, max=1}, + richness=12000, + size={min=10, max=20}, + min_amount = 300, + + starting={richness=4000, size=15, probability=1}, + + multi_resource_chance=0.30, + multi_resource={ + ["silver-ore"] = 3, + ["gold-ore"] = 3, + ["tin-ore"] = 3, + ["tungsten-ore"] = 3, + ["zinc-ore"] = 3, + ["bauxite-ore"] = 3, + } + } + + config["tin-ore"] = { + type="resource-ore", + + allotment=40, + spawns_per_region={min=1, max=1}, + richness=15000, + size={min=15, max=25}, + min_amount = 300, + + starting={richness=4000, size=15, probability=1}, + + multi_resource_chance=0.30, + multi_resource={ + ["lead-ore"] = 3, + ["silver-ore"] = 3, + ["gold-ore"] = 3, + ["tungsten-ore"] = 3, + ["zinc-ore"] = 3, + ["copper-ore"] = 2, + ["bauxite-ore"] = 3, + } + } + + config["tungsten-ore"] = { + type="resource-ore", + + allotment=30, + spawns_per_region={min=1, max=1}, + richness=10000, + size={min=10, max=20}, + min_amount = 200, + + multi_resource_chance=0.30, + multi_resource={ + ["lead-ore"] = 3, + ["silver-ore"] = 3, + ["gold-ore"] = 3, + ["tin-ore"] = 3, + ["zinc-ore"] = 3, + ["bauxite-ore"] = 3, + ["rutile-ore"] = 3, + } + } + + config["zinc-ore"] = { + type="resource-ore", + + allotment=40, + spawns_per_region={min=1, max=1}, + richness=7000, + size={min=10, max=20}, + min_amount = 250, + + starting={richness=1000, size=10, probability=1}, + + multi_resource_chance=0.30, + multi_resource={ + ["lead-ore"] = 3, + ["silver-ore"] = 3, + ["gold-ore"] = 3, + ["tin-ore"] = 3, + ["tungsten-ore"] = 3, + ["bauxite-ore"] = 3, + } + } + + config["bauxite-ore"] = { + type="resource-ore", + + allotment=40, + spawns_per_region={min=1, max=1}, + richness=8000, + size={min=10, max=20}, + min_amount = 200, + + multi_resource_chance=0.30, + multi_resource={ + ["lead-ore"] = 3, + ["silver-ore"] = 3, + ["gold-ore"] = 3, + ["tin-ore"] = 3, + ["zinc-ore"] = 3, + } + } + + config["rutile-ore"] = { + type="resource-ore", + + allotment=40, + spawns_per_region={min=1, max=1}, + richness=8000, + size={min=10, max=20}, + min_amount = 200, + + multi_resource_chance=0.30, + multi_resource={ + ["lead-ore"] = 3, + ["silver-ore"] = 3, + ["gold-ore"] = 3, + ["tin-ore"] = 3, + ["zinc-ore"] = 3, + ["tungsten-ore"] = 3, + } + } + + config["quartz"] = { + type="resource-ore", + + allotment=40, + spawns_per_region={min=1, max=1}, + richness=8000, + size={min=10, max=20}, + min_amount = 250, + + starting={richness=2000, size=15, probability=1}, + + multi_resource_chance=0.30, + multi_resource={ + ["lead-ore"] = 3, + ["silver-ore"] = 3, + ["gold-ore"] = 3, + ["tin-ore"] = 3, + ["zinc-ore"] = 3, + } + } + + -- check if Nickel, Cobalt, Sulfur or GemOre is added by bobs ores + if game.entity_prototypes["cobalt-ore"] then + config["cobalt-ore"] = { + type="resource-ore", + + allotment=30, + spawns_per_region={min=1, max=1}, + richness=8000, + size={min=10, max=15}, + min_amount = 150, + + multi_resource_chance=0.30, + multi_resource={ + ["lead-ore"] = 3, + ["tungsten-ore"] = 3, + ["gold-ore"] = 3, + ["quartz"] = 3, + } + } + end + + if game.entity_prototypes["nickel-ore"] then + config["nickel-ore"] = { + type="resource-ore", + + allotment=40, + spawns_per_region={min=1, max=1}, + richness=8000, + size={min=10, max=20}, + min_amount = 200, + + starting={richness=2000, size=10, probability=1}, + + multi_resource_chance=0.30, + multi_resource={ + ["tungsten-ore"] = 3, + ["rutile-ore"] = 3, + ["lead-ore"] = 3, + ["quartz"] = 3, + } + } + + end + + if game.entity_prototypes["sulfur"] then + config["sulfur"] = { + type="resource-ore", + + allotment=40, + spawns_per_region={min=1, max=1}, + richness=8000, + size={min=10, max=15}, + min_amount = 250, + + multi_resource_chance=0.30, + multi_resource={ + ["lead-ore"] = 3, + ["tin-ore"] = 3, + ["tungsten-ore"] = 3, + ["rutile-ore"] = 3, + } + } + end + + if game.entity_prototypes["gem-ore"] then + config["gem-ore"] = { + type="resource-ore", + + allotment=30, + spawns_per_region={min=1, max=1}, + richness=6000, + size={min=10, max=15}, + min_amount = 250, + + multi_resource_chance=0.30, + multi_resource={ + ["silver-ore"] = 3, + ["gold-ore"] = 3, + ["tungsten-ore"] = 3, + ["rutile-ore"] = 3, + } + } + end + + if game.entity_prototypes["cobalt-ore"] and game.entity_prototypes["nickel-ore"] then + config["cobalt-ore"].multi_resource["nickel-ore"] = 3 + config["nickel-ore"].multi_resource["cobalt-ore"] = 3 + end + + if game.entity_prototypes["gem-ore"] and game.entity_prototypes["nickel-ore"] then + config["gem-ore"].multi_resource["nickel-ore"] = 3 + config["nickel-ore"].multi_resource["gem-ore"] = 3 + end + + if game.entity_prototypes["gem-ore"] and game.entity_prototypes["cobalt-ore"] then + config["gem-ore"].multi_resource["cobalt-ore"] = 3 + config["cobalt-ore"].multi_resource["gem-ore"] = 3 + end + + config["chalcopyrite-ore"] = { + type="resource-ore", + + allotment=60, + spawns_per_region={min=1, max=1}, + richness=90000, + size={min=20, max=25}, + min_amount=1000, + + starting={richness=45000, size=20, probability=1}, + + } + + config["copper-ore"].starting = nil + config["copper-ore"].allotment = 60 + + config["hematite"] = { + type="resource-ore", + + -- general spawn params + allotment=80, -- how common resource is + spawns_per_region={min=1, max=1}, --number of chunks + richness=25000, -- resource_ore has only one richness value - resource-liquid has min/max + + size={min=15, max=25}, -- rough radius of area, too high value can produce square shaped areas + min_amount=500, + + -- resource provided at starting location + -- probability: 1 = 100% chance to be in starting area + -- 0 = resource is not in starting area + starting={richness=15000, size=20, probability=1}, + + } + + config["lignite-ore"] = { + type="resource-ore", + + -- general spawn params + allotment=80, -- how common resource is + spawns_per_region={min=1, max=1}, --number of chunks + richness=250000, -- resource_ore has only one richness value - resource-liquid has min/max + + size={min=20, max=30}, -- rough radius of area, too high value can produce square shaped areas + min_amount=10000, + + -- resource provided at starting location + -- probability: 1 = 100% chance to be in starting area + -- 0 = resource is not in starting area + starting={richness=150000, size=30, probability=1}, + } + + config["salpeter"] = { + type="resource-ore", + + -- general spawn params + allotment=50, -- how common resource is + spawns_per_region={min=1, max=1}, --number of chunks + richness=15000, -- resource_ore has only one richness value - resource-liquid has min/max + + size={min=10, max=20}, -- rough radius of area, too high value can produce square shaped areas + min_amount=250, + + } + + config["cryolite"] = { + type="resource-ore", + + -- general spawn params + allotment=50, -- how common resource is + spawns_per_region={min=1, max=1}, --number of chunks + richness=10000, -- resource_ore has only one richness value - resource-liquid has min/max + + size={min=10, max=20}, -- rough radius of area, too high value can produce square shaped areas + min_amount=250, + + } + + config["magma"] = { + type="resource-ore", + + -- general spawn params + allotment=60, -- how common resource is + spawns_per_region={min=1, max=1}, --number of chunks + richness=15000000, -- resource_ore has only one richness value - resource-liquid has min/max + + size={min=5, max=10}, -- rough radius of area, too high value can produce square shaped areas + min_amount=250000, + + -- resource provided at starting location + -- probability: 1 = 100% chance to be in starting area + -- 0 = resource is not in starting area + starting={richness=5000000, size=5, probability=1}, + } + + config["coal"] = { + type="resource-ore", + + allotment=80, + + spawns_per_region={min=1, max=1}, + size={min=20, max=30}, + richness=300000, + min_amount=5000, + + starting={richness=200000, size=30, probability=1}, + } end \ No newline at end of file diff --git a/rso-mod_2.1.0/resourceconfigs/evolution.lua b/rso-mod_2.2.2/resourceconfigs/evolution.lua similarity index 96% rename from rso-mod_2.1.0/resourceconfigs/evolution.lua rename to rso-mod_2.2.2/resourceconfigs/evolution.lua index c614ec4..2e49e36 100644 --- a/rso-mod_2.1.0/resourceconfigs/evolution.lua +++ b/rso-mod_2.2.2/resourceconfigs/evolution.lua @@ -1,32 +1,32 @@ -function fillEvolutionConfig() - - config["alien-artifacts"] = - { - type = "resource-ore", - allotment = 40, - spawns_per_region = {min=1, max=1}, - richness = 4000, - size = {min=15, max=20}, - min_size = 50, - - starting={richness=1000, size=15, probability=1}, - - multi_resource_chance=0.30, -- absolute value - multi_resource={ - ["iron-ore"] = 2, -- ["resource_name"] = allotment - ["coal"] = 4, - ["stone"] = 4, - } - } - - if config["iron-ore"] and config["iron-ore"].multi_resource then - config["iron-ore"].multi_resource["alien-artifacts"] = 2 - end - if config["coal"] and config["coal"].multi_resource then - config["coal"].multi_resource["alien-artifacts"] = 3 - end - if config["stone"] and config["stone"].multi_resource then - config["stone"].multi_resource["alien-artifacts"] = 3 - end - +function fillEvolutionConfig() + + config["alien-artifacts"] = + { + type = "resource-ore", + allotment = 40, + spawns_per_region = {min=1, max=1}, + richness = 4000, + size = {min=15, max=20}, + min_size = 50, + + starting={richness=1000, size=15, probability=1}, + + multi_resource_chance=0.30, -- absolute value + multi_resource={ + ["iron-ore"] = 2, -- ["resource_name"] = allotment + ["coal"] = 4, + ["stone"] = 4, + } + } + + if config["iron-ore"] and config["iron-ore"].multi_resource then + config["iron-ore"].multi_resource["alien-artifacts"] = 2 + end + if config["coal"] and config["coal"].multi_resource then + config["coal"].multi_resource["alien-artifacts"] = 3 + end + if config["stone"] and config["stone"].multi_resource then + config["stone"].multi_resource["alien-artifacts"] = 3 + end + end \ No newline at end of file diff --git a/rso-mod_2.1.0/resourceconfigs/groundsulfur.lua b/rso-mod_2.2.2/resourceconfigs/groundsulfur.lua similarity index 96% rename from rso-mod_2.1.0/resourceconfigs/groundsulfur.lua rename to rso-mod_2.2.2/resourceconfigs/groundsulfur.lua index 7a68f5b..fd431f1 100644 --- a/rso-mod_2.1.0/resourceconfigs/groundsulfur.lua +++ b/rso-mod_2.2.2/resourceconfigs/groundsulfur.lua @@ -1,24 +1,24 @@ -function fillGroundSulfurConfig() - - config["sulfur"] = { - type = "resource-ore", - allotment = 40, - spawns_per_region = {min=1, max=1}, - richness = 3000, - size = {min=15, max=20}, - } - - if config["iron-ore"] and config["iron-ore"].multi_resource then - config["iron-ore"].multi_resource["sulfur"] = 1 - end - if config["copper-ore"] and config["copper-ore"].multi_resource then - config["copper-ore"].multi_resource["sulfur"] = 1 - end - if config["coal"] and config["coal"].multi_resource then - config["coal"].multi_resource["sulfur"] = 4 - end - if config["crude-oil"] and config["crude-oil"].multi_resource then - config["crude-oil"].multi_resource["sulfur"] = 2 - end - +function fillGroundSulfurConfig() + + config["sulfur"] = { + type = "resource-ore", + allotment = 40, + spawns_per_region = {min=1, max=1}, + richness = 3000, + size = {min=15, max=20}, + } + + if config["iron-ore"] and config["iron-ore"].multi_resource then + config["iron-ore"].multi_resource["sulfur"] = 1 + end + if config["copper-ore"] and config["copper-ore"].multi_resource then + config["copper-ore"].multi_resource["sulfur"] = 1 + end + if config["coal"] and config["coal"].multi_resource then + config["coal"].multi_resource["sulfur"] = 4 + end + if config["crude-oil"] and config["crude-oil"].multi_resource then + config["crude-oil"].multi_resource["sulfur"] = 2 + end + end \ No newline at end of file diff --git a/rso-mod_2.2.2/resourceconfigs/hardcrafting.lua b/rso-mod_2.2.2/resourceconfigs/hardcrafting.lua new file mode 100644 index 0000000..ae0a75a --- /dev/null +++ b/rso-mod_2.2.2/resourceconfigs/hardcrafting.lua @@ -0,0 +1,29 @@ +function fillHardCraftingConfig() + + config["rich-copper-ore"] = { + type="resource-ore", + + allotment=50, + spawns_per_region={min=1, max=1}, + richness=10000, + size={min=10, max=15}, + min_amount=500, + + starting={richness=5000, size=25, probability=1}, + } + + if game.entity_prototypes["rich-iron-ore"] then + config["rich-iron-ore"] = { + type="resource-ore", + + allotment=50, + spawns_per_region={min=1, max=1}, + richness=10000, + size={min=10, max=15}, + min_amount = 500, + + starting={richness=5000, size=25, probability=1}, + } + end + +end \ No newline at end of file diff --git a/rso-mod_2.1.0/resourceconfigs/homeworld.lua b/rso-mod_2.2.2/resourceconfigs/homeworld.lua similarity index 95% rename from rso-mod_2.1.0/resourceconfigs/homeworld.lua rename to rso-mod_2.2.2/resourceconfigs/homeworld.lua index d844be7..ee7e7bf 100644 --- a/rso-mod_2.1.0/resourceconfigs/homeworld.lua +++ b/rso-mod_2.2.2/resourceconfigs/homeworld.lua @@ -1,22 +1,22 @@ -function fillHomeworldConfig() - config["sand-source"] = { - type="resource-ore", - - autoplace_name = "sand", - allotment=50, - spawns_per_region={min=1, max=1}, - richness=11000, - size={min=10, max=20}, - min_amount=250, - - starting={richness=4000, size=15, probability=1}, - - multi_resource_chance=0.30, - multi_resource={ - ["coal"] = 4, - ["crude-oil"] = 2, - ["iron-ore"] = 3, - ['copper-ore'] = 3, - } - } +function fillHomeworldConfig() + config["sand-source"] = { + type="resource-ore", + + autoplace_name = "sand", + allotment=50, + spawns_per_region={min=1, max=1}, + richness=11000, + size={min=10, max=20}, + min_amount=250, + + starting={richness=4000, size=15, probability=1}, + + multi_resource_chance=0.30, + multi_resource={ + ["coal"] = 4, + ["crude-oil"] = 2, + ["iron-ore"] = 3, + ['copper-ore'] = 3, + } + } end \ No newline at end of file diff --git a/rso-mod_2.1.0/resourceconfigs/mainconfig.lua b/rso-mod_2.2.2/resourceconfigs/mainconfig.lua similarity index 96% rename from rso-mod_2.1.0/resourceconfigs/mainconfig.lua rename to rso-mod_2.2.2/resourceconfigs/mainconfig.lua index 88d1db3..3372396 100644 --- a/rso-mod_2.1.0/resourceconfigs/mainconfig.lua +++ b/rso-mod_2.2.2/resourceconfigs/mainconfig.lua @@ -1,173 +1,173 @@ -require("resourceconfigs.vanilla") -- vanilla ore/liquids (no enemies) -require("resourceconfigs.vanilla_enemies") -require("resourceconfigs.roadworks") -require("resourceconfigs.dytech") -require("resourceconfigs.bobores") -require("resourceconfigs.bobenemies") -require("resourceconfigs.peacemod") -require("resourceconfigs.yuoki_industries") -require("resourceconfigs.mopower") -require("resourceconfigs.nucular") -require("resourceconfigs.replicators") -require("resourceconfigs.uraniumpower") -require("resourceconfigs.homeworld") -require("resourceconfigs.groundsulfur") -require("resourceconfigs.evolution") -require("resourceconfigs.replicators") -require("resourceconfigs.darkmatter") -require("resourceconfigs.springwater") -require("resourceconfigs.sulfuricacid") -require("resourceconfigs.naturalgas") -require("resourceconfigs.deepores") -require("resourceconfigs.angelsores") -require("resourceconfigs.hardcrafting") -require("resourceconfigs.5dimores") -require("resourceconfigs.thunderstone") -require("resourceconfigs.reactor") -require("resourceconfigs.narmod") -require("resourceconfigs.alienwall") -require("resourceconfigs.senpais") - - -function loadResourceConfig() - - config={} - - fillVanillaConfig() - - --[[ MODS SUPPORT ]]-- - if not game.entity_prototypes["alien-ore"] or useEnemiesInPeaceMod then -- if the user has peacemod installed he probably doesn't want that RSO spawns them either. remote.interfaces["peacemod"] - if game.entity_prototypes["bob-big-explosive-worm-turret"] and game.entity_prototypes["bob-big-fire-worm-turret"] and game.entity_prototypes["bob-big-poison-worm-turret"] then - fillBobEnemies() - else - fillEnemies() - end - end - - -- Roadworks mod - if game.entity_prototypes["RW_limestone"] then - fillRoadworksConfig() - end - - -- DyTech - -- i moved everything even the checks there, i think it's cleaner this way - fillDytechConfig() - - -- BobOres - if game.active_mods["bobores"] and game.entity_prototypes["rutile-ore"] then - fillBoboresConfig() - elseif game.active_mods["5dim_ores"] then - fill5dimConfig() - end - - -- peace mod - if game.entity_prototypes["alien-ore"] then - fillPeaceConfig() - end - - --yuoki industries mod - if game.entity_prototypes["y-res1"] then - fillYuokiConfig() - end - - --mopower mod - if game.entity_prototypes["uranium-ore"] then - if game.entity_prototypes["steam-turbine"] then - fillNucularConfig() - else - fillMopowerConfig() - end - end - - --replicators mod - if game.entity_prototypes["rare-earth"] then - fillReplicatorsConfig() - end - - --uranium power mod - if game.entity_prototypes["uraninite"] then - fillUraniumpowerConfig() - end - - -- ground sulfur - if game.entity_prototypes["sulfur"] then - fillGroundSulfurConfig() - end - - -- evolution - if game.entity_prototypes["alien-artifacts"] then - fillEvolutionConfig() - end - - -- replicators - if game.entity_prototypes["creatine"] then - fillReplicatorsConfig() - end - - -- homeworld - if game.entity_prototypes["sand-source"] then - fillHomeworldConfig() - end - - -- dark matter replicators - if game.entity_prototypes["tenemut"] then - fillDarkMatterConfig() - end - - -- spring water - if game.entity_prototypes["spring-water"] then - fillSpringWaterConfig() - end - - -- sulfruric acid - if game.entity_prototypes["sulfuric-acid"] then - fillSulfuricAcidConfig() - end - - -- natural gas - if game.entity_prototypes["natural-gas"] then - fillNaturalGasConfig() - end - - -- deep ores - if game.entity_prototypes["deep-copper-ore"] and game.entity_prototypes["deep-iron-ore"] then - fillDeepOresConfig() - end - - -- hard crafting - if game.entity_prototypes["rich-copper-ore"] then - fillHardCraftingConfig() - end - - -- angels ores - if game.entity_prototypes["angels-ore1"] then - fillAngelsOresConfig() - -- remove no longer needed ores - config["copper-ore"] = nil - config["iron-ore"] = nil - config["stone"] = nil - end - - if game.entity_prototypes["monazite-ore"] then - fillThunderStoneConfig() - end - - if game.entity_prototypes["nuclear-ores"] then --- fillReactorConfig() - end - - -- NARMod - if game.entity_prototypes["brine-pool"] then - fillNARModConfig() - end - - if game.entity_prototypes["alien-biomass"] then - fillAlienWallConfig() - end - - if game.active_mods["SenpaisOverhall"] then - fillSenpaisConfig() - end - - return config +require("resourceconfigs.vanilla") -- vanilla ore/liquids (no enemies) +require("resourceconfigs.vanilla_enemies") +require("resourceconfigs.roadworks") +require("resourceconfigs.dytech") +require("resourceconfigs.bobores") +require("resourceconfigs.bobenemies") +require("resourceconfigs.peacemod") +require("resourceconfigs.yuoki_industries") +require("resourceconfigs.mopower") +require("resourceconfigs.nucular") +require("resourceconfigs.replicators") +require("resourceconfigs.uraniumpower") +require("resourceconfigs.homeworld") +require("resourceconfigs.groundsulfur") +require("resourceconfigs.evolution") +require("resourceconfigs.replicators") +require("resourceconfigs.darkmatter") +require("resourceconfigs.springwater") +require("resourceconfigs.sulfuricacid") +require("resourceconfigs.naturalgas") +require("resourceconfigs.deepores") +require("resourceconfigs.angelsores") +require("resourceconfigs.hardcrafting") +require("resourceconfigs.5dimores") +require("resourceconfigs.thunderstone") +require("resourceconfigs.reactor") +require("resourceconfigs.narmod") +require("resourceconfigs.alienwall") +require("resourceconfigs.senpais") + + +function loadResourceConfig() + + config={} + + fillVanillaConfig() + + --[[ MODS SUPPORT ]]-- + if not game.entity_prototypes["alien-ore"] or useEnemiesInPeaceMod then -- if the user has peacemod installed he probably doesn't want that RSO spawns them either. remote.interfaces["peacemod"] + if game.entity_prototypes["bob-big-explosive-worm-turret"] and game.entity_prototypes["bob-big-fire-worm-turret"] and game.entity_prototypes["bob-big-poison-worm-turret"] then + fillBobEnemies() + else + fillEnemies() + end + end + + -- Roadworks mod + if game.entity_prototypes["RW_limestone"] then + fillRoadworksConfig() + end + + -- DyTech + -- i moved everything even the checks there, i think it's cleaner this way + fillDytechConfig() + + -- BobOres + if game.active_mods["bobores"] and game.entity_prototypes["rutile-ore"] then + fillBoboresConfig() + elseif game.active_mods["5dim_ores"] then + fill5dimConfig() + end + + -- peace mod + if game.entity_prototypes["alien-ore"] then + fillPeaceConfig() + end + + --yuoki industries mod + if game.entity_prototypes["y-res1"] then + fillYuokiConfig() + end + + --mopower mod + if game.entity_prototypes["uranium-ore"] then + if game.entity_prototypes["steam-turbine"] then + fillNucularConfig() + else + fillMopowerConfig() + end + end + + --replicators mod + if game.entity_prototypes["rare-earth"] then + fillReplicatorsConfig() + end + + --uranium power mod + if game.entity_prototypes["uraninite"] then + fillUraniumpowerConfig() + end + + -- ground sulfur + if game.entity_prototypes["sulfur"] then + fillGroundSulfurConfig() + end + + -- evolution + if game.entity_prototypes["alien-artifacts"] then + fillEvolutionConfig() + end + + -- replicators + if game.entity_prototypes["creatine"] then + fillReplicatorsConfig() + end + + -- homeworld + if game.entity_prototypes["sand-source"] then + fillHomeworldConfig() + end + + -- dark matter replicators + if game.entity_prototypes["tenemut"] then + fillDarkMatterConfig() + end + + -- spring water + if game.entity_prototypes["spring-water"] then + fillSpringWaterConfig() + end + + -- sulfruric acid + if game.entity_prototypes["sulfuric-acid"] then + fillSulfuricAcidConfig() + end + + -- natural gas + if game.entity_prototypes["natural-gas"] then + fillNaturalGasConfig() + end + + -- deep ores + if game.entity_prototypes["deep-copper-ore"] and game.entity_prototypes["deep-iron-ore"] then + fillDeepOresConfig() + end + + -- hard crafting + if game.entity_prototypes["rich-copper-ore"] then + fillHardCraftingConfig() + end + + -- angels ores + if game.entity_prototypes["angels-ore1"] then + fillAngelsOresConfig() + -- remove no longer needed ores + config["copper-ore"] = nil + config["iron-ore"] = nil + config["stone"] = nil + end + + if game.entity_prototypes["monazite-ore"] then + fillThunderStoneConfig() + end + + if game.entity_prototypes["nuclear-ores"] then +-- fillReactorConfig() + end + + -- NARMod + if game.entity_prototypes["brine-pool"] then + fillNARModConfig() + end + + if game.entity_prototypes["alien-biomass"] then + fillAlienWallConfig() + end + + if game.active_mods["SenpaisOverhall"] then + fillSenpaisConfig() + end + + return config end \ No newline at end of file diff --git a/rso-mod_2.1.0/resourceconfigs/mopower.lua b/rso-mod_2.2.2/resourceconfigs/mopower.lua similarity index 100% rename from rso-mod_2.1.0/resourceconfigs/mopower.lua rename to rso-mod_2.2.2/resourceconfigs/mopower.lua diff --git a/rso-mod_2.1.0/resourceconfigs/narmod.lua b/rso-mod_2.2.2/resourceconfigs/narmod.lua similarity index 95% rename from rso-mod_2.1.0/resourceconfigs/narmod.lua rename to rso-mod_2.2.2/resourceconfigs/narmod.lua index 0048318..2a68f96 100644 --- a/rso-mod_2.1.0/resourceconfigs/narmod.lua +++ b/rso-mod_2.2.2/resourceconfigs/narmod.lua @@ -1,19 +1,19 @@ -function fillNARModConfig() - - config["brine-pool"] = { - type="resource-liquid", - minimum_amount=5000, - allotment=70, - spawns_per_region={min=1, max=2}, - richness={min=5000, max=15000}, -- richness per resource spawn - size={min=1, max=3}, - - starting={richness=7000, size=2, probability=1}, - - multi_resource_chance=0.20, - multi_resource={ - ["coal"] = 4, - } - } - +function fillNARModConfig() + + config["brine-pool"] = { + type="resource-liquid", + minimum_amount=5000, + allotment=70, + spawns_per_region={min=1, max=2}, + richness={min=5000, max=15000}, -- richness per resource spawn + size={min=1, max=3}, + + starting={richness=7000, size=2, probability=1}, + + multi_resource_chance=0.20, + multi_resource={ + ["coal"] = 4, + } + } + end \ No newline at end of file diff --git a/rso-mod_2.1.0/resourceconfigs/naturalgas.lua b/rso-mod_2.2.2/resourceconfigs/naturalgas.lua similarity index 95% rename from rso-mod_2.1.0/resourceconfigs/naturalgas.lua rename to rso-mod_2.2.2/resourceconfigs/naturalgas.lua index c90d47c..94a3fd6 100644 --- a/rso-mod_2.1.0/resourceconfigs/naturalgas.lua +++ b/rso-mod_2.2.2/resourceconfigs/naturalgas.lua @@ -1,14 +1,14 @@ -function fillNaturalGasConfig() - - config["natural-gas"] = { - type="resource-liquid", - minimum_amount=150e6, - allotment=40, - spawns_per_region={min=1, max=1}, - richness={min=125e6, max=175e6}, - size={min=2, max=4}, - - starting={richness=200e6, size=2, probability=0.4}, - } - +function fillNaturalGasConfig() + + config["natural-gas"] = { + type="resource-liquid", + minimum_amount=150e6, + allotment=40, + spawns_per_region={min=1, max=1}, + richness={min=125e6, max=175e6}, + size={min=2, max=4}, + + starting={richness=200e6, size=2, probability=0.4}, + } + end \ No newline at end of file diff --git a/rso-mod_2.1.0/resourceconfigs/nucular.lua b/rso-mod_2.2.2/resourceconfigs/nucular.lua similarity index 100% rename from rso-mod_2.1.0/resourceconfigs/nucular.lua rename to rso-mod_2.2.2/resourceconfigs/nucular.lua diff --git a/rso-mod_2.1.0/resourceconfigs/peacemod.lua b/rso-mod_2.2.2/resourceconfigs/peacemod.lua similarity index 94% rename from rso-mod_2.1.0/resourceconfigs/peacemod.lua rename to rso-mod_2.2.2/resourceconfigs/peacemod.lua index dcb7199..5c8574b 100644 --- a/rso-mod_2.1.0/resourceconfigs/peacemod.lua +++ b/rso-mod_2.2.2/resourceconfigs/peacemod.lua @@ -1,18 +1,18 @@ -function fillPeaceConfig() - - config["alien-ore"] = { - type="resource-ore", - allotment=30, - spawns_per_region={min=1, max=1}, - richness=3000, - size={min=14, max=18}, - min_amount=20, - - multi_resource_chance=0.2, - multi_resource={ - ['copper-ore'] = 1, - ['iron-ore'] = 1, - } - } - +function fillPeaceConfig() + + config["alien-ore"] = { + type="resource-ore", + allotment=30, + spawns_per_region={min=1, max=1}, + richness=3000, + size={min=14, max=18}, + min_amount=20, + + multi_resource_chance=0.2, + multi_resource={ + ['copper-ore'] = 1, + ['iron-ore'] = 1, + } + } + end \ No newline at end of file diff --git a/rso-mod_2.1.0/resourceconfigs/reactor.lua b/rso-mod_2.2.2/resourceconfigs/reactor.lua similarity index 94% rename from rso-mod_2.1.0/resourceconfigs/reactor.lua rename to rso-mod_2.2.2/resourceconfigs/reactor.lua index 39f2046..2fae38e 100644 --- a/rso-mod_2.1.0/resourceconfigs/reactor.lua +++ b/rso-mod_2.2.2/resourceconfigs/reactor.lua @@ -1,29 +1,29 @@ -function fillReactorConfig() - - config["Nature-Gas"] = - { - type="resource-liquid", - minimum_amount=1000, - allotment=40, - spawns_per_region={min=1, max=2}, - richness={min=15000, max=30000}, - size={min=2, max=4}, - - starting={richness=20000, size=2, probability=0.3}, - } - - config["nuclear-ores"] = - { - type="resource-ore", - - allotment=40, - spawns_per_region={min=1, max=1}, - richness=4000, - size={min=10, max=16}, - min_amount = 150, - - starting={richness=5000, size=12, probability=1}, - } - - +function fillReactorConfig() + + config["Nature-Gas"] = + { + type="resource-liquid", + minimum_amount=1000, + allotment=40, + spawns_per_region={min=1, max=2}, + richness={min=15000, max=30000}, + size={min=2, max=4}, + + starting={richness=20000, size=2, probability=0.3}, + } + + config["nuclear-ores"] = + { + type="resource-ore", + + allotment=40, + spawns_per_region={min=1, max=1}, + richness=4000, + size={min=10, max=16}, + min_amount = 150, + + starting={richness=5000, size=12, probability=1}, + } + + end \ No newline at end of file diff --git a/rso-mod_2.1.0/resourceconfigs/replicators.lua b/rso-mod_2.2.2/resourceconfigs/replicators.lua similarity index 95% rename from rso-mod_2.1.0/resourceconfigs/replicators.lua rename to rso-mod_2.2.2/resourceconfigs/replicators.lua index 5f9f5cb..e323b88 100644 --- a/rso-mod_2.1.0/resourceconfigs/replicators.lua +++ b/rso-mod_2.2.2/resourceconfigs/replicators.lua @@ -1,58 +1,58 @@ -function fillReplicatorsConfig() - - if game.entity_prototypes["creatine"] then - config["creatine"] = { - type="resource-liquid", - minimum_amount=5000, - allotment=40, - spawns_per_region={min=1, max=1}, - richness={min=5000, max=20000}, - size={min=1, max=3}, - - starting={richness=20000, size=2, probability=1}, - - multi_resource_chance=0.50, - multi_resource={ - ["crude-oil"] = 2, - ["iron-ore"] = 2, - ['copper-ore'] = 2, - ["coal"] = 2, - ["stone"] = 2, - } - } - - if config["crude-oil"] and config["crude-oil"].multi_resource then - config["crude-oil"].multi_resource["creatine"] = 2 - end - end - - config["rare-earth"] = { - type="resource-ore", - - allotment=40, - - spawns_per_region={min=1, max=1}, - size={min=10, max=16}, - richness=3000, - - starting={richness=1000, size=10, probability=1}, - - multi_resource_chance=0.30, - multi_resource={ - ["iron-ore"] = 2, - ['copper-ore'] = 2, - ["coal"] = 3, - ["stone"] = 1, - } - } - - if game.entity_prototypes["creatine"] then - config["rare-earth"].multi_resource["creatine"] = 2 - end - - config["iron-ore"].multi_resource["rare-earth"] = 2 - config["copper-ore"].multi_resource["rare-earth"] = 2 - config["coal"].multi_resource["rare-earth"] = 2 - config["stone"].multi_resource["rare-earth"] = 2 - +function fillReplicatorsConfig() + + if game.entity_prototypes["creatine"] then + config["creatine"] = { + type="resource-liquid", + minimum_amount=5000, + allotment=40, + spawns_per_region={min=1, max=1}, + richness={min=5000, max=20000}, + size={min=1, max=3}, + + starting={richness=20000, size=2, probability=1}, + + multi_resource_chance=0.50, + multi_resource={ + ["crude-oil"] = 2, + ["iron-ore"] = 2, + ['copper-ore'] = 2, + ["coal"] = 2, + ["stone"] = 2, + } + } + + if config["crude-oil"] and config["crude-oil"].multi_resource then + config["crude-oil"].multi_resource["creatine"] = 2 + end + end + + config["rare-earth"] = { + type="resource-ore", + + allotment=40, + + spawns_per_region={min=1, max=1}, + size={min=10, max=16}, + richness=3000, + + starting={richness=1000, size=10, probability=1}, + + multi_resource_chance=0.30, + multi_resource={ + ["iron-ore"] = 2, + ['copper-ore'] = 2, + ["coal"] = 3, + ["stone"] = 1, + } + } + + if game.entity_prototypes["creatine"] then + config["rare-earth"].multi_resource["creatine"] = 2 + end + + config["iron-ore"].multi_resource["rare-earth"] = 2 + config["copper-ore"].multi_resource["rare-earth"] = 2 + config["coal"].multi_resource["rare-earth"] = 2 + config["stone"].multi_resource["rare-earth"] = 2 + end \ No newline at end of file diff --git a/rso-mod_2.1.0/resourceconfigs/roadworks.lua b/rso-mod_2.2.2/resourceconfigs/roadworks.lua similarity index 96% rename from rso-mod_2.1.0/resourceconfigs/roadworks.lua rename to rso-mod_2.2.2/resourceconfigs/roadworks.lua index 4d67a1f..a8916de 100644 --- a/rso-mod_2.1.0/resourceconfigs/roadworks.lua +++ b/rso-mod_2.2.2/resourceconfigs/roadworks.lua @@ -1,34 +1,34 @@ -function fillRoadworksConfig() - - config["RW_limestone"] = { - type="resource-ore", - - allotment=40, - spawns_per_region={min=1, max=1}, - richness=13000, - size={min=10, max=20}, - min_amount = 100, - - starting={richness=2000, size=10, probability=0.9}, - - multi_resource_chance=0.30, - multi_resource={ - ["coal"] = 2, - ["stone"] = 4, - ["crude-oil"] = 2, - } - } - - if config["stone"] and config["stone"].multi_resource then - config["stone"].multi_resource["RW_limestone"] = 3 - end - if config["iron-ore"] and config["iron-ore"].multi_resource then - config["iron-ore"].multi_resource["RW_limestone"] = 3 - end - if config["copper-ore"] and config["copper-ore"].multi_resource then - config["copper-ore"].multi_resource["RW_limestone"] = 3 - end - if config["coal"] and config["coal"].multi_resource then - config["coal"].multi_resource["RW_limestone"] = 2 - end +function fillRoadworksConfig() + + config["RW_limestone"] = { + type="resource-ore", + + allotment=40, + spawns_per_region={min=1, max=1}, + richness=13000, + size={min=10, max=20}, + min_amount = 100, + + starting={richness=2000, size=10, probability=0.9}, + + multi_resource_chance=0.30, + multi_resource={ + ["coal"] = 2, + ["stone"] = 4, + ["crude-oil"] = 2, + } + } + + if config["stone"] and config["stone"].multi_resource then + config["stone"].multi_resource["RW_limestone"] = 3 + end + if config["iron-ore"] and config["iron-ore"].multi_resource then + config["iron-ore"].multi_resource["RW_limestone"] = 3 + end + if config["copper-ore"] and config["copper-ore"].multi_resource then + config["copper-ore"].multi_resource["RW_limestone"] = 3 + end + if config["coal"] and config["coal"].multi_resource then + config["coal"].multi_resource["RW_limestone"] = 2 + end end \ No newline at end of file diff --git a/rso-mod_2.1.0/resourceconfigs/senpais.lua b/rso-mod_2.2.2/resourceconfigs/senpais.lua similarity index 93% rename from rso-mod_2.1.0/resourceconfigs/senpais.lua rename to rso-mod_2.2.2/resourceconfigs/senpais.lua index 2eda06b..b947bcc 100644 --- a/rso-mod_2.1.0/resourceconfigs/senpais.lua +++ b/rso-mod_2.2.2/resourceconfigs/senpais.lua @@ -1,51 +1,51 @@ -function fillSenpaisConfig() - - config["bavarium"] = - { - type="resource-ore", - - allotment=60, - - spawns_per_region={min=1, max=1}, - size={min=15, max=20}, - richness=13000, - min_amount=500, - - starting={richness=7000, size=15, probability=1}, - - multi_resource_chance=0.30, - multi_resource= - { - ["iron-ore"] = 2, - ["coal"] = 2, - ["stone"] = 2, - } - } - - config["angel-ore"] = - { - type="resource-ore", - - allotment=40, - - spawns_per_region={min=1, max=1}, - size={min=4, max=8}, - richness=100, - - starting={richness=0.1, size=1, probability=1}, - } - - config["devil-ore"] = - { - type="resource-ore", - - allotment=40, - - spawns_per_region={min=1, max=1}, - size={min=4, max=8}, - richness=100, - - starting={richness=0.1, size=1, probability=1}, - } - +function fillSenpaisConfig() + + config["bavarium"] = + { + type="resource-ore", + + allotment=60, + + spawns_per_region={min=1, max=1}, + size={min=15, max=20}, + richness=13000, + min_amount=500, + + starting={richness=7000, size=15, probability=1}, + + multi_resource_chance=0.30, + multi_resource= + { + ["iron-ore"] = 2, + ["coal"] = 2, + ["stone"] = 2, + } + } + + config["angel-ore"] = + { + type="resource-ore", + + allotment=40, + + spawns_per_region={min=1, max=1}, + size={min=4, max=8}, + richness=100, + + starting={richness=0.1, size=1, probability=1}, + } + + config["devil-ore"] = + { + type="resource-ore", + + allotment=40, + + spawns_per_region={min=1, max=1}, + size={min=4, max=8}, + richness=100, + + starting={richness=0.1, size=1, probability=1}, + } + end \ No newline at end of file diff --git a/rso-mod_2.1.0/resourceconfigs/springwater.lua b/rso-mod_2.2.2/resourceconfigs/springwater.lua similarity index 95% rename from rso-mod_2.1.0/resourceconfigs/springwater.lua rename to rso-mod_2.2.2/resourceconfigs/springwater.lua index 5cd1659..23f8550 100644 --- a/rso-mod_2.1.0/resourceconfigs/springwater.lua +++ b/rso-mod_2.2.2/resourceconfigs/springwater.lua @@ -1,17 +1,17 @@ -function fillSpringWaterConfig() - - config["spring-water"] = { - type="resource-liquid", - minimum_amount=75000, - allotment=40, - spawns_per_region={min=1, max=1}, - richness={min=75000, max=150000}, - size={min=2, max=4}, - - multi_resource_chance=0.20, - multi_resource={ - ["crude-oil"] = 2, - } - } - +function fillSpringWaterConfig() + + config["spring-water"] = { + type="resource-liquid", + minimum_amount=75000, + allotment=40, + spawns_per_region={min=1, max=1}, + richness={min=75000, max=150000}, + size={min=2, max=4}, + + multi_resource_chance=0.20, + multi_resource={ + ["crude-oil"] = 2, + } + } + end \ No newline at end of file diff --git a/rso-mod_2.1.0/resourceconfigs/sulfuricacid.lua b/rso-mod_2.2.2/resourceconfigs/sulfuricacid.lua similarity index 95% rename from rso-mod_2.1.0/resourceconfigs/sulfuricacid.lua rename to rso-mod_2.2.2/resourceconfigs/sulfuricacid.lua index 3753c03..0e93125 100644 --- a/rso-mod_2.1.0/resourceconfigs/sulfuricacid.lua +++ b/rso-mod_2.2.2/resourceconfigs/sulfuricacid.lua @@ -1,14 +1,14 @@ -function fillSulfuricAcidConfig() - - config["sulfuric-acid"] = { - type="resource-liquid", - minimum_amount=150e6, - allotment=40, - spawns_per_region={min=1, max=1}, - richness={min=125e6, max=175e6}, - size={min=2, max=4}, - - starting={richness=200e6, size=2, probability=0.4}, - } - +function fillSulfuricAcidConfig() + + config["sulfuric-acid"] = { + type="resource-liquid", + minimum_amount=150e6, + allotment=40, + spawns_per_region={min=1, max=1}, + richness={min=125e6, max=175e6}, + size={min=2, max=4}, + + starting={richness=200e6, size=2, probability=0.4}, + } + end \ No newline at end of file diff --git a/rso-mod_2.1.0/resourceconfigs/thunderstone.lua b/rso-mod_2.2.2/resourceconfigs/thunderstone.lua similarity index 94% rename from rso-mod_2.1.0/resourceconfigs/thunderstone.lua rename to rso-mod_2.2.2/resourceconfigs/thunderstone.lua index 671775e..31a5f2a 100644 --- a/rso-mod_2.1.0/resourceconfigs/thunderstone.lua +++ b/rso-mod_2.2.2/resourceconfigs/thunderstone.lua @@ -1,13 +1,13 @@ -function fillThunderStoneConfig() - - config["monazite-ore"] = - { - type="resource-ore", - - allotment=60, - - spawns_per_region={min=1, max=1}, - size={min=15, max=20}, - richness=11000, - } +function fillThunderStoneConfig() + + config["monazite-ore"] = + { + type="resource-ore", + + allotment=60, + + spawns_per_region={min=1, max=1}, + size={min=15, max=20}, + richness=11000, + } end \ No newline at end of file diff --git a/rso-mod_2.1.0/resourceconfigs/uraniumpower.lua b/rso-mod_2.2.2/resourceconfigs/uraniumpower.lua similarity index 100% rename from rso-mod_2.1.0/resourceconfigs/uraniumpower.lua rename to rso-mod_2.2.2/resourceconfigs/uraniumpower.lua diff --git a/rso-mod_2.1.0/resourceconfigs/vanilla.lua b/rso-mod_2.2.2/resourceconfigs/vanilla.lua similarity index 95% rename from rso-mod_2.1.0/resourceconfigs/vanilla.lua rename to rso-mod_2.2.2/resourceconfigs/vanilla.lua index 8fb5c30..df92d74 100644 --- a/rso-mod_2.1.0/resourceconfigs/vanilla.lua +++ b/rso-mod_2.2.2/resourceconfigs/vanilla.lua @@ -1,102 +1,102 @@ -function fillVanillaConfig() - - config["iron-ore"] = { - type="resource-ore", - - -- general spawn params - allotment=100, -- how common resource is - spawns_per_region={min=1, max=1}, --number of chunks - richness=18000, -- resource_ore has only one richness value - resource-liquid has min/max - - size={min=20, max=30}, -- rough radius of area, too high value can produce square shaped areas - min_amount=350, - - -- resource provided at starting location - -- probability: 1 = 100% chance to be in starting area - -- 0 = resource is not in starting area - starting={richness=8000, size=25, probability=1}, - - multi_resource_chance=0.20, -- absolute value - multi_resource={ - ["iron-ore"] = 2, -- ["resource_name"] = allotment - ['copper-ore'] = 4, - ["coal"] = 4, - ["stone"] = 4, - } - } - - config["copper-ore"] = { - type="resource-ore", - - allotment=100, - spawns_per_region={min=1, max=1}, - richness=16000, - size={min=20, max=30}, - min_amount=350, - - starting={richness=6000, size=25, probability=1}, - - multi_resource_chance=0.20, - multi_resource={ - ["iron-ore"] = 4, - ['copper-ore'] = 2, - ["coal"] = 4, - ["stone"] = 4, - } - } - - config["coal"] = { - type="resource-ore", - - allotment=80, - - spawns_per_region={min=1, max=1}, - size={min=15, max=25}, - richness=13000, - min_amount=350, - - starting={richness=6000, size=20, probability=1}, - - multi_resource_chance=0.30, - multi_resource={ - ["crude-oil"] = 1, - ["iron-ore"] = 3, - ['copper-ore'] = 3, - } - } - - config["stone"] = { - type="resource-ore", - - allotment=60, - spawns_per_region={min=1, max=1}, - richness=11000, - size={min=15, max=20}, - min_amount=250, - - starting={richness=5000, size=16, probability=1}, - - multi_resource_chance=0.30, - multi_resource={ - ["coal"] = 4, - ["iron-ore"] = 3, - ['copper-ore'] = 3, - } - } - - config["crude-oil"] = { - type="resource-liquid", - minimum_amount=10000, - allotment=70, - spawns_per_region={min=1, max=2}, - richness={min=10000, max=30000}, -- richness per resource spawn - size={min=2, max=5}, - - starting={richness=20000, size=2, probability=1}, - - multi_resource_chance=0.20, - multi_resource={ - ["coal"] = 4, - } - } +function fillVanillaConfig() + + config["iron-ore"] = { + type="resource-ore", + + -- general spawn params + allotment=100, -- how common resource is + spawns_per_region={min=1, max=1}, --number of chunks + richness=18000, -- resource_ore has only one richness value - resource-liquid has min/max + + size={min=20, max=30}, -- rough radius of area, too high value can produce square shaped areas + min_amount=350, + + -- resource provided at starting location + -- probability: 1 = 100% chance to be in starting area + -- 0 = resource is not in starting area + starting={richness=8000, size=25, probability=1}, + + multi_resource_chance=0.20, -- absolute value + multi_resource={ + ["iron-ore"] = 2, -- ["resource_name"] = allotment + ['copper-ore'] = 4, + ["coal"] = 4, + ["stone"] = 4, + } + } + + config["copper-ore"] = { + type="resource-ore", + + allotment=100, + spawns_per_region={min=1, max=1}, + richness=16000, + size={min=20, max=30}, + min_amount=350, + + starting={richness=6000, size=25, probability=1}, + + multi_resource_chance=0.20, + multi_resource={ + ["iron-ore"] = 4, + ['copper-ore'] = 2, + ["coal"] = 4, + ["stone"] = 4, + } + } + + config["coal"] = { + type="resource-ore", + + allotment=80, + + spawns_per_region={min=1, max=1}, + size={min=15, max=25}, + richness=13000, + min_amount=350, + + starting={richness=6000, size=20, probability=1}, + + multi_resource_chance=0.30, + multi_resource={ + ["crude-oil"] = 1, + ["iron-ore"] = 3, + ['copper-ore'] = 3, + } + } + + config["stone"] = { + type="resource-ore", + + allotment=60, + spawns_per_region={min=1, max=1}, + richness=11000, + size={min=15, max=20}, + min_amount=250, + + starting={richness=5000, size=16, probability=1}, + + multi_resource_chance=0.30, + multi_resource={ + ["coal"] = 4, + ["iron-ore"] = 3, + ['copper-ore'] = 3, + } + } + + config["crude-oil"] = { + type="resource-liquid", + minimum_amount=10000, + allotment=70, + spawns_per_region={min=1, max=2}, + richness={min=10000, max=30000}, -- richness per resource spawn + size={min=2, max=5}, + + starting={richness=20000, size=2, probability=1}, + + multi_resource_chance=0.20, + multi_resource={ + ["coal"] = 4, + } + } end \ No newline at end of file diff --git a/rso-mod_2.1.0/resourceconfigs/vanilla_enemies.lua b/rso-mod_2.2.2/resourceconfigs/vanilla_enemies.lua similarity index 96% rename from rso-mod_2.1.0/resourceconfigs/vanilla_enemies.lua rename to rso-mod_2.2.2/resourceconfigs/vanilla_enemies.lua index e78f394..66ea471 100644 --- a/rso-mod_2.1.0/resourceconfigs/vanilla_enemies.lua +++ b/rso-mod_2.2.2/resourceconfigs/vanilla_enemies.lua @@ -1,45 +1,45 @@ -function fillEnemies() - - config["enemy-base"] = { - type="entity", - force="enemy", - clear_range = {6, 6}, - - spawns_per_region={min=2,max=4}, - size={min=2,max=4}, - size_per_region_factor=0.4, - richness=1, - - absolute_probability=absolute_enemy_chance, -- chance to spawn in region - probability_distance_factor=1.15, -- relative increase per region - max_probability_distance_factor=3.0, -- absolute value - - along_resource_probability=0.20, -- chance to spawn in resource chunk anyway, absolute value. Can happen once per resource. - - sub_spawn_probability=0.3, -- chance for this entity to spawn anything from sub_spawns table, absolute value - sub_spawn_size={min=1, max=2}, -- in same chunk - sub_spawn_distance_factor=1.04, - sub_spawn_max_distance_factor=3, - sub_spawns={ - ["small-worm-turret"]={ - min_distance=2, - allotment=200, - allotment_distance_factor=0.9, - clear_range = {2, 2}, - }, - ["medium-worm-turret"]={ - min_distance=4, - allotment=100, - allotment_distance_factor=1.05, - clear_range = {2, 2}, - }, - ["big-worm-turret"]={ - min_distance=6, - allotment=100, - allotment_distance_factor=1.15, - clear_range = {2, 2}, - } - } - } - +function fillEnemies() + + config["enemy-base"] = { + type="entity", + force="enemy", + clear_range = {6, 6}, + + spawns_per_region={min=2,max=4}, + size={min=2,max=4}, + size_per_region_factor=0.4, + richness=1, + + absolute_probability=absolute_enemy_chance, -- chance to spawn in region + probability_distance_factor=1.15, -- relative increase per region + max_probability_distance_factor=3.0, -- absolute value + + along_resource_probability=0.20, -- chance to spawn in resource chunk anyway, absolute value. Can happen once per resource. + + sub_spawn_probability=0.3, -- chance for this entity to spawn anything from sub_spawns table, absolute value + sub_spawn_size={min=1, max=2}, -- in same chunk + sub_spawn_distance_factor=1.04, + sub_spawn_max_distance_factor=3, + sub_spawns={ + ["small-worm-turret"]={ + min_distance=2, + allotment=200, + allotment_distance_factor=0.9, + clear_range = {2, 2}, + }, + ["medium-worm-turret"]={ + min_distance=4, + allotment=100, + allotment_distance_factor=1.05, + clear_range = {2, 2}, + }, + ["big-worm-turret"]={ + min_distance=6, + allotment=100, + allotment_distance_factor=1.15, + clear_range = {2, 2}, + } + } + } + end \ No newline at end of file diff --git a/rso-mod_2.1.0/resourceconfigs/yuoki_industries.lua b/rso-mod_2.2.2/resourceconfigs/yuoki_industries.lua similarity index 95% rename from rso-mod_2.1.0/resourceconfigs/yuoki_industries.lua rename to rso-mod_2.2.2/resourceconfigs/yuoki_industries.lua index 906a1b0..d2e8c0b 100644 --- a/rso-mod_2.1.0/resourceconfigs/yuoki_industries.lua +++ b/rso-mod_2.2.2/resourceconfigs/yuoki_industries.lua @@ -1,24 +1,24 @@ -function fillYuokiConfig() - - config["y-res1"] = { - type="resource-ore", - allotment=50, - spawns_per_region={min=1, max=1}, - richness=9000, - size={min=14, max=20}, - min_size=150, - - starting={richness=2000, size=15, probability=1}, - } - - config["y-res2"] = { - type="resource-ore", - allotment=50, - spawns_per_region={min=1, max=1}, - richness=8000, - size={min=14, max=20}, - min_size=150, - - starting={richness=2000, size=15, probability=1}, - } +function fillYuokiConfig() + + config["y-res1"] = { + type="resource-ore", + allotment=50, + spawns_per_region={min=1, max=1}, + richness=9000, + size={min=14, max=20}, + min_size=150, + + starting={richness=2000, size=15, probability=1}, + } + + config["y-res2"] = { + type="resource-ore", + allotment=50, + spawns_per_region={min=1, max=1}, + richness=8000, + size={min=14, max=20}, + min_size=150, + + starting={richness=2000, size=15, probability=1}, + } end \ No newline at end of file