commit 43086ea1ebb9683dfd226444431d9c8fc05ffa2f Author: Paul Date: Sun Jul 25 17:33:55 2021 +0200 init diff --git a/bk_sprites.lua b/bk_sprites.lua new file mode 100644 index 0000000..983699e --- /dev/null +++ b/bk_sprites.lua @@ -0,0 +1,63 @@ +local function sprite(name) + return '__248k__/ressources/booktorio/bk_sprite_'..name +end + +data:extend( +{ + { + type = "sprite", + name = "bk_sprite_1", + filename = sprite('1.png'), + width = 1117, + height = 948, + scale = 0.5 + }, + { + type = "sprite", + name = "bk_sprite_2", + filename = sprite('2.png'), + width = 1044, + height = 826, + scale = 0.5 + }, + { + type = "sprite", + name = "bk_sprite_3", + filename = sprite('3.png'), + width = 988, + height = 696, + scale = 0.9 + }, + { + type = "sprite", + name = "bk_sprite_4", + filename = '__248k__/ressources/fusion/fu_fusor/fu_fusor_entity_animation.png', + width = 512*2, + height = 512*2, + scale = 0.4 + }, + { + type = "sprite", + name = "bk_sprite_5", + filename = '__248k__/ressources/fusion/fu_boiler/fu_boiler_entity_animation.png', + width = 512, + height = 512, + scale = 0.7 + }, + { + type = "sprite", + name = "bk_sprite_6", + filename = sprite('6.png'), + width = 1190, + height = 1020, + scale = 0.7 + }, + { + type = "sprite", + name = "bk_sprite_7", + filename = sprite('7.png'), + width = 1292, + height = 627, + scale = 0.7 + } +}) diff --git a/changelog.txt b/changelog.txt new file mode 100644 index 0000000..b518e54 --- /dev/null +++ b/changelog.txt @@ -0,0 +1,395 @@ +--------------------------------------------------------------------------------------------------- +Version: 0.6.4 +Date: 14.7.2021 + Changes: + - Portable nuclear reactor is now cheaper +--------------------------------------------------------------------------------------------------- +Version: 0.6.3 +Date: 13.7.2021 + Bugfixes: + - fixed white hole machine bounding box +--------------------------------------------------------------------------------------------------- +Version: 0.6.2 +Date: 12.7.2021 + Features: + - added fission stage shield equipment + - added bug zapper discharge equipment +--------------------------------------------------------------------------------------------------- +Version: 0.6.1 +Date: 11.7.2021 + Bugfixes: + - fixed a bug caused by non-stackeable items +--------------------------------------------------------------------------------------------------- +Version: 0.6.0 +Date: 10.7.2021 + Features: + - added white hole generator + - added up to 248k elements + - added S-Lab and science packs +--------------------------------------------------------------------------------------------------- +Version: 0.5.3 +Date: 16.6.2021 + Features: + - added tank to kerosene producing + - added recipe for building nuclear bombs from plutonium +--------------------------------------------------------------------------------------------------- +Version: 0.5.2 +Date: 29.5.2021 + Changes: + - adjusted water pressurizer energy input +--------------------------------------------------------------------------------------------------- +Version: 0.5.1 +Date: 27.5.2021 + Bugfixes: + - fixed KI migration bug +--------------------------------------------------------------------------------------------------- +Version: 0.5.0 +Date: 27.5.2021 + Features: + - added black hole generator + - added Informatron support + Changes: + - changed pollution and production values for modules + - changed kerosene burner output + Bugfixes: + - fixed a bug where KI amplifier did not update properly +--------------------------------------------------------------------------------------------------- +Version: 0.4.10 +Date: 12.5.2021 + Bugfixes: + - fixed old KI beacon crash on mine +--------------------------------------------------------------------------------------------------- +Version: 0.4.9 +Date: 12.5.2021 + Features: + - updated nearly all tech/item icons + - increased stack sizes for energy crystals + - added matter charger, stabilizer, crushed exotic matter + - added Black hole gnerator [WIP, disabled] + - updated Krastorio 2 integration + Bugfixes: + - core slaves are no longer destructible +--------------------------------------------------------------------------------------------------- +Version: 0.4.8 +Date: 12.5.2021 + Bugfixes: + - fixed migration bug: handling already reinited KI buildings + - fixed bug with max rate calculator: cursor stack being invalid for read +--------------------------------------------------------------------------------------------------- +Version: 0.4.7 +Date: 12.5.2021 + Features: + - added first part of SE compatibility [WIP] + Bugfixes: + - fixed migration bug, which caused to reinit KI buildings +--------------------------------------------------------------------------------------------------- +Version: 0.4.6 +Date: 11.5.2021 + Features: + - added another magnet train + - added crystal growth facility +--------------------------------------------------------------------------------------------------- +Version: 0.4.5 +Date: 9.5.2021 + Bugfixes: + - fixed migration error +--------------------------------------------------------------------------------------------------- +Version: 0.4.4 +Date: 8.5.2021 + Features: + - reworked KI mechanic [NOTE: old KI link setups will be reseted to channel 1] + Bugfixes: + - fixed lang +--------------------------------------------------------------------------------------------------- +Version: 0.4.3 +Date: 5.3.2021 + Bugfixes: + - fixed a bug caused by biters +--------------------------------------------------------------------------------------------------- +Version: 0.4.2 +Date: 4.3.2021 + Features: + - added more support for Ind2 WIP + Bugfixes: + - fixed inputs for KI2 and KI3 machines +--------------------------------------------------------------------------------------------------- +Version: 0.4.1 +Date: 4.3.2021 + Features: + - added custom description for KI linker +--------------------------------------------------------------------------------------------------- +Version: 0.4.0 +Date: 4.3.2021 + Features: + - added KI2 and KI3 core + - added KI2 and KI3 beacons + - added KI2 and KI3 machines + - added KI2 and KI3 tech tree + - adjusted booktorio wiki and some item descriptions + - adjusted sprites for Core fluids +--------------------------------------------------------------------------------------------------- +Version: 0.3.20 +Date: 25.2.2021 + Features: + - adding compatibility between ind2 and 248k, WIP + Bugfixes: + - fixed missing lang key +--------------------------------------------------------------------------------------------------- +Version: 0.3.19 +Date: 23.2.2021 + Features: + - added new sprites for fusion stage: exchanger and thermochemical seperator + - added new sprites for exotic stage: crafter + Bugfixes: + - fixes ingame changelog file +--------------------------------------------------------------------------------------------------- +Version: 0.3.18 +Date: 21.2.2021 + Features: + - added new sprites for fusion stage: stelerator, burner, fusor and activator +--------------------------------------------------------------------------------------------------- +Version: 0.3.17 +Date: 21.2.2021 + Features: + - added new sprites for fission stage: reactor, roboports, charger, crafter and crusher + Bugfixes: + - added Migrations for new recipes +--------------------------------------------------------------------------------------------------- +Version: 0.3.16 +Date: 20.2.2021 + Features: + - added remainding textures for stage 1 + - Kerosene burner now generates pollution +--------------------------------------------------------------------------------------------------- +Version: 0.3.15 +Date: 19.2.2021 + Features: + - added tanker wagon for em suspension train + - updated textures for water pressurizer, water turbine, burner generator. more graphic updates will follow soon +--------------------------------------------------------------------------------------------------- +Version: 0.3.14 +Date: 8.1.2021 + Features: + - buffed gauss modules + - added koaverx for matter + - updated gr train texture +--------------------------------------------------------------------------------------------------- +Version: 0.3.13 +Date: 29.12.2020 + Features: + - Portable train reactor now usable in K2 +--------------------------------------------------------------------------------------------------- +Version: 0.3.12 +Date: 28.12.2020 + Bugfixes: + - fixed Booktorio wiki + Changes: + - changed lang keys for aluminum (AE) to BE + - fixed stuff for sandros fixes + - changed ingredients of last recipe +--------------------------------------------------------------------------------------------------- +Version: 0.3.11 +Date: 19.12.2020 + Features: + - modified krastorio endgame recipes (config) + - relocated recipe from 0.3.10 +--------------------------------------------------------------------------------------------------- +Version: 0.3.10 +Date: 16.12.2020 + Features: + - added recipe for petroleum usage +--------------------------------------------------------------------------------------------------- +Version: 0.3.9 +Date: 06.12.2020 + Features: + - added krastorio 2 sprite for tech card - thanks to romner_set + Bugfixes: + - fixed krastorio 2 bug with rfp +--------------------------------------------------------------------------------------------------- +Version: 0.3.8 +Date: 06.12.2020 + Bugfixes: + - fixed sprite bug +--------------------------------------------------------------------------------------------------- +Version: 0.3.7 +Date: 05.12.2020 + Features: + - updated to factorio version 1.1 + - shifted some dependencies (booktorio is now no longer required) + - added support for krastorio 2 +--------------------------------------------------------------------------------------------------- +Version: 0.3.6 +Date: 29.11.2020 + Features: + - added fusion train, wagon + tech +--------------------------------------------------------------------------------------------------- +Version: 0.3.5 +Date: 25.11.2020 + Features: + - added modules 1 to 3 for 248k recipes + - added universal modules 4 to 6 +--------------------------------------------------------------------------------------------------- +Version: 0.3.4 +Date: 23.11.2020 + Bugfixes: + - adressed fluid temperature issues +--------------------------------------------------------------------------------------------------- +Version: 0.3.3 +Date: 20.11.2020 + Features: + - added booktorio ingame wiki +--------------------------------------------------------------------------------------------------- +Version: 0.3.2 +Date: 19.11.2020 + Features: + - added steel and wheels recipes for star engine +--------------------------------------------------------------------------------------------------- +Version: 0.3.1 +Date: 19.11.2020 + Features: + - added exotic matter usage + - added super crafting machine + - added fusion cell +--------------------------------------------------------------------------------------------------- +Version: 0.2.12 +Date: 18.11.2020 + Features: + - added new science pack, and exotic matter with space probes +--------------------------------------------------------------------------------------------------- +Version: 0.2.11 +Date: 17.11.2020 + Features: + - added star engine techs: copper, sulfur, lithium, uranium +--------------------------------------------------------------------------------------------------- +Version: 0.2.10 +Date: 15.11.2020 + Features: + - added star engine: core, cooler and heating units + - added new hydrogen refining techs +--------------------------------------------------------------------------------------------------- +Version: 0.2.9 +Date: 9.11.2020 + Changes: + - added dependency for extractor inserter, to get used up fuel cells from machines +--------------------------------------------------------------------------------------------------- +Version: 0.2.8 +Date: 9.11.2020 + Changes: + - Fixed fluid inputs for el_pressurizer +--------------------------------------------------------------------------------------------------- +Version: 0.2.7 +Date: 8.11.2020 + Changes: + - Fixed fusor inputs, again +--------------------------------------------------------------------------------------------------- +Version: 0.2.6 +Date: 7.11.2020 + Changes: + - Fixed kerosene burner texture +--------------------------------------------------------------------------------------------------- +Version: 0.2.5 +Date: 6.11.2020 + Features: + - added new fusion reactor + - added advanced isotopes + - removed fusion reactors module slots + - Lead cooling cycle now available in fu_energy_tech + - updated liquid lead exchanger sprite + Changes: + - changed tech tree graphics +--------------------------------------------------------------------------------------------------- +Version: 0.2.4 +Date: 1.11.2020 + Features: + - added Tesla and Hertz bots + Changes: + - robo charger now consumes less energy +--------------------------------------------------------------------------------------------------- +Version: 0.2.3 +Date: 27.10.2020 + Changes: + - fixed bug with fusor inputs, input slots are now accessible +--------------------------------------------------------------------------------------------------- +Version: 0.2.2 +Date: 23.10.2020 + Changes: + - buffed kerosene producing, now each recipe has a bit increased output + - nerferd uranium power + - less time to produce diesle fuel + - buffed fusion, now consumes less isotopes + - buffed fusor output + - increased stack size of fusor tech +--------------------------------------------------------------------------------------------------- +Version: 0.2.1 +Date: 22.10.2020 + Features: + - added Stellarator fusion reactor + - added lead + - added liquid lead and cooling cycle + Changes: + - buffed lithium-6 Isotope producing to make it viable for fusion and changed tech signs ratios to reflect lithium changes +--------------------------------------------------------------------------------------------------- +Version: 0.2.0 +Date: 21.10.2020 + Features: + - added Fusion stage + - added Seperator, Burner, basic Isotopes + - added Fusor, fusion tech signs +--------------------------------------------------------------------------------------------------- +Version: 0.1.9 +Date: 19.10.2020 + Features: + - added roboport and robo charger + - added kerosene engine for burning kerosene + - little visual update for the train + - config for blueprinting KI1 beacons, may get some more attention in the future + Changes: + - decreased overall crafting time for machines (inventory) but also for kerosene producing +--------------------------------------------------------------------------------------------------- +Version: 0.1.8 +Date: 16.10.2020 + Features: + - added sound for machines and trains +--------------------------------------------------------------------------------------------------- +Version: 0.1.7 +Date: 16.10.2020 + Changes: + - visual update for KI1 beacon +--------------------------------------------------------------------------------------------------- +Version: 0.1.6 +Date: 15.10.2020 + Changes: + - buffed thorium fuel cycle + - nerfed uranium fuel cycle + - changed energy crystal recipe ratios + - increased science cost of some techs +--------------------------------------------------------------------------------------------------- +Version: 0.1.5 +Date: 14.10.2020 + Features: + - Added crushing + - Added new line of energy crstals + - Added new train fuel + - Added new materials: industrial steel + Changes: + - changed el_energy_crystal stack size to 100 +--------------------------------------------------------------------------------------------------- +Version: 0.1.4 +Date: 12.10.2020 + Features: + - Added nuclear miner + - Added train and player equipment: nuclear reactor + - new recipe for low density structures + Changes: + - balanced thorium fuel cycle +--------------------------------------------------------------------------------------------------- +Version: 0.1.3 +Date: 11.10.2020 + Features: + - Added nuclear crafting machine + Changes: + - changed technology for meterials: now includes new crafting machine + - nerfed basic nuclear fuel + + + diff --git a/control.lua b/control.lua new file mode 100644 index 0000000..b7346eb --- /dev/null +++ b/control.lua @@ -0,0 +1,166 @@ +require('scripts/electronic/el_ki_script') +require('scripts/bk_main') +require('scripts/gravitation/gr_black_hole_script') +local gui = require('scripts/gui') +local gr_gui = require('scripts/gravitation/gui') + +--informatron +require('scripts/informatron/inf_main') + +--=================================================================================================================== + +--init + +script.on_init( + function(e) + el_ki_init(e) + gr_black_hole_init(e) + + if game.active_mods["Booktorio"] then + registerThread_248k() + end + + for i,v in pairs(game.players) do + gui.add_top_gui(game.players[i]) + end + end +) + +--=================================================================================================================== + +--on player creation + +script.on_event({ + defines.events.on_player_created + }, + function(e) + gui.add_top_gui(game.get_player(e["player_index"])) + end +) + +--=================================================================================================================== + +--on built + +script.on_event({ + defines.events.on_built_entity, + defines.events.on_robot_built_entity, + defines.events.script_raised_built, + defines.events.script_raised_revive, + --defines.events.on_entity_cloned + }, + function(e) + el_ki_on_built(e) + gr_black_hole_on_built(e) + end +) + +--=================================================================================================================== + +--on remove + +script.on_event({ + defines.events.on_entity_died, + defines.events.on_pre_player_mined_item, + defines.events.on_robot_pre_mined, + defines.events.script_raised_destroy + }, + function(e) + el_ki_on_remove(e) + gr_black_hole_on_remove(e) + end +) + +--=================================================================================================================== + +--on tick + +script.on_nth_tick(60, + function(e) + el_ki_buffer1_working() + el_ki_buffer1_update() + + el_ki_buffer2_working() + el_ki_buffer2_update() + + el_ki_core_working() + el_ki_core_update() + + el_ki_supported_adder() + + if global.ki.dirty then + --game.print("f") + el_ki_beacon_update() + gui.update_main() + global.ki.dirty = false + end + + if global.black_hole.dirty then + gr_gui.update_main() + global.black_hole.dirty = false + end + gr_gui.update_main() + end + +) + +script.on_nth_tick(30, + function(e) + black_hole_base_update() + end +) +--=================================================================================================================== + +script.on_event({ + defines.events.on_gui_click, + defines.events.on_gui_text_changed + }, + function(e) + gui.on_change(e) + gr_gui.on_change(e) + end +) + +script.on_event({ + defines.events.on_player_selected_area + }, + gui.on_selected +) + +script.on_event({ + defines.events.on_gui_opened, + defines.events.on_gui_closed + }, + function(e) + if e["entity"] then + if e["entity"].name == "el_ki_core_entity" then + gui.add_core_gui(e,false) + end + + if e["entity"].name == "fi_ki_core_entity" then + gui.add_buffer1_gui(e,false) + end + + if e["entity"].name == "fu_ki_core_entity" then + gui.add_buffer2_gui(e,false) + end + + if e["entity"].name == "gr_black_hole_base_entity" then + gr_gui.add_black_hole_gui(e,false) + end + end + end +) + +--=================================================================================================================== + +--config change + +script.on_configuration_changed( + function() + if game.active_mods["Booktorio"] then + registerThread_248k() + end + end +) + diff --git a/data-final-fixes.lua b/data-final-fixes.lua new file mode 100644 index 0000000..d293d3f --- /dev/null +++ b/data-final-fixes.lua @@ -0,0 +1,18 @@ +--insert tech +if data.raw.lab['lab'] then + table.insert(data.raw.lab['lab'].inputs, 'fu_space_probe_science_item') + table.insert(data.raw.lab['lab'].inputs, 'fi_ki_science') + table.insert(data.raw.lab['lab'].inputs, 'fu_ki_science') +end +--krastorio2 +if mods["Krastorio2"] then + require('scripts/krastorio2/data-final-fixes') +end +--ind2 +if mods["IndustrialRevolution"] then + require('scripts/ind2/data-final-fixes') +end +--SE +if mods["space-exploration"] then + require('scripts/SE/data-final-fixes') +end diff --git a/data.lua b/data.lua new file mode 100644 index 0000000..35025ba --- /dev/null +++ b/data.lua @@ -0,0 +1,100 @@ +require('prototypes/electronic/el_solar') +require('prototypes/electronic/el_tank') +require('prototypes/electronic/el_water_generator') +require('prototypes/electronic/el_pressurizer') +require('prototypes/electronic/el_burner') +require('prototypes/electronic/el_aluminum') +require('prototypes/electronic/el_lithium') +require('prototypes/electronic/el_ki/el_ki_beacon') +require('prototypes/electronic/el_ki/el_ki_linker') +require('prototypes/electronic/el_ki/el_ki_memory') +require('prototypes/electronic/el_ki/el_ki_cpu') +require('prototypes/electronic/el_ki/el_ki_core') +require('prototypes/electronic/el_ki/fi_ki_circuit') +require('prototypes/electronic/el_ki/fu_ki_circuit') +require('prototypes/electronic/el_diesel_train') +require('prototypes/electronic/el_train_fuel') +require('prototypes/electronic/el_train_equipment') +require('prototypes/electronic/el_energy_crystal') + +require('prototypes/fission/fi_crafter') +require('prototypes/fission/fi_miner') +require('prototypes/fission/fi_fuel') +require('prototypes/fission/fi_solid_reactor') +require('prototypes/fission/fi_compound_material') +require('prototypes/fission/fi_materials') +require('prototypes/fission/fi_equipment') +require('prototypes/fission/fi_crusher') +require('prototypes/fission/fi_crushed') +require('prototypes/fission/fi_energy_crystal') +require('prototypes/fission/fi_robo') +require('prototypes/fission/fi_modules') + +require('prototypes/fusion/fu_fusor') +require('prototypes/fusion/fu_boiler') +require('prototypes/fusion/fu_burner') +require('prototypes/fusion/fu_reactor') +require('prototypes/fusion/fu_lead') +require('prototypes/fusion/fu_exchanger') +require('prototypes/fusion/fu_robo') +require('prototypes/fusion/fu_activator') +require('prototypes/fusion/fu_star_engine/fu_star_engine_core') +require('prototypes/fusion/fu_star_engine/fu_star_engine_cooler') +require('prototypes/fusion/fu_star_engine/fu_star_engine_cooler_up') +--require('prototypes/fusion/fu_star_engine/fu_star_engine_caster') +require('prototypes/fusion/fu_star_engine/fu_star_engine_heater') +require('prototypes/fusion/fu_star_engine/fu_star_engine_heater_left') +require('prototypes/fusion/fu_space_probe') + +require('prototypes/gravitation/gr_crafter') +require('prototypes/gravitation/gr_materials') +require('prototypes/gravitation/gr_train') +require('prototypes/gravitation/gr_cooker') +require('prototypes/gravitation/gr_charger') +require('prototypes/gravitation/gr_black_hole') +require('prototypes/gravitation/gr_white_hole') +require('prototypes/gravitation/gr_lab') + +require('prototypes/248k_fluids') +require('prototypes/248k_elements') + +require('prototypes/248k_subgroups') + +require('prototypes/248k_techs') +require('prototypes/el_recipes') +require('prototypes/fi_recipes') +require('prototypes/fu_recipes') +require('prototypes/gr_recipes') + +--booktorio +if mods["Booktorio"] then + require('bk_sprites') +end +--informatron +if mods["informatron"] then + require('bk_sprites') + require('scripts/informatron/inf_sprites') +end +--SE +if mods["space-exploration"] then + require('scripts/SE/data') +end + +require('scripts/gravitation/gr_make_white_hole_recipes') + + +data:extend({ + { + type = "sprite", + name = "sprite_248kmainbutton", + filename = "__248k__/ressources/groups/gr_group_icon.png", + priority = "extra-high", + width = 64, + height = 64, + scale = 1, + } +}) + +if data.raw.technology["atomic-bomb"] then + table.insert(data.raw.technology["atomic-bomb"].effects, {type ="unlock-recipe", recipe ="fi_atomic_bomb_recipe"}) +end diff --git a/info.json b/info.json new file mode 100644 index 0000000..ac24ce9 --- /dev/null +++ b/info.json @@ -0,0 +1,19 @@ +{ + "name": "248k", + "version": "0.6.3", + "title": "248k Mod", + "author": "PreLeyZero", + "factorio_version": "1.1", + "description": "Advance through 4 stages of tech. Start with simple machines and work your way through nuclear fission and fusion up to black and white holes, in order to tame the 248k Element. This mod is designed to be playable in already existing worlds since it changes nothing on world generation or vanilla itself. Does include a booktorio/Informatron ingame wiki!", + "dependencies": [ + "base >= 1.0.0", + "Squeak Through", + "?BurntExtractor", + "?Booktorio", + "?informatron", + "?FluidMustFlow", + "?Krastorio2", + "?IndustrialRevolution", + "?space-exploration" + ] +} \ No newline at end of file diff --git a/locale/en/lang_en.cfg b/locale/en/lang_en.cfg new file mode 100644 index 0000000..01b82bb --- /dev/null +++ b/locale/en/lang_en.cfg @@ -0,0 +1,500 @@ +#item-groups +[item-group-name] +el_item_group=Electronics Stage +fi_item_group=Fission Stage +fu_item_group=Fusion Stage +fu_star_engine_group=Star engine recipes +gr_item_group=Exotic stage + +#items +[item-name] +el_solar_item=Solar Panel 2.0 +el_burner_item=Burner generator +el_aluminum_item=Aluminium +el_aluminum_ore_item=Aluminium ore +el_lithium_item=Lithium +el_lithium_ore_item=Lithium ore +el_lithium_battery=Lithium battery +el_train_fuel_diesel_item=Diesel fuel unit +el_train_fuel_diesel_energized_item=Energized diesel fuel unit +el_energy_crystal_item=Mysterious energy crystal +el_ki_linker=KI1 linker +fi_ki_science=KI2 tech +fu_ki_science=KI3 tech +el_ki_selction_tool=KI selctor + +fi_uranium233_item=Uranium-233 +fi_plutonium239_item=Plutonium-239 +fi_thorium232_item=Thorium-232 +fi_compound_material_item=Compound Material +fi_basic_fuel_item=Uranium-235 fuel rods +fi_basic_thorium_fuel_item=Thorium-232 fuel rods +fi_advanced_fuel_item=Mox fuel rods +fi_advanced_thorium_fuel_item=Uranium-233 fuel rods +fi_pure_fuel_item=High energy Mox fuel rods +fi_used_basic_fuel_item=Consumed Uranium-235 fuel rods +fi_used_basic_thorium_fuel_item=Consumed Thorium-232 fuel rods +fi_used_advanced_fuel_item=Consumed Mox fuel rods +fi_used_advanced_thorium_fuel_item=Consumed Uranium-233 fuel rods +fi_used_pure_fuel_item=Consumed high energy Mox fuel rods +fi_energy_crystal_item=Artificial energy crystal +fi_catalyst_crystal_item=Crystal catalyst +fi_base_crystal_item=Energy crystal matrix +fi_crushed_crystal_item=Crushed energy crystal +fi_crushed_iron_item=Crushed iron +fi_crushed_copper_item=Crushed copper +fi_crushed_lithium_item=Crushed lithium +fi_crushed_aluminum_item=Crushed aluminium +fi_crushed_coal_item=Crushed coal +fi_industrial_steel_blend_item=Steel blend +fi_industrial_steel_item=Industrial Steel +fi_fuel_train_crystal_item=Super energized fuel unit +fi_modules_base_item=Module frame +fi_modules_core_item=Module core +fi_modules_productivity_1_item=Stokes Module "1.Art" +fi_modules_productivity_2_item=Stokes Module "2.Art" +fi_modules_productivity_3_item=Stokes Module "3.Art" +fi_modules_productivity_4_item=Gauss Module "4.Art" +fi_modules_productivity_5_item=Gauss Module "5.Art" +fi_modules_productivity_6_item=Gauss Module "6.Art" + + + +fu_tech_sign_item=Fusion tech +fu_lead_ore_item=Lead ore +fu_lead_item=Lead +fu_crushed_lead_item=Crushed lead +fu_space_probe_sputnik_item='Sputnik' satellite +fu_space_probe_probe_item=Space probe +fu_space_probe_deep_probe_item=Deep space probe +fu_space_probe_data_card_1_item=Basic space data card +fu_space_probe_data_card_2_item=Compact space data card +fu_space_probe_data_card_3_item=Deep space data card +fu_space_probe_up_matter_item=Structured exotic matter(up) +fu_space_probe_down_matter_item=Structured exotic matter(down) +fu_space_probe_ore_item=Deep space ore +fu_space_probe_science_item=Exotic science pack + +gr_materials_fusion_cell_item=Compact fusion cell +gr_materials_stack_down_item=Combined matter (down) +gr_materials_stack_up_item=Combined matter (up) +gr_materials_cooked_crystal_item=Freshly grown crystal +gr_materials_refined_crystal_item=Freshly refined crystal +gr_materials_crushed_exotic_item=Crushed exotic matter +gr_materials_stabilizer_item=Exotic matter stabilizer + + +gr_materials_red_item=3,6k element +gr_materials_red_pack_item=Red pack +gr_materials_red_data_item=Red data + +gr_materials_green_item=7,2k element +gr_materials_green_pack_item=Green pack +gr_materials_green_data_item=Green data + +gr_materials_blue_item=15,5k element +gr_materials_blue_pack_item=Blue pack +gr_materials_blue_data_item=Blue data + +gr_materials_purple_item=31k element +gr_materials_purple_pack_item=Purple pack +gr_materials_purple_data_item=Purple data + +gr_materials_yellow_item=62k element +gr_materials_yellow_pack_item=Yellow pack +gr_materials_yellow_data_item=Yellow data + +gr_materials_grey_item=124k element +gr_materials_grey_pack_item=Black pack +gr_materials_grey_data_item=Black data + +gr_materials_white_item=248k element +gr_materials_white_pack_item=White pack +gr_materials_white_data_item=White data + +gr_materials_data_item=Deep data +gr_materials_stacked_data_item=Stacked deep data + +gr_materials_charge_remote=Ultimate bug zapper remote + + + + +#fluid +[fluid-name] +el_pressurized_water=Pressurized Water +el_kerosene=Kerosene +el_acidic_water=Acidic water +el_desulfurized_kerosene=Desulfurized kerosene +el_ki_memory_fluid=KI1 memory +el_ki_cpu_fluid=KI1 computing power + +fi_crystal_fluid=Crystal matrix (liquid) + +fu_hydrogen=Hydrogen +fu_oxygen=Oxygen +fu_lead_fluid=Liquid lead +fu_protium=Protium-H[1] +fu_deuterium=Deuterium-H[2] +fu_tritium=Tritium-H[3] +fu_lithium_6=Lithium-Li[6] +fu_helium_3=Helium-He[3] +fu_helium_4=Helium-He[4] +fu_iron=Iron-Fe[56] + +fu_protium_heated=Heated protium-H[1] +fu_iron_heated=Heated iron-Fe[56] +fu_copper=Copper-Cu[63] +fu_copper_heated=Heated copper-Cu[63] +fu_lithium_7=Lithium-Li[7] +fu_lithium_7_heated=Heated lithium-Li[7] +fu_sulfur=Sulfur-S[32] +fu_sulfur_heated=Heated sulfur-S[32] +fu_uranium_238=Uranium-U[238] +fu_uranium_238_heated=Heated uranium-U[238] +fu_uranium_235=Uranium-U[235] +fu_uranium_235_heated=Heated uranium-U[235] + +fi_ki_circuit_fluid=KI2 energy +fu_ki_circuit_fluid=KI3 energy + + +#item description +[item-description] +el_solar_item=Made with some knowledge. +el_burner_item=A compact burner generator. +el_energy_crystal_item=This crystal is made of a unknown substance. It radiates a little bit of energy, but what could it be used for? + +fi_solid_reactor_item=A water moderated nuclear fission reactor capable of producing large amounts of heat. The consumed fuel rods can be refined and used again! +fi_crafter_item=This machine can assemble and smelt stuff, powered by basic nuclear fuel. But it cant handle liquids. +fi_energy_crystal_item=A artificial energy crystal. It radiates a lot of energy maybe it can be useful for building advanced machines. + +fu_tech_sign_item=Knowledge about nuclear fusion. With these information it may be possible to construct even bigger fusion machines in the future! +fu_stelar_reactor_item=A nuclear fusion reactor based on the stellarator design. It can output about 2GW of consistent power. The heat from the core is transferred to a liquid lead cooling cycle, through which you can produce steam and at the end electricity. Although there is still no method to capture the fusion products this flaw may be fixed in the next generation UMR reactor. +fu_tokamak_reactor_item=A nuclear fusion reactor based on the tokamak design. This reactor will output from 2 to 4GW power in pulsing, depending on the fuel. In contrast to the stellarator the tokamak is mainly designed for D-T fusions. Although there is still no method to capture the fusion products this flaw may be fixed in the next generation UMR reactor. +fu_robo_logistic_item=Those 4 engines will output massive thrust if you can supply them with enough energy. +fu_robo_construction_item=Build structures with insane speed. +fu_star_engine_core_item=This is it, nuclear fusion at its finest! With this machine you are able to produce elements in the core of a little star. However to keep the reaction active lots and lots of power are required. The star engine is made of the core and at least one cooler and heating unit facing towards the core. It will produce 500 to 1000 Iron or any other basic element per second, depending on how many cooling/heating units are used (1 or 2 each). + +gr_materials_fusion_cell_item=This device contains contains a little star, stored in another dimension. Dont touch it! +gr_crafter_item=Drawing its power from a little star, this machine will fulfill all your wishes. It can also smelt like a furnace! +gr_magnet_train_item=This train levitates with the power of EM fields - leaving its effecitve mass nearly at zero. This train is constructed for high speeds and long railways! And keep in mind: Being powered by a compact star this train always has energy. +gr_magnet_wagon_item=Transport your stuff at insane speeds! Use a EM suspension train as locomotive. +gr_magnet_tanker_item=Get that delicious oil where you need it, fast! Use a EM suspension train as locomotive. + +gr_magnet_train_pre_item=This train levitates with the power of EM fields - leaving its effecitve mass nearly at zero. This train is constructed for high speeds and long railways! And keep in mind: Being powered by a compact star this train always has energy. +gr_magnet_wagon_pre_item=Transport your stuff at insane speeds! Use a EM suspension train as locomotive. +gr_magnet_tanker_pre_item=Get that delicious oil where you need it, fast! Use a EM suspension train as locomotive. + +fi_modules_productivity_1_item=A module made to be usable in some of 248k machines/recipes. +fi_modules_productivity_2_item=A module made to be usable in some of 248k machines/recipes. +fi_modules_productivity_3_item=A module made to be usable in some of 248k machines/recipes. +fi_modules_productivity_4_item=This module is universal. It can be used in every machine which accepts productivity. +fi_modules_productivity_5_item=This module is universal. It can be used in every machine which accepts productivity. +fi_modules_productivity_6_item=This module is universal. It can be used in every machine which accepts productivity. + +el_ki_core_item=For usage please look into the ingame booktorio/Informatron wiki (top left corner) +fi_ki_core_item=For usage please look into the ingame booktorio/Informatron wiki (top left corner) +fu_ki_core_item=For usage please look into the ingame booktorio/Informatron wiki (top left corner) + +gr_white_hole_item=This machine can nearly replicate any item you put into! +gr_materials_white_item=||Well done! You did it. You have reached the ultimate goal. With holding the 248k element you have beaten the 248k mod.|| + + + +#buildable entities +[entity-name] +el_solar_entity=Solar panel 2.0 +el_tank_entity=Silo tank +el_burner_entity=Burner generator +el_burner_kerosene_entity=Kerosene burner +el_water_generator_entity=Water turbine +el_pressurizer_entity=Water pressurizer +el_diesel_train_entity=Diesel train +el_ki_cpu_entity=KI1 data center +el_ki_memory_entity=KI1 memory provider +el_ki_beacon_entity=KI1 beacon +el_ki_core_entity=KI1 core +el_ki_beacon_slave_entity=Beacon link slot +el_ki_core_slave_entity=KI1 core module slot +el_ki_core_slave_container_entity=KI1 core +fi_ki_beacon_entity=KI2 beacon +fi_ki_core_entity=KI2 core +fi_ki_core_slave_entity=KI2 core module slot +fi_ki_core_slave_container_entity=KI2 core +fu_ki_beacon_entity=KI3 beacon +fu_ki_core_entity=KI3 core +fu_ki_core_slave_entity=KI3 core module slot +fu_ki_core_slave_container_entity=KI3 core +fi_ki_circuit_entity=KI2 energy provider +fu_ki_circuit_entity=KI3 energy provider + + + +fi_crafter_entity=Nuclear assembling machine +fi_miner_entity=Nuclear miner +fi_solid_reactor_entity=Nuclear reactor (solid fuel) +fi_crusher_entity=Crushing factory +fi_robo_port_entity=Advanced roboport +fi_robo_charger_entity=Charging station + +fu_boiler_entity=Thermochemical separator +fu_burner_entity=Burner +fu_fusor_entity=Research fusor +fu_stelar_reactor_entity=Stellarator fusion reactor +fu_tokamak_reactor_entity=Tokamak fusion reactor +fu_exchanger_entity=Liquid lead heat exchanger +fu_robo_construction_entity=Tesla construction bot +fu_robo_logistic_entity=Hertz logistic bot +fu_activator_entity=Neutron activator +fu_star_engine_cooler_entity=Star engine - cooling unit (downside) +fu_star_engine_cooler_up_entity=Star engine - cooling unit (top side) +fu_star_engine_core_entity=Star engine - fusion core +fu_star_engine_heater_entity=Star engine - heating unit (right side) +fu_star_engine_heater_left_entity=Star engine - heating unit (left side) + +gr_crafter_entity=Fusion assembling machine +gr_magnet_train_pre_entity=EM suspension train 1 +gr_magnet_wagon_pre_entity=EM suspension wagon 1 +gr_magnet_tanker_pre_entity=EM suspension tanker wagon 1 +gr_magnet_train_entity=EM suspension train 2 +gr_magnet_wagon_entity=EM suspension wagon 2 +gr_magnet_tanker_entity=EM suspension tanker wagon 2 +gr_cooker_entity=Crystal growing facility +gr_charger_entity=Matter charger +gr_black_hole_base_entity=Black hole generator +gr_black_hole_energy_entity=Black hole generator + +gr_white_hole_entity=White hole generator +gr_lab_entity=S-lab + +#equipment +[equipment-name] +el_train_equipment_generator_item=Train electricity generator +el_train_equipment_accelerator_item=Diesel train turbocharger +fi_train_equipment_generator_item=Train nuclear reactor +fi_equipment_player_reactor_item=Portable nuclear reactor + +fi_equipment_player_shield_item=Advanced energy shield +gr_materials_charge_item=Ultimate bug zapper + +#tech +[technology-name] +el_stage_tech=Electronics stage +el_energy_tech=Basic energy +el_solar_tech=Solar panel 2.0 +el_burner_tech=Burner generator +el_aluminum_tech=Aluminium processing +el_lithium_tech=Lithium processing +el_water_generator_tech=Hydro power +el_kerosene_tech=Kerosene producing +el_train_tech=Diesel train +el_crystal_tech=Energy crystal refining +el_ki_tech=KI1 technology +fi_stage_tech=Fission stage + +fi_energy_tech=Nuclear fission energy +fi_materials_tech=Advanced materials +fi_refining_tech=Fission fuel refining +fi_solid_reactor_tech=Solid fission +fi_miner_tech=Nuclear mining +fi_train_tech=Portable nuclear equipment +fi_crusher_tech=Crushing +fi_crystal_tech=Artifical energy crystals +fi_blends_tech=Metal mixing +fi_robo_tech=Advanced roboport +fi_modules_1_tech=Hekto 248k modules +fi_modules_2_tech=Kilo 248k modules +fi_modules_3_tech=Mega 248k modules +fi_modules_4_tech=Giga 248k modules +fi_modules_5_tech=Tera 248k modules +fi_modules_6_tech=Peta 248k modules + + + +fu_stage_tech=Fusion stage +fu_crystal_tech=Advanced energy crystal production +fu_basic_elements_tech=Basic isotopes +fu_fusor_tech=Fusion reasearch +fu_lead_tech=Lead refining +fu_energy_tech=Fusion energy! +fu_reactor_tech=Stellarator reactor +fu_tokamak_tech=Tokamak reactor +fu_robo_tech=Advanced bots +fu_activator_tech=Advanced isotopes + +fu_hydrogen_1_tech=Hydrogen refining 1 +fu_hydrogen_2_tech=Hydrogen refining 2 +fu_hydrogen_3_tech=Hydrogen refining 3 +fu_star_engine_tech=Star engine +fu_star_engine_iron_tech=Iron fusing +fu_star_engine_copper_tech=Copper fusing +fu_star_engine_lithium_7_tech=Lithium fusing +fu_star_engine_sulfur_tech=Sulfur fusing +fu_star_engine_uranium_238_tech=Uranium 238 fusing +fu_star_engine_uranium_235_tech=Uranium 235 fusing + +fu_space_probe_1_tech=Orbital exploration +fu_space_probe_2_tech=Space exploration +fu_space_probe_3_tech=Deep Space exploration + +gr_stage_tech=Exotic matter stage +gr_compact_fusion_tech=Fusion cells +gr_materials_tech=Exotic materials +gr_crafter_tech=Super crafting +gr_star_engine_2_tech=Steel 4.0 +gr_star_engine_1_tech=Gears 4.0 +gr_train_tech=Future trains 1 +gr_kovarex_tech=Exotic Kovarex +gr_train_plus_tech=Future trains 2 +gr_cooker_tech=Crystal growing +gr_charger_tech=Exotic stabilizers +gr_black_hole_tech=Black holes + +fi_ki_tech=KI2 technology +fi_ki_eff_1_tech=KI2 effectivity 1 +fi_ki_eff_2_tech=KI2 effectivity 2 +fi_ki_eff_3_tech=KI2 effectivity 3 +fu_ki_tech=KI3 technology +fu_ki_eff_1_tech=KI3 effectivity 1 +fu_ki_eff_2_tech=KI3 effectivity 2 +fu_ki_eff_3_tech=KI3 effectivity 3 +fu_ki_plus_1_tech=KIX1 +fu_ki_plus_2_tech=KIX2 +el_ki_eff_1_tech=KI1 effectivity 1 +el_ki_eff_2_tech=KI1 effectivity 2 +el_ki_eff_3_tech=KI1 effectivity 3 +el_ki_sup_1_tech=More beacon support +el_ki_sup_2_tech=A lot of beacon support +el_ki_sup_3_tech=Huge beacon support +el_ki_sup_4_tech=Max. beacon support + +gr_white_hole_tech=White holes +gr_data_tech=S-Data +gr_lab_tech=S-Lab +gr_red_tech=3,6k element +gr_green_tech=7,2k element +gr_blue_tech=15,5k element +gr_purple_tech=31k element +gr_yellow_tech=62k element +gr_grey_tech=124k element +gr_white_tech=248k element + +gr_ind2_tech=Advanced elements + +#effects +[description] +el_stage_eff=Allows you to get into the first stage of the 248k mod. +el_energy_eff=Basic energy production +el_kerosene_tech_eff=Produce kerosene from oil and desulfurize it +el_ki_tech_eff=This machine functions as a module effect spreader. Each core has a distinct channel, which can be changed through the core gui. Note: only one core is allowed per channel. In the middle of the core are module slots - place some modules inside and a working core will broadcast their effects to its channel. Once a beacon is placed down it will automatically get registered in the standard channel. So to keep things simple just supply the core with enough liquid and tune its channel to the standard channel. +x2_ki_tech_eff=Double the module effects of all your KI cores! +x3_ki_tech_eff=Triple the module effects of all your KI cores - stupidly insane if you ask me! +sup_1_ki_tech_eff=+150 supported beacons +sup_2_ki_tech_eff=+250 supported beacons +sup_3_ki_tech_eff=+500 supported beacons +sup_4_ki_tech_eff=max supported beacons + +fi_stage_eff=You have masterd the art of electronics. Welcome to the age of nuclear fission! +fi_energy_eff=Fission energy at your grasp! + +fu_stage_eff=After splitting the Atom what is next? Merging the Atom! +fu_basic_elements_eff=Get your grasp at some Isotopes which can be fused together! These early methods may be very inefficient but at least they work. +fu_fusor_eff=Build a basic fusor that can achieve some fusion reactions. There is still a lot to learn about nuclear fusion so keep experimenting. +fu_energy_eff=With the knowledge gained through fusor experimenting you can now start building your very first nuclear fusion reactor! +fu_reactor_eff=Build a fusion reactor based on the stellarator design. This reactor is capable of running for days, sustaining its plasma for large amounts of time. You should be able to generate power at a consistent rate. +fu_tokamak_eff=This reactor is based on the tokamak design. It will fuse its fuel very quickly, meaning it can only be run in pulsing. +fu_activator_eff=Collect thermal neutrons from nuclear fission reactions. Basic Isotopes will capture those neutrons and turn into more valuable isotopes. +fu_star_engine_eff=A star engine is literally a little star. Using huge amounts of power this multi-unit machine can produce whatever basic element you want, in huge quantities. To make this dream come true you will need one core and at least one cooling/heating unit, a lot of space and energy. Place down the core and after that cooling and heating unit, facing towards the core. The core can run with only one unit of each at half speed. After building the machine you will need to research the tech for each element. + +gr_stage_eff=Using exotic matter you will be able to exceed limits of known technology. Even Fusion will be nothing compared to those infinite possibilities. + +#category +[fuel-category-name] +el_train_fuel=Train fuel +fi_basic_fuel=Basic nuclear fuel +fi_advanced_fuel=Advanced nuclear fuel +fi_pure_fuel=High energy nuclear fuel + +#settings +[mod-setting-name] +el_solar_power_output=Solar panel 2.0 output +el_burner_power_output=Burner generator output +el_water_generator_power_output=Water turbine output +el_solar_recipe_enabled=Solar panel 2.0 recipe enabled +el_ki_beacon_effectivity=KI1 beacon effectivity +el_ki_beacon_supply_area=KI1 beacon area +el_ki_beacon_blueprintable=Make the KI beacons blueprintable +el_ki_core_energy_usage=KI1 core power usage +el_ki_core_energy_usage_input=KI1 core power input maximum +el_ki_core_productivity=Enable productivity modules in KI core and amplifier +el_burner_kerosene_power_output=Kerosene generator power output +fu_burner_power_output=Fusion Stage burner power output +override_krastorio_endgame=Adjust Krastorio2 recipes for Anti-matter reactor, Intergalactic transreciever + +el_ki_beacon_effectivity_2=KI2 beacon effectivity +el_ki_beacon_supply_area_2=KI2 beacon area +el_ki_beacon_effectivity_3=KI3 beacon effectivity +el_ki_beacon_supply_area_3=KI3 beacon area +el_ki_core_energy_usage_2=KI2 core power usage +el_ki_core_energy_usage_3=KI3 core power usage +el_ki_core_energy_usage_input_2=KI2 core power input maximum +el_ki_core_energy_usage_input_3=KI3 core power input maximum + + +[item-limitation] +limitation_message=This module can not be used here. + +#booktorio +[gui] +bk_248k_name=248k Mod +bk_248k_overview=Overview +bk_248k_about=About the mod +bk_248k_about_text=This mod is focused to extend vanilla and adding a longer endgame. It introduces new ways to generate energy, materials, alternate options to produce vanilla items and some unique buildings, all ranked in 4 stages. You will start in the electronic stage within the early game and then progress as your factory grows. Here take a peek at what you can accomplish: +bk_248k_first_steps=First steps +bk_248k_first_steps_text=To start you will need to wash some elements mainly aluminium and lithium out of stone. This is done using sulfuric acid so get a fair amount of that - alongside the vanilla recipe it is also possible to produce kerosene and gain sulfuric acid in the desulfurisation process of kerosene. With these materials you can now build some pretty good solar panels Mk2 for example. + +bk_248k_ki1_core=The KI1 core +bk_248k_ki2_core=KI2 and KI3 amplifier +bk_248k_ki1_core_text=This machine functions as a module effect spreader. Each core has a distinct channel, which can be changed through the core gui. Note: only one core is allowed per channel. In the middle of the core are module slots - place some modules inside and a working core will broadcast their effects to its channel. Once a beacon is placed down it will automatically get registered in the standard channel. So to keep things simple just supply the core with enough liquid and tune its channel to the standard channel. +bk_248k_ki2_core_text=With the fission and fusion stage you will get access to KI2 and KI3 beacon aswell as KI2 and KI3 core/amplifier. Those cores will consume additional liquids to function. KI2 and KI3 core/amplifier can add additional module effects to the KI1 core - to do so tune their channel to the channel of your KI1 core. Modules inserted in the middle of KI2/KI3 core will now add their effects to those of the KI1 core. Keep in mind that the better beacons will also be able to broadcast more module effects. Over time the KI2/KI3 core will produce[item=fi_ki_science] and [item=fu_ki_science] - those will be needed to research techs regarding the KI cores. One KI1 core will always link to only one KI2 and one KI3 core. + + +bk_248k_diesel_train=The diesel train +bk_248k_diesel_train_text=A diesel train, simple as that. But wait is there more? Yes, there is. This diesel train has access to different diesel fuels and engine modules. The fuels all have a fairly high burn value but most importantly the special ones will increase the trains max speed by quite a bit but decrease its acceleration. To counter this drawback you can install modules inside the train equipment grid: A turbocharger f.e. will increase the acceleration of the train by 35 percent. + +bk_248k_fusion=Nuclear Fusion +bk_248k_fusion_text=After mastering the fission stage nuclear fusion will be available to you. Fusion, well is complicated - You will first need to build a research fusor [item=fu_fusor_item] and fuse some basic isotopes to get some fusion knowledge [item=fu_tech_sign_item]. +bk_248k_fusion_1_text=The most basic isotope is protium-H[1][fluid=fu_protium]. Build a thermochemical separator [item=fu_boiler_item] and separate some water into oxygen and hydrogen. Since hydrogen is mainly protium-H[1][fluid=fu_protium] you should be able to get your hands on some fusion tech. +bk_248k_fusion_2_text=With fusion tech you can now f.e. build huge fusion reactors or make Hertz and Tesla bots. If possible set up a big enough supply of isotopes and fusion tech - you will need a lot. +bk_248k_star_engine=Star engine +bk_248k_star_engine_text=The star engine is insane! It is made of 5 parts: The core[item=fu_star_engine_core_item], a left and right heater [item=fu_star_engine_heater_left_item] [item=fu_star_engine_heater_item] and a up and downside cooler [item=fu_star_engine_cooler_up_item] [item=fu_star_engine_cooler_item]. +bk_248k_star_engine_1_text=First build the core (above) with as much free space around as possible. Then place coolers and heaters next to it - make sure with alt mode that all core inputs match the outputs of heaters/coolers. Set the recipes for all machines and pump a mass of protium into the heaters. In the table below you can see what can be produced at which rate, when the whole machine is working. +bk_248k_exotic_science=Exotic matter science +bk_248k_exotic_science_text=In the endgame you will need to produce exotic science [item=fu_space_probe_science_item]. To do so you need to get your hands on some exotic matter [item=fu_space_probe_ore_item], since this rare material only exist in outer space you have to build a lot of rockets in order to obtain some. There are 3 new types of satellites: The 'Sputnik' satellite[item=fu_space_probe_sputnik_item], the space probe[item=fu_space_probe_probe_item] and the deep space probe[item=fu_space_probe_deep_probe_item]. The first two return data, which is required for launching the deep space probe resulting in exotic ore. Use the exotic matter to make exotic science packs! +bk_248k_blueprints=Blueprints +bk_248k_blueprints_text=Here are some blueprints for mod setups. Just click on the text to get one - if you have designed a layout you want to share you can do so in the mod forum and it might be here in the future! + +bk_248k_blueprints_1=Water turbine setup - 40MW|PreLeyZero +bk_248k_blueprints_2=Thermochemical setup - 2X|PreLeyZero +bk_248k_blueprints_3=Solar farm - 40MW|PreLeyZero + +bk_248k_black_hole=Endgame reactor +bk_248k_black_hole_text=The black hole generator can produce energy from anything. When 100 stabilizers[item=gr_materials_stabilizer_item] and at least 1000 other items (matter) are inside the reactor you can create a black hole. Every item put in the reactor will be added to the consumable matter of the black hole, except stabilizers[item=gr_materials_stabilizer_item] - those will add to the reactor stability. Over time the stability of the reactor will drop so keep a steady supply of those matter stabilizers. The reactor will consume matter from its internal buffer, according to its matter consumption rate, and convert it in power. At full reactor stability the reactor will output about 1TW. + +#informatron +[inf_248k] +menu_inf_248k=248k Mod +title_inf_248k=248k Mod +menu_ki1core=KI1 core[item=el_ki_core_item] +title_ki1core=KI1 core[item=el_ki_core_item] +menu_diesel=Diesel train[item=el_diesel_train_item] +title_diesel=Diesel train[item=el_diesel_train_item] +menu_fusion=Fusion[item=fu_fusor_item] +title_fusion=Fusion[item=fu_fusor_item] +menu_starengine=Star engine[item=fu_star_engine_core_item] +title_starengine=Star engine[item=fu_star_engine_core_item] +menu_exoticscience=Exotic science[item=fu_space_probe_science_item] +title_exoticscience=Exotic science[item=fu_space_probe_science_item] +menu_blackhole=Black hole generator[item=gr_black_hole_item] +title_blackhole=Black hole generator[item=gr_black_hole_item] diff --git a/migrations/248k-0.3.12.lua b/migrations/248k-0.3.12.lua new file mode 100644 index 0000000..d8f6781 --- /dev/null +++ b/migrations/248k-0.3.12.lua @@ -0,0 +1,5 @@ +for _, force in pairs(game.forces) do + force.reset_recipes() + force.reset_technologies() + force.reset_technology_effects() +end \ No newline at end of file diff --git a/migrations/248k-0.3.17.lua b/migrations/248k-0.3.17.lua new file mode 100644 index 0000000..2edecda --- /dev/null +++ b/migrations/248k-0.3.17.lua @@ -0,0 +1,6 @@ +for _, force in pairs(game.forces) do + force.reset_recipes() + force.reset_technologies() + force.reset_technology_effects() +end + diff --git a/migrations/248k-0.4.0.lua b/migrations/248k-0.4.0.lua new file mode 100644 index 0000000..5e91088 --- /dev/null +++ b/migrations/248k-0.4.0.lua @@ -0,0 +1,38 @@ +for _, force in pairs(game.forces) do + force.reset_recipes() + force.reset_technologies() + force.reset_technology_effects() +end + + +if (not global.fi_ki_module) then + global.fi_ki_module = {} +end + +if (not global.el_ki_stats) then + global.el_ki_stats = {} +end + +if (not global.fi_ki_stats) then + global.fi_ki_stats = {} +end + +if (not global.fu_ki_module) then + global.fu_ki_module = {} +end + +if (not global.fu_ki_stats) then + global.fu_ki_stats = {} +end + +for i,v in pairs(global.el_ki_stats) do + if (not global.el_ki_stats[i]['filink']) then + global.el_ki_stats[i]['filink'] = 0 + end + + if (not global.el_ki_stats[i]['fulink']) then + global.el_ki_stats[i]['fulink'] = 0 + end +end + + diff --git a/migrations/248k-0.4.1.lua b/migrations/248k-0.4.1.lua new file mode 100644 index 0000000..7871d4e --- /dev/null +++ b/migrations/248k-0.4.1.lua @@ -0,0 +1,36 @@ +for _, force in pairs(game.forces) do + force.reset_recipes() + force.reset_technologies() + force.reset_technology_effects() +end + + +if (not global.fi_ki_module) then + global.fi_ki_module = {} +end + +if (not global.el_ki_stats) then + global.el_ki_stats = {} +end + +if (not global.fi_ki_stats) then + global.fi_ki_stats = {} +end + +if (not global.fu_ki_module) then + global.fu_ki_module = {} +end + +if (not global.fu_ki_stats) then + global.fu_ki_stats = {} +end + +for i,v in pairs(global.el_ki_stats) do + if (not global.el_ki_stats[i]['filink']) then + global.el_ki_stats[i]['filink'] = 0 + end + + if (not global.el_ki_stats[i]['fulink']) then + global.el_ki_stats[i]['fulink'] = 0 + end +end \ No newline at end of file diff --git a/migrations/248k-0.4.2.lua b/migrations/248k-0.4.2.lua new file mode 100644 index 0000000..5e91088 --- /dev/null +++ b/migrations/248k-0.4.2.lua @@ -0,0 +1,38 @@ +for _, force in pairs(game.forces) do + force.reset_recipes() + force.reset_technologies() + force.reset_technology_effects() +end + + +if (not global.fi_ki_module) then + global.fi_ki_module = {} +end + +if (not global.el_ki_stats) then + global.el_ki_stats = {} +end + +if (not global.fi_ki_stats) then + global.fi_ki_stats = {} +end + +if (not global.fu_ki_module) then + global.fu_ki_module = {} +end + +if (not global.fu_ki_stats) then + global.fu_ki_stats = {} +end + +for i,v in pairs(global.el_ki_stats) do + if (not global.el_ki_stats[i]['filink']) then + global.el_ki_stats[i]['filink'] = 0 + end + + if (not global.el_ki_stats[i]['fulink']) then + global.el_ki_stats[i]['fulink'] = 0 + end +end + + diff --git a/migrations/248k-0.4.3.lua b/migrations/248k-0.4.3.lua new file mode 100644 index 0000000..5e91088 --- /dev/null +++ b/migrations/248k-0.4.3.lua @@ -0,0 +1,38 @@ +for _, force in pairs(game.forces) do + force.reset_recipes() + force.reset_technologies() + force.reset_technology_effects() +end + + +if (not global.fi_ki_module) then + global.fi_ki_module = {} +end + +if (not global.el_ki_stats) then + global.el_ki_stats = {} +end + +if (not global.fi_ki_stats) then + global.fi_ki_stats = {} +end + +if (not global.fu_ki_module) then + global.fu_ki_module = {} +end + +if (not global.fu_ki_stats) then + global.fu_ki_stats = {} +end + +for i,v in pairs(global.el_ki_stats) do + if (not global.el_ki_stats[i]['filink']) then + global.el_ki_stats[i]['filink'] = 0 + end + + if (not global.el_ki_stats[i]['fulink']) then + global.el_ki_stats[i]['fulink'] = 0 + end +end + + diff --git a/migrations/248k-0.4.9.lua b/migrations/248k-0.4.9.lua new file mode 100644 index 0000000..0c27926 --- /dev/null +++ b/migrations/248k-0.4.9.lua @@ -0,0 +1,180 @@ +require('scripts/electronic/el_ki_script') +require('scripts/gravitation/gr_black_hole_script') +local gui = require('scripts/gui') + +local function register_ki_entity(entity,type) + if entity then + if entity.valid then + if global.ki then + if global.ki[type] then + local unit = entity.unit_number + if not global.ki[type][unit] then + if type == "core" then + make_ki_core(entity) + end + + if type == "buffer1" then + make_ki_buffer1(entity) + end + + if type == "buffer2" then + make_ki_buffer2(entity) + end + + if type == "beacon" then + make_ki_beacon(entity) + end + end + end + end + end + end +end + +local function remove_new_slaves(tablein,type,slave) + local table = tablein + for i,v in pairs(table) do + for x,f in pairs(global.ki[type]) do + if global.ki[type][x][slave] then + if global.ki[type][x][slave].valid then + if table[i] then + if table[i].valid then + if global.ki[type][x][slave].unit_number == table[i].unit_number then + table[i] = nil + end + end + end + end + end + end + end + return table +end + +local function kill_old_slaves(table,type,slave) + local old_slaves = remove_new_slaves(table,type,slave) + if old_slaves then + for i,v in pairs(old_slaves) do + if old_slaves[i] then + if old_slaves[i].valid then + local slave = old_slaves[i] + slave.destroy() + end + end + end + end +end + + + + +for _, force in pairs(game.forces) do + force.reset_recipes() + force.reset_technologies() + force.reset_technology_effects() +end + + +if game.active_mods["Booktorio"] then + registerThread_248k() +end + +for i,v in pairs(game.players) do + gui.add_top_gui(game.players[i]) +end + +--if not global.ki then + el_ki_init(e) + gr_black_hole_init(e) +--end + +if global.el_ki_stats then + for i,v in pairs(global.el_ki_stats) do + local slave = global.el_ki_stats[i].slave + slave.destroy() + local container = global.el_ki_stats[i].container + container.destroy() + make_ki_core(global.el_ki_stats[i].entity) + global.el_ki_stats[i] = nil + end + global.el_ki_stats = nil +end +if global.fi_ki_stats then + for i,v in pairs(global.fi_ki_stats) do + local slave = global.fi_ki_stats[i].slave + slave.destroy() + local container = global.fi_ki_stats[i].container + container.destroy() + local container2 = global.fi_ki_stats[i].container2 + container2.destroy() + make_ki_buffer1(global.fi_ki_stats[i].entity) + global.fi_ki_stats[i] = nil + end + global.fi_ki_stats = nil +end +if global.fu_ki_stats then + for i,v in pairs(global.fu_ki_stats) do + local slave = global.fu_ki_stats[i].slave + slave.destroy() + local container = global.fu_ki_stats[i].container + container.destroy() + local container2 = global.fu_ki_stats[i].container2 + container2.destroy() + make_ki_buffer2(global.fu_ki_stats[i].entity) + global.fu_ki_stats[i] = nil + end + global.fu_ki_stats = nil +end +if global.el_ki_beacons then + for i,v in pairs(global.el_ki_beacons) do + local slave = global.el_ki_beacons[i].slave + slave.destroy() + make_ki_beacon(global.el_ki_beacons[i].entity) + global.el_ki_beacons[i] = nil + end + global.el_ki_beacons = nil +end + +for i,v in pairs(game.surfaces) do + local el_cores = game.surfaces[i].find_entities_filtered({name="el_ki_core_entity"}) + local fi_cores = game.surfaces[i].find_entities_filtered({name="fi_ki_core_entity"}) + local fu_cores = game.surfaces[i].find_entities_filtered({name="fu_ki_core_entity"}) + local el_beacons = game.surfaces[i].find_entities_filtered({name="el_ki_beacon_entity"}) + local fi_beacons = game.surfaces[i].find_entities_filtered({name="fi_ki_beacon_entity"}) + local fu_beacons = game.surfaces[i].find_entities_filtered({name="fu_ki_beacon_entity"}) + + for x,f in pairs(el_cores) do + register_ki_entity(el_cores[i],"core") + end + for x,f in pairs(fi_cores) do + register_ki_entity(fi_cores[i],"buffer1") + end + for x,f in pairs(fu_cores) do + register_ki_entity(fu_cores[i],"buffer2") + end + + for x,f in pairs(el_beacons) do + register_ki_entity(el_beacons[i],"beacon") + end + for x,f in pairs(fi_beacons) do + register_ki_entity(fi_beacons[i],"beacon") + end + for x,f in pairs(fu_beacons) do + register_ki_entity(fu_beacons[i],"beacon") + end + + local slave_ki_cores = game.surfaces[i].find_entities_filtered({name="el_ki_core_slave_entity"}) + local slave_fi_cores = game.surfaces[i].find_entities_filtered({name="fi_ki_core_slave_entity"}) + local slave_fu_cores = game.surfaces[i].find_entities_filtered({name="fu_ki_core_slave_entity"}) + local container_fi_cores = game.surfaces[i].find_entities_filtered({name="fi_ki_core_slave_container_entity"}) + local container_fu_cores = game.surfaces[i].find_entities_filtered({name="fu_ki_core_slave_container_entity"}) + + kill_old_slaves(slave_ki_cores,"core","slave") + kill_old_slaves(slave_fi_cores,"buffer1","slave") + kill_old_slaves(slave_fu_cores,"buffer2","slave") + kill_old_slaves(container_fi_cores,"buffer1","container") + kill_old_slaves(container_fu_cores,"buffer2","container") + +end + + diff --git a/migrations/248k-0.5.1.lua b/migrations/248k-0.5.1.lua new file mode 100644 index 0000000..7612900 --- /dev/null +++ b/migrations/248k-0.5.1.lua @@ -0,0 +1,92 @@ +require('scripts/electronic/el_ki_script') +require('scripts/gravitation/gr_black_hole_script') +local gui = require('scripts/gui') + +local function register_ki_entity(entity,type) + if entity then + if entity.valid then + if global.ki then + if global.ki[type] then + local unit = entity.unit_number + if not global.ki[type][unit] then + if type == "core" then + make_ki_core(entity) + end + + if type == "buffer1" then + make_ki_buffer1(entity) + end + + if type == "buffer2" then + make_ki_buffer2(entity) + end + + if type == "beacon" then + make_ki_beacon(entity) + end + end + end + end + end + end +end + +local function remove_new_slaves(tablein,type,slave) + local table = tablein + for i,v in pairs(table) do + for x,f in pairs(global.ki[type]) do + if global.ki[type][x][slave] then + if global.ki[type][x][slave].valid then + if table[i] then + if table[i].valid then + if global.ki[type][x][slave].unit_number == table[i].unit_number then + table[i] = nil + end + end + end + end + end + end + end + return table +end + +local function kill_old_slaves(table,type,slave) + local old_slaves = remove_new_slaves(table,type,slave) + if old_slaves then + for i,v in pairs(old_slaves) do + if old_slaves[i] then + if old_slaves[i].valid then + local slave = old_slaves[i] + slave.destroy() + end + end + end + end +end + + + + +for _, force in pairs(game.forces) do + force.reset_recipes() + force.reset_technologies() + force.reset_technology_effects() +end + + +if game.active_mods["Booktorio"] then + registerThread_248k() +end + +for i,v in pairs(game.players) do + gui.add_top_gui(game.players[i]) +end + +gr_black_hole_init(e) + + + + + + diff --git a/oldmigration/248k-0.4.10.lua b/oldmigration/248k-0.4.10.lua new file mode 100644 index 0000000..0c27926 --- /dev/null +++ b/oldmigration/248k-0.4.10.lua @@ -0,0 +1,180 @@ +require('scripts/electronic/el_ki_script') +require('scripts/gravitation/gr_black_hole_script') +local gui = require('scripts/gui') + +local function register_ki_entity(entity,type) + if entity then + if entity.valid then + if global.ki then + if global.ki[type] then + local unit = entity.unit_number + if not global.ki[type][unit] then + if type == "core" then + make_ki_core(entity) + end + + if type == "buffer1" then + make_ki_buffer1(entity) + end + + if type == "buffer2" then + make_ki_buffer2(entity) + end + + if type == "beacon" then + make_ki_beacon(entity) + end + end + end + end + end + end +end + +local function remove_new_slaves(tablein,type,slave) + local table = tablein + for i,v in pairs(table) do + for x,f in pairs(global.ki[type]) do + if global.ki[type][x][slave] then + if global.ki[type][x][slave].valid then + if table[i] then + if table[i].valid then + if global.ki[type][x][slave].unit_number == table[i].unit_number then + table[i] = nil + end + end + end + end + end + end + end + return table +end + +local function kill_old_slaves(table,type,slave) + local old_slaves = remove_new_slaves(table,type,slave) + if old_slaves then + for i,v in pairs(old_slaves) do + if old_slaves[i] then + if old_slaves[i].valid then + local slave = old_slaves[i] + slave.destroy() + end + end + end + end +end + + + + +for _, force in pairs(game.forces) do + force.reset_recipes() + force.reset_technologies() + force.reset_technology_effects() +end + + +if game.active_mods["Booktorio"] then + registerThread_248k() +end + +for i,v in pairs(game.players) do + gui.add_top_gui(game.players[i]) +end + +--if not global.ki then + el_ki_init(e) + gr_black_hole_init(e) +--end + +if global.el_ki_stats then + for i,v in pairs(global.el_ki_stats) do + local slave = global.el_ki_stats[i].slave + slave.destroy() + local container = global.el_ki_stats[i].container + container.destroy() + make_ki_core(global.el_ki_stats[i].entity) + global.el_ki_stats[i] = nil + end + global.el_ki_stats = nil +end +if global.fi_ki_stats then + for i,v in pairs(global.fi_ki_stats) do + local slave = global.fi_ki_stats[i].slave + slave.destroy() + local container = global.fi_ki_stats[i].container + container.destroy() + local container2 = global.fi_ki_stats[i].container2 + container2.destroy() + make_ki_buffer1(global.fi_ki_stats[i].entity) + global.fi_ki_stats[i] = nil + end + global.fi_ki_stats = nil +end +if global.fu_ki_stats then + for i,v in pairs(global.fu_ki_stats) do + local slave = global.fu_ki_stats[i].slave + slave.destroy() + local container = global.fu_ki_stats[i].container + container.destroy() + local container2 = global.fu_ki_stats[i].container2 + container2.destroy() + make_ki_buffer2(global.fu_ki_stats[i].entity) + global.fu_ki_stats[i] = nil + end + global.fu_ki_stats = nil +end +if global.el_ki_beacons then + for i,v in pairs(global.el_ki_beacons) do + local slave = global.el_ki_beacons[i].slave + slave.destroy() + make_ki_beacon(global.el_ki_beacons[i].entity) + global.el_ki_beacons[i] = nil + end + global.el_ki_beacons = nil +end + +for i,v in pairs(game.surfaces) do + local el_cores = game.surfaces[i].find_entities_filtered({name="el_ki_core_entity"}) + local fi_cores = game.surfaces[i].find_entities_filtered({name="fi_ki_core_entity"}) + local fu_cores = game.surfaces[i].find_entities_filtered({name="fu_ki_core_entity"}) + local el_beacons = game.surfaces[i].find_entities_filtered({name="el_ki_beacon_entity"}) + local fi_beacons = game.surfaces[i].find_entities_filtered({name="fi_ki_beacon_entity"}) + local fu_beacons = game.surfaces[i].find_entities_filtered({name="fu_ki_beacon_entity"}) + + for x,f in pairs(el_cores) do + register_ki_entity(el_cores[i],"core") + end + for x,f in pairs(fi_cores) do + register_ki_entity(fi_cores[i],"buffer1") + end + for x,f in pairs(fu_cores) do + register_ki_entity(fu_cores[i],"buffer2") + end + + for x,f in pairs(el_beacons) do + register_ki_entity(el_beacons[i],"beacon") + end + for x,f in pairs(fi_beacons) do + register_ki_entity(fi_beacons[i],"beacon") + end + for x,f in pairs(fu_beacons) do + register_ki_entity(fu_beacons[i],"beacon") + end + + local slave_ki_cores = game.surfaces[i].find_entities_filtered({name="el_ki_core_slave_entity"}) + local slave_fi_cores = game.surfaces[i].find_entities_filtered({name="fi_ki_core_slave_entity"}) + local slave_fu_cores = game.surfaces[i].find_entities_filtered({name="fu_ki_core_slave_entity"}) + local container_fi_cores = game.surfaces[i].find_entities_filtered({name="fi_ki_core_slave_container_entity"}) + local container_fu_cores = game.surfaces[i].find_entities_filtered({name="fu_ki_core_slave_container_entity"}) + + kill_old_slaves(slave_ki_cores,"core","slave") + kill_old_slaves(slave_fi_cores,"buffer1","slave") + kill_old_slaves(slave_fu_cores,"buffer2","slave") + kill_old_slaves(container_fi_cores,"buffer1","container") + kill_old_slaves(container_fu_cores,"buffer2","container") + +end + + diff --git a/oldmigration/248k-0.4.4.lua b/oldmigration/248k-0.4.4.lua new file mode 100644 index 0000000..88d81f0 --- /dev/null +++ b/oldmigration/248k-0.4.4.lua @@ -0,0 +1,70 @@ +require('scripts/electronic/el_ki_script') +local gui = require('scripts/gui') + + +for _, force in pairs(game.forces) do + force.reset_recipes() + force.reset_technologies() + force.reset_technology_effects() +end + + +if game.active_mods["Booktorio"] then + registerThread_248k() +end + +for i,v in pairs(game.players) do + gui.add_top_gui(game.players[i]) +end + +if not global.ki then + el_ki_init(e) +end + +if global.el_ki_stats then + for i,v in pairs(global.el_ki_stats) do + local slave = global.el_ki_stats[i].slave + slave.destroy() + local container = global.el_ki_stats[i].container + container.destroy() + make_ki_core(global.el_ki_stats[i].entity) + global.el_ki_stats[i] = nil + end + global.el_ki_stats = nil +end +if global.fi_ki_stats then + for i,v in pairs(global.fi_ki_stats) do + local slave = global.fi_ki_stats[i].slave + slave.destroy() + local container = global.fi_ki_stats[i].container + container.destroy() + local container2 = global.fi_ki_stats[i].container2 + container2.destroy() + make_ki_buffer1(global.fi_ki_stats[i].entity) + global.fi_ki_stats[i] = nil + end + global.fi_ki_stats = nil +end +if global.fu_ki_stats then + for i,v in pairs(global.fu_ki_stats) do + local slave = global.fu_ki_stats[i].slave + slave.destroy() + local container = global.fu_ki_stats[i].container + container.destroy() + local container2 = global.fu_ki_stats[i].container2 + container2.destroy() + make_ki_buffer2(global.fu_ki_stats[i].entity) + global.fu_ki_stats[i] = nil + end + global.fu_ki_stats = nil +end +if global.el_ki_beacons then + for i,v in pairs(global.el_ki_beacons) do + local slave = global.el_ki_beacons[i].slave + slave.destroy() + make_ki_beacon(global.el_ki_beacons[i].entity) + global.el_ki_beacons[i] = nil + end + global.el_ki_beacons = nil +end + diff --git a/oldmigration/248k-0.4.6.lua b/oldmigration/248k-0.4.6.lua new file mode 100644 index 0000000..19e80d3 --- /dev/null +++ b/oldmigration/248k-0.4.6.lua @@ -0,0 +1,69 @@ +require('scripts/electronic/el_ki_script') +local gui = require('scripts/gui') + + +for _, force in pairs(game.forces) do + force.reset_recipes() + force.reset_technologies() + force.reset_technology_effects() +end + + +if game.active_mods["Booktorio"] then + registerThread_248k() +end + +for i,v in pairs(game.players) do + gui.add_top_gui(game.players[i]) +end + +if not global.ki then + el_ki_init(e) +end + +if global.el_ki_stats then + for i,v in pairs(global.el_ki_stats) do + local slave = global.el_ki_stats[i].slave + slave.destroy() + local container = global.el_ki_stats[i].container + container.destroy() + make_ki_core(global.el_ki_stats[i].entity) + global.el_ki_stats[i] = nil + end + global.el_ki_stats = nil +end +if global.fi_ki_stats then + for i,v in pairs(global.fi_ki_stats) do + local slave = global.fi_ki_stats[i].slave + slave.destroy() + local container = global.fi_ki_stats[i].container + container.destroy() + local container2 = global.fi_ki_stats[i].container2 + container2.destroy() + make_ki_buffer1(global.fi_ki_stats[i].entity) + global.fi_ki_stats[i] = nil + end + global.fi_ki_stats = nil +end +if global.fu_ki_stats then + for i,v in pairs(global.fu_ki_stats) do + local slave = global.fu_ki_stats[i].slave + slave.destroy() + local container = global.fu_ki_stats[i].container + container.destroy() + local container2 = global.fu_ki_stats[i].container2 + container2.destroy() + make_ki_buffer2(global.fu_ki_stats[i].entity) + global.fu_ki_stats[i] = nil + end + global.fu_ki_stats = nil +end +if global.el_ki_beacons then + for i,v in pairs(global.el_ki_beacons) do + local slave = global.el_ki_beacons[i].slave + slave.destroy() + make_ki_beacon(global.el_ki_beacons[i].entity) + global.el_ki_beacons[i] = nil + end + global.el_ki_beacons = nil +end \ No newline at end of file diff --git a/oldmigration/248k-0.4.7.lua b/oldmigration/248k-0.4.7.lua new file mode 100644 index 0000000..19e80d3 --- /dev/null +++ b/oldmigration/248k-0.4.7.lua @@ -0,0 +1,69 @@ +require('scripts/electronic/el_ki_script') +local gui = require('scripts/gui') + + +for _, force in pairs(game.forces) do + force.reset_recipes() + force.reset_technologies() + force.reset_technology_effects() +end + + +if game.active_mods["Booktorio"] then + registerThread_248k() +end + +for i,v in pairs(game.players) do + gui.add_top_gui(game.players[i]) +end + +if not global.ki then + el_ki_init(e) +end + +if global.el_ki_stats then + for i,v in pairs(global.el_ki_stats) do + local slave = global.el_ki_stats[i].slave + slave.destroy() + local container = global.el_ki_stats[i].container + container.destroy() + make_ki_core(global.el_ki_stats[i].entity) + global.el_ki_stats[i] = nil + end + global.el_ki_stats = nil +end +if global.fi_ki_stats then + for i,v in pairs(global.fi_ki_stats) do + local slave = global.fi_ki_stats[i].slave + slave.destroy() + local container = global.fi_ki_stats[i].container + container.destroy() + local container2 = global.fi_ki_stats[i].container2 + container2.destroy() + make_ki_buffer1(global.fi_ki_stats[i].entity) + global.fi_ki_stats[i] = nil + end + global.fi_ki_stats = nil +end +if global.fu_ki_stats then + for i,v in pairs(global.fu_ki_stats) do + local slave = global.fu_ki_stats[i].slave + slave.destroy() + local container = global.fu_ki_stats[i].container + container.destroy() + local container2 = global.fu_ki_stats[i].container2 + container2.destroy() + make_ki_buffer2(global.fu_ki_stats[i].entity) + global.fu_ki_stats[i] = nil + end + global.fu_ki_stats = nil +end +if global.el_ki_beacons then + for i,v in pairs(global.el_ki_beacons) do + local slave = global.el_ki_beacons[i].slave + slave.destroy() + make_ki_beacon(global.el_ki_beacons[i].entity) + global.el_ki_beacons[i] = nil + end + global.el_ki_beacons = nil +end \ No newline at end of file diff --git a/oldmigration/248k-0.4.8.lua b/oldmigration/248k-0.4.8.lua new file mode 100644 index 0000000..0dc568e --- /dev/null +++ b/oldmigration/248k-0.4.8.lua @@ -0,0 +1,178 @@ +require('scripts/electronic/el_ki_script') +local gui = require('scripts/gui') + +local function register_ki_entity(entity,type) + if entity then + if entity.valid then + if global.ki then + if global.ki[type] then + local unit = entity.unit_number + if not global.ki[type][unit] then + if type == "core" then + make_ki_core(entity) + end + + if type == "buffer1" then + make_ki_buffer1(entity) + end + + if type == "buffer2" then + make_ki_buffer2(entity) + end + + if type == "beacon" then + make_ki_beacon(entity) + end + end + end + end + end + end +end + +local function remove_new_slaves(tablein,type,slave) + local table = tablein + for i,v in pairs(table) do + for x,f in pairs(global.ki[type]) do + if global.ki[type][x][slave] then + if global.ki[type][x][slave].valid then + if table[i] then + if table[i].valid then + if global.ki[type][x][slave].unit_number == table[i].unit_number then + table[i] = nil + end + end + end + end + end + end + end + return table +end + +local function kill_old_slaves(table,type,slave) + local old_slaves = remove_new_slaves(table,type,slave) + if old_slaves then + for i,v in pairs(old_slaves) do + if old_slaves[i] then + if old_slaves[i].valid then + local slave = old_slaves[i] + slave.destroy() + end + end + end + end +end + + + + +for _, force in pairs(game.forces) do + force.reset_recipes() + force.reset_technologies() + force.reset_technology_effects() +end + + +if game.active_mods["Booktorio"] then + registerThread_248k() +end + +for i,v in pairs(game.players) do + gui.add_top_gui(game.players[i]) +end + +--if not global.ki then + el_ki_init(e) +--end + +if global.el_ki_stats then + for i,v in pairs(global.el_ki_stats) do + local slave = global.el_ki_stats[i].slave + slave.destroy() + local container = global.el_ki_stats[i].container + container.destroy() + make_ki_core(global.el_ki_stats[i].entity) + global.el_ki_stats[i] = nil + end + global.el_ki_stats = nil +end +if global.fi_ki_stats then + for i,v in pairs(global.fi_ki_stats) do + local slave = global.fi_ki_stats[i].slave + slave.destroy() + local container = global.fi_ki_stats[i].container + container.destroy() + local container2 = global.fi_ki_stats[i].container2 + container2.destroy() + make_ki_buffer1(global.fi_ki_stats[i].entity) + global.fi_ki_stats[i] = nil + end + global.fi_ki_stats = nil +end +if global.fu_ki_stats then + for i,v in pairs(global.fu_ki_stats) do + local slave = global.fu_ki_stats[i].slave + slave.destroy() + local container = global.fu_ki_stats[i].container + container.destroy() + local container2 = global.fu_ki_stats[i].container2 + container2.destroy() + make_ki_buffer2(global.fu_ki_stats[i].entity) + global.fu_ki_stats[i] = nil + end + global.fu_ki_stats = nil +end +if global.el_ki_beacons then + for i,v in pairs(global.el_ki_beacons) do + local slave = global.el_ki_beacons[i].slave + slave.destroy() + make_ki_beacon(global.el_ki_beacons[i].entity) + global.el_ki_beacons[i] = nil + end + global.el_ki_beacons = nil +end + +for i,v in pairs(game.surfaces) do + local el_cores = game.surfaces[i].find_entities_filtered({name="el_ki_core_entity"}) + local fi_cores = game.surfaces[i].find_entities_filtered({name="fi_ki_core_entity"}) + local fu_cores = game.surfaces[i].find_entities_filtered({name="fu_ki_core_entity"}) + local el_beacons = game.surfaces[i].find_entities_filtered({name="el_ki_beacon_entity"}) + local fi_beacons = game.surfaces[i].find_entities_filtered({name="fi_ki_beacon_entity"}) + local fu_beacons = game.surfaces[i].find_entities_filtered({name="fu_ki_beacon_entity"}) + + for x,f in pairs(el_cores) do + register_ki_entity(el_cores[i],"core") + end + for x,f in pairs(fi_cores) do + register_ki_entity(fi_cores[i],"buffer1") + end + for x,f in pairs(fu_cores) do + register_ki_entity(fu_cores[i],"buffer2") + end + + for x,f in pairs(el_beacons) do + register_ki_entity(el_beacons[i],"beacon") + end + for x,f in pairs(fi_beacons) do + register_ki_entity(fi_beacons[i],"beacon") + end + for x,f in pairs(fu_beacons) do + register_ki_entity(fu_beacons[i],"beacon") + end + + local slave_ki_cores = game.surfaces[i].find_entities_filtered({name="el_ki_core_slave_entity"}) + local slave_fi_cores = game.surfaces[i].find_entities_filtered({name="fi_ki_core_slave_entity"}) + local slave_fu_cores = game.surfaces[i].find_entities_filtered({name="fu_ki_core_slave_entity"}) + local container_fi_cores = game.surfaces[i].find_entities_filtered({name="fi_ki_core_slave_container_entity"}) + local container_fu_cores = game.surfaces[i].find_entities_filtered({name="fu_ki_core_slave_container_entity"}) + + kill_old_slaves(slave_ki_cores,"core","slave") + kill_old_slaves(slave_fi_cores,"buffer1","slave") + kill_old_slaves(slave_fu_cores,"buffer2","slave") + kill_old_slaves(container_fi_cores,"buffer1","container") + kill_old_slaves(container_fu_cores,"buffer2","container") + +end + + diff --git a/oldmigration/248k-0.4.9.lua b/oldmigration/248k-0.4.9.lua new file mode 100644 index 0000000..0c27926 --- /dev/null +++ b/oldmigration/248k-0.4.9.lua @@ -0,0 +1,180 @@ +require('scripts/electronic/el_ki_script') +require('scripts/gravitation/gr_black_hole_script') +local gui = require('scripts/gui') + +local function register_ki_entity(entity,type) + if entity then + if entity.valid then + if global.ki then + if global.ki[type] then + local unit = entity.unit_number + if not global.ki[type][unit] then + if type == "core" then + make_ki_core(entity) + end + + if type == "buffer1" then + make_ki_buffer1(entity) + end + + if type == "buffer2" then + make_ki_buffer2(entity) + end + + if type == "beacon" then + make_ki_beacon(entity) + end + end + end + end + end + end +end + +local function remove_new_slaves(tablein,type,slave) + local table = tablein + for i,v in pairs(table) do + for x,f in pairs(global.ki[type]) do + if global.ki[type][x][slave] then + if global.ki[type][x][slave].valid then + if table[i] then + if table[i].valid then + if global.ki[type][x][slave].unit_number == table[i].unit_number then + table[i] = nil + end + end + end + end + end + end + end + return table +end + +local function kill_old_slaves(table,type,slave) + local old_slaves = remove_new_slaves(table,type,slave) + if old_slaves then + for i,v in pairs(old_slaves) do + if old_slaves[i] then + if old_slaves[i].valid then + local slave = old_slaves[i] + slave.destroy() + end + end + end + end +end + + + + +for _, force in pairs(game.forces) do + force.reset_recipes() + force.reset_technologies() + force.reset_technology_effects() +end + + +if game.active_mods["Booktorio"] then + registerThread_248k() +end + +for i,v in pairs(game.players) do + gui.add_top_gui(game.players[i]) +end + +--if not global.ki then + el_ki_init(e) + gr_black_hole_init(e) +--end + +if global.el_ki_stats then + for i,v in pairs(global.el_ki_stats) do + local slave = global.el_ki_stats[i].slave + slave.destroy() + local container = global.el_ki_stats[i].container + container.destroy() + make_ki_core(global.el_ki_stats[i].entity) + global.el_ki_stats[i] = nil + end + global.el_ki_stats = nil +end +if global.fi_ki_stats then + for i,v in pairs(global.fi_ki_stats) do + local slave = global.fi_ki_stats[i].slave + slave.destroy() + local container = global.fi_ki_stats[i].container + container.destroy() + local container2 = global.fi_ki_stats[i].container2 + container2.destroy() + make_ki_buffer1(global.fi_ki_stats[i].entity) + global.fi_ki_stats[i] = nil + end + global.fi_ki_stats = nil +end +if global.fu_ki_stats then + for i,v in pairs(global.fu_ki_stats) do + local slave = global.fu_ki_stats[i].slave + slave.destroy() + local container = global.fu_ki_stats[i].container + container.destroy() + local container2 = global.fu_ki_stats[i].container2 + container2.destroy() + make_ki_buffer2(global.fu_ki_stats[i].entity) + global.fu_ki_stats[i] = nil + end + global.fu_ki_stats = nil +end +if global.el_ki_beacons then + for i,v in pairs(global.el_ki_beacons) do + local slave = global.el_ki_beacons[i].slave + slave.destroy() + make_ki_beacon(global.el_ki_beacons[i].entity) + global.el_ki_beacons[i] = nil + end + global.el_ki_beacons = nil +end + +for i,v in pairs(game.surfaces) do + local el_cores = game.surfaces[i].find_entities_filtered({name="el_ki_core_entity"}) + local fi_cores = game.surfaces[i].find_entities_filtered({name="fi_ki_core_entity"}) + local fu_cores = game.surfaces[i].find_entities_filtered({name="fu_ki_core_entity"}) + local el_beacons = game.surfaces[i].find_entities_filtered({name="el_ki_beacon_entity"}) + local fi_beacons = game.surfaces[i].find_entities_filtered({name="fi_ki_beacon_entity"}) + local fu_beacons = game.surfaces[i].find_entities_filtered({name="fu_ki_beacon_entity"}) + + for x,f in pairs(el_cores) do + register_ki_entity(el_cores[i],"core") + end + for x,f in pairs(fi_cores) do + register_ki_entity(fi_cores[i],"buffer1") + end + for x,f in pairs(fu_cores) do + register_ki_entity(fu_cores[i],"buffer2") + end + + for x,f in pairs(el_beacons) do + register_ki_entity(el_beacons[i],"beacon") + end + for x,f in pairs(fi_beacons) do + register_ki_entity(fi_beacons[i],"beacon") + end + for x,f in pairs(fu_beacons) do + register_ki_entity(fu_beacons[i],"beacon") + end + + local slave_ki_cores = game.surfaces[i].find_entities_filtered({name="el_ki_core_slave_entity"}) + local slave_fi_cores = game.surfaces[i].find_entities_filtered({name="fi_ki_core_slave_entity"}) + local slave_fu_cores = game.surfaces[i].find_entities_filtered({name="fu_ki_core_slave_entity"}) + local container_fi_cores = game.surfaces[i].find_entities_filtered({name="fi_ki_core_slave_container_entity"}) + local container_fu_cores = game.surfaces[i].find_entities_filtered({name="fu_ki_core_slave_container_entity"}) + + kill_old_slaves(slave_ki_cores,"core","slave") + kill_old_slaves(slave_fi_cores,"buffer1","slave") + kill_old_slaves(slave_fu_cores,"buffer2","slave") + kill_old_slaves(container_fi_cores,"buffer1","container") + kill_old_slaves(container_fu_cores,"buffer2","container") + +end + + diff --git a/prototypes/248k_elements.lua b/prototypes/248k_elements.lua new file mode 100644 index 0000000..f72ec30 --- /dev/null +++ b/prototypes/248k_elements.lua @@ -0,0 +1,327 @@ +--local functions +local function config(name) + return settings.startup[name].value +end + +local function sprite(name) + return '__248k__/ressources/elements/'..name +end + +data:extend({ + { + name = 'fu_hydrogen', + type = 'fluid', + icon = sprite('fu_hydrogen.png'), + icon_size = 64, + default_temperature = 15, + max_temperature = 1000, + heat_capacity = '1kJ', + base_color = { r=0.0, g=0.3, b=0.4 }, + flow_color = { r=0.0, g=0.3, b=0.4 }, + pressure_to_speed_ratio = 0.400, + flow_to_energy_ratio = 0.290, + subgroup = 'fu_item_subgroup_e', + order = 'a-a', + }, + { + name = 'fu_oxygen', + type = 'fluid', + icon = sprite('fu_oxygen.png'), + icon_size = 64, + default_temperature = 15, + max_temperature = 1000, + heat_capacity = '10kJ', + base_color = { r=0.0, g=0.3, b=0.4 }, + flow_color = { r=0.0, g=0.3, b=0.4 }, + pressure_to_speed_ratio = 0.400, + flow_to_energy_ratio = 0.290, + subgroup = 'fu_item_subgroup_e', + order = 'a-b', + }, + { + name = 'fu_protium', + type = 'fluid', + icon = sprite('fu_protium.png'), + icon_size = 64, + default_temperature = 15, + max_temperature = 1000, + heat_capacity = '1kJ', + base_color = { r=0.0, g=0.3, b=0.4 }, + flow_color = { r=0.0, g=0.3, b=0.4 }, + pressure_to_speed_ratio = 0.400, + flow_to_energy_ratio = 0.290, + subgroup = 'fu_item_subgroup_f', + order = 'a-a', + }, + { + name = 'fu_deuterium', + type = 'fluid', + icon = sprite('fu_deuterium.png'), + icon_size = 64, + default_temperature = 15, + max_temperature = 1000, + heat_capacity = '1kJ', + base_color = { r=0.0, g=0.3, b=0.4 }, + flow_color = { r=0.0, g=0.3, b=0.4 }, + pressure_to_speed_ratio = 0.400, + flow_to_energy_ratio = 0.290, + subgroup = 'fu_item_subgroup_f', + order = 'a-a', + }, + { + name = 'fu_tritium', + type = 'fluid', + icon = sprite('fu_tritium.png'), + icon_size = 64, + default_temperature = 15, + max_temperature = 1000, + heat_capacity = '1kJ', + base_color = { r=0.0, g=0.3, b=0.4 }, + flow_color = { r=0.0, g=0.3, b=0.4 }, + pressure_to_speed_ratio = 0.400, + flow_to_energy_ratio = 0.290, + subgroup = 'fu_item_subgroup_f', + order = 'a-a', + }, + { + name = 'fu_lithium_6', + type = 'fluid', + icon = sprite('fu_lithium_6.png'), + icon_size = 64, + default_temperature = 15, + max_temperature = 1000, + heat_capacity = '1kJ', + base_color = { r=0.0, g=0.3, b=0.4 }, + flow_color = { r=0.0, g=0.3, b=0.4 }, + pressure_to_speed_ratio = 0.400, + flow_to_energy_ratio = 0.290, + subgroup = 'fu_item_subgroup_f', + order = 'a-a', + }, + { + name = 'fu_helium_3', + type = 'fluid', + icon = sprite('fu_helium_3.png'), + icon_size = 64, + default_temperature = 15, + max_temperature = 1000, + heat_capacity = '1kJ', + base_color = { r=0.0, g=0.3, b=0.4 }, + flow_color = { r=0.0, g=0.3, b=0.4 }, + pressure_to_speed_ratio = 0.400, + flow_to_energy_ratio = 0.290, + subgroup = 'fu_item_subgroup_f', + order = 'a-a', + }, + { + name = 'fu_helium_4', + type = 'fluid', + icon = sprite('fu_helium_4.png'), + icon_size = 64, + default_temperature = 15, + max_temperature = 1000, + heat_capacity = '1kJ', + base_color = { r=0.0, g=0.3, b=0.4 }, + flow_color = { r=0.0, g=0.3, b=0.4 }, + pressure_to_speed_ratio = 0.400, + flow_to_energy_ratio = 0.290, + subgroup = 'fu_item_subgroup_f', + order = 'a-a', + }, + --heated plasma + { + name = 'fu_protium_heated', + type = 'fluid', + icon = sprite('fu_protium_heated.png'), + icon_size = 64, + default_temperature = 15, + max_temperature = 1000, + heat_capacity = '1kJ', + base_color = { r=0.0, g=0.3, b=0.4 }, + flow_color = { r=0.0, g=0.3, b=0.4 }, + pressure_to_speed_ratio = 0.400, + flow_to_energy_ratio = 0.290, + subgroup = 'fu_item_subgroup_f', + order = 'a-a', + }, + { + name = 'fu_iron_heated', + type = 'fluid', + icon = sprite('fu_iron_heated.png'), + icon_size = 64, + default_temperature = 15, + max_temperature = 1000, + heat_capacity = '1kJ', + base_color = { r=0.0, g=0.3, b=0.4 }, + flow_color = { r=0.0, g=0.3, b=0.4 }, + pressure_to_speed_ratio = 0.400, + flow_to_energy_ratio = 0.290, + subgroup = 'fu_item_subgroup_f', + order = 'a-a', + }, + { + name = 'fu_iron', + type = 'fluid', + icon = sprite('fu_iron.png'), + icon_size = 64, + default_temperature = 15, + max_temperature = 1000, + heat_capacity = '1kJ', + base_color = { r=0.0, g=0.3, b=0.4 }, + flow_color = { r=0.0, g=0.3, b=0.4 }, + pressure_to_speed_ratio = 0.400, + flow_to_energy_ratio = 0.290, + subgroup = 'fu_item_subgroup_f', + order = 'a-a', + }, + { + name = 'fu_copper', + type = 'fluid', + icon = sprite('fu_copper.png'), + icon_size = 64, + default_temperature = 15, + max_temperature = 1000, + heat_capacity = '1kJ', + base_color = { r=0.0, g=0.3, b=0.4 }, + flow_color = { r=0.0, g=0.3, b=0.4 }, + pressure_to_speed_ratio = 0.400, + flow_to_energy_ratio = 0.290, + subgroup = 'fu_item_subgroup_f', + order = 'a-a', + }, + { + name = 'fu_copper_heated', + type = 'fluid', + icon = sprite('fu_copper_heated.png'), + icon_size = 64, + default_temperature = 15, + max_temperature = 1000, + heat_capacity = '1kJ', + base_color = { r=0.0, g=0.3, b=0.4 }, + flow_color = { r=0.0, g=0.3, b=0.4 }, + pressure_to_speed_ratio = 0.400, + flow_to_energy_ratio = 0.290, + subgroup = 'fu_item_subgroup_f', + order = 'a-a', + }, + { + name = 'fu_lithium_7', + type = 'fluid', + icon = sprite('fu_lithium_7.png'), + icon_size = 64, + default_temperature = 15, + max_temperature = 1000, + heat_capacity = '1kJ', + base_color = { r=0.0, g=0.3, b=0.4 }, + flow_color = { r=0.0, g=0.3, b=0.4 }, + pressure_to_speed_ratio = 0.400, + flow_to_energy_ratio = 0.290, + subgroup = 'fu_item_subgroup_f', + order = 'a-a', + }, + { + name = 'fu_lithium_7_heated', + type = 'fluid', + icon = sprite('fu_lithium_7_heated.png'), + icon_size = 64, + default_temperature = 15, + max_temperature = 1000, + heat_capacity = '1kJ', + base_color = { r=0.0, g=0.3, b=0.4 }, + flow_color = { r=0.0, g=0.3, b=0.4 }, + pressure_to_speed_ratio = 0.400, + flow_to_energy_ratio = 0.290, + subgroup = 'fu_item_subgroup_f', + order = 'a-a', + }, + { + name = 'fu_sulfur', + type = 'fluid', + icon = sprite('fu_sulfur.png'), + icon_size = 64, + default_temperature = 15, + max_temperature = 1000, + heat_capacity = '1kJ', + base_color = { r=0.0, g=0.3, b=0.4 }, + flow_color = { r=0.0, g=0.3, b=0.4 }, + pressure_to_speed_ratio = 0.400, + flow_to_energy_ratio = 0.290, + subgroup = 'fu_item_subgroup_f', + order = 'a-a', + }, + { + name = 'fu_sulfur_heated', + type = 'fluid', + icon = sprite('fu_sulfur_heated.png'), + icon_size = 64, + default_temperature = 15, + max_temperature = 1000, + heat_capacity = '1kJ', + base_color = { r=0.0, g=0.3, b=0.4 }, + flow_color = { r=0.0, g=0.3, b=0.4 }, + pressure_to_speed_ratio = 0.400, + flow_to_energy_ratio = 0.290, + subgroup = 'fu_item_subgroup_f', + order = 'a-a', + }, + { + name = 'fu_uranium_238', + type = 'fluid', + icon = sprite('fu_uranium_238.png'), + icon_size = 64, + default_temperature = 15, + max_temperature = 1000, + heat_capacity = '1kJ', + base_color = { r=0.0, g=0.3, b=0.4 }, + flow_color = { r=0.0, g=0.3, b=0.4 }, + pressure_to_speed_ratio = 0.400, + flow_to_energy_ratio = 0.290, + subgroup = 'fu_item_subgroup_f', + order = 'a-a', + }, + { + name = 'fu_uranium_238_heated', + type = 'fluid', + icon = sprite('fu_uranium_238_heated.png'), + icon_size = 64, + default_temperature = 15, + max_temperature = 1000, + heat_capacity = '1kJ', + base_color = { r=0.0, g=0.3, b=0.4 }, + flow_color = { r=0.0, g=0.3, b=0.4 }, + pressure_to_speed_ratio = 0.400, + flow_to_energy_ratio = 0.290, + subgroup = 'fu_item_subgroup_f', + order = 'a-a', + }, + { + name = 'fu_uranium_235', + type = 'fluid', + icon = sprite('fu_uranium_235.png'), + icon_size = 64, + default_temperature = 15, + max_temperature = 1000, + heat_capacity = '1kJ', + base_color = { r=0.0, g=0.3, b=0.4 }, + flow_color = { r=0.0, g=0.3, b=0.4 }, + pressure_to_speed_ratio = 0.400, + flow_to_energy_ratio = 0.290, + subgroup = 'fu_item_subgroup_f', + order = 'a-a', + }, + { + name = 'fu_uranium_235_heated', + type = 'fluid', + icon = sprite('fu_uranium_235_heated.png'), + icon_size = 64, + default_temperature = 15, + max_temperature = 1000, + heat_capacity = '1kJ', + base_color = { r=0.0, g=0.3, b=0.4 }, + flow_color = { r=0.0, g=0.3, b=0.4 }, + pressure_to_speed_ratio = 0.400, + flow_to_energy_ratio = 0.290, + subgroup = 'fu_item_subgroup_f', + order = 'a-a', + }, +}) \ No newline at end of file diff --git a/prototypes/248k_fluids.lua b/prototypes/248k_fluids.lua new file mode 100644 index 0000000..034f47d --- /dev/null +++ b/prototypes/248k_fluids.lua @@ -0,0 +1,161 @@ +--local functions +local function config(name) + return settings.startup[name].value +end + +local function sprite(name) + return '__248k__/ressources/fluids/'..name +end + +data:extend({ + { + name = 'el_pressurized_water', + type = 'fluid', + icon = sprite('el_pressurized_water.png'), + icon_size = 64, + default_temperature = 100, + max_temperature = 1000, + heat_capacity = '1kJ', + base_color = { r=0.0, g=0.3, b=0.4 }, + flow_color = { r=0.0, g=0.3, b=0.4 }, + pressure_to_speed_ratio = 0.400, + flow_to_energy_ratio = 0, + subgroup = 'el_item_subgroup_e', + order = 'a-a', + }, + { + name = 'el_kerosene', + type = 'fluid', + icon = sprite('el_kerosene.png'), + icon_size = 64, + default_temperature = 15, + max_temperature = 1000, + heat_capacity = '10kJ', + base_color = { r=0.76, g=0.45, b=0.3 }, + flow_color = { r=0.76, g=0.45, b=0.3 }, + pressure_to_speed_ratio = 0.400, + flow_to_energy_ratio = 0, + subgroup = 'el_item_subgroup_e', + order = 'a-b', + }, + { + name = 'el_acidic_water', + type = 'fluid', + icon = sprite('el_acidic_water.png'), + icon_size = 64, + default_temperature = 15, + max_temperature = 1000, + heat_capacity = '1kJ', + base_color = { r=0.55, g=0.82, b=0.51 }, + flow_color = { r=0.55, g=0.82, b=0.51 }, + pressure_to_speed_ratio = 0.400, + flow_to_energy_ratio = 0, + subgroup = 'el_item_subgroup_e', + order = 'a-c', + }, + { + name = 'el_desulfurized_kerosene', + type = 'fluid', + icon = sprite('el_desulfurized_kerosene.png'), + icon_size = 64, + default_temperature = 15, + max_temperature = 1000, + heat_capacity = '2kJ', + base_color = { r=0.9, g=0.77, b=0.6 }, + flow_color = { r=0.9, g=0.77, b=0.6 }, + pressure_to_speed_ratio = 0.400, + flow_to_energy_ratio = 0, + subgroup = 'el_item_subgroup_e', + order = 'a-d', + }, + { + name = 'el_ki_memory_fluid', + type = 'fluid', + icon = sprite('el_ki_memory_fluid.png'), + icon_size = 64, + default_temperature = 15, + max_temperature = 1000, + heat_capacity = '1kJ', + base_color = { r=0.9, g=0.77, b=0.6 }, + flow_color = { r=0.9, g=0.77, b=0.6 }, + pressure_to_speed_ratio = 0.400, + flow_to_energy_ratio = 0, + subgroup = 'el_item_subgroup_e', + order = 'a-e', + }, + { + name = 'el_ki_cpu_fluid', + type = 'fluid', + icon = sprite('el_ki_cpu_fluid.png'), + icon_size = 64, + default_temperature = 15, + max_temperature = 1000, + heat_capacity = '1kJ', + base_color = { r=0.9, g=0.77, b=0.6 }, + flow_color = { r=0.9, g=0.77, b=0.6 }, + pressure_to_speed_ratio = 0.400, + flow_to_energy_ratio = 0, + subgroup = 'el_item_subgroup_e', + order = 'a-e', + }, + { + name = 'fi_ki_circuit_fluid', + type = 'fluid', + icon = sprite('fi_ki_circuit_fluid.png'), + icon_size = 64, + default_temperature = 15, + max_temperature = 1000, + heat_capacity = '1kJ', + base_color = { r=0.9, g=0.77, b=0.6 }, + flow_color = { r=0.9, g=0.77, b=0.6 }, + pressure_to_speed_ratio = 0.400, + flow_to_energy_ratio = 0, + subgroup = 'el_item_subgroup_e', + order = 'a-e', + }, + { + name = 'fu_ki_circuit_fluid', + type = 'fluid', + icon = sprite('fu_ki_circuit_fluid.png'), + icon_size = 64, + default_temperature = 15, + max_temperature = 1000, + heat_capacity = '1kJ', + base_color = { r=0.9, g=0.77, b=0.6 }, + flow_color = { r=0.9, g=0.77, b=0.6 }, + pressure_to_speed_ratio = 0.400, + flow_to_energy_ratio = 0, + subgroup = 'el_item_subgroup_e', + order = 'a-e', + }, + { + name = 'fi_crystal_fluid', + type = 'fluid', + icon = sprite('fi_crystal_fluid.png'), + icon_size = 64, + default_temperature = 15, + max_temperature = 1000, + heat_capacity = '1kJ', + base_color = { r=0.9, g=0.77, b=0.6 }, + flow_color = { r=0.9, g=0.77, b=0.6 }, + pressure_to_speed_ratio = 0.400, + flow_to_energy_ratio = 0, + subgroup = 'fi_item_subgroup_f', + order = 'a-a', + }, + { + name = 'fu_lead_fluid', + type = 'fluid', + icon = sprite('fu_lead_fluid.png'), + icon_size = 64, + default_temperature = 15, + max_temperature = 1500, + heat_capacity = '100kJ', + base_color = { r=0.9, g=0.77, b=0.6 }, + flow_color = { r=0.9, g=0.77, b=0.6 }, + pressure_to_speed_ratio = 0.400, + flow_to_energy_ratio = 0, + subgroup = 'fu_item_subgroup_e', + order = 'a-a', + }, +}) \ No newline at end of file diff --git a/prototypes/248k_subgroups.lua b/prototypes/248k_subgroups.lua new file mode 100644 index 0000000..5c3ddf4 --- /dev/null +++ b/prototypes/248k_subgroups.lua @@ -0,0 +1,442 @@ +local function sprite(name) + return '__248k__/ressources/groups/'..name +end + +data:extend({ +--============================================================================================================================================================ +--inventory subgroups + { + name = 'el_item_group', + type = 'item-group', + icon = sprite('el_group_icon.png'), + icon_size = 64, + inventory_order = "f", + order = "e", + }, + { + name = 'fi_item_group', + type = 'item-group', + icon = sprite('fi_group_icon.png'), + icon_size = 64, + inventory_order = "g", + order = "e", + }, + { + name = 'fu_item_group', + type = 'item-group', + icon = sprite('fu_group_icon.png'), + icon_size = 64, + inventory_order = "h", + order = "e", + }, + { + name = 'fu_star_engine_group', + type = 'item-group', + icon = sprite('fu_group_icon.png'), + icon_size = 64, + inventory_order = "k", + order = "e", + }, + { + name = 'gr_item_group', + type = 'item-group', + icon = sprite('gr_group_icon.png'), + icon_size = 64, + inventory_order = "j", + order = "e", + }, + --ores+materials + { + name = 'el_item_subgroup_a', + type = 'item-subgroup', + group = 'el_item_group', + order = 'a', + }, + { + name = 'fi_item_subgroup_a', + type = 'item-subgroup', + group = 'fi_item_group', + order = 'a', + }, + { + name = 'fi_item_subgroup_a-b', + type = 'item-subgroup', + group = 'fi_item_group', + order = 'a-b', + }, + { + name = 'fi_item_subgroup_a-c', + type = 'item-subgroup', + group = 'fi_item_group', + order = 'a-c', + }, + { + name = 'fu_item_subgroup_a', + type = 'item-subgroup', + group = 'fu_item_group', + order = 'a', + }, + { + name = 'gr_item_subgroup_a', + type = 'item-subgroup', + group = 'gr_item_group', + order = 'a', + }, + { + name = 'fu_item_subgroup_a-b', + type = 'item-subgroup', + group = 'fu_item_group', + order = 'a-b', + }, + --items + { + name = 'el_item_subgroup_b', + type = 'item-subgroup', + group = 'el_item_group', + order = 'b', + }, + { + name = 'fi_item_subgroup_b', + type = 'item-subgroup', + group = 'fi_item_group', + order = 'b', + }, + { + name = 'fu_item_subgroup_b', + type = 'item-subgroup', + group = 'fu_item_group', + order = 'b', + }, + { + name = 'gr_item_subgroup_b', + type = 'item-subgroup', + group = 'gr_item_group', + order = 'b', + }, + --placeable + { + name = 'el_item_subgroup_c', + type = 'item-subgroup', + group = 'el_item_group', + order = 'c', + }, + { + name = 'fi_item_subgroup_c', + type = 'item-subgroup', + group = 'fi_item_group', + order = 'c', + }, + { + name = 'fu_item_subgroup_c', + type = 'item-subgroup', + group = 'fu_item_group', + order = 'c', + }, + { + name = 'gr_item_subgroup_c', + type = 'item-subgroup', + group = 'gr_item_group', + order = 'c', + }, + --train and stuff + { + name = 'el_item_subgroup_d', + type = 'item-subgroup', + group = 'el_item_group', + order = 'd', + }, + { + name = 'fi_item_subgroup_d', + type = 'item-subgroup', + group = 'fi_item_group', + order = 'd', + }, + { + name = 'fu_item_subgroup_d', + type = 'item-subgroup', + group = 'fu_item_group', + order = 'd-a', + }, + { + name = 'gr_item_subgroup_d', + type = 'item-subgroup', + group = 'gr_item_group', + order = 'd-a', + }, + { + name = 'fu_item_subgroup_d-b', + type = 'item-subgroup', + group = 'fu_item_group', + order = 'd-b', + }, + --fluids + { + name = 'el_item_subgroup_e', + type = 'item-subgroup', + group = 'el_item_group', + order = 'e', + }, + { + name = 'fi_item_subgroup_e', + type = 'item-subgroup', + group = 'fi_item_group', + order = 'e', + }, + { + name = 'fu_item_subgroup_e', + type = 'item-subgroup', + group = 'fu_item_group', + order = 'e', + }, + { + name = 'gr_item_subgroup_e', + type = 'item-subgroup', + group = 'gr_item_group', + order = 'e', + }, + --ki stuff + { + name = 'el_item_subgroup_f', + type = 'item-subgroup', + group = 'el_item_group', + order = 'f', + }, + { + name = 'fi_item_subgroup_f', + type = 'item-subgroup', + group = 'fi_item_group', + order = 'f', + }, + { + name = 'fu_item_subgroup_f', + type = 'item-subgroup', + group = 'fu_item_group', + order = 'f', + }, + { + name = 'gr_item_subgroup_f', + type = 'item-subgroup', + group = 'gr_item_group', + order = 'f', + }, + --j + { + name = 'fi_item_subgroup_j', + type = 'item-subgroup', + group = 'fi_item_group', + order = 'j', + }, + --k + { + name = 'el_item_subgroup_k', + type = 'item-subgroup', + group = 'el_item_group', + order = 'k', + }, + { + name = 'fi_item_subgroup_k', + type = 'item-subgroup', + group = 'fi_item_group', + order = 'k', + }, + { + name = 'fu_item_subgroup_k', + type = 'item-subgroup', + group = 'fu_item_group', + order = 'k', + }, + --star engine + { + name = 'fu_star_engine_subgroup_a', + type = 'item-subgroup', + group = 'fu_star_engine_group', + order = 'a', + }, + { + name = 'fu_star_engine_subgroup_b', + type = 'item-subgroup', + group = 'fu_star_engine_group', + order = 'b', + }, + { + name = 'fu_star_engine_subgroup_c', + type = 'item-subgroup', + group = 'fu_star_engine_group', + order = 'c', + }, + { + name = 'fu_star_engine_subgroup_d', + type = 'item-subgroup', + group = 'fu_star_engine_group', + order = 'd', + }, + { + name = 'fu_star_engine_subgroup_e', + type = 'item-subgroup', + group = 'fu_star_engine_group', + order = 'e', + }, +--============================================================================================================================================================ + + --ki_crafting + { + name = 'el_ki_crafting_category', + type = 'recipe-category', + }, + --el_ki_memory + { + name = 'el_ki_memory_category', + type = 'recipe-category', + }, + --el_ki_cpu + { + name = 'el_ki_cpu_category', + type = 'recipe-category', + }, + --el_ki_core + { + name = 'el_ki_core_category', + type = 'recipe-category', + }, + { + name = 'fi_ki_core_category', + type = 'recipe-category', + }, + { + name = 'fu_ki_core_category', + type = 'recipe-category', + }, + { + name = 'fi_ki_circuit_category', + type = 'recipe-category', + }, + { + name = 'fu_ki_circuit_category', + type = 'recipe-category', + }, + +--============================================================================================================================================================ + --fi_nuclear assembling + { + name = 'fi_crafting_category', + type = 'recipe-category', + }, + --fi_crushing + { + name = 'fi_crushing', + type = 'recipe-category', + }, + --fi_modules + --producticity + { + name = '248k_productivity_category', + type = 'module-category', + }, + +--============================================================================================================================================================ + --fu fusor + { + name = 'fu_fusor_crafting_category', + type = 'recipe-category', + }, + --fu boiler + { + name = 'fu_boiler_crafting_category', + type = 'recipe-category', + }, + --fu_reactors + { + name = 'fu_stelar_reactor_crafting_category', + type = 'recipe-category', + }, + { + name = 'fu_tokamak_reactor_crafting_category', + type = 'recipe-category', + }, + --fu_exchanger + { + name = 'fu_exchanger_crafting_category', + type = 'recipe-category', + }, + --fu_activator + { + name = 'fu_activator_crafting_category', + type = 'recipe-category', + }, + --star engine + { + name = 'fu_star_engine_core_crafting_category', + type = 'recipe-category', + }, + { + name = 'fu_star_engine_cooler_crafting_category', + type = 'recipe-category', + }, + { + name = 'fu_star_engine_heater_crafting_category', + type = 'recipe-category', + }, + { + name = 'fu_star_engine_caster_crafting_category', + type = 'recipe-category', + }, +--============================================================================================================================================================ + + + --fuel_category + { + name = 'el_train_fuel', + type = 'fuel-category', + }, + { + name = 'fi_basic_fuel', + type = 'fuel-category', + }, + { + name = 'fi_advanced_fuel', + type = 'fuel-category', + }, + { + name = 'fi_pure_fuel', + type = 'fuel-category', + }, + --train_equip + { + name = 'el_train_equipment', + type = 'equipment-category', + }, + { + name = 'fi_train_equipment', + type = 'equipment-category', + }, + + --recipe + { + name = 'el_special_fluid', + type = 'recipe-category', + }, + { + name = "gr_cooker_fluid", + type = "recipe-category" + }, + { + name = "gr_charger_category", + type = "recipe-category" + }, + { + name = "gr_white_hole_category", + type = "recipe-category" + }, + + --grids + { + name = 'el_train_equipment_grid', + type = 'equipment-grid', + width = 6, + height = 6, + equipment_categories = { + 'el_train_equipment', + 'fi_train_equipment', + }, + }, +}) \ No newline at end of file diff --git a/prototypes/248k_techs.lua b/prototypes/248k_techs.lua new file mode 100644 index 0000000..3ab743f --- /dev/null +++ b/prototypes/248k_techs.lua @@ -0,0 +1,2798 @@ +--local functions +local function sprite(name) + return '__248k__/ressources/techs/'..name +end +--techs +data:extend({ + --el + { + name = 'el_stage_tech', + type = 'technology', + icon = sprite('el_stage_tech.png'), + icon_size = 128, + prerequisites = {'electronics'}, + effects = { + { + type = 'nothing', + effect_description = {'description.el_stage_eff'}, + }, + }, + unit = { + count = '200', + ingredients = { + {'automation-science-pack',1}, + }, + time = 30, + }, + }, + --el_engery + { + name = 'el_energy_tech', + type = 'technology', + icon = sprite('el_energy_tech.png'), + icon_size = 128, + prerequisites = {'el_stage_tech'}, + effects = { + { + type = 'nothing', + effect_description = {'description.el_energy_eff'}, + }, + }, + unit = { + count = '150', + ingredients = { + {'automation-science-pack',1}, + {'logistic-science-pack',1}, + }, + time = 30, + }, + }, + --solar + { + name = 'el_solar_tech', + type = 'technology', + icon = sprite('el_solar_tech.png'), + icon_size = 128, + prerequisites = {'el_energy_tech'}, + effects = { + { + type = 'unlock-recipe', + recipe = 'el_solar_recipe', + }, + }, + unit = { + count = '150', + ingredients = { + {'automation-science-pack',1}, + {'logistic-science-pack',1}, + }, + time = 30, + }, + }, + --burner + { + name = 'el_burner_tech', + type = 'technology', + icon = sprite('el_burner_tech.png'), + icon_size = 128, + prerequisites = {'el_energy_tech'}, + effects = { + { + type = 'unlock-recipe', + recipe = 'el_burner_recipe', + }, + { + type = 'unlock-recipe', + recipe = 'el_burner_kerosene_recipe', + }, + }, + unit = { + count = '150', + ingredients = { + {'automation-science-pack',1}, + {'logistic-science-pack',1}, + }, + time = 30, + }, + }, + --water generator + { + name = 'el_water_generator_tech', + type = 'technology', + icon = sprite('el_water_generator_tech.png'), + icon_size = 128, + prerequisites = {'el_energy_tech'}, + effects = { + { + type = 'unlock-recipe', + recipe = 'el_water_generator_recipe', + }, + { + type = 'unlock-recipe', + recipe = 'el_pressurizer_recipe', + }, + { + type = 'unlock-recipe', + recipe = 'el_water_pressure_recipe', + }, + }, + unit = { + count = '150', + ingredients = { + {'automation-science-pack',1}, + {'logistic-science-pack',1}, + }, + time = 30, + }, + }, + --aluminum_ore + --aluminum_item + { + name = 'el_aluminum_tech', + type = 'technology', + icon = sprite('el_aluminum_tech.png'), + icon_size = 128, + prerequisites = {'el_stage_tech'}, + effects = { + { + type = 'unlock-recipe', + recipe = 'el_aluminum_ore_recipe', + }, + { + type = 'unlock-recipe', + recipe = 'el_aluminum_item_recipe', + }, + }, + unit = { + count = '30', + ingredients = { + {'automation-science-pack',1}, + {'logistic-science-pack',1,}, + }, + time = 30, + }, + }, + --lithium_ore + --lithium_item + --lithium_basic_battery + --lithium_battery + { + name = 'el_lithium_tech', + type = 'technology', + icon = sprite('el_lithium_tech.png'), + icon_size = 128, + prerequisites = {'el_stage_tech'}, + effects = { + { + type = 'unlock-recipe', + recipe = 'el_lithium_ore_recipe', + }, + { + type = 'unlock-recipe', + recipe = 'el_lithium_item_recipe', + }, + { + type = 'unlock-recipe', + recipe = 'el_lithium_basic_battery_recipe', + }, + { + type = 'unlock-recipe', + recipe = 'el_lithium_battery_recipe', + }, + }, + unit = { + count = '30', + ingredients = { + {'automation-science-pack',1}, + {'logistic-science-pack',1,}, + }, + time = 30, + }, + }, + --el_kerosene + --el_acidic_water + --el_desulfurized_kerosene + { + name = 'el_kerosene_tech', + type = 'technology', + icon = sprite('el_kerosene_tech.png'), + icon_size = 128, + prerequisites = {'el_stage_tech'}, + effects = { + { + type = 'unlock-recipe', + recipe = 'el_kerosene_recipe', + }, + { + type = 'unlock-recipe', + recipe = 'el_desulfurized_kerosene_recipe', + }, + { + type = 'unlock-recipe', + recipe = 'el_usage_acidic_water_recipe', + }, + { + type = 'unlock-recipe', + recipe = 'el_tank_recipe', + }, + { + type = 'nothing', + effect_description = {'description.el_kerosene_tech_eff'}, + }, + }, + unit = { + count = '150', + ingredients = { + {'automation-science-pack',1}, + {'logistic-science-pack',1,}, + }, + time = 30, + }, + }, + --el_train + --el_equip + { + name = 'el_train_tech', + type = 'technology', + icon = sprite('el_train_tech.png'), + icon_size = 128, + prerequisites = {'el_kerosene_tech'}, + effects = { + { + type = 'unlock-recipe', + recipe = 'el_train_fuel_diesel_recipe', + }, + { + type = 'unlock-recipe', + recipe = 'el_train_equipment_accelerator_recipe', + }, + { + type = 'unlock-recipe', + recipe = 'el_train_equipment_generator_recipe', + }, + { + type = 'unlock-recipe', + recipe = 'el_diesel_train_recipe', + }, + { + type = 'unlock-recipe', + recipe = 'el_train_fuel_diesel_energized_recipe', + }, + }, + unit = { + count = '350', + ingredients = { + {'automation-science-pack',1}, + {'logistic-science-pack',1,}, + }, + time = 30, + }, + }, + --el_crystal + { + name = 'el_crystal_tech', + type = 'technology', + icon = sprite('el_crystal_tech.png'), + icon_size = 128, + prerequisites = {'el_stage_tech'}, + effects = { + { + type = 'unlock-recipe', + recipe = 'el_energy_crystal_recipe', + }, + { + type = 'unlock-recipe', + recipe = 'el_train_fuel_diesel_energized_recipe', + }, + }, + unit = { + count = '30', + ingredients = { + {'automation-science-pack',1}, + {'logistic-science-pack',1,}, + }, + time = 30, + }, + }, + --el_ki + { + name = 'el_ki_tech', + type = 'technology', + icon = sprite('el_ki_tech.png'), + icon_size = 128, + prerequisites = {'el_stage_tech'}, + effects = { + { + type = 'unlock-recipe', + recipe = 'el_ki_beacon_recipe', + }, + { + type = 'unlock-recipe', + recipe = 'el_ki_core_recipe', + }, + { + type = 'unlock-recipe', + recipe = 'el_ki_memory_recipe', + }, + { + type = 'unlock-recipe', + recipe = 'el_ki_cpu_recipe', + }, + { + type = 'nothing', + effect_description = {'description.el_ki_tech_eff'}, + }, + { + type = 'unlock-recipe', + recipe = 'el_ki_cpu_fluid_recipe', + }, + { + type = 'unlock-recipe', + recipe = 'el_ki_memory_fluid_recipe', + } + }, + unit = { + count = '350', + ingredients = { + {'automation-science-pack',1}, + {'logistic-science-pack',1,}, + }, + time = 30, + }, + }, + { + name = 'fi_ki_tech', + type = 'technology', + icon = sprite('fi_ki_tech.png'), + icon_size = 128, + prerequisites = {'el_ki_tech'}, + effects = { + { + type = 'unlock-recipe', + recipe = 'fi_ki_beacon_recipe', + }, + { + type = 'unlock-recipe', + recipe = 'fi_ki_core_recipe', + }, + { + type = 'unlock-recipe', + recipe = 'fi_ki_circuit_recipe', + }, + { + type = 'unlock-recipe', + recipe = 'fi_ki_circuit_fluid_recipe', + } + }, + unit = { + count = '1000', + ingredients = { + {'chemical-science-pack',1}, + {'automation-science-pack',1}, + {'logistic-science-pack',1} + }, + time = 30, + }, + }, + { + name = 'fu_ki_tech', + type = 'technology', + icon = sprite('fu_ki_tech.png'), + icon_size = 128, + prerequisites = {'fi_ki_tech'}, + effects = { + { + type = 'unlock-recipe', + recipe = 'fu_ki_beacon_recipe', + }, + { + type = 'unlock-recipe', + recipe = 'fu_ki_core_recipe', + }, + { + type = 'unlock-recipe', + recipe = 'fu_ki_circuit_recipe', + }, + { + type = 'unlock-recipe', + recipe = 'fu_ki_circuit_fluid_recipe', + } + }, + unit = { + count = '50', + ingredients = { + {'chemical-science-pack',80}, + {'automation-science-pack',80}, + {'logistic-science-pack',80}, + {'production-science-pack',80}, + {'utility-science-pack',80}, + {'fi_ki_science',1} + }, + time = 30, + }, + }, + { + name = 'el_ki_eff_1_tech', + type = 'technology', + icon = sprite('el_ki_eff_1_tech.png'), + icon_size = 128, + prerequisites = {'el_ki_tech'}, + effects = { + { + type = 'unlock-recipe', + recipe = 'el_ki_cpu_fluid_recipe_1', + }, + { + type = 'unlock-recipe', + recipe = 'el_ki_memory_fluid_recipe_1', + } + }, + unit = { + count = '80', + ingredients = { + {'fi_ki_science',1} + }, + time = 30, + }, + }, + { + name = 'el_ki_eff_2_tech', + type = 'technology', + icon = sprite('el_ki_eff_2_tech.png'), + icon_size = 128, + prerequisites = {'el_ki_eff_1_tech'}, + effects = { + { + type = 'unlock-recipe', + recipe = 'el_ki_cpu_fluid_recipe_2', + }, + { + type = 'unlock-recipe', + recipe = 'el_ki_memory_fluid_recipe_2', + } + }, + unit = { + count = '240', + ingredients = { + {'fi_ki_science',1} + }, + time = 30, + }, + }, + { + name = 'el_ki_eff_3_tech', + type = 'technology', + icon = sprite('el_ki_eff_3_tech.png'), + icon_size = 128, + prerequisites = {'el_ki_eff_2_tech'}, + effects = { + { + type = 'unlock-recipe', + recipe = 'el_ki_cpu_fluid_recipe_3', + }, + { + type = 'unlock-recipe', + recipe = 'el_ki_memory_fluid_recipe_3', + } + }, + unit = { + count = '400', + ingredients = { + {'fu_ki_science',1} + }, + time = 30, + }, + }, + { + name = 'fi_ki_eff_1_tech', + type = 'technology', + icon = sprite('fi_ki_eff_1_tech.png'), + icon_size = 128, + prerequisites = {'fi_ki_tech'}, + effects = { + { + type = 'unlock-recipe', + recipe = 'fi_ki_circuit_fluid_recipe_1', + } + }, + unit = { + count = '40', + ingredients = { + {'fi_ki_science',1} + }, + time = 30, + }, + }, + { + name = 'fi_ki_eff_2_tech', + type = 'technology', + icon = sprite('fi_ki_eff_2_tech.png'), + icon_size = 128, + prerequisites = {'fi_ki_eff_1_tech'}, + effects = { + { + type = 'unlock-recipe', + recipe = 'fi_ki_circuit_fluid_recipe_2', + } + }, + unit = { + count = '120', + ingredients = { + {'fi_ki_science',1} + }, + time = 30, + }, + }, + { + name = 'fi_ki_eff_3_tech', + type = 'technology', + icon = sprite('fi_ki_eff_3_tech.png'), + icon_size = 128, + prerequisites = {'fi_ki_eff_2_tech'}, + effects = { + { + type = 'unlock-recipe', + recipe = 'fi_ki_circuit_fluid_recipe_3', + } + }, + unit = { + count = '200', + ingredients = { + {'fi_ki_science',1} + }, + time = 30, + }, + }, + { + name = 'fu_ki_eff_1_tech', + type = 'technology', + icon = sprite('fu_ki_eff_1_tech.png'), + icon_size = 128, + prerequisites = {'fu_ki_tech'}, + effects = { + { + type = 'unlock-recipe', + recipe = 'fu_ki_circuit_fluid_recipe_1', + } + }, + unit = { + count = '40', + ingredients = { + {'fu_ki_science',1} + }, + time = 30, + }, + }, + { + name = 'fu_ki_eff_2_tech', + type = 'technology', + icon = sprite('fu_ki_eff_2_tech.png'), + icon_size = 128, + prerequisites = {'fu_ki_eff_1_tech'}, + effects = { + { + type = 'unlock-recipe', + recipe = 'fu_ki_circuit_fluid_recipe_2', + } + }, + unit = { + count = '120', + ingredients = { + {'fu_ki_science',1} + }, + time = 30, + }, + }, + { + name = 'fu_ki_eff_3_tech', + type = 'technology', + icon = sprite('fu_ki_eff_3_tech.png'), + icon_size = 128, + prerequisites = {'fu_ki_eff_2_tech'}, + effects = { + { + type = 'unlock-recipe', + recipe = 'fu_ki_circuit_fluid_recipe_3', + } + }, + unit = { + count = '200', + ingredients = { + {'fu_ki_science',1} + }, + time = 30, + }, + }, + { + name = 'fu_ki_plus_1_tech', + type = 'technology', + icon = sprite('fu_ki_plus_1_tech.png'), + icon_size = 128, + prerequisites = {'fu_ki_tech'}, + effects = { + { + type = 'nothing', + effect_description = {'description.x2_ki_tech_eff'}, + }, + }, + unit = { + count = '1000', + ingredients = { + {'chemical-science-pack',100}, + {'automation-science-pack',100}, + {'logistic-science-pack',100}, + {'production-science-pack',100}, + {'utility-science-pack',100}, + {'space-science-pack',100}, + {'fu_space_probe_science_item',100}, + {'fi_ki_science',1}, + {'fu_ki_science',1} + }, + time = 30, + }, + }, + { + name = 'fu_ki_plus_2_tech', + type = 'technology', + icon = sprite('fu_ki_plus_2_tech.png'), + icon_size = 128, + prerequisites = {'fu_ki_plus_1_tech'}, + effects = { + { + type = 'nothing', + effect_description = {'description.x3_ki_tech_eff'}, + }, + }, + unit = { + count = '2000', + ingredients = { + {'chemical-science-pack',100}, + {'automation-science-pack',100}, + {'logistic-science-pack',100}, + {'production-science-pack',100}, + {'utility-science-pack',100}, + {'space-science-pack',100}, + {'fu_space_probe_science_item',100}, + {'fi_ki_science',1}, + {'fu_ki_science',1} + }, + time = 30, + }, + }, + { + name = 'el_ki_sup_1_tech', + type = 'technology', + icon = sprite('el_ki_sup_1_tech.png'), + icon_size = 128, + prerequisites = {'el_ki_eff_1_tech','fi_ki_eff_1_tech'}, + effects = { + { + type = 'nothing', + effect_description = {'description.sup_1_ki_tech_eff'}, + }, + }, + unit = { + count = '100', + ingredients = { + {'fi_ki_science',1} + }, + time = 30, + }, + }, + { + name = 'el_ki_sup_2_tech', + type = 'technology', + icon = sprite('el_ki_sup_2_tech.png'), + icon_size = 128, + prerequisites = {'el_ki_eff_2_tech','fi_ki_eff_2_tech','el_ki_sup_1_tech','fu_ki_eff_1_tech'}, + effects = { + { + type = 'nothing', + effect_description = {'description.sup_2_ki_tech_eff'}, + }, + }, + unit = { + count = '300', + ingredients = { + {'fi_ki_science',1}, + {'fu_ki_science',1} + }, + time = 30, + }, + }, + { + name = 'el_ki_sup_3_tech', + type = 'technology', + icon = sprite('el_ki_sup_3_tech.png'), + icon_size = 128, + prerequisites = {'el_ki_eff_3_tech','fi_ki_eff_3_tech','el_ki_sup_2_tech','fu_ki_eff_2_tech'}, + effects = { + { + type = 'nothing', + effect_description = {'description.sup_3_ki_tech_eff'}, + }, + }, + unit = { + count = '600', + ingredients = { + {'fi_ki_science',1}, + {'fu_ki_science',1} + }, + time = 30, + }, + }, + { + name = 'el_ki_sup_4_tech', + type = 'technology', + icon = sprite('el_ki_sup_4_tech.png'), + icon_size = 128, + prerequisites = {'el_ki_sup_3_tech','fu_ki_eff_3_tech','fu_ki_plus_1_tech'}, + effects = { + { + type = 'nothing', + effect_description = {'description.sup_4_ki_tech_eff'}, + }, + }, + unit = { + count = '900', + ingredients = { + {'fi_ki_science',1}, + {'fu_ki_science',1} + }, + time = 30, + }, + }, + + --============================================================================================================================================================ + --fi + { + name = 'fi_stage_tech', + type = 'technology', + icon = sprite('fi_stage_tech.png'), + icon_size = 128, + prerequisites = { + 'el_aluminum_tech', + 'el_solar_tech', + 'el_burner_tech', + 'el_water_generator_tech', + 'el_train_tech', + 'el_ki_tech', + 'el_lithium_tech' + }, + effects = { + { + type = 'nothing', + effect_description = {'description.fi_stage_eff'}, + }, + }, + unit = { + count = '200', + ingredients = { + {'chemical-science-pack',1}, + {'automation-science-pack',1}, + {'logistic-science-pack',1,}, + }, + time = 30, + }, + }, + --fi_engery + { + name = 'fi_energy_tech', + type = 'technology', + icon = sprite('fi_energy_tech.png'), + icon_size = 128, + prerequisites = {'fi_stage_tech'}, + effects = { + { + type = 'nothing', + effect_description = {'description.fi_energy_eff'}, + }, + }, + unit = { + count = '150', + ingredients = { + {'chemical-science-pack',1}, + {'automation-science-pack',1}, + {'logistic-science-pack',1,}, + }, + time = 30, + }, + }, + --fi + { + name = 'fi_refining_tech', + type = 'technology', + icon = sprite('fi_refining_tech.png'), + icon_size = 128, + prerequisites = {'fi_stage_tech'}, + effects = { + { + type = 'unlock-recipe', + recipe = 'fi_plutonium239_recipe', + }, + { + type = 'unlock-recipe', + recipe = 'fi_uranium233_recipe', + }, + { + type = 'unlock-recipe', + recipe = 'fi_thorium232_recipe', + }, + { + type = 'unlock-recipe', + recipe = 'fi_basic_fuel_recipe', + }, + { + type = 'unlock-recipe', + recipe = 'fi_basic_thorium_fuel_recipe', + }, + }, + unit = { + count = '250', + ingredients = { + {'chemical-science-pack',1}, + {'automation-science-pack',1}, + {'logistic-science-pack',1,}, + }, + time = 30, + }, + }, + --fi_meterails (also crafter) + { + name = 'fi_materials_tech', + type = 'technology', + icon = sprite('fi_materials_tech.png'), + icon_size = 128, + prerequisites = {'fi_stage_tech'}, + effects = { + { + type = 'unlock-recipe', + recipe = 'fi_compound_material_recipe', + }, + { + type = 'unlock-recipe', + recipe = 'fi_crafter_recipe', + }, + { + type = 'unlock-recipe', + recipe = 'fi_low-density-structure_recipe', + }, + }, + unit = { + count = '150', + ingredients = { + {'chemical-science-pack',1}, + {'automation-science-pack',1}, + {'logistic-science-pack',1,}, + }, + time = 30, + }, + }, + --fi_miner + { + name = 'fi_miner_tech', + type = 'technology', + icon = sprite('fi_miner_tech.png'), + icon_size = 128, + prerequisites = {'fi_stage_tech'}, + effects = { + { + type = 'unlock-recipe', + recipe = 'fi_miner_recipe', + }, + }, + unit = { + count = '150', + ingredients = { + {'chemical-science-pack',1}, + {'automation-science-pack',1}, + {'logistic-science-pack',1,}, + }, + time = 30, + }, + }, + --fi_train + { + name = 'fi_train_tech', + type = 'technology', + icon = sprite('fi_train_tech.png'), + icon_size = 128, + prerequisites = {'fi_stage_tech'}, + effects = { + { + type = 'unlock-recipe', + recipe = 'fi_equipment_player_reactor_recipe', + }, + { + type = 'unlock-recipe', + recipe = 'fi_equipment_player_shield_recipe', + }, + { + type = 'unlock-recipe', + recipe = 'fi_train_equipment_generator_recipe', + }, + }, + unit = { + count = '150', + ingredients = { + {'chemical-science-pack',1}, + {'automation-science-pack',1}, + {'logistic-science-pack',1,}, + }, + time = 30, + }, + }, + + + + --fi_reactor_solid + { + name = 'fi_solid_reactor_tech', + type = 'technology', + icon = sprite('fi_solid_reactor_tech.png'), + icon_size = 128, + prerequisites = {'fi_energy_tech'}, + effects = { + { + type = 'unlock-recipe', + recipe = 'fi_solid_reactor_recipe', + }, + { + type = 'unlock-recipe', + recipe = 'fi_advanced_fuel_recipe', + }, + { + type = 'unlock-recipe', + recipe = 'fi_pure_fuel_recipe', + }, + { + type = 'unlock-recipe', + recipe = 'fi_advanced_thorium_fuel_recipe', + }, + { + type = 'unlock-recipe', + recipe = 'fi_advanced_fuel_recycle_recipe', + }, + { + type = 'unlock-recipe', + recipe = 'fi_advanced_thorium_fuel_recycle_recipe', + }, + { + type = 'unlock-recipe', + recipe = 'fi_pure_fuel_recycle_recipe', + }, + }, + unit = { + count = '500', + ingredients = { + {'chemical-science-pack',1}, + {'automation-science-pack',1}, + {'logistic-science-pack',1,}, + }, + time = 30, + }, + }, + + --fi crushing + { + name = 'fi_crusher_tech', + type = 'technology', + icon = sprite('fi_crusher_tech.png'), + icon_size = 128, + prerequisites = {'fi_stage_tech'}, + effects = { + { + type = 'unlock-recipe', + recipe = 'fi_crusher_recipe', + }, + { + type = 'unlock-recipe', + recipe = 'fi_crushed_crystal_recipe', + }, + { + type = 'unlock-recipe', + recipe = 'fi_crushed_iron_recipe', + }, + { + type = 'unlock-recipe', + recipe = 'fi_crushed_copper_recipe', + }, + { + type = 'unlock-recipe', + recipe = 'fi_crushed_lithium_recipe', + }, + { + type = 'unlock-recipe', + recipe = 'fi_crushed_aluminum_recipe', + }, + { + type = 'unlock-recipe', + recipe = 'fi_crushed_coal_recipe', + }, + }, + unit = { + count = '200', + ingredients = { + {'chemical-science-pack',1}, + {'automation-science-pack',1}, + {'logistic-science-pack',1,}, + }, + time = 30, + }, + }, + --fi crystal + { + name = 'fi_crystal_tech', + type = 'technology', + icon = sprite('fi_crystal_tech.png'), + icon_size = 128, + prerequisites = {'fi_crusher_tech'}, + effects = { + { + type = 'unlock-recipe', + recipe = 'fi_energy_crystal_recipe', + }, + { + type = 'unlock-recipe', + recipe = 'fi_catalyst_crystal_recipe', + }, + { + type = 'unlock-recipe', + recipe = 'fi_base_crystal_recipe', + }, + { + type = 'unlock-recipe', + recipe = 'fi_crystal_fluid_recipe', + }, + { + type = 'unlock-recipe', + recipe = 'fi_fuel_train_crystal_recipe', + }, + }, + unit = { + count = '150', + ingredients = { + {'chemical-science-pack',1}, + {'automation-science-pack',1}, + {'logistic-science-pack',1,}, + }, + time = 30, + }, + }, + --blends + { + name = 'fi_blends_tech', + type = 'technology', + icon = sprite('fi_blends_tech.png'), + icon_size = 128, + prerequisites = {'fi_materials_tech','fi_crusher_tech'}, + effects = { + { + type = 'unlock-recipe', + recipe = 'fi_materials_industrial_steel_blend_recipe', + }, + { + type = 'unlock-recipe', + recipe = 'fi_materials_industrial_steel_recipe', + }, + { + type = 'unlock-recipe', + recipe = 'fi_materials_steel_recipe', + }, + }, + unit = { + count = '300', + ingredients = { + {'chemical-science-pack',1}, + {'automation-science-pack',1}, + {'logistic-science-pack',1,}, + }, + time = 30, + }, + }, + --robo + { + name = 'fi_robo_tech', + type = 'technology', + icon = sprite('fi_robo_tech.png'), + icon_size = 128, + prerequisites = {'fi_materials_tech','fi_miner_tech'}, + effects = { + { + type = 'unlock-recipe', + recipe = 'fi_robo_port_recipe', + }, + { + type = 'unlock-recipe', + recipe = 'fi_robo_charger_recipe', + }, + }, + unit = { + count = '300', + ingredients = { + {'chemical-science-pack',1}, + {'automation-science-pack',1}, + {'logistic-science-pack',1,}, + }, + time = 30, + }, + }, + --modules + { + name = 'fi_modules_1_tech', + type = 'technology', + icon = sprite('fi_modules_1_tech.png'), + icon_size = 128, + prerequisites = {'fi_train_tech'}, + effects = { + { + type = 'unlock-recipe', + recipe = 'fi_modules_base_recipe', + }, + { + type = 'unlock-recipe', + recipe = 'fi_modules_core_recipe', + }, + { + type = 'unlock-recipe', + recipe = 'fi_modules_productivity_1_recipe', + }, + }, + unit = { + count = '150', + ingredients = { + {'chemical-science-pack',1}, + {'automation-science-pack',1}, + {'logistic-science-pack',1,}, + }, + time = 30, + }, + }, + { + name = 'fi_modules_2_tech', + type = 'technology', + icon = sprite('fi_modules_2_tech.png'), + icon_size = 128, + prerequisites = {'fi_modules_1_tech'}, + effects = { + { + type = 'unlock-recipe', + recipe = 'fi_modules_productivity_2_recipe', + }, + }, + unit = { + count = '250', + ingredients = { + {'chemical-science-pack',1}, + {'automation-science-pack',1}, + {'logistic-science-pack',1,}, + }, + time = 30, + }, + }, + { + name = 'fi_modules_3_tech', + type = 'technology', + icon = sprite('fi_modules_3_tech.png'), + icon_size = 128, + prerequisites = {'fi_modules_2_tech','fu_fusor_tech'}, + effects = { + { + type = 'unlock-recipe', + recipe = 'fi_modules_productivity_3_recipe', + }, + }, + unit = { + count = '300', + ingredients = { + {'chemical-science-pack',1}, + {'automation-science-pack',1}, + {'logistic-science-pack',1,}, + {'utility-science-pack',1} + }, + time = 30, + }, + }, + { + name = 'fi_modules_4_tech', + type = 'technology', + icon = sprite('fi_modules_4_tech.png'), + icon_size = 128, + prerequisites = {'fi_modules_3_tech','gr_materials_tech'}, + effects = { + { + type = 'unlock-recipe', + recipe = 'fi_modules_productivity_4_recipe', + }, + }, + unit = { + count = '2000', + ingredients = { + {'chemical-science-pack',1}, + {'automation-science-pack',1}, + {'logistic-science-pack',1}, + {'production-science-pack',1}, + {'utility-science-pack',1}, + {'space-science-pack',1}, + {'fu_space_probe_science_item',1} + }, + time = 100, + }, + }, + { + name = 'fi_modules_5_tech', + type = 'technology', + icon = sprite('fi_modules_5_tech.png'), + icon_size = 128, + prerequisites = {'fi_modules_4_tech'}, + effects = { + { + type = 'unlock-recipe', + recipe = 'fi_modules_productivity_5_recipe', + }, + }, + unit = { + count = '3000', + ingredients = { + {'chemical-science-pack',1}, + {'automation-science-pack',1}, + {'logistic-science-pack',1}, + {'production-science-pack',1}, + {'utility-science-pack',1}, + {'space-science-pack',1}, + {'fu_space_probe_science_item',1} + }, + time = 100, + }, + }, + { + name = 'fi_modules_6_tech', + type = 'technology', + icon = sprite('fi_modules_6_tech.png'), + icon_size = 128, + prerequisites = {'fi_modules_5_tech'}, + effects = { + { + type = 'unlock-recipe', + recipe = 'fi_modules_productivity_6_recipe', + }, + }, + unit = { + count = '4000', + ingredients = { + {'chemical-science-pack',1}, + {'automation-science-pack',1}, + {'logistic-science-pack',1}, + {'production-science-pack',1}, + {'utility-science-pack',1}, + {'space-science-pack',1}, + {'fu_space_probe_science_item',1} + }, + time = 100, + }, + }, + --============================================================================================================================================================ + --fu + { + name = 'fu_stage_tech', + type = 'technology', + icon = sprite('fu_stage_tech.png'), + icon_size = 128, + prerequisites = { + 'fi_crystal_tech', + 'fi_solid_reactor_tech', + 'fi_blends_tech', + 'fi_robo_tech', + 'fi_refining_tech', + 'fi_train_tech' + }, + effects = { + { + type = 'nothing', + effect_description = {'description.fu_stage_eff'}, + }, + }, + unit = { + count = '200', + ingredients = { + {'chemical-science-pack',1}, + {'automation-science-pack',1}, + {'logistic-science-pack',1}, + {'utility-science-pack',1} + }, + time = 45, + }, + }, + --fu fusor + { + name = 'fu_fusor_tech', + type = 'technology', + icon = sprite('fu_fusor_tech.png'), + icon_size = 128, + prerequisites = { + 'fu_stage_tech', + }, + effects = { + { + type = 'unlock-recipe', + recipe = 'fu_fusor_recipe', + }, + { + type = 'unlock-recipe', + recipe = 'fu_tech_sign_1_recipe', + }, + { + type = 'unlock-recipe', + recipe = 'fu_tech_sign_2_recipe', + }, + { + type = 'unlock-recipe', + recipe = 'fu_tech_sign_3_recipe', + }, + { + type = 'unlock-recipe', + recipe = 'fu_tech_sign_4_recipe', + }, + { + type = 'unlock-recipe', + recipe = 'fu_tech_sign_5_recipe', + }, + { + type = 'unlock-recipe', + recipe = 'fu_tech_sign_6_recipe', + }, + { + type = 'unlock-recipe', + recipe = 'fu_tech_sign_7_recipe', + }, + { + type = 'nothing', + effect_description = {'description.fu_fusor_eff'}, + }, + }, + unit = { + count = '400', + ingredients = { + {'chemical-science-pack',1}, + {'automation-science-pack',1}, + {'logistic-science-pack',1}, + {'utility-science-pack',1} + }, + time = 45, + }, + }, + --fu basic elemtns + { + name = 'fu_basic_elements_tech', + type = 'technology', + icon = sprite('fu_basic_elements_tech.png'), + icon_size = 128, + prerequisites = { + 'fu_stage_tech', + }, + effects = { + { + type = 'unlock-recipe', + recipe = 'fu_boiler_hydrogen_oxygen_recipe', + }, + { + type = 'unlock-recipe', + recipe = 'fu_boiler_recipe', + }, + { + type = 'unlock-recipe', + recipe = 'fu_burner_recipe', + }, + { + type = 'unlock-recipe', + recipe = 'fu_lithium_6_recipe', + }, + { + type = 'unlock-recipe', + recipe = 'fu_hydrogen_recipe', + }, + { + type = 'nothing', + effect_description = {'description.fu_basic_elements_eff'}, + }, + }, + unit = { + count = '400', + ingredients = { + {'chemical-science-pack',1}, + {'automation-science-pack',1}, + {'logistic-science-pack',1}, + {'utility-science-pack',1} + }, + time = 45, + }, + }, + { + name = 'fu_hydrogen_1_tech', + type = 'technology', + icon = sprite('fu_hydrogen_1_tech.png'), + icon_size = 128, + prerequisites = { + 'fu_basic_elements_tech', + }, + effects = { + { + type = 'unlock-recipe', + recipe = 'fu_boiler_hydrogen_oxygen_1_recipe', + }, + }, + unit = { + count = '800', + ingredients = { + {'chemical-science-pack',1}, + {'automation-science-pack',1}, + {'logistic-science-pack',1}, + {'production-science-pack',1}, + {'utility-science-pack',1}, + }, + time = 45, + }, + }, + { + name = 'fu_hydrogen_2_tech', + type = 'technology', + icon = sprite('fu_hydrogen_2_tech.png'), + icon_size = 128, + prerequisites = { + 'fu_hydrogen_1_tech', + }, + effects = { + { + type = 'unlock-recipe', + recipe = 'fu_boiler_hydrogen_oxygen_2_recipe', + }, + }, + unit = { + count = '2000', + ingredients = { + {'chemical-science-pack',1}, + {'automation-science-pack',1}, + {'logistic-science-pack',1}, + {'production-science-pack',1}, + {'utility-science-pack',1}, + {'space-science-pack',1} + }, + time = 45, + }, + }, + { + name = 'fu_hydrogen_3_tech', + type = 'technology', + icon = sprite('fu_hydrogen_3_tech.png'), + icon_size = 128, + prerequisites = { + 'fu_hydrogen_2_tech', + }, + effects = { + { + type = 'unlock-recipe', + recipe = 'fu_boiler_hydrogen_oxygen_3_recipe', + }, + }, + unit = { + count = '6000', + ingredients = { + {'chemical-science-pack',1}, + {'automation-science-pack',1}, + {'logistic-science-pack',1}, + {'production-science-pack',1}, + {'utility-science-pack',1}, + {'space-science-pack',1} + }, + time = 45, + }, + }, + --fu_engery + { + name = 'fu_energy_tech', + type = 'technology', + icon = sprite('fu_energy_tech.png'), + icon_size = 128, + prerequisites = {'fu_fusor_tech'}, + effects = { + { + type = 'unlock-recipe', + recipe = 'fu_exchanger_item_recipe', + }, + { + type = 'unlock-recipe', + recipe = 'fu_exchanger_1_recipe', + }, + { + type = 'unlock-recipe', + recipe = 'fu_exchanger_2_recipe', + }, + { + type = 'nothing', + effect_description = {'description.fu_energy_eff'}, + }, + }, + unit = { + count = '200', + ingredients = { + {'chemical-science-pack',1}, + {'automation-science-pack',1}, + {'logistic-science-pack',1}, + {'utility-science-pack',1} + }, + time = 45, + }, + }, + { + name = 'fu_crystal_tech', + type = 'technology', + icon = sprite('fu_crystal_tech.png'), + icon_size = 128, + prerequisites = {'fu_stage_tech'}, + effects = { + { + type = 'unlock-recipe', + recipe = 'fu_crystal_from_fluid_recipe', + } + }, + unit = { + count = '1000', + ingredients = { + {'chemical-science-pack',1}, + {'automation-science-pack',1}, + {'logistic-science-pack',1}, + {'utility-science-pack',1} + }, + time = 45, + }, + }, + --fu_lead + { + name = 'fu_lead_tech', + type = 'technology', + icon = sprite('fu_lead_tech.png'), + icon_size = 128, + prerequisites = {'fu_stage_tech'}, + effects = { + { + type = 'unlock-recipe', + recipe = 'fu_lead_ore_recipe', + }, + { + type = 'unlock-recipe', + recipe = 'fu_lead_recipe', + }, + { + type = 'unlock-recipe', + recipe = 'fu_lead_crushed_recipe', + }, + { + type = 'unlock-recipe', + recipe = 'fu_lead_molten_recipe', + }, + }, + unit = { + count = '200', + ingredients = { + {'chemical-science-pack',1}, + {'automation-science-pack',1}, + {'logistic-science-pack',1}, + {'utility-science-pack',1} + }, + time = 45, + }, + }, + --fu_reactor + { + name = 'fu_reactor_tech', + type = 'technology', + icon = sprite('fu_reactor_tech.png'), + icon_size = 128, + prerequisites = {'fu_energy_tech'}, + effects = { + { + type = 'unlock-recipe', + recipe = 'fu_stelar_reactor_recipe', + }, + --{ + -- type = 'unlock-recipe', + -- recipe = 'fu_stelerator_1_recipe', + --}, + { + type = 'unlock-recipe', + recipe = 'fu_stelerator_2_recipe', + }, + { + type = 'unlock-recipe', + recipe = 'fu_stelerator_3_recipe', + }, + { + type = 'nothing', + effect_description = {'description.fu_reactor_eff'}, + }, + }, + unit = { + count = '400', + ingredients = { + {'chemical-science-pack',1}, + {'automation-science-pack',1}, + {'logistic-science-pack',1}, + {'utility-science-pack',1} + }, + time = 45, + }, + }, + --robo + { + name = 'fu_robo_tech', + type = 'technology', + icon = sprite('fu_robo_tech.png'), + icon_size = 128, + prerequisites = {'fu_fusor_tech'}, + effects = { + { + type = 'unlock-recipe', + recipe = 'fu_robo_construction_recipe', + }, + { + type = 'unlock-recipe', + recipe = 'fu_robo_logistic_recipe', + }, + }, + unit = { + count = '400', + ingredients = { + {'chemical-science-pack',1}, + {'automation-science-pack',1}, + {'logistic-science-pack',1}, + {'utility-science-pack',1} + }, + time = 45, + }, + }, + --tokamak + { + name = 'fu_tokamak_tech', + type = 'technology', + icon = sprite('fu_tokamak_tech.png'), + icon_size = 128, + prerequisites = {'fu_energy_tech'}, + effects = { + { + type = 'unlock-recipe', + recipe = 'fu_tokamak_reactor_recipe', + }, + { + type = 'unlock-recipe', + recipe = 'fu_tokamak_1_recipe', + }, + { + type = 'unlock-recipe', + recipe = 'fu_tokamak_2_recipe', + }, + { + type = 'nothing', + effect_description = {'description.fu_tokamak_eff'}, + }, + }, + unit = { + count = '400', + ingredients = { + {'chemical-science-pack',1}, + {'automation-science-pack',1}, + {'logistic-science-pack',1}, + {'utility-science-pack',1} + }, + time = 45, + }, + }, + --activator + { + name = 'fu_activator_tech', + type = 'technology', + icon = sprite('fu_activator_tech.png'), + icon_size = 128, + prerequisites = {'fu_fusor_tech'}, + effects = { + { + type = 'unlock-recipe', + recipe = 'fu_activator_recipe', + }, + { + type = 'unlock-recipe', + recipe = 'fu_activator_1_recipe', + }, + { + type = 'unlock-recipe', + recipe = 'fu_activator_2_recipe', + }, + { + type = 'nothing', + effect_description = {'description.fu_activator_eff'}, + }, + }, + unit = { + count = '1000', + ingredients = { + {'chemical-science-pack',1}, + {'automation-science-pack',1}, + {'logistic-science-pack',1}, + {'utility-science-pack',1} + }, + time = 45, + }, + }, + --star engine + { + name = 'fu_star_engine_tech', + type = 'technology', + icon = sprite('fu_star_engine_tech.png'), + icon_size = 128, + prerequisites = {'fu_reactor_tech','fu_tokamak_tech'}, + effects = { + { + type = 'unlock-recipe', + recipe = 'fu_star_engine_cooler_recipe', + }, + { + type = 'unlock-recipe', + recipe = 'fu_star_engine_cooler_up_recipe', + }, + { + type = 'unlock-recipe', + recipe = 'fu_star_engine_core_recipe', + }, + { + type = 'unlock-recipe', + recipe = 'fu_star_engine_heater_recipe', + }, + { + type = 'unlock-recipe', + recipe = 'fu_star_engine_heater_left_recipe', + }, + { + type = 'nothing', + effect_description = {'description.fu_star_engine_eff'}, + }, + }, + unit = { + count = '10000', + ingredients = { + {'chemical-science-pack',1}, + {'automation-science-pack',1}, + {'logistic-science-pack',1}, + {'production-science-pack',1}, + {'utility-science-pack',1}, + {'space-science-pack',1} + }, + time = 100, + }, + }, + { + name = 'fu_star_engine_iron_tech', + type = 'technology', + icon = sprite('fu_star_engine_iron_tech.png'), + icon_size = 128, + prerequisites = {'fu_star_engine_tech'}, + effects = { + { + type = 'unlock-recipe', + recipe = 'fu_star_engine_cooler_1_recipe', + }, + { + type = 'unlock-recipe', + recipe = 'fu_star_engine_core_1_recipe', + }, + { + type = 'unlock-recipe', + recipe = 'fu_star_engine_heater_1_recipe', + }, + { + type = 'unlock-recipe', + recipe = 'fu_star_engine_caster_1_recipe', + }, + }, + unit = { + count = '1000', + ingredients = { + {'chemical-science-pack',1}, + {'automation-science-pack',1}, + {'logistic-science-pack',1}, + {'production-science-pack',1}, + {'utility-science-pack',1}, + {'space-science-pack',1} + }, + time = 100, + }, + }, + { + name = 'fu_star_engine_copper_tech', + type = 'technology', + icon = sprite('fu_star_engine_copper_tech.png'), + icon_size = 128, + prerequisites = {'fu_star_engine_iron_tech'}, + effects = { + { + type = 'unlock-recipe', + recipe = 'fu_star_engine_cooler_2_recipe', + }, + { + type = 'unlock-recipe', + recipe = 'fu_star_engine_core_2_recipe', + }, + { + type = 'unlock-recipe', + recipe = 'fu_star_engine_caster_2_recipe', + }, + }, + unit = { + count = '2000', + ingredients = { + {'chemical-science-pack',1}, + {'automation-science-pack',1}, + {'logistic-science-pack',1}, + {'production-science-pack',1}, + {'utility-science-pack',1}, + {'space-science-pack',1} + }, + time = 100, + }, + }, + { + name = 'fu_star_engine_sulfur_tech', + type = 'technology', + icon = sprite('fu_star_engine_sulfur_tech.png'), + icon_size = 128, + prerequisites = {'fu_star_engine_copper_tech'}, + effects = { + { + type = 'unlock-recipe', + recipe = 'fu_star_engine_cooler_3_recipe', + }, + { + type = 'unlock-recipe', + recipe = 'fu_star_engine_core_3_recipe', + }, + { + type = 'unlock-recipe', + recipe = 'fu_star_engine_caster_3_recipe', + }, + }, + unit = { + count = '4000', + ingredients = { + {'chemical-science-pack',1}, + {'automation-science-pack',1}, + {'logistic-science-pack',1}, + {'production-science-pack',1}, + {'utility-science-pack',1}, + {'space-science-pack',1} + }, + time = 100, + }, + }, + { + name = 'fu_star_engine_lithium_7_tech', + type = 'technology', + icon = sprite('fu_star_engine_lithium_7_tech.png'), + icon_size = 128, + prerequisites = {'fu_star_engine_sulfur_tech'}, + effects = { + { + type = 'unlock-recipe', + recipe = 'fu_star_engine_cooler_4_recipe', + }, + { + type = 'unlock-recipe', + recipe = 'fu_star_engine_core_4_recipe', + }, + { + type = 'unlock-recipe', + recipe = 'fu_star_engine_caster_4_recipe', + }, + }, + unit = { + count = '6000', + ingredients = { + {'chemical-science-pack',1}, + {'automation-science-pack',1}, + {'logistic-science-pack',1}, + {'production-science-pack',1}, + {'utility-science-pack',1}, + {'space-science-pack',1} + }, + time = 100, + }, + }, + { + name = 'fu_star_engine_uranium_238_tech', + type = 'technology', + icon = sprite('fu_star_engine_uranium_238_tech.png'), + icon_size = 128, + prerequisites = {'fu_star_engine_lithium_7_tech'}, + effects = { + { + type = 'unlock-recipe', + recipe = 'fu_star_engine_cooler_6_recipe', + }, + { + type = 'unlock-recipe', + recipe = 'fu_star_engine_core_6_recipe', + }, + { + type = 'unlock-recipe', + recipe = 'fu_star_engine_caster_6_recipe', + }, + }, + unit = { + count = '8000', + ingredients = { + {'chemical-science-pack',1}, + {'automation-science-pack',1}, + {'logistic-science-pack',1}, + {'production-science-pack',1}, + {'utility-science-pack',1}, + {'space-science-pack',1} + }, + time = 100, + }, + }, + { + name = 'fu_star_engine_uranium_235_tech', + type = 'technology', + icon = sprite('fu_star_engine_uranium_235_tech.png'), + icon_size = 128, + prerequisites = {'fu_star_engine_uranium_238_tech'}, + effects = { + { + type = 'unlock-recipe', + recipe = 'fu_star_engine_cooler_5_recipe', + }, + { + type = 'unlock-recipe', + recipe = 'fu_star_engine_core_5_recipe', + }, + { + type = 'unlock-recipe', + recipe = 'fu_star_engine_caster_5_recipe', + }, + }, + unit = { + count = '10000', + ingredients = { + {'chemical-science-pack',1}, + {'automation-science-pack',1}, + {'logistic-science-pack',1}, + {'production-science-pack',1}, + {'utility-science-pack',1}, + {'space-science-pack',1} + }, + time = 100, + }, + }, + --space probes + { + name = 'fu_space_probe_1_tech', + type = 'technology', + icon = sprite('fu_space_probe_1_tech.png'), + icon_size = 128, + prerequisites = {'fu_energy_tech','fu_robo_tech'}, + effects = { + { + type = 'unlock-recipe', + recipe = 'fu_space_probe_sputnik_recipe', + }, + }, + unit = { + count = '1000', + ingredients = { + {'chemical-science-pack',1}, + {'automation-science-pack',1}, + {'logistic-science-pack',1}, + {'production-science-pack',1}, + {'utility-science-pack',1}, + {'space-science-pack',1} + }, + time = 100, + }, + }, + { + name = 'fu_space_probe_2_tech', + type = 'technology', + icon = sprite('fu_space_probe_2_tech.png'), + icon_size = 128, + prerequisites = {'fu_space_probe_1_tech'}, + effects = { + { + type = 'unlock-recipe', + recipe = 'fu_space_probe_probe_recipe', + }, + { + type = 'unlock-recipe', + recipe = 'fu_space_probe_data_card_2_recipe', + }, + }, + unit = { + count = '1000', + ingredients = { + {'chemical-science-pack',1}, + {'automation-science-pack',1}, + {'logistic-science-pack',1}, + {'production-science-pack',1}, + {'utility-science-pack',1}, + {'space-science-pack',1} + }, + time = 100, + }, + }, + { + name = 'fu_space_probe_3_tech', + type = 'technology', + icon = sprite('fu_space_probe_3_tech.png'), + icon_size = 128, + prerequisites = {'fu_space_probe_2_tech'}, + effects = { + { + type = 'unlock-recipe', + recipe = 'fu_space_probe_deep_probe_recipe', + }, + { + type = 'unlock-recipe', + recipe = 'fu_space_probe_ore_recipe', + }, + { + type = 'unlock-recipe', + recipe = 'fu_space_probe_science_recipe', + }, + --{ + -- type = 'unlock-recipe', + -- recipe = 'fu_space_probe_science_recipe_1', + --}, + }, + unit = { + count = '1000', + ingredients = { + {'chemical-science-pack',1}, + {'automation-science-pack',1}, + {'logistic-science-pack',1}, + {'production-science-pack',1}, + {'utility-science-pack',1}, + {'space-science-pack',1} + }, + time = 100, + }, + }, + --============================================================================================================================================================ + --gravitational + { + name = 'gr_stage_tech', + type = 'technology', + icon = sprite('gr_stage_tech.png'), + icon_size = 128, + prerequisites = { + 'fu_space_probe_3_tech', + 'fu_star_engine_uranium_235_tech', + 'fu_hydrogen_3_tech', + 'fu_lead_tech' + }, + effects = { + { + type = 'nothing', + effect_description = {'description.gr_stage_eff'}, + }, + }, + unit = { + count = '200', + ingredients = { + {'chemical-science-pack',1}, + {'automation-science-pack',1}, + {'logistic-science-pack',1}, + {'production-science-pack',1}, + {'utility-science-pack',1}, + {'space-science-pack',1}, + {'fu_space_probe_science_item',1} + }, + time = 100, + }, + }, + { + name = 'gr_compact_fusion_tech', + type = 'technology', + icon = sprite('gr_compact_fusion_tech.png'), + icon_size = 128, + prerequisites = { + 'gr_stage_tech' + }, + effects = { + { + type = 'unlock-recipe', + recipe = 'gr_materials_fusion_cell_recipe', + }, + { + type = 'unlock-recipe', + recipe = 'gr_materials_charge_recipe', + }, + { + type = 'unlock-recipe', + recipe = 'gr_materials_charge_remote_recipe', + }, + }, + unit = { + count = '1000', + ingredients = { + {'chemical-science-pack',1}, + {'automation-science-pack',1}, + {'logistic-science-pack',1}, + {'production-science-pack',1}, + {'utility-science-pack',1}, + {'space-science-pack',1}, + {'fu_space_probe_science_item',1} + }, + time = 100, + }, + }, + { + name = 'gr_materials_tech', + type = 'technology', + icon = sprite('gr_materials_tech.png'), + icon_size = 128, + prerequisites = { + 'gr_stage_tech' + }, + effects = { + { + type = 'unlock-recipe', + recipe = 'gr_materials_stack_down_item_recipe', + }, + { + type = 'unlock-recipe', + recipe = 'gr_materials_stack_up_item_recipe', + }, + }, + unit = { + count = '1000', + ingredients = { + {'chemical-science-pack',1}, + {'automation-science-pack',1}, + {'logistic-science-pack',1}, + {'production-science-pack',1}, + {'utility-science-pack',1}, + {'space-science-pack',1}, + {'fu_space_probe_science_item',1} + }, + time = 100, + }, + }, + { + name = 'gr_crafter_tech', + type = 'technology', + icon = sprite('gr_crafter_tech.png'), + icon_size = 128, + prerequisites = { + 'gr_compact_fusion_tech' + }, + effects = { + { + type = 'unlock-recipe', + recipe = 'gr_crafter_recipe', + }, + }, + unit = { + count = '1000', + ingredients = { + {'chemical-science-pack',1}, + {'automation-science-pack',1}, + {'logistic-science-pack',1}, + {'production-science-pack',1}, + {'utility-science-pack',1}, + {'space-science-pack',1}, + {'fu_space_probe_science_item',1} + }, + time = 100, + }, + }, + --stelar engine 2 + { + name = 'gr_star_engine_1_tech', + type = 'technology', + icon = sprite('gr_wheel_tech.png'), + icon_size = 128, + prerequisites = { + 'gr_compact_fusion_tech' + }, + effects = { + { + type = 'unlock-recipe', + recipe = 'gr_wheel_recipe', + }, + }, + unit = { + count = '2000', + ingredients = { + {'chemical-science-pack',1}, + {'automation-science-pack',1}, + {'logistic-science-pack',1}, + {'production-science-pack',1}, + {'utility-science-pack',1}, + {'space-science-pack',1}, + {'fu_space_probe_science_item',1} + }, + time = 100, + }, + }, + { + name = 'gr_star_engine_2_tech', + type = 'technology', + icon = sprite('gr_steel_tech.png'), + icon_size = 128, + prerequisites = { + 'gr_star_engine_1_tech' + }, + effects = { + { + type = 'unlock-recipe', + recipe = 'gr_steel_recipe', + }, + }, + unit = { + count = '4000', + ingredients = { + {'chemical-science-pack',1}, + {'automation-science-pack',1}, + {'logistic-science-pack',1}, + {'production-science-pack',1}, + {'utility-science-pack',1}, + {'space-science-pack',1}, + {'fu_space_probe_science_item',1} + }, + time = 100, + }, + }, + --gr trains + { + name = 'gr_train_tech', + type = 'technology', + icon = sprite('gr_train_tech.png'), + icon_size = 128, + prerequisites = { + 'gr_compact_fusion_tech' + }, + effects = { + { + type = 'unlock-recipe', + recipe = 'gr_magnet_train_pre_recipe', + }, + { + type = 'unlock-recipe', + recipe = 'gr_magnet_wagon_pre_recipe', + }, + { + type = 'unlock-recipe', + recipe = 'gr_magnet_tanker_pre_recipe', + }, + }, + unit = { + count = '1000', + ingredients = { + {'chemical-science-pack',1}, + {'automation-science-pack',1}, + {'logistic-science-pack',1}, + {'production-science-pack',1}, + {'utility-science-pack',1}, + {'space-science-pack',1}, + {'fu_space_probe_science_item',1} + }, + time = 100, + }, + }, + { + name = 'gr_train_plus_tech', + type = 'technology', + icon = sprite('gr_train_plus_tech.png'), + icon_size = 128, + prerequisites = { + 'gr_train_tech' + }, + effects = { + { + type = 'unlock-recipe', + recipe = 'gr_magnet_train_recipe', + }, + { + type = 'unlock-recipe', + recipe = 'gr_magnet_wagon_recipe', + }, + { + type = 'unlock-recipe', + recipe = 'gr_magnet_tanker_recipe', + }, + }, + unit = { + count = '10000', + ingredients = { + {'chemical-science-pack',1}, + {'automation-science-pack',1}, + {'logistic-science-pack',1}, + {'production-science-pack',1}, + {'utility-science-pack',1}, + {'space-science-pack',1}, + {'fu_space_probe_science_item',1} + }, + time = 100, + }, + }, + --gr kovarex + { + name = 'gr_kovarex_tech', + type = 'technology', + icon = sprite('gr_kovarex_tech.png'), + icon_size = 128, + prerequisites = { + 'gr_compact_fusion_tech' + }, + effects = { + { + type = 'unlock-recipe', + recipe = 'gr_kovarex_recipe', + } + }, + unit = { + count = '10000', + ingredients = { + {'chemical-science-pack',1}, + {'automation-science-pack',1}, + {'logistic-science-pack',1}, + {'production-science-pack',1}, + {'utility-science-pack',1}, + {'space-science-pack',1}, + {'fu_space_probe_science_item',1} + }, + time = 100, + }, + }, + { + name = 'gr_cooker_tech', + type = 'technology', + icon = sprite('gr_cooker_tech.png'), + icon_size = 128, + prerequisites = { + 'gr_stage_tech' + }, + effects = { + { + type = 'unlock-recipe', + recipe = 'gr_cooker_recipe', + }, + { + type = 'unlock-recipe', + recipe = 'gr_cooker_fluid_recipe', + }, + { + type = 'unlock-recipe', + recipe = 'gr_cooked_crystal_recipe', + }, + { + type = 'unlock-recipe', + recipe = 'gr_refined_crystal_recipe', + }, + }, + unit = { + count = '400', + ingredients = { + {'chemical-science-pack',1}, + {'automation-science-pack',1}, + {'logistic-science-pack',1}, + {'production-science-pack',1}, + {'utility-science-pack',1}, + {'space-science-pack',1}, + {'fu_space_probe_science_item',1} + }, + time = 100, + }, + }, + { + name = 'gr_charger_tech', + type = 'technology', + icon = sprite('gr_charger_tech.png'), + icon_size = 128, + prerequisites = { + 'gr_stage_tech' + }, + effects = { + { + type = 'unlock-recipe', + recipe = 'gr_charger_recipe', + }, + { + type = 'unlock-recipe', + recipe = 'gr_stabilizer_recipe', + }, + { + type = 'unlock-recipe', + recipe = 'gr_crushed_exotic_recipe', + } + }, + unit = { + count = '50000', + ingredients = { + {'chemical-science-pack',1}, + {'automation-science-pack',1}, + {'logistic-science-pack',1}, + {'production-science-pack',1}, + {'utility-science-pack',1}, + {'space-science-pack',1}, + {'fu_space_probe_science_item',1} + }, + time = 100, + }, + }, + { + name = 'gr_black_hole_tech', + type = 'technology', + icon = sprite('gr_black_hole_tech.png'), + icon_size = 128, + prerequisites = { + 'gr_charger_tech' + }, + effects = { + { + type = 'unlock-recipe', + recipe = 'gr_black_hole_recipe', + } + }, + unit = { + count = '100000', + ingredients = { + {'chemical-science-pack',1}, + {'automation-science-pack',1}, + {'logistic-science-pack',1}, + {'production-science-pack',1}, + {'utility-science-pack',1}, + {'space-science-pack',1}, + {'fu_space_probe_science_item',1} + }, + time = 100, + }, + }, + { + name = 'gr_white_hole_tech', + type = 'technology', + icon = sprite('gr_white_hole_tech.png'), + icon_size = 128, + prerequisites = { + 'gr_charger_tech' + }, + effects = { + { + type = 'unlock-recipe', + recipe = 'gr_white_hole_recipe', + } + }, + unit = { + count = '100000', + ingredients = { + {'chemical-science-pack',1}, + {'automation-science-pack',1}, + {'logistic-science-pack',1}, + {'production-science-pack',1}, + {'utility-science-pack',1}, + {'space-science-pack',1}, + {'fu_space_probe_science_item',1} + }, + time = 100, + }, + }, + { + name = 'gr_data_tech', + type = 'technology', + icon = sprite('gr_data_tech.png'), + icon_size = 128, + prerequisites = { + 'gr_white_hole_tech', + 'gr_black_hole_tech' + }, + effects = { + { + type = 'unlock-recipe', + recipe = 'gr_data_recipe', + }, + { + type = 'unlock-recipe', + recipe = 'gr_stacked_data_recipe', + } + }, + unit = { + count = '10000', + ingredients = { + {'chemical-science-pack',1}, + {'automation-science-pack',1}, + {'logistic-science-pack',1}, + {'production-science-pack',1}, + {'utility-science-pack',1}, + {'space-science-pack',1}, + {'fu_space_probe_science_item',1} + }, + time = 100, + }, + }, + { + name = 'gr_red_tech', + type = 'technology', + icon = sprite('gr_red_tech.png'), + icon_size = 128, + prerequisites = { + 'gr_data_tech' + }, + effects = { + { + type = 'unlock-recipe', + recipe = 'gr_red_data_recipe', + }, + { + type = 'unlock-recipe', + recipe = 'gr_red_recipe', + }, + }, + unit = { + count = '10000', + ingredients = { + {'gr_materials_red_pack_item',1}, + {'gr_materials_green_pack_item',1}, + {'gr_materials_blue_pack_item',1}, + {'gr_materials_purple_pack_item',1}, + {'gr_materials_yellow_pack_item',1}, + {'gr_materials_grey_pack_item',1}, + {'gr_materials_white_pack_item',1} + }, + time = 100, + }, + }, + { + name = 'gr_green_tech', + type = 'technology', + icon = sprite('gr_green_tech.png'), + icon_size = 128, + prerequisites = { + 'gr_red_tech' + }, + effects = { + { + type = 'unlock-recipe', + recipe = 'gr_green_data_recipe', + }, + { + type = 'unlock-recipe', + recipe = 'gr_green_recipe', + }, + }, + unit = { + count = '10000', + ingredients = { + {'gr_materials_red_pack_item',1}, + {'gr_materials_green_pack_item',1}, + {'gr_materials_blue_pack_item',1}, + {'gr_materials_purple_pack_item',1}, + {'gr_materials_yellow_pack_item',1}, + {'gr_materials_grey_pack_item',1}, + {'gr_materials_white_pack_item',1} + }, + time = 100, + }, + }, + { + name = 'gr_blue_tech', + type = 'technology', + icon = sprite('gr_blue_tech.png'), + icon_size = 128, + prerequisites = { + 'gr_green_tech' + }, + effects = { + { + type = 'unlock-recipe', + recipe = 'gr_blue_data_recipe', + }, + { + type = 'unlock-recipe', + recipe = 'gr_blue_recipe', + }, + }, + unit = { + count = '10000', + ingredients = { + {'gr_materials_red_pack_item',1}, + {'gr_materials_green_pack_item',1}, + {'gr_materials_blue_pack_item',1}, + {'gr_materials_purple_pack_item',1}, + {'gr_materials_yellow_pack_item',1}, + {'gr_materials_grey_pack_item',1}, + {'gr_materials_white_pack_item',1} + }, + time = 100, + }, + }, + { + name = 'gr_purple_tech', + type = 'technology', + icon = sprite('gr_purple_tech.png'), + icon_size = 128, + prerequisites = { + 'gr_blue_tech' + }, + effects = { + { + type = 'unlock-recipe', + recipe = 'gr_purple_data_recipe', + }, + { + type = 'unlock-recipe', + recipe = 'gr_purple_recipe', + }, + }, + unit = { + count = '10000', + ingredients = { + {'gr_materials_red_pack_item',1}, + {'gr_materials_green_pack_item',1}, + {'gr_materials_blue_pack_item',1}, + {'gr_materials_purple_pack_item',1}, + {'gr_materials_yellow_pack_item',1}, + {'gr_materials_grey_pack_item',1}, + {'gr_materials_white_pack_item',1} + }, + time = 100, + }, + }, + { + name = 'gr_yellow_tech', + type = 'technology', + icon = sprite('gr_yellow_tech.png'), + icon_size = 128, + prerequisites = { + 'gr_purple_tech' + }, + effects = { + { + type = 'unlock-recipe', + recipe = 'gr_yellow_data_recipe', + }, + { + type = 'unlock-recipe', + recipe = 'gr_yellow_recipe', + }, + }, + unit = { + count = '10000', + ingredients = { + {'gr_materials_red_pack_item',1}, + {'gr_materials_green_pack_item',1}, + {'gr_materials_blue_pack_item',1}, + {'gr_materials_purple_pack_item',1}, + {'gr_materials_yellow_pack_item',1}, + {'gr_materials_grey_pack_item',1}, + {'gr_materials_white_pack_item',1} + }, + time = 100, + }, + }, + { + name = 'gr_grey_tech', + type = 'technology', + icon = sprite('gr_grey_tech.png'), + icon_size = 128, + prerequisites = { + 'gr_yellow_tech' + }, + effects = { + { + type = 'unlock-recipe', + recipe = 'gr_grey_data_recipe', + }, + { + type = 'unlock-recipe', + recipe = 'gr_grey_recipe', + }, + }, + unit = { + count = '10000', + ingredients = { + {'gr_materials_red_pack_item',1}, + {'gr_materials_green_pack_item',1}, + {'gr_materials_blue_pack_item',1}, + {'gr_materials_purple_pack_item',1}, + {'gr_materials_yellow_pack_item',1}, + {'gr_materials_grey_pack_item',1}, + {'gr_materials_white_pack_item',1} + }, + time = 100, + }, + }, + { + name = 'gr_white_tech', + type = 'technology', + icon = sprite('gr_white_tech.png'), + icon_size = 128, + prerequisites = { + 'gr_grey_tech' + }, + effects = { + { + type = 'unlock-recipe', + recipe = 'gr_white_data_recipe', + }, + { + type = 'unlock-recipe', + recipe = 'gr_white_recipe', + }, + }, + unit = { + count = '10000', + ingredients = { + {'gr_materials_red_pack_item',1}, + {'gr_materials_green_pack_item',1}, + {'gr_materials_blue_pack_item',1}, + {'gr_materials_purple_pack_item',1}, + {'gr_materials_yellow_pack_item',1}, + {'gr_materials_grey_pack_item',1}, + {'gr_materials_white_pack_item',1} + }, + time = 100, + }, + }, + { + name = 'gr_lab_tech', + type = 'technology', + icon = sprite('gr_lab_tech.png'), + icon_size = 128, + prerequisites = { + 'gr_data_tech' + }, + effects = { + { + type = 'unlock-recipe', + recipe = 'gr_lab_recipe', + }, + { + type = 'unlock-recipe', + recipe = 'gr_red_pack_recipe', + }, + { + type = 'unlock-recipe', + recipe = 'gr_green_pack_recipe', + }, + { + type = 'unlock-recipe', + recipe = 'gr_blue_pack_recipe', + }, + { + type = 'unlock-recipe', + recipe = 'gr_purple_pack_recipe', + }, + { + type = 'unlock-recipe', + recipe = 'gr_yellow_pack_recipe', + }, + { + type = 'unlock-recipe', + recipe = 'gr_grey_pack_recipe', + }, + { + type = 'unlock-recipe', + recipe = 'gr_white_pack_recipe', + }, + }, + unit = { + count = '10000', + ingredients = { + {'chemical-science-pack',1}, + {'automation-science-pack',1}, + {'logistic-science-pack',1}, + {'production-science-pack',1}, + {'utility-science-pack',1}, + {'space-science-pack',1}, + {'fu_space_probe_science_item',1} + }, + time = 100, + }, + }, +}) \ No newline at end of file diff --git a/prototypes/el_recipes.lua b/prototypes/el_recipes.lua new file mode 100644 index 0000000..0c9ce43 --- /dev/null +++ b/prototypes/el_recipes.lua @@ -0,0 +1,888 @@ +--local functions +local function config(name) + return settings.startup['el_solar_'..name].value +end + +local function sprite(name) + return '__248k__/ressources/'..name +end + +--settings check +--if config('recipe_enabled') then +--end + +--recipe +data:extend({ + --el_solar + { + name = 'el_solar_recipe', + type = 'recipe', + enabled = 'false', + ingredients = { + {'el_aluminum_item',30}, + {'concrete',20}, + {'electronic-circuit',40}, + {'copper-plate',20}, + }, + result = 'el_solar_item', + result_count = 2, + energy_required = 4, + order = 'a-a-2', + }, + --el_aluminum_ore + { + name = 'el_aluminum_ore_recipe', + type = 'recipe', + enabled = 'false', + category = 'crafting-with-fluid', + ingredients = { + {'stone',2}, + {type="fluid", name="sulfuric-acid", amount=20}, + }, + result = 'el_aluminum_ore_item', + result_count = 4, + energy_required = 2, + always_show_made_in = true, + order = 'a-a', + }, + --el_aluminum_item + { + name = 'el_aluminum_item_recipe', + type = 'recipe', + enabled = 'false', + category = 'smelting', + ingredients = { + {'el_aluminum_ore_item',2}, + }, + result = 'el_aluminum_item', + result_count = 4, + energy_required = 2, + always_show_made_in = true, + order = 'a-c', + }, + --el_lithium_ore + { + name = 'el_lithium_ore_recipe', + type = 'recipe', + enabled = 'false', + category = 'crafting-with-fluid', + ingredients = { + {'stone',2}, + {type="fluid", name="sulfuric-acid", amount=20}, + }, + result = 'el_lithium_ore_item', + result_count = 4, + energy_required = 2, + always_show_made_in = true, + order = 'a-b', + }, + --el_lithium_item + { + name = 'el_lithium_item_recipe', + type = 'recipe', + enabled = 'false', + category = 'smelting', + ingredients = { + {'el_lithium_ore_item',2}, + }, + result = 'el_lithium_item', + result_count = 4, + energy_required = 2, + always_show_made_in = true, + order = 'a-d', + }, + --el_lithium_basic_battery + { + name = 'el_lithium_basic_battery_recipe', + type = 'recipe', + enabled = 'false', + category = 'crafting', + subgroup = 'el_item_subgroup_b', + ingredients = { + {'el_lithium_item',4}, + {'iron-plate',4}, + {'copper-plate',4}, + }, + result = 'battery', + result_count = 12, + energy_required = 20, + order = 'b-a', + }, + --el_lithium_battery + { + name = 'el_lithium_battery_recipe', + type = 'recipe', + enabled = 'false', + category = 'crafting', + ingredients = { + {'el_lithium_item',4}, + {'iron-plate',4}, + {'steel-plate',4}, + }, + result = 'el_lithium_battery', + result_count = 2, + energy_required = 10, + }, + --el_burner + { + name = 'el_burner_recipe', + type = 'recipe', + enabled = 'false', + category = 'crafting', + ingredients = { + {'iron-gear-wheel',40}, + {'steel-plate',15}, + {'el_aluminum_item',15}, + {'electronic-circuit',10} + }, + result = 'el_burner_item', + result_count = 1, + energy_required = 4, + }, + { + name = 'el_burner_kerosene_recipe', + type = 'recipe', + enabled = 'false', + category = 'crafting', + ingredients = { + {'el_burner_item',1}, + {'pipe',20}, + {'electronic-circuit',20}, + }, + result = 'el_burner_kerosene_item', + result_count = 1, + energy_required = 4, + }, + --el_water_generator + { + name = 'el_water_generator_recipe', + type = 'recipe', + enabled = 'false', + category = 'crafting', + ingredients = { + {'iron-gear-wheel',60}, + {'engine-unit',15}, + {'el_aluminum_item',30}, + {'electronic-circuit',20}, + {'pipe',30}, + {'copper-cable',20}, + }, + result = 'el_water_generator_item', + result_count = 2, + energy_required = 4, + }, + --el_pressurizer + { + name = 'el_pressurizer_recipe', + type = 'recipe', + enabled = 'false', + category = 'crafting', + ingredients = { + {'iron-gear-wheel',40}, + {'pipe',40}, + {'el_aluminum_item',15}, + {'electronic-circuit',15} + }, + result = 'el_pressurizer_item', + result_count = 1, + energy_required = 4, + }, + --el_water_pressure + { + name = 'el_water_pressure_recipe', + type = 'recipe', + enabled = 'false', + category = 'el_special_fluid', + icon = sprite('fluids/el_pressurized_water.png'), + icon_size = 64, + main_product = 'el_pressurized_water', + ingredients = { + {type="fluid", name="water", amount=480}, + {type="fluid", name="steam", amount=240, temperature=165}, + }, + results = { + {type="fluid", name="el_pressurized_water", amount=240, temperature = '500'}, + {type="fluid", name="water", amount=240}, + }, + energy_required = 2, + }, + --el_diesel_train + { + name = 'el_diesel_train_recipe', + type = 'recipe', + enabled = 'false', + category = 'crafting', + ingredients = { + {'locomotive',1}, + {'engine-unit',15}, + {'iron-gear-wheel',40}, + {'advanced-circuit',25}, + {'el_aluminum_item',25}, + }, + result = 'el_diesel_train_item', + result_count = 1, + energy_required = 20, + }, + --el_kerosene + { + name = 'el_kerosene_recipe', + type = 'recipe', + enabled = 'false', + category = 'oil-processing', + main_product = 'el_kerosene', + ingredients = { + {type="fluid", name="crude-oil", amount=160}, + {type="fluid", name="steam", amount=100}, + }, + results = { + {type="fluid", name="el_kerosene", amount=120}, + {type="fluid", name="light-oil", amount=90}, + {type="fluid", name="water", amount=90}, + }, + result_count = 1, + energy_required = 5, + }, + { + name = 'el_tank_recipe', + type = 'recipe', + enabled = 'false', + category = 'crafting', + ingredients = { + {'pipe',100}, + {'electronic-circuit',60}, + {'steel-plate', 200}, + {'el_aluminum_item',400}, + }, + result = 'el_tank_item', + result_count = 1, + energy_required = 4, + }, + --el_desulfurized_kerosene + { + name = 'el_desulfurized_kerosene_recipe', + type = 'recipe', + enabled = 'false', + category = 'chemistry', + main_product = 'el_desulfurized_kerosene', + ingredients = { + {type="fluid", name="el_kerosene", amount=200}, + }, + results = { + {type="fluid", name="el_desulfurized_kerosene", amount=80,temperature=40}, + {type="fluid", name="el_acidic_water", amount=120}, + }, + result_count = 1, + energy_required = 4, + }, + --el_usage_acidic_water + { + name = 'el_usage_acidic_water_recipe', + type = 'recipe', + enabled = 'false', + category = 'chemistry', + subgroup = 'el_item_subgroup_e', + main_product = 'sulfuric-acid', + ingredients = { + {type="fluid", name="el_acidic_water", amount=150}, + }, + results = { + {type="fluid", name="water", amount=50}, + {type="fluid", name="sulfuric-acid", amount=100}, + --{type="item", name="sulfur", amount=6}, + }, + result_count = 1, + energy_required = 4, + }, + --el_train_fuel_diesel + { + name = 'el_train_fuel_diesel_recipe', + type = 'recipe', + enabled = 'false', + category = 'crafting-with-fluid', + subgroup = 'el_item_subgroup_d', + main_product = 'el_train_fuel_diesel_item', + ingredients = { + {type="fluid", name="el_desulfurized_kerosene", amount=70}, + }, + results = { + {type="item", name="el_train_fuel_diesel_item", amount=1}, + }, + result_count = 1, + energy_required = 30, + }, + --el_generator_equip + { + name = 'el_train_equipment_generator_recipe', + type = 'recipe', + enabled = 'false', + category = 'crafting', + subgroup = 'el_item_subgroup_d', + ingredients = { + {type="item", name="el_lithium_battery", amount=10}, + {type="item", name="engine-unit", amount=15}, + {type="item", name="el_aluminum_item", amount=15}, + }, + results = { + {type="item", name="el_train_equipment_generator_item", amount=1}, + }, + result_count = 1, + energy_required = 25, + }, + --el_accelerator_equip + { + name = 'el_train_equipment_accelerator_recipe', + type = 'recipe', + enabled = 'false', + category = 'crafting', + subgroup = 'el_item_subgroup_d', + ingredients = { + {type="item", name="pump", amount=5}, + {type="item", name="steel-plate", amount=15}, + {type="item", name="el_aluminum_item", amount=15}, + }, + results = { + {type="item", name="el_train_equipment_accelerator_item", amount=1}, + }, + result_count = 1, + energy_required = 25, + }, + --el_energy_crystal + { + name = 'el_energy_crystal_recipe', + type = 'recipe', + enabled = 'false', + category = 'crafting-with-fluid', + ingredients = { + {type="item", name="stone", amount=10}, + {type="fluid", name="el_acidic_water", amount=30}, + }, + results = { + {type="item", name="el_energy_crystal_item", amount=3}, + }, + result_count = 1, + energy_required = 10, + }, + --el_energy_crystal_fuel + { + name = 'el_train_fuel_diesel_energized_recipe', + type = 'recipe', + enabled = 'false', + category = 'crafting', + ingredients = { + {type="item", name="el_train_fuel_diesel_item", amount=2}, + {type="item", name="el_energy_crystal_item", amount=2}, + {type="item", name="el_lithium_item", amount=2}, + }, + results = { + {type="item", name="el_train_fuel_diesel_energized_item", amount=4}, + }, + result_count = 1, + energy_required = 30, + }, + --el_ki_beacon + { + name = 'el_ki_beacon_recipe', + type = 'recipe', + enabled = 'false', + category = 'crafting', + ingredients = { + {type="item", name="steel-plate", amount=20}, + {type="item", name="el_aluminum_item", amount=10}, + {type="item", name="electronic-circuit", amount=20}, + }, + results = { + {type="item", name="el_ki_beacon_item", amount=1}, + }, + result_count = 1, + energy_required = 6, + }, + { + name = 'fi_ki_beacon_recipe', + type = 'recipe', + enabled = 'false', + category = 'crafting', + ingredients = { + {type="item", name="steel-plate", amount=20}, + {type="item", name="low-density-structure", amount=10}, + {type="item", name="advanced-circuit", amount=20}, + {type="item", name="el_ki_beacon_item", amount=1}, + }, + results = { + {type="item", name="fi_ki_beacon_item", amount=1}, + }, + result_count = 1, + energy_required = 6, + }, + { + name = 'fu_ki_beacon_recipe', + type = 'recipe', + enabled = 'false', + category = 'crafting', + ingredients = { + {type="item", name="steel-plate", amount=20}, + {type="item", name="fu_tech_sign_item", amount=100}, + {type="item", name="processing-unit", amount=20}, + {type="item", name="fi_ki_beacon_item", amount=1}, + }, + results = { + {type="item", name="fu_ki_beacon_item", amount=1}, + }, + result_count = 1, + energy_required = 6, + }, + --el_ki_core + { + name = 'el_ki_core_recipe', + type = 'recipe', + enabled = 'false', + category = 'crafting', + ingredients = { + {type="item", name="steel-plate", amount=100}, + {type="item", name="concrete", amount=500}, + {type="item", name="electronic-circuit", amount=100}, + {type="item", name="advanced-circuit", amount=100}, + {type="item", name="el_aluminum_item", amount=140}, + {type="item", name="el_energy_crystal_item", amount=40}, + {type="item", name="el_solar_item", amount=10}, + {type="item", name="el_lithium_battery", amount=40}, + {type="item", name="el_water_generator_item", amount=10}, + {type="item", name="el_burner_item", amount=10}, + }, + results = { + {type="item", name="el_ki_core_item", amount=1}, + }, + result_count = 1, + energy_required = 60, + }, + { + name = 'fi_ki_core_recipe', + type = 'recipe', + enabled = 'false', + category = 'crafting', + ingredients = { + {type="item", name="fi_crafter_item", amount=10}, + {type="item", name="fi_miner_item", amount=10}, + {type="item", name="fi_crusher_item", amount=10}, + {type="item", name="fi_modules_core_item", amount=20}, + {type="item", name="low-density-structure", amount=100}, + {type="item", name="concrete", amount=500}, + {type="item", name="electronic-circuit", amount=100}, + {type="item", name="advanced-circuit", amount=100}, + }, + results = { + {type="item", name="fi_ki_core_item", amount=1}, + }, + result_count = 1, + energy_required = 60, + }, + { + name = 'fu_ki_core_recipe', + type = 'recipe', + enabled = 'false', + category = 'crafting', + ingredients = { + {type="item", name="steel-plate", amount=100}, + {type="item", name="concrete", amount=500}, + {type="item", name="electronic-circuit", amount=100}, + {type="item", name="advanced-circuit", amount=100}, + {type="item", name="processing-unit", amount=100}, + {type="item", name="fu_space_probe_down_matter_item", amount=10}, + {type="item", name="fu_space_probe_up_matter_item", amount=10}, + {type="item", name="fu_exchanger_item", amount=10}, + {type="item", name="fu_tech_sign_item", amount=100}, + {type="item", name="fu_boiler_item", amount=10}, + {type="item", name="fu_burner_item", amount=10}, + }, + results = { + {type="item", name="fu_ki_core_item", amount=1}, + }, + result_count = 1, + energy_required = 60, + }, + --el_ki_memory_entity + { + name = 'el_ki_memory_recipe', + type = 'recipe', + enabled = 'false', + category = 'crafting', + ingredients = { + {type="item", name="steel-plate", amount=40}, + {type="item", name="concrete", amount=60}, + {type="item", name="advanced-circuit", amount=100}, + {type="item", name="el_aluminum_item", amount=100}, + }, + results = { + {type="item", name="el_ki_memory_item", amount=1}, + }, + result_count = 1, + energy_required = 30, + }, + { + name = 'fi_ki_circuit_recipe', + type = 'recipe', + enabled = 'false', + category = 'crafting', + ingredients = { + {type="item", name="fi_industrial_steel_item", amount=80}, + {type="item", name="concrete", amount=120}, + {type="item", name="advanced-circuit", amount=100}, + {type="item", name="low-density-structure", amount=100}, + }, + results = { + {type="item", name="fi_ki_circuit_item", amount=1}, + }, + result_count = 1, + energy_required = 30, + }, + { + name = 'fu_ki_circuit_recipe', + type = 'recipe', + enabled = 'false', + category = 'crafting', + ingredients = { + {type="item", name="fi_industrial_steel_item", amount=80}, + {type="item", name="concrete", amount=120}, + {type="item", name="advanced-circuit", amount=100}, + {type="item", name="processing-unit", amount=100}, + {type="item", name="fu_tech_sign_item", amount=100}, + {type="item", name="low-density-structure", amount=100}, + }, + results = { + {type="item", name="fu_ki_circuit_item", amount=1}, + }, + result_count = 1, + energy_required = 30, + }, + --el_ki_memory_fluid + { + name = 'el_ki_memory_fluid_recipe', + type = 'recipe', + enabled = 'false', + category = 'el_ki_memory_category', + main_product = 'el_ki_memory_fluid', + ingredients = { + --{type="fluid", name="water", amount=480}, + --{type="fluid", name="steam", amount=240, temperature=165}, + {type="item", name="red-wire", amount=10}, + {type="item", name="el_energy_crystal_item", amount=2}, + }, + results = { + {type="fluid", name="el_ki_memory_fluid", amount=200, temperature = '500'}, + }, + energy_required = 20, + }, + { + name = 'el_ki_memory_fluid_recipe_1', + type = 'recipe', + enabled = 'false', + category = 'el_ki_memory_category', + main_product = 'el_ki_memory_fluid', + ingredients = { + --{type="fluid", name="water", amount=480}, + --{type="fluid", name="steam", amount=240, temperature=165}, + {type="item", name="red-wire", amount=8}, + {type="item", name="el_energy_crystal_item", amount=2}, + }, + results = { + {type="fluid", name="el_ki_memory_fluid", amount=200, temperature = '500'}, + }, + energy_required = 20, + }, + { + name = 'el_ki_memory_fluid_recipe_2', + type = 'recipe', + enabled = 'false', + category = 'el_ki_memory_category', + main_product = 'el_ki_memory_fluid', + ingredients = { + --{type="fluid", name="water", amount=480}, + --{type="fluid", name="steam", amount=240, temperature=165}, + {type="item", name="red-wire", amount=8}, + {type="item", name="el_energy_crystal_item", amount=1}, + }, + results = { + {type="fluid", name="el_ki_memory_fluid", amount=200, temperature = '500'}, + }, + energy_required = 20, + }, + { + name = 'el_ki_memory_fluid_recipe_3', + type = 'recipe', + enabled = 'false', + category = 'el_ki_memory_category', + main_product = 'el_ki_memory_fluid', + ingredients = { + --{type="fluid", name="water", amount=480}, + --{type="fluid", name="steam", amount=240, temperature=165}, + {type="item", name="red-wire", amount=8}, + }, + results = { + {type="fluid", name="el_ki_memory_fluid", amount=200, temperature = '500'}, + }, + energy_required = 20, + }, + { + name = 'fu_ki_circuit_fluid_recipe', + type = 'recipe', + enabled = 'false', + category = 'fu_ki_circuit_category', + main_product = 'fu_ki_circuit_fluid', + ingredients = { + {type="item", name="fu_tech_sign_item", amount=20}, + {type="item", name="advanced-circuit", amount=20}, + {type="item", name="fu_space_probe_science_item", amount=4}, + }, + results = { + {type="fluid", name="fu_ki_circuit_fluid", amount=200, temperature = '500'}, + }, + energy_required = 20, + }, + { + name = 'fu_ki_circuit_fluid_recipe_1', + type = 'recipe', + enabled = 'false', + category = 'fu_ki_circuit_category', + main_product = 'fu_ki_circuit_fluid', + ingredients = { + {type="item", name="fu_tech_sign_item", amount=16}, + {type="item", name="advanced-circuit", amount=16}, + {type="item", name="fu_space_probe_science_item", amount=2}, + }, + results = { + {type="fluid", name="fu_ki_circuit_fluid", amount=200, temperature = '500'}, + }, + energy_required = 20, + }, + { + name = 'fu_ki_circuit_fluid_recipe_2', + type = 'recipe', + enabled = 'false', + category = 'fu_ki_circuit_category', + main_product = 'fu_ki_circuit_fluid', + ingredients = { + {type="item", name="fu_tech_sign_item", amount=16}, + {type="item", name="advanced-circuit", amount=16}, + }, + results = { + {type="fluid", name="fu_ki_circuit_fluid", amount=200, temperature = '500'}, + }, + energy_required = 20, + }, + { + name = 'fu_ki_circuit_fluid_recipe_3', + type = 'recipe', + enabled = 'false', + category = 'fu_ki_circuit_category', + main_product = 'fu_ki_circuit_fluid', + ingredients = { + {type="item", name="fu_tech_sign_item", amount=12}, + {type="item", name="advanced-circuit", amount=12}, + }, + results = { + {type="fluid", name="fu_ki_circuit_fluid", amount=200, temperature = '500'}, + }, + energy_required = 20, + }, + { + name = 'fi_ki_circuit_fluid_recipe', + type = 'recipe', + enabled = 'false', + category = 'fi_ki_circuit_category', + main_product = 'fi_ki_circuit_fluid', + ingredients = { + {type="item", name="uranium-238", amount=20}, + {type="item", name="uranium-235", amount=1}, + {type="item", name="battery", amount=10}, + }, + results = { + {type="fluid", name="fi_ki_circuit_fluid", amount=200, temperature = '500'}, + }, + energy_required = 20, + }, + { + name = 'fi_ki_circuit_fluid_recipe_1', + type = 'recipe', + enabled = 'false', + category = 'fi_ki_circuit_category', + main_product = 'fi_ki_circuit_fluid', + ingredients = { + {type="item", name="uranium-238", amount=10}, + {type="item", name="uranium-235", amount=1}, + {type="item", name="battery", amount=8}, + }, + results = { + {type="fluid", name="fi_ki_circuit_fluid", amount=200, temperature = '500'}, + }, + energy_required = 20, + }, + { + name = 'fi_ki_circuit_fluid_recipe_2', + type = 'recipe', + enabled = 'false', + category = 'fi_ki_circuit_category', + main_product = 'fi_ki_circuit_fluid', + ingredients = { + {type="item", name="uranium-238", amount=10}, + {type="item", name="battery", amount=8}, + }, + results = { + {type="fluid", name="fi_ki_circuit_fluid", amount=200, temperature = '500'}, + }, + energy_required = 20, + }, + { + name = 'fi_ki_circuit_fluid_recipe_3', + type = 'recipe', + enabled = 'false', + category = 'fi_ki_circuit_category', + main_product = 'fi_ki_circuit_fluid', + ingredients = { + {type="item", name="uranium-ore", amount=10}, + {type="item", name="battery", amount=4}, + }, + results = { + {type="fluid", name="fi_ki_circuit_fluid", amount=200, temperature = '500'}, + {type="item", name="uranium-235", amount=1}, + }, + energy_required = 20, + }, + --el_ki_cpu_entity + { + name = 'el_ki_cpu_recipe', + type = 'recipe', + enabled = 'false', + category = 'crafting', + ingredients = { + {type="item", name="steel-plate", amount=40}, + {type="item", name="concrete", amount=60}, + {type="item", name="advanced-circuit", amount=100}, + {type="item", name="el_aluminum_item", amount=100}, + }, + results = { + {type="item", name="el_ki_cpu_item", amount=1}, + }, + result_count = 1, + energy_required = 30, + }, + --el_ki_cpu_fluid + { + name = 'el_ki_cpu_fluid_recipe', + type = 'recipe', + enabled = 'false', + category = 'el_ki_cpu_category', + main_product = 'el_ki_cpu_fluid', + ingredients = { + --{type="fluid", name="water", amount=480}, + --{type="fluid", name="steam", amount=240, temperature=165}, + {type="item", name="green-wire", amount=10}, + {type="item", name="el_energy_crystal_item", amount=2}, + }, + results = { + {type="fluid", name="el_ki_cpu_fluid", amount=200, temperature = '500'}, + }, + energy_required = 20, + }, + { + name = 'el_ki_cpu_fluid_recipe_1', + type = 'recipe', + enabled = 'false', + category = 'el_ki_cpu_category', + main_product = 'el_ki_cpu_fluid', + ingredients = { + --{type="fluid", name="water", amount=480}, + --{type="fluid", name="steam", amount=240, temperature=165}, + {type="item", name="green-wire", amount=8}, + {type="item", name="el_energy_crystal_item", amount=2}, + }, + results = { + {type="fluid", name="el_ki_cpu_fluid", amount=200, temperature = '500'}, + }, + energy_required = 20, + }, + { + name = 'el_ki_cpu_fluid_recipe_2', + type = 'recipe', + enabled = 'false', + category = 'el_ki_cpu_category', + main_product = 'el_ki_cpu_fluid', + ingredients = { + --{type="fluid", name="water", amount=480}, + --{type="fluid", name="steam", amount=240, temperature=165}, + {type="item", name="green-wire", amount=8}, + {type="item", name="el_energy_crystal_item", amount=1}, + }, + results = { + {type="fluid", name="el_ki_cpu_fluid", amount=200, temperature = '500'}, + }, + energy_required = 20, + }, + { + name = 'el_ki_cpu_fluid_recipe_3', + type = 'recipe', + enabled = 'false', + category = 'el_ki_cpu_category', + main_product = 'el_ki_cpu_fluid', + ingredients = { + --{type="fluid", name="water", amount=480}, + --{type="fluid", name="steam", amount=240, temperature=165}, + {type="item", name="green-wire", amount=8}, + }, + results = { + {type="fluid", name="el_ki_cpu_fluid", amount=200, temperature = '500'}, + }, + energy_required = 20, + }, + + --el_ki_core_cpu_memory + { + name = 'el_ki_cpu_memory_recipe', + type = 'recipe', + enabled = 'false', + category = 'el_ki_core_category', + icon = sprite('fluids/el_pressurized_water.png'), + icon_size = 64, + subgroup = 'el_item_subgroup_f', + ingredients = { + {type="fluid", name="el_ki_cpu_fluid", amount=550}, + {type="fluid", name="el_ki_memory_fluid", amount=550}, + }, + results = {}, + energy_required = 15, + }, + { + name = 'fi_ki_cpu_memory_circuit_recipe', + type = 'recipe', + enabled = 'false', + category = 'fi_ki_core_category', + icon = sprite('fluids/el_pressurized_water.png'), + icon_size = 64, + subgroup = 'el_item_subgroup_f', + ingredients = { + {type="fluid", name="el_ki_cpu_fluid", amount=550}, + {type="fluid", name="el_ki_memory_fluid", amount=550}, + {type="fluid", name="fi_ki_circuit_fluid", amount=550} + }, + results = {}, + energy_required = 15, + }, + { + name = 'fu_ki_cpu_memory_circuit_recipe', + type = 'recipe', + enabled = 'false', + category = 'fu_ki_core_category', + icon = sprite('fluids/el_pressurized_water.png'), + icon_size = 64, + subgroup = 'el_item_subgroup_f', + ingredients = { + {type="fluid", name="el_ki_cpu_fluid", amount=550}, + {type="fluid", name="el_ki_memory_fluid", amount=550}, + {type="fluid", name="fi_ki_circuit_fluid", amount=550}, + {type="fluid", name="fu_ki_circuit_fluid", amount=550} + }, + results = {}, + energy_required = 15, + }, + + + +}) diff --git a/prototypes/electronic/el_aluminum.lua b/prototypes/electronic/el_aluminum.lua new file mode 100644 index 0000000..f3502d6 --- /dev/null +++ b/prototypes/electronic/el_aluminum.lua @@ -0,0 +1,34 @@ +--local functions +local function config(name) + return settings.startup['el_aluminum_'..name].value +end + +local function sprite(name) + return '__248k__/ressources/electronic/el_aluminum/el_aluminum_'..name +end +--ore +data:extend({ + { + name = 'el_aluminum_ore_item', + type = 'item', + icon = sprite('ore_item.png'), + icon_size = 64, + stack_size = 100, + subgroup = 'el_item_subgroup_a', + order = 'a-a', + }, + +}) +--item +data:extend({ + { + name = 'el_aluminum_item', + type = 'item', + icon = sprite('item.png'), + icon_size = 64, + stack_size = 100, + subgroup = 'el_item_subgroup_a', + order = 'b-a', + }, + +}) \ No newline at end of file diff --git a/prototypes/electronic/el_ammo.lua b/prototypes/electronic/el_ammo.lua new file mode 100644 index 0000000..2d9bd0e --- /dev/null +++ b/prototypes/electronic/el_ammo.lua @@ -0,0 +1,21 @@ +--local functions +local function config(name) + return settings.startup['el_ammo_'..name].value +end + +local function sprite(name) + return '__248k__/ressources/electronic/el_ammo/el_ammo_'..name +end + +--item +data:extend({ + { + name = 'el_ammo_item', + type = 'ammo', + icon = sprite('item.png'), + icon_size = 64, + stack_size = 20, + subgroup = 'el_item_subgroup_b', + order = 'c-a', + }, +}) \ No newline at end of file diff --git a/prototypes/electronic/el_burner.lua b/prototypes/electronic/el_burner.lua new file mode 100644 index 0000000..0f9a13a --- /dev/null +++ b/prototypes/electronic/el_burner.lua @@ -0,0 +1,180 @@ +--local functions +local function config(name) + return settings.startup['el_burner_'..name].value +end + +local function sprite(name) + return '__248k__/ressources/electronic/el_burner/el_burner_'..name +end + +--item +data:extend({ + { + name = 'el_burner_item', + type = 'item', + icon = sprite('item.png'), + icon_size = 64, + place_result = 'el_burner_entity', + stack_size = 20, + subgroup = 'el_item_subgroup_c', + order = 'a-a', + }, + { + name = 'el_burner_kerosene_item', + type = 'item', + icon = sprite('kerosene_item.png'), + icon_size = 64, + place_result = 'el_burner_kerosene_entity', + stack_size = 20, + subgroup = 'el_item_subgroup_c', + order = 'a-a', + }, + + +}) + +--entity +data:extend({ + --prototype + { + name = 'el_burner_entity', + type = 'burner-generator', + icon = sprite('entity_icon.png'), + icon_size = 64, + flags = {"player-creation","placeable-neutral", "not-rotatable"}, + --minable + minable = { + mining_time = 1, + result = 'el_burner_item', + }, + max_health = 150, + corpse = 'small-remnants', + collision_box = {{-1.4,-1.4},{1.4,1.4}}, + selection_box = {{-1.5,-1.5},{1.5,1.5}}, + --energy + burner = { + type = 'burner', + fuel_inventory_size = 3, + effectivity = 1.2, + emissions_per_minute = 20, + smoke = { + { + name = 'smoke', + tape = 'trival-smoke', + frequency = 20, + position = {-0.6,-1.6}, + --deviation = {x = -2, y = -2}, + duration = 1, + }, + }, + }, + energy_source = { + type = 'electric', + usage_priority = 'primary-output', + input_flow_limit = '0W', + output_flow_limit = tostring(config('power_output'))..'W', + }, + max_power_output = tostring(config('power_output'))..'W', + --animation + animation = { + filename = sprite('entity_animation.png'), + size = {386,448}, + scale = 0.26, + line_length = 4, + frame_count = 4, + animation_speed = 0.5, + shift = {0,-0.2} + }, + map_color = {r=0, g=0, b=1, a=1}, + working_sound = + { + sound = { filename = "__base__/sound/furnace.ogg" }, + apparent_volume = 1.5, + }, + }, + --kerosene + { + name = 'el_burner_kerosene_entity', + type = 'generator', + icon = sprite('kerosene_entity_icon.png'), + icon_size = 64, + flags = {"player-creation","placeable-neutral", "not-rotatable"}, + --minable + minable = { + mining_time = 1, + result = 'el_burner_kerosene_item', + }, + max_health = 150, + corpse = 'small-remnants', + collision_box = {{-1.4,-1.4},{1.4,1.4}}, + selection_box = {{-1.5,-1.5},{1.5,1.5}}, + --energy + effectivity = 1, + energy_source = { + type = 'electric', + usage_priority = 'primary-output', + input_flow_limit = '0W', + output_flow_limit = tostring(config('kerosene_power_output'))..'W', + emissions_per_minute = 20, + }, + max_power_output = tostring(config('kerosene_power_output'))..'W', + maximum_temperature = 40, + fluid_usage_per_tick = 1, + fluid_box = { + base_area = 1, + height = 2, + base_level = -1, + filter = 'el_desulfurized_kerosene', + minimum_temperature = 0, + maximum_temperature = 40, + production_type = 'input-output', + pipe_connections = { + {type = "input-output", position = {2, 0}}, + {type = "input-output", position = {-2, 0}}, + }, + }, + fluid_input = { + name = 'el_desulfurized_kerosene', + minimum_temperature = 0, + }, + --animation + vertical_animation = { + filename = sprite('kerosene_entity_animation.png'), + size = {420,448}, + --filename = sprite('test.png'), + --size = {512,512}, + scale = 0.25, + line_length = 1, + frame_count = 1, + animation_speed = 0.5, + shift = {0,-0.2} + }, + horizontal_animation = { + filename = sprite('kerosene_entity_animation.png'), + size = {420,448}, + --filename = sprite('test.png'), + --size = {512,512}, + scale = 0.25, + line_length = 1, + frame_count = 1, + animation_speed = 0.5, + shift = {0,-0.2} + }, + map_color = {r=0, g=0, b=1, a=1}, + working_sound = + { + sound = { filename = "__base__/sound/furnace.ogg" }, + apparent_volume = 1.5, + }, + smoke = { + { + name = 'smoke', + tape = 'trival-smoke', + frequency = 0.5, + position = {-0.6,-1.8}, + --deviation = {x = -2, y = -2}, + duration = 0.5, + }, + }, + }, +}) \ No newline at end of file diff --git a/prototypes/electronic/el_diesel_train.lua b/prototypes/electronic/el_diesel_train.lua new file mode 100644 index 0000000..91336bb --- /dev/null +++ b/prototypes/electronic/el_diesel_train.lua @@ -0,0 +1,185 @@ +--local functions +local function config(name) + return settings.startup['el_diesel_train_'..name].value +end + +local function sprite(name) + return '__248k__/ressources/electronic/el_diesel_train/el_diesel_train_'..name +end + +--item +data:extend({ + { + name = 'el_diesel_train_item', + type = 'item-with-entity-data', + icon = sprite('item.png'), + icon_size = 64, + place_result = 'el_diesel_train_entity', + stack_size = 20, + subgroup = 'el_item_subgroup_d', + order = 'a-a', + }, +}) + +--entity +data:extend({ + { + name = 'el_diesel_train_entity', + type = 'locomotive', + icon = sprite('entity_icon.png'), + icon_size = 64, + flags = {"player-creation","placeable-neutral","placeable-off-grid"}, + max_health = 1200, + corpse = "medium-remnants", + dying_explosion = "medium-explosion", + collision_box = {{-0.6, -2.6}, {0.6, 2.6}}, + selection_box = {{-1, -3}, {1, 3}}, + drawing_box = {{-1, -4}, {1, 3}}, + connection_distance = 3, + joint_distance = 4, + wheels = standard_train_wheels, + rail_category = "regular", + 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.2, + allow_manual_color = false, + minable = { + mining_time = 1, + result = 'el_diesel_train_item', + }, + --stats + max_speed = 1.20, + max_power = '1800kW', + braking_force = 40, + friction_force = 0.00825, + air_resistance = 0.00225, + vertical_selection_shift = -0.5, + energy_per_hit_point = 8, + reversing_power_modifier = 0.5, + weight = 3200, + --grid + equipment_grid = 'el_train_equipment_grid', + --burner + burner = { + fuel_category = 'el_train_fuel', + fuel_inventory_size = 3, + effectitvity = 1, + emissions_per_minute = 40, + smoke = { + { + name = "train-smoke", + deviation = {0.3, 0.3}, + frequency = 300, + 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, + }, + }, + }, + --light + 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.3, -10}, + size = 1, + intensity = 1.5, + }, + { + type = "oriented", + minimum_darkness = 0.3, + picture = { + filename = "__core__/graphics/light-cone.png", + priority = "medium", + scale = 2, + width = 200, + height = 200, + }, + shift = {0.3, -10}, + size = 1, + intensity = 1.5, + }, + }, + --animation + pictures = { + priority = "low", + width = 512, + height = 512, + direction_count = 128, + filenames = {sprite('animation_1.png'),sprite('animation_2.png')}, + line_length = 8, + lines_per_file = 8, + shift = {0.2, -0.6}, + scale = 0.5, + }, + --minimap + minimap_representation = { + filename = "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-minimap-representation.png", + flags = {"icon"}, + size = {20, 40}, + scale = 0.5, + }, + selected_minimap_representation = { + filename = "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-selected-minimap-representation.png", + flags = {"icon"}, + size = {20, 40}, + scale = 0.5, + }, + --stop trigger + stop_trigger = { + -- left side + { + type = "create-trivial-smoke", + repeat_count = 75, + smoke_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-trivial-smoke", + repeat_count = 75, + smoke_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, + } + }, + }, + }, + working_sound = { + sound = { filename ='__base__/sound/train-engine.ogg'}, + apparent_volume = 0.5, + }, + vehicle_impact_sound = { + filename = "__base__/sound/car-metal-impact-6.ogg", + volume = 0.8 + }, + + }, +}) \ No newline at end of file diff --git a/prototypes/electronic/el_energy_crystal.lua b/prototypes/electronic/el_energy_crystal.lua new file mode 100644 index 0000000..0b53729 --- /dev/null +++ b/prototypes/electronic/el_energy_crystal.lua @@ -0,0 +1,27 @@ +--local functions +local function config(name) + return settings.startup['el_energy_crystal_'..name].value +end + +local function sprite(name) + return '__248k__/ressources/electronic/el_energy_crystal/el_energy_crystal_'..name +end + +--item +data:extend({ + { + name = 'el_energy_crystal_item', + type = 'item', + icon = sprite('item.png'), + icon_size = 64, + stack_size = 500, + subgroup = 'el_item_subgroup_a', + order = 'a-c', + fuel_glow_color = {r=0.1,g=0.74,b=0.39,a=0.5}, + fuel_category = 'chemical', + fuel_acceleration_multiplier = 1, + fuel_emissions_multiplier = 1, + fuel_top_speed_multiplier = 1, + fuel_value = '35MJ', + }, +}) \ No newline at end of file diff --git a/prototypes/electronic/el_ki/el_ki_beacon.lua b/prototypes/electronic/el_ki/el_ki_beacon.lua new file mode 100644 index 0000000..b74df6f --- /dev/null +++ b/prototypes/electronic/el_ki/el_ki_beacon.lua @@ -0,0 +1,258 @@ +--local functions +local function config(name) + return settings.startup['el_ki_beacon_'..name].value +end + +local function sprite(name) + return '__248k__/ressources/electronic/el_ki/el_ki_beacon/el_ki_beacon_'..name +end + +local function config_blueprintable(name,int) + if not config('blueprintable') then + if int == 1 then + return 'no-copy-paste' + end + if int == 2 then + return 'not-blueprintable' + end + end + return "player-creation" +end + + +--item +data:extend({ + { + name = 'el_ki_beacon_item', + type = 'item', + icon = sprite('item.png'), + icon_size = 64, + place_result = 'el_ki_beacon_entity', + stack_size = 20, + subgroup = 'el_item_subgroup_f', + order = 'b-a', + }, + { + name = 'fi_ki_beacon_item', + type = 'item', + icon = sprite('fi.png'), + icon_size = 64, + place_result = 'fi_ki_beacon_entity', + stack_size = 20, + subgroup = 'fi_item_subgroup_k', + order = 'b-a', + }, + { + name = 'fu_ki_beacon_item', + type = 'item', + icon = sprite('fu.png'), + icon_size = 64, + place_result = 'fu_ki_beacon_entity', + stack_size = 20, + subgroup = 'fu_item_subgroup_k', + order = 'b-a', + }, + +}) + +--entity +data:extend({ + { + name = 'el_ki_beacon_entity', + type = 'beacon', + icon = sprite('entity_icon.png'), + icon_size = 64, + flags = {"player-creation","placeable-neutral","no-automated-item-insertion","no-automated-item-removal","not-upgradable","hide-alt-info",config_blueprintable('el_ki_beacon',1),config_blueprintable('el_ki_beacon',2)}, + + max_health = 300, + corpse = 'big-remnants', + collision_box = {{-0.8, -0.8}, {0.8, 0.8}}, + selection_box = {{-1, -1}, {1, 1}}, + map_color = {r=0, g=0, b=1, a=1}, + allowed_effects = {"speed", "productivity", "consumption", "pollution"}, + minable = { + mining_time = 1, + result = 'el_ki_beacon_item', + }, + distribution_effectivity = config('effectivity'), + energy_source = { + type = 'electric', + usage_priority = 'secondary-input', + input_flow_limit = '400MW', + }, + energy_usage = '0.4MW', + module_specification = { + module_slots = 2, + module_info_icon_shift = {0, 0.5}, + module_info_multi_row_initial_height_modifier = -0.3, + }, + supply_area_distance = config('supply_area'), + radius_visualisation_picture = + { + filename = "__base__/graphics/entity/beacon/beacon-radius-visualization.png", + width = 10, + height = 10, + }, + animation = { + + filename = sprite('entity_animation.png'), + width = 480, + height = 480, + line_length = 4, + lines_per_file = 1, + animation_speed = 0.1, + frame_count = 4, + scale = 0.13, + shift = { 0, 0}, + }, + }, + --slave + { + name = 'el_ki_beacon_slave_entity', + type = 'container', + icon = sprite('slave_entity_icon.png'), + icon_size = 64, + selection_box = {{-0.5, -0.5}, {0.5, 0.5}}, + selection_priority = 60, + picture = { + filename = sprite('slave_entity_animation.png'), + width = 64, + height = 64 + }, + inventory_size = 1, + }, + + { + name = 'fi_ki_beacon_entity', + type = 'beacon', + icon = sprite('fi.png'), + icon_size = 64, + flags = {"player-creation","placeable-neutral","no-automated-item-insertion","no-automated-item-removal","not-upgradable","hide-alt-info",config_blueprintable('el_ki_beacon',1),config_blueprintable('el_ki_beacon',2)}, + + max_health = 300, + corpse = 'big-remnants', + collision_box = {{-1.4,-1.4},{1.4,1.4}}, + selection_box = {{-1.5,-1.5},{1.5,1.5}}, + map_color = {r=0, g=0, b=1, a=1}, + allowed_effects = {"speed", "productivity", "consumption", "pollution"}, + minable = { + mining_time = 1, + result = 'fi_ki_beacon_item', + }, + distribution_effectivity = config('effectivity_2'), + energy_source = { + type = 'electric', + usage_priority = 'secondary-input', + input_flow_limit = '400MW', + }, + energy_usage = '4MW', + module_specification = { + module_slots = 6, + module_info_icon_shift = {0, 0.5}, + module_info_multi_row_initial_height_modifier = -0.3, + }, + supply_area_distance = config('supply_area_2'), + radius_visualisation_picture = + { + filename = "__base__/graphics/entity/beacon/beacon-radius-visualization.png", + width = 10, + height = 10, + }, + animation = { + + filename = sprite('entity_animation_2.png'), + width = 480, + height = 480, + line_length = 4, + lines_per_file = 1, + animation_speed = 0.1, + frame_count = 4, + scale = 0.2, + shift = { 0, 0}, + }, + }, + --slave + { + name = 'fi_ki_beacon_slave_entity', + type = 'container', + icon = sprite('slave_entity_icon.png'), + flags = {"placeable-off-grid"}, + icon_size = 64, + selection_box = {{-0.5, -0.5}, {0.5, 0.5}}, + selection_priority = 60, + picture = { + filename = sprite('slave_entity_animation.png'), + width = 64, + height = 64 + }, + inventory_size = 1, + }, + { + name = 'fu_ki_beacon_entity', + type = 'beacon', + icon = sprite('fu.png'), + icon_size = 64, + flags = {"player-creation","placeable-neutral","no-automated-item-insertion","no-automated-item-removal","not-upgradable","hide-alt-info",config_blueprintable('el_ki_beacon',1),config_blueprintable('el_ki_beacon',2)}, + + max_health = 300, + corpse = 'big-remnants', + collision_box = {{-1.8,-1.8},{1.8,1.8}}, + selection_box = {{-2,-2},{2,2}}, + map_color = {r=0, g=0, b=1, a=1}, + allowed_effects = {"speed", "productivity", "consumption", "pollution"}, + minable = { + mining_time = 1, + result = 'fu_ki_beacon_item', + }, + distribution_effectivity = config('effectivity_3'), + energy_source = { + type = 'electric', + usage_priority = 'secondary-input', + input_flow_limit = '400MW', + }, + energy_usage = '40MW', + module_specification = { + module_slots = 20, + module_info_icon_shift = {0, 0.5}, + module_info_multi_row_initial_height_modifier = -0.3, + }, + supply_area_distance = config('supply_area_3'), + radius_visualisation_picture = + { + filename = "__base__/graphics/entity/beacon/beacon-radius-visualization.png", + width = 10, + height = 10, + }, + animation = { + + filename = sprite('entity_animation_3.png'), + width = 480, + height = 480, + line_length = 4, + lines_per_file = 1, + animation_speed = 0.1, + frame_count = 4, + scale = 0.27, + shift = { 0, 0}, + }, + }, + --slave + { + name = 'fu_ki_beacon_slave_entity', + type = 'container', + icon = sprite('slave_entity_icon.png'), + icon_size = 64, + selection_box = {{-0.5, -0.5}, {0.5, 0.5}}, + selection_priority = 60, + picture = { + filename = sprite('slave_entity_animation.png'), + width = 64, + height = 64 + }, + inventory_size = 1, + } + +}) + + + diff --git a/prototypes/electronic/el_ki/el_ki_core.lua b/prototypes/electronic/el_ki/el_ki_core.lua new file mode 100644 index 0000000..09d1d09 --- /dev/null +++ b/prototypes/electronic/el_ki/el_ki_core.lua @@ -0,0 +1,410 @@ +--local functions +local function config(name) + return settings.startup['el_ki_core_'..name].value +end + +local function sprite(name) + return '__248k__/ressources/electronic/el_ki/el_ki_core/el_ki_core_'..name +end + +local allowed_modules = {} +if config("productivity") then + allowed_modules = {"speed", "productivity", "consumption", "pollution"} +else + allowed_modules = {"speed", "consumption", "pollution"} +end + +--item +data:extend({ + { + name = 'el_ki_core_item', + type = 'item', + icon = sprite('item.png'), + icon_size = 64, + place_result = 'el_ki_core_entity', + stack_size = 20, + subgroup = 'el_item_subgroup_f', + order = 'b-b', + }, + { + name = 'fi_ki_core_item', + type = 'item', + icon = sprite('fi.png'), + icon_size = 64, + place_result = 'fi_ki_core_entity', + stack_size = 20, + subgroup = 'fi_item_subgroup_k', + order = 'b-b', + }, + { + name = 'fu_ki_core_item', + type = 'item', + icon = sprite('fu.png'), + icon_size = 64, + place_result = 'fu_ki_core_entity', + stack_size = 20, + subgroup = 'fu_item_subgroup_k', + order = 'b-b', + }, + +}) + +--entity +data:extend({ + { + name = 'el_ki_core_entity', + type = 'assembling-machine', + icon = sprite('entity_icon.png'), + icon_size = 64, + flags = {"player-creation","placeable-neutral"}, + crafting_categories = {'el_ki_core_category'}, + crafting_speed = 1, + max_health = 300, + corpse = 'big-remnants', + collision_box = {{-2.8, -2.8}, {2.8, 2.8}}, + selection_box = {{-3.0, -3.0}, {3.0, 3.0}}, + map_color = {r=0, g=0, b=1, a=1}, + minable = { + mining_time = 1, + result = 'el_ki_core_item', + }, + fixed_recipe = 'el_ki_cpu_memory_recipe', + energy_source = { + type = 'electric', + usage_priority = 'primary-input', + input_flow_limit = config('energy_usage_input')..'W', + }, + energy_usage = config('energy_usage')..'W', + fluid_boxes = { + { + filter = 'el_ki_cpu_fluid', + base_area = 1, + height = 2, + base_level = -1, + pipe_covers = pipecoverspictures(), + pipe_connections = + { + {type = "input", position = {0.5, -3.2}}, + }, + production_type = "input" + }, + { + filter = 'el_ki_memory_fluid', + base_area = 1, + height = 2, + base_level = -1, + pipe_covers = pipecoverspictures(), + pipe_connections = + { + {type = "input", position = {0.5, 3.2}}, + }, + production_type = "input" + }, + }, + animation = { + + filename = sprite('entity_animation.png'), + width = 960, + height = 930, + line_length = 3, + lines_per_file = 3, + animation_speed = 0.3, + frame_count = 9, + scale = 0.2, + }, + working_sound = { + sound = { filename ='__base__/sound/nuclear-reactor-1.ogg'}, + apparent_volume = 2.5, + }, + }, + --slave + { + name = 'el_ki_core_slave_entity', + type = 'beacon', + icon = sprite('slave_entity_icon.png'), + icon_size = 64, + selection_box = {{-1, -1}, {1, 1}}, + selection_priority = 60, + base_picture = { + filename = sprite('slave_entity_animation.png'), + width = 64, + height = 64 + }, + distribution_effectivity = 0, + energy_source = {type = "void"}, + energy_usage = '1W', + supply_area_distance = 0, + allowed_effects = allowed_modules, + module_specification = + { + module_slots = 2, + module_info_icon_shift = {0, 0.5}, + module_info_multi_row_initial_height_modifier = -0.3 + }, + }, + --slave container + { + name = 'el_ki_core_slave_container_entity', + type = 'container', + icon = sprite('slave_container_entity_icon.png'), + icon_size = 64, + selection_box = {{-1, -1}, {1, 1}}, + selection_priority = 60, + picture = { + filename = sprite('slave_container_entity_animation.png'), + width = 64, + height = 64 + }, + inventory_size = 20, + }, + --=============================================================== + { + name = 'fi_ki_core_entity', + type = 'assembling-machine', + icon = sprite('fi.png'), + icon_size = 64, + flags = {"player-creation","placeable-neutral"}, + crafting_categories = {'fi_ki_core_category'}, + crafting_speed = 1, + max_health = 300, + corpse = 'big-remnants', + collision_box = {{-2.8, -2.8}, {2.8, 2.8}}, + selection_box = {{-3.0, -3.0}, {3.0, 3.0}}, + map_color = {r=0, g=0, b=1, a=1}, + minable = { + mining_time = 1, + result = 'fi_ki_core_item', + }, + fixed_recipe = 'fi_ki_cpu_memory_circuit_recipe', + energy_source = { + type = 'electric', + usage_priority = 'primary-input', + input_flow_limit = config('energy_usage_input_2')..'W', + }, + energy_usage = config('energy_usage_2')..'W', + fluid_boxes = { + { + filter = 'el_ki_cpu_fluid', + base_area = 1, + height = 2, + base_level = -1, + pipe_covers = pipecoverspictures(), + pipe_connections = + { + {type = "input", position = {0.5, -3.2}}, + }, + production_type = "input" + }, + { + filter = 'el_ki_memory_fluid', + base_area = 1, + height = 2, + base_level = -1, + pipe_covers = pipecoverspictures(), + pipe_connections = + { + {type = "input", position = {0.5, 3.2}}, + }, + production_type = "input" + }, + { + filter = 'fi_ki_circuit_fluid', + base_area = 1, + height = 2, + base_level = -1, + pipe_covers = pipecoverspictures(), + pipe_connections = + { + {type = "input", position = {3.2, 0.5}}, + }, + production_type = "input" + } + }, + animation = { + + filename = sprite('entity_animation_2.png'), + width = 960, + height = 930, + line_length = 3, + lines_per_file = 3, + animation_speed = 0.3, + frame_count = 9, + scale = 0.2, + }, + working_sound = { + sound = { filename ='__base__/sound/nuclear-reactor-1.ogg'}, + apparent_volume = 2.5, + }, + }, + --slave + { + name = 'fi_ki_core_slave_entity', + type = 'beacon', + icon = sprite('slave_entity_icon.png'), + icon_size = 64, + selection_box = {{-1, -1}, {1, 1}}, + selection_priority = 60, + base_picture = { + filename = sprite('slave_entity_animation.png'), + width = 64, + height = 64 + }, + distribution_effectivity = 0, + energy_source = {type = "void"}, + energy_usage = '1W', + supply_area_distance = 0, + allowed_effects = allowed_modules, + module_specification = + { + module_slots = 2, + module_info_icon_shift = {0, 0.5}, + module_info_multi_row_initial_height_modifier = -0.3 + }, + }, + --slave container + { + name = 'fi_ki_core_slave_container_entity', + type = 'container', + icon = sprite('slave_container_entity_icon.png'), + icon_size = 64, + selection_box = {{-1, -1}, {1, 1}}, + selection_priority = 60, + picture = { + filename = sprite('slave_container_entity_animation.png'), + width = 64, + height = 64 + }, + inventory_size = 1, + }, + --=============================================================== + { + name = 'fu_ki_core_entity', + type = 'assembling-machine', + icon = sprite('fu.png'), + icon_size = 64, + flags = {"player-creation","placeable-neutral"}, + crafting_categories = {'fu_ki_core_category'}, + crafting_speed = 1, + max_health = 300, + corpse = 'big-remnants', + collision_box = {{-2.8, -2.8}, {2.8, 2.8}}, + selection_box = {{-3.0, -3.0}, {3.0, 3.0}}, + map_color = {r=0, g=0, b=1, a=1}, + minable = { + mining_time = 1, + result = 'fu_ki_core_item', + }, + fixed_recipe = 'fu_ki_cpu_memory_circuit_recipe', + energy_source = { + type = 'electric', + usage_priority = 'primary-input', + input_flow_limit = config('energy_usage_input_3')..'W', + }, + energy_usage = config('energy_usage_3')..'W', + fluid_boxes = { + { + filter = 'el_ki_cpu_fluid', + base_area = 1, + height = 2, + base_level = -1, + pipe_covers = pipecoverspictures(), + pipe_connections = + { + {type = "input", position = {0.5, -3.2}}, + }, + production_type = "input" + }, + { + filter = 'el_ki_memory_fluid', + base_area = 1, + height = 2, + base_level = -1, + pipe_covers = pipecoverspictures(), + pipe_connections = + { + {type = "input", position = {0.5, 3.2}}, + }, + production_type = "input" + }, + { + filter = 'fi_ki_circuit_fluid', + base_area = 1, + height = 2, + base_level = -1, + pipe_covers = pipecoverspictures(), + pipe_connections = + { + {type = "input", position = {3.2, 0.5}}, + }, + production_type = "input" + }, + { + filter = 'fu_ki_circuit_fluid', + base_area = 1, + height = 2, + base_level = -1, + pipe_covers = pipecoverspictures(), + pipe_connections = + { + {type = "input", position = {-3.2, 0.5}}, + }, + production_type = "input" + } + }, + animation = { + + filename = sprite('entity_animation_3.png'), + width = 960, + height = 930, + line_length = 3, + lines_per_file = 3, + animation_speed = 0.3, + frame_count = 9, + scale = 0.2, + }, + working_sound = { + sound = { filename ='__base__/sound/nuclear-reactor-1.ogg'}, + apparent_volume = 2.5, + }, + }, + --slave + { + name = 'fu_ki_core_slave_entity', + type = 'beacon', + icon = sprite('slave_entity_icon.png'), + icon_size = 64, + selection_box = {{-1, -1}, {1, 1}}, + selection_priority = 60, + base_picture = { + filename = sprite('slave_entity_animation.png'), + width = 64, + height = 64 + }, + distribution_effectivity = 0, + energy_source = {type = "void"}, + energy_usage = '1W', + supply_area_distance = 0, + allowed_effects = allowed_modules, + module_specification = + { + module_slots = 2, + module_info_icon_shift = {0, 0.5}, + module_info_multi_row_initial_height_modifier = -0.3 + }, + }, + --slave container + { + name = 'fu_ki_core_slave_container_entity', + type = 'container', + icon = sprite('slave_container_entity_icon.png'), + icon_size = 64, + selection_box = {{-1, -1}, {1, 1}}, + selection_priority = 60, + picture = { + filename = sprite('slave_container_entity_animation.png'), + width = 64, + height = 64 + }, + inventory_size = 1, + } +}) \ No newline at end of file diff --git a/prototypes/electronic/el_ki/el_ki_cpu.lua b/prototypes/electronic/el_ki/el_ki_cpu.lua new file mode 100644 index 0000000..938c367 --- /dev/null +++ b/prototypes/electronic/el_ki/el_ki_cpu.lua @@ -0,0 +1,108 @@ +--local functions +local function config(name) + return settings.startup['el_ki_cpu_'..name].value +end + +local function sprite(name) + return '__248k__/ressources/electronic/el_ki/el_ki_cpu/el_ki_cpu_'..name +end + +--item +data:extend({ + { + name = 'el_ki_cpu_item', + type = 'item', + icon = sprite('item.png'), + icon_size = 64, + place_result = 'el_ki_cpu_entity', + stack_size = 20, + subgroup = 'el_item_subgroup_f', + order = 'a-a', + }, + +}) + +--entity +data:extend({ + --prototype + { + name = 'el_ki_cpu_entity', + type = 'assembling-machine', + icon = sprite('entity_icon.png'), + icon_size = 64, + flags = {"player-creation","placeable-neutral"}, + max_health = 300, + corpse = 'big-remnants', + collision_box = {{-1.4,-1.4},{1.4,1.4}}, + selection_box = {{-1.5,-1.5},{1.5,1.5}}, + map_color = {r=0, g=0, b=1, a=1}, + minable = { + mining_time = 1, + result = 'el_ki_cpu_item', + }, + crafting_categories = {'el_ki_cpu_category'}, + crafting_speed = 1, + ingredient_count = 2, + --fixed_recipe = 'el_ki_cpu_fluid_recipe', + energy_source = { + type = 'electric', + usage_priority = 'secondary-input', + input_flow_limit = '5000kW', + }, + energy_usage = '4000kW', + fluid_boxes = { + { + filter = 'el_ki_cpu_fluid', + base_area = 1, + height = 2, + base_level = 1, + pipe_covers = pipecoverspictures(), + pipe_connections = + { + {type = "output", position = {0, 2}}, + }, + production_type = "output" + }, + }, + + --animation + animation = { + north = { + filename = sprite('entity_animation.png'), + size = {480,484}, + scale = 0.22, + line_length = 5, + frame_count = 4, + animation_speed = 0.5, + }, + east = { + filename = sprite('entity_animation.png'), + size = {480,484}, + scale = 0.22, + line_length = 5, + frame_count = 4, + animation_speed = 0.5, + }, + south = { + filename = sprite('entity_animation.png'), + size = {480,484}, + scale = 0.22, + line_length = 5, + frame_count = 4, + animation_speed = 0.5, + }, + west = { + filename = sprite('entity_animation.png'), + size = {480,484}, + scale = 0.22, + line_length = 5, + frame_count = 4, + animation_speed = 0.5, + }, + }, + working_sound = { + sound = { filename = '__base__/sound/accumulator-idle.ogg'}, + apparent_volume = 1.5, + }, + }, +}) \ No newline at end of file diff --git a/prototypes/electronic/el_ki/el_ki_linker.lua b/prototypes/electronic/el_ki/el_ki_linker.lua new file mode 100644 index 0000000..ecbf582 --- /dev/null +++ b/prototypes/electronic/el_ki/el_ki_linker.lua @@ -0,0 +1,56 @@ +--local functions +local function config(name) + return settings.startup['el_ki_linker_'..name].value +end + +local function sprite(name) + return '__248k__/ressources/electronic/el_ki/el_ki_linker/el_ki_'..name +end + +data:extend({ + { + name = 'el_ki_linker', + type = 'item-with-tags', + icon = sprite('linker_entity_icon.png'), + icon_size = 64, + stack_size = 1, + subgroup = 'el_item_subgroup_b', + order = 'a-b', + }, + { + name = 'fi_ki_science', + type = 'tool', + icon = sprite('science_blue_data.png'), + durability = 1, + icon_size = 64, + stack_size = 10000, + subgroup = 'el_item_subgroup_b', + order = 'a-b', + }, + { + name = 'fu_ki_science', + type = 'tool', + icon = sprite('science_red_data.png'), + durability = 1, + icon_size = 64, + stack_size = 10000, + subgroup = 'el_item_subgroup_b', + order = 'a-b', + }, + { + name = "el_ki_selection_tool", + type = "selection-tool", + stack_size = 1, + icon_size = 64, + icon = sprite('selection_tool.png'), + flags = {"hidden","mod-openable","only-in-cursor"}, + selection_color = {r=0.79, g=0.4, b=0, a=0.5 }, + selection_mode = {"any-entity"}, + selection_cursor_box_type = "entity", + alt_selection_color = {r=1, g=0, b=0, a=0.5 }, + alt_selection_cursor_box_type = "entity", + alt_selection_mode = {"any-entity"}, + entity_filters = {"el_ki_beacon_entity","fi_ki_beacon_entity","fu_ki_beacon_entity"}, + alt_entity_filters = {"el_ki_beacon_entity","fi_ki_beacon_entity","fu_ki_beacon_entity"} + } +}) \ No newline at end of file diff --git a/prototypes/electronic/el_ki/el_ki_memory.lua b/prototypes/electronic/el_ki/el_ki_memory.lua new file mode 100644 index 0000000..c6e76bc --- /dev/null +++ b/prototypes/electronic/el_ki/el_ki_memory.lua @@ -0,0 +1,108 @@ +--local functions +local function config(name) + return settings.startup['el_ki_memory_'..name].value +end + +local function sprite(name) + return '__248k__/ressources/electronic/el_ki/el_ki_memory/el_ki_memory_'..name +end + +--item +data:extend({ + { + name = 'el_ki_memory_item', + type = 'item', + icon = sprite('item.png'), + icon_size = 64, + place_result = 'el_ki_memory_entity', + stack_size = 20, + subgroup = 'el_item_subgroup_f', + order = 'a-b', + }, + +}) + +--entity +data:extend({ + --prototype + { + name = 'el_ki_memory_entity', + type = 'assembling-machine', + icon = sprite('entity_icon.png'), + icon_size = 64, + flags = {"player-creation","placeable-neutral"}, + max_health = 300, + corpse = 'big-remnants', + collision_box = {{-1.4,-1.4},{1.4,1.4}}, + selection_box = {{-1.5,-1.5},{1.5,1.5}}, + map_color = {r=0, g=0, b=1, a=1}, + minable = { + mining_time = 1, + result = 'el_ki_memory_item', + }, + crafting_categories = {'el_ki_memory_category'}, + crafting_speed = 1, + ingredient_count = 2, + --fixed_recipe = 'el_ki_memory_fluid_recipe', + energy_source = { + type = 'electric', + usage_priority = 'secondary-input', + input_flow_limit = '5000kW', + }, + energy_usage = '4000kW', + fluid_boxes = { + { + filter = 'el_ki_memory_fluid', + base_area = 1, + height = 2, + base_level = 1, + pipe_covers = pipecoverspictures(), + pipe_connections = + { + {type = "output", position = {0, 2}}, + }, + production_type = "output" + }, + }, + + --animation + animation = { + north = { + filename = sprite('entity_animation.png'), + size = {480,484}, + scale = 0.22, + line_length = 8, + frame_count = 4, + animation_speed = 0.5, + }, + east = { + filename = sprite('entity_animation.png'), + size = {480,484}, + scale = 0.22, + line_length = 8, + frame_count = 4, + animation_speed = 0.5, + }, + south = { + filename = sprite('entity_animation.png'), + size = {480,484}, + scale = 0.22, + line_length = 8, + frame_count = 4, + animation_speed = 0.5, + }, + west = { + filename = sprite('entity_animation.png'), + size = {480,484}, + scale = 0.22, + line_length = 8, + frame_count = 4, + animation_speed = 0.5, + }, + }, + working_sound = { + sound = { filename = '__base__/sound/accumulator-idle.ogg'}, + apparent_volume = 1.5, + }, + }, +}) \ No newline at end of file diff --git a/prototypes/electronic/el_ki/fi_ki_circuit.lua b/prototypes/electronic/el_ki/fi_ki_circuit.lua new file mode 100644 index 0000000..1e2c7b5 --- /dev/null +++ b/prototypes/electronic/el_ki/fi_ki_circuit.lua @@ -0,0 +1,108 @@ +--local functions +local function config(name) + return settings.startup['fi_ki_circuit_'..name].value +end + +local function sprite(name) + return '__248k__/ressources/electronic/el_ki/fi_ki_circuit/fi_ki_circuit_'..name +end + +--item +data:extend({ + { + name = 'fi_ki_circuit_item', + type = 'item', + icon = sprite('item.png'), + icon_size = 64, + place_result = 'fi_ki_circuit_entity', + stack_size = 20, + subgroup = 'fi_item_subgroup_k', + order = 'a-a', + }, + +}) + +--entity +data:extend({ + --prototype + { + name = 'fi_ki_circuit_entity', + type = 'assembling-machine', + icon = sprite('entity_icon.png'), + icon_size = 64, + flags = {"player-creation","placeable-neutral"}, + max_health = 300, + corpse = 'big-remnants', + collision_box = {{-1.4,-1.4},{1.4,1.4}}, + selection_box = {{-1.5,-1.5},{1.5,1.5}}, + map_color = {r=0, g=0, b=1, a=1}, + minable = { + mining_time = 1, + result = 'fi_ki_circuit_item', + }, + crafting_categories = {'fi_ki_circuit_category'}, + crafting_speed = 1, + ingredient_count = 3, + --fixed_recipe = 'fi_ki_circuit_fluid_recipe', + energy_source = { + type = 'electric', + usage_priority = 'secondary-input', + input_flow_limit = '50000kW', + }, + energy_usage = '40000kW', + fluid_boxes = { + { + filter = 'fi_ki_circuit_fluid', + base_area = 1, + height = 2, + base_level = 1, + pipe_covers = pipecoverspictures(), + pipe_connections = + { + {type = "output", position = {0, 2}}, + }, + production_type = "output" + }, + }, + + --animation + animation = { + north = { + filename = sprite('entity_animation.png'), + size = {480,484}, + scale = 0.22, + line_length = 5, + frame_count = 4, + animation_speed = 0.5, + }, + east = { + filename = sprite('entity_animation.png'), + size = {480,484}, + scale = 0.22, + line_length = 5, + frame_count = 4, + animation_speed = 0.5, + }, + south = { + filename = sprite('entity_animation.png'), + size = {480,484}, + scale = 0.22, + line_length = 5, + frame_count = 4, + animation_speed = 0.5, + }, + west = { + filename = sprite('entity_animation.png'), + size = {480,484}, + scale = 0.22, + line_length = 5, + frame_count = 4, + animation_speed = 0.5, + }, + }, + working_sound = { + sound = { filename = '__base__/sound/accumulator-idle.ogg'}, + apparent_volume = 1.5, + }, + }, +}) \ No newline at end of file diff --git a/prototypes/electronic/el_ki/fu_ki_circuit.lua b/prototypes/electronic/el_ki/fu_ki_circuit.lua new file mode 100644 index 0000000..49de63a --- /dev/null +++ b/prototypes/electronic/el_ki/fu_ki_circuit.lua @@ -0,0 +1,108 @@ +--local functions +local function config(name) + return settings.startup['fu_ki_circuit_'..name].value +end + +local function sprite(name) + return '__248k__/ressources/electronic/el_ki/fu_ki_circuit/fu_ki_circuit_'..name +end + +--item +data:extend({ + { + name = 'fu_ki_circuit_item', + type = 'item', + icon = sprite('item.png'), + icon_size = 64, + place_result = 'fu_ki_circuit_entity', + stack_size = 20, + subgroup = 'fu_item_subgroup_k', + order = 'a-a', + }, + +}) + +--entity +data:extend({ + --prototype + { + name = 'fu_ki_circuit_entity', + type = 'assembling-machine', + icon = sprite('entity_icon.png'), + icon_size = 64, + flags = {"player-creation","placeable-neutral"}, + max_health = 300, + corpse = 'big-remnants', + collision_box = {{-1.4,-1.4},{1.4,1.4}}, + selection_box = {{-1.5,-1.5},{1.5,1.5}}, + map_color = {r=0, g=0, b=1, a=1}, + minable = { + mining_time = 1, + result = 'fu_ki_circuit_item', + }, + crafting_categories = {'fu_ki_circuit_category'}, + crafting_speed = 1, + ingredient_count = 3, + --fixed_recipe = 'fu_ki_circuit_fluid_recipe', + energy_source = { + type = 'electric', + usage_priority = 'secondary-input', + input_flow_limit = '150000kW', + }, + energy_usage = '80000kW', + fluid_boxes = { + { + filter = 'fu_ki_circuit_fluid', + base_area = 1, + height = 2, + base_level = 1, + pipe_covers = pipecoverspictures(), + pipe_connections = + { + {type = "output", position = {0, 2}}, + }, + production_type = "output" + }, + }, + + --animation + animation = { + north = { + filename = sprite('entity_animation.png'), + size = {480,484}, + scale = 0.22, + line_length = 5, + frame_count = 4, + animation_speed = 0.5, + }, + east = { + filename = sprite('entity_animation.png'), + size = {480,484}, + scale = 0.22, + line_length = 5, + frame_count = 4, + animation_speed = 0.5, + }, + south = { + filename = sprite('entity_animation.png'), + size = {480,484}, + scale = 0.22, + line_length = 5, + frame_count = 4, + animation_speed = 0.5, + }, + west = { + filename = sprite('entity_animation.png'), + size = {480,484}, + scale = 0.22, + line_length = 5, + frame_count = 4, + animation_speed = 0.5, + }, + }, + working_sound = { + sound = { filename = '__base__/sound/accumulator-idle.ogg'}, + apparent_volume = 1.5, + }, + }, +}) \ No newline at end of file diff --git a/prototypes/electronic/el_lithium.lua b/prototypes/electronic/el_lithium.lua new file mode 100644 index 0000000..37765c3 --- /dev/null +++ b/prototypes/electronic/el_lithium.lua @@ -0,0 +1,47 @@ +--local functions +local function config(name) + return settings.startup['el_lithium_'..name].value +end + +local function sprite(name) + return '__248k__/ressources/electronic/el_lithium/el_lithium_'..name +end +--ore +data:extend({ + { + name = 'el_lithium_ore_item', + type = 'item', + icon = sprite('ore_item.png'), + icon_size = 64, + stack_size = 100, + subgroup = 'el_item_subgroup_a', + order = 'a-b', + }, + +}) +--item +data:extend({ + { + name = 'el_lithium_item', + type = 'item', + icon = sprite('item.png'), + icon_size = 64, + stack_size = 100, + subgroup = 'el_item_subgroup_a', + order = 'b-b', + }, + +}) +--battery +data:extend({ + { + name = 'el_lithium_battery', + type = 'item', + icon = sprite('battery.png'), + icon_size = 64, + stack_size = 100, + subgroup = 'el_item_subgroup_b', + order = 'a-a', + }, + +}) \ No newline at end of file diff --git a/prototypes/electronic/el_pressurizer.lua b/prototypes/electronic/el_pressurizer.lua new file mode 100644 index 0000000..a0ee52e --- /dev/null +++ b/prototypes/electronic/el_pressurizer.lua @@ -0,0 +1,166 @@ +--local functions +local function config(name) + return settings.startup['el_pressurizer_'..name].value +end + +local function sprite(name) + return '__248k__/ressources/electronic/el_pressurizer/el_pressurizer_'..name +end + +--item +data:extend({ + { + name = 'el_pressurizer_item', + type = 'item', + icon = sprite('item.png'), + icon_size = 64, + place_result = 'el_pressurizer_entity', + stack_size = 20, + subgroup = 'el_item_subgroup_c', + order = 'a-b', + }, + +}) + +--entity +data:extend({ + --prototype + { + name = 'el_pressurizer_entity', + type = 'assembling-machine', + icon = sprite('entity_icon.png'), + icon_size = 64, + flags = {"player-creation","placeable-neutral"}, + max_health = 300, + corpse = 'big-remnants', + collision_box = {{-1.4,-1.4},{1.4,1.4}}, + selection_box = {{-1.5,-1.5},{1.5,1.5}}, + map_color = {r=0, g=0, b=1, a=1}, + minable = { + mining_time = 1, + result = 'el_pressurizer_item', + }, + crafting_categories = {'el_special_fluid'}, + crafting_speed = 1, + ingredient_count = 2, + --fixed_recipe = 'el_water_pressure_recipe', + energy_source = { + type = 'electric', + usage_priority = 'secondary-input', + input_flow_limit = '60kW', + }, + energy_usage = '40kW', + fluid_boxes = { + { + filter = 'water', + base_area = 1, + height = 2, + base_level = -1, + pipe_covers = pipecoverspictures(), + pipe_connections = + { + {type = "input", position = {0, -2}}, + }, + production_type = "input" + }, + { + filter = 'steam', + base_area = 1, + height = 2, + base_level = -1, + pipe_covers = pipecoverspictures(), + pipe_connections = + { + {type = "input", position = {-2, 0}} + }, + production_type = "input" + }, + { + filter = 'el_pressurized_water', + base_area = 1, + height = 2, + base_level = 1, + pipe_covers = pipecoverspictures(), + pipe_connections = + { + {type = "output", position = {2, 0}}, + --{type = "output", position = {2, -2.5}} + }, + production_type = "output" + }, + { + filter = 'water', + base_area = 1, + height = 2, + base_level = 1, + pipe_covers = pipecoverspictures(), + pipe_connections = + { + {type = "output", position = {0, 2}}, + }, + production_type = "output" + }, + }, + --animation + animation = { + north = { + filename = sprite('entity_animation.png'), + size = {480,448}, + scale = 0.22, + line_length = 4, + frame_count = 4, + animation_speed = 0.5, + }, + east = { + filename = sprite('entity_animation.png'), + size = {480,448}, + scale = 0.22, + line_length = 4, + frame_count = 4, + animation_speed = 0.5, + }, + south = { + filename = sprite('entity_animation.png'), + size = {480,448}, + scale = 0.22, + line_length = 4, + frame_count = 4, + animation_speed = 0.5, + }, + west = { + filename = sprite('entity_animation.png'), + size = {480,448}, + scale = 0.22, + line_length = 4, + frame_count = 4, + animation_speed = 0.5, + }, + }, + working_sound = + { + sound = {filename = "__base__/sound/chemical-plant-3.ogg" }, + apparent_volume = 0.3, + }, + }, +}) + +--{ +-- production_type = "input", + --pipe_picture = assembler2pipepictures(), + --pipe_covers = pipecoverspictures(), +-- base_area = 10, +-- base_level = -1, +-- pipe_connections = { +-- { type="input", position = {-2, -2,5} }, +-- { type="input", position = {2, -2.5} }, +-- }, +-- }, +-- { +-- production_type = "output", + --pipe_picture = assembler2pipepictures(), + --pipe_covers = pipecoverspictures(), +-- base_area = 10, +-- base_level = 1, +-- pipe_connections = {{ type="output", position = {2, 2.5} }}, +-- }, +-- off_when_no_fluid_recipe = true \ No newline at end of file diff --git a/prototypes/electronic/el_solar.lua b/prototypes/electronic/el_solar.lua new file mode 100644 index 0000000..ad635dc --- /dev/null +++ b/prototypes/electronic/el_solar.lua @@ -0,0 +1,60 @@ +--local functions +local function config(name) + return settings.startup['el_solar_'..name].value +end + +local function sprite(name) + return '__248k__/ressources/electronic/el_solar/el_solar_'..name +end + +--item +data:extend({ + { + name = 'el_solar_item', + type = 'item', + icon = sprite('item.png'), + icon_size = 64, + place_result = 'el_solar_entity', + stack_size = 20, + subgroup = 'el_item_subgroup_c', + order = 'a-c', + }, + +}) + +--entity +data:extend({ + --prototype + { + name = 'el_solar_entity', + type = 'solar-panel', + icon = sprite('entity_icon.png'), + icon_size = 64, + flags = {"player-creation","placeable-neutral"}, + --minable + minable = { + mining_time = 1, + result = 'el_solar_item', + }, + max_health = 150, + corpse = 'small-remnants', + collision_box = {{-1.4,-1.4},{1.4,1.4}}, + selection_box = {{-1.5,-1.5},{1.5,1.5}}, + --energy + energy_source = { + type = 'electric', + usage_priority = 'solar', + input_flow_limit = '0W', + output_flow_limit = tostring(config('power_output'))..'W', + }, + production = tostring(config('power_output'))..'W', + --picture + picture = { + filename = sprite('entity_picture_1.png'), + width = 386, + height = 448, + scale = 0.25, + }, + map_color = {r=1.7,g=1.7,b=1.7}, + }, +}) diff --git a/prototypes/electronic/el_tank.lua b/prototypes/electronic/el_tank.lua new file mode 100644 index 0000000..1e00b58 --- /dev/null +++ b/prototypes/electronic/el_tank.lua @@ -0,0 +1,104 @@ +--local functions +local function config(name) + return settings.startup['el_tank_'..name].value +end + +local function sprite(name) + return '__248k__/ressources/electronic/el_tank/el_tank_'..name +end + +--item +data:extend({ + { + name = 'el_tank_item', + type = 'item', + icon = sprite('item.png'), + icon_size = 64, + place_result = 'el_tank_entity', + stack_size = 20, + subgroup = 'el_item_subgroup_c', + order = 'a-c', + }, + +}) + +--entity +data:extend({ + --prototype + { + name = 'el_tank_entity', + type = 'storage-tank', + icon = sprite('item.png'), + icon_size = 64, + flags = {"player-creation","placeable-neutral"}, + --minable + minable = { + mining_time = 1, + result = 'el_tank_item', + }, + max_health = 300, + corpse = 'small-remnants', + collision_box = {{-3.2,-3.2},{3.2,3.2}}, + selection_box = {{-3.5,-3.5},{3.5,3.5}}, + pictures = { + picture = { + filename = sprite('entity_picture.png'), + width = 512, + height = 512, + scale = 1.11/2, + shift = {0,-0.96}, + }, + window_background = { + filename = sprite('blank.png'), + width = 64, + height = 64, + scale = 0.5, + }, + fluid_background = { + filename = sprite('blank.png'), + width = 64, + height = 64, + scale = 0.5, + }, + flow_sprite = { + filename = sprite('blank.png'), + width = 64, + height = 64, + scale = 0.5, + }, + gas_flow = { + filename = sprite('blank.png'), + width = 64, + height = 64, + scale = 0.5, + line_length = 1, + frame_count = 1, + animation_speed = 1, + } + }, + flow_length_in_ticks = 1, + fluid_box = { + base_area = 5000, + height = 1, + base_level = 0, + pipe_covers = pipecoverspictures(), + pipe_connections = + { + {type = "input-output", position = {-3.8, 1}}, + {type = "input-output", position = {-3.8, -1}}, + + {type = "input-output", position = {3.8, 1}}, + {type = "input-output", position = {3.8, -1}}, + + {type = "input-output", position = {1, 3.8}}, + {type = "input-output", position = {1, -3.8}}, + + {type = "input-output", position = {-1, 3.8}}, + {type = "input-output", position = {-1, -3.8}} + }, + production_type = "input-output" + }, + window_bounding_box = {{0,0},{1,1}}, + map_color = {r=1.7,g=1.7,b=1.7}, + }, +}) diff --git a/prototypes/electronic/el_train_equipment.lua b/prototypes/electronic/el_train_equipment.lua new file mode 100644 index 0000000..5100bef --- /dev/null +++ b/prototypes/electronic/el_train_equipment.lua @@ -0,0 +1,85 @@ +--local functions +local function config(name) + return settings.startup['el_train_equipment_'..name].value +end + +local function sprite(name) + return '__248k__/ressources/electronic/el_train_equipment/el_train_equipment_'..name +end + +--item +data:extend({ + { + name = 'el_train_equipment_generator_item', + type = 'item', + icon = sprite('generator_item.png'), + icon_size = 64, + stack_size = 20, + subgroup = 'el_item_subgroup_d', + placed_as_equipment_result = 'el_train_equipment_generator_item', + order = 'c-a', + }, + { + name = 'el_train_equipment_accelerator_item', + type = 'item', + icon = sprite('accelerator_item.png'), + icon_size = 64, + stack_size = 20, + subgroup = 'el_item_subgroup_d', + placed_as_equipment_result = 'el_train_equipment_accelerator_item', + order = 'c-b', + }, + +}) + +--equipment +data:extend({ + { + name = 'el_train_equipment_generator_item', + type = 'generator-equipment', + power = '600kW', + categories = {'el_train_equipment'}, + sprite = { + filename = sprite('generator_entity.png'), + width = 256, + height = 256, + priority = 'medium', + }, + shape = { + width = 3, + height = 3, + type = "full", + }, + energy_source = { + type = 'electric', + usage_priority = 'primary-output', + }, + + }, + { + name = 'el_train_equipment_accelerator_item', + type = 'movement-bonus-equipment', + categories = {'el_train_equipment'}, + energy_consumption = "600kW", + movement_bonus = 0.35, + sprite = { + filename = sprite('accelerator_entity.png'), + width = 256, + height = 256, + priority = 'medium', + }, + shape = { + width = 3, + height = 3, + type = "full", + }, + energy_source = { + type = 'electric', + usage_priority = 'primary-input', + buffer_capacity = '8MJ', + drain = '40kW', + }, + + }, + +}) \ No newline at end of file diff --git a/prototypes/electronic/el_train_fuel.lua b/prototypes/electronic/el_train_fuel.lua new file mode 100644 index 0000000..1bf385f --- /dev/null +++ b/prototypes/electronic/el_train_fuel.lua @@ -0,0 +1,41 @@ +--local functions +local function config(name) + return settings.startup['el_train_fuel_'..name].value +end + +local function sprite(name) + return '__248k__/ressources/electronic/el_train_fuel/el_train_fuel_'..name +end + +--item +data:extend({ + { + name = 'el_train_fuel_diesel_item', + type = 'item', + icon = sprite('diesel_item.png'), + icon_size = 64, + stack_size = 100, + subgroup = 'el_item_subgroup_d', + order = 'b-a', + fuel_acceleration_multiplier = 1, + fuel_category = 'el_train_fuel', + fuel_emissions_multiplier = 1, + fuel_top_speed_multiplier = 1, + fuel_value = '100MJ', + }, + { + name = 'el_train_fuel_diesel_energized_item', + type = 'item', + icon = sprite('diesel_energized_item.png'), + icon_size = 64, + stack_size = 100, + subgroup = 'el_item_subgroup_d', + order = 'b-b', + fuel_acceleration_multiplier = 0.55, + fuel_top_speed_multiplier = 1.3, + fuel_category = 'el_train_fuel', + fuel_emissions_multiplier = 1, + fuel_value = '135MJ', + }, + +}) \ No newline at end of file diff --git a/prototypes/electronic/el_water_generator.lua b/prototypes/electronic/el_water_generator.lua new file mode 100644 index 0000000..1d2b07d --- /dev/null +++ b/prototypes/electronic/el_water_generator.lua @@ -0,0 +1,95 @@ +--local functions +local function config(name) + return settings.startup['el_water_generator_'..name].value +end + +local function sprite(name) + return '__248k__/ressources/electronic/el_water_generator/el_water_generator_'..name +end + +--item +data:extend({ + { + name = 'el_water_generator_item', + type = 'item', + icon = sprite('item.png'), + icon_size = 64, + place_result = 'el_water_generator_entity', + stack_size = 20, + subgroup = 'el_item_subgroup_c', + order = 'a-d', + }, + +}) + +--entity +data:extend({ + --prototype + { + name = 'el_water_generator_entity', + type = 'generator', + icon = sprite('entity_icon.png'), + icon_size = 64, + flags = {"player-creation","placeable-neutral"}, + max_health = 300, + corpse = 'big-remnants', + collision_box = {{-1.3, -3.3}, {1.3, 3.3}}, + selection_box = {{-1.5, -3.5}, {1.5, 3.5}}, + map_color = {r=0, g=0, b=1, a=1}, + minable = { + mining_time = 1, + result = 'el_water_generator_item', + }, + --energy + maximum_temperature = 500, + fluid_usage_per_tick = 1, + max_power_output = tostring(config('power_output'))..'W', + effectivity = 0.9, + fluid_box = { + base_area = 1, + height = 2, + base_level = -1, + filter = 'el_pressurized_water', + minimum_temperature = 0, + maximum_temperature = 500, + production_type = 'input-output', + pipe_connections = { + {type = "input-output", position = {2, 0}}, + {type = "input-output", position = {-2, 0}}, + }, + }, + fluid_input = { + name = 'el_pressurized_water', + amout = 0.0, + minimum_temperature = 0, + }, + energy_source = { + type = 'electric', + usage_priority = 'primary-output', + input_flow_limit = '0W', + output_flow_limit = tostring(config('power_output'))..'W', + }, + --animation + vertical_animation = { + filename = sprite('entity_animation_vertikal_1.png'), + size = {480,896}, + scale = 0.22, + line_length = 4, + frame_count = 4, + animation_speed = 0.5, + }, + horizontal_animation = { + filename = sprite('entity_animation_horizontal_1.png'), + size = {896,480}, + scale = 0.22, + line_length = 4, + frame_count = 4, + animation_speed = 0.5, + }, + working_sound = { + sound = { filename ='__base__/sound/pipe.ogg'}, + apparent_volume = 0.7, + }, + }, +}) + diff --git a/prototypes/fi_recipes.lua b/prototypes/fi_recipes.lua new file mode 100644 index 0000000..c0f55a3 --- /dev/null +++ b/prototypes/fi_recipes.lua @@ -0,0 +1,640 @@ +--local functions +local function config(name) + return settings.startup['el_solar_'..name].value +end + +local function sprite(name) + return '__248k__/ressources/'..name +end + +data:extend({ + --crafter + { + name = 'fi_crafter_recipe', + type = 'recipe', + enabled = 'false', + ingredients = { + {'concrete',30}, + {'fi_compound_material_item',10}, + {'iron-gear-wheel',20}, + {'electronic-circuit',15}, + {'el_energy_crystal_item',4}, + }, + result = 'fi_crafter_item', + result_count = 1, + energy_required = 4, + }, + --crusher + { + name = 'fi_crusher_recipe', + type = 'recipe', + enabled = 'false', + ingredients = { + {'concrete',60}, + {'fi_compound_material_item',20}, + {'iron-gear-wheel',40}, + {'electric-engine-unit',15}, + {'el_energy_crystal_item',2}, + }, + result = 'fi_crusher_item', + result_count = 1, + energy_required = 4, + }, + --miner + { + name = 'fi_miner_recipe', + type = 'recipe', + enabled = 'false', + ingredients = { + {'concrete',100}, + {'fi_compound_material_item',60}, + {'iron-gear-wheel',40}, + {'electric-mining-drill',8}, + {'electric-engine-unit',10}, + }, + result = 'fi_miner_item', + result_count = 1, + energy_required = 4, + }, + --fuels + { + name = 'fi_basic_fuel_recipe', + type = 'recipe', + enabled = 'false', + ingredients = { + {'uranium-235',1}, + {'uranium-238',19}, + {'el_aluminum_item',10}, + }, + result = 'fi_basic_fuel_item', + result_count = 8, + energy_required = 20, + }, + { + name = 'fi_basic_thorium_fuel_recipe', + type = 'recipe', + enabled = 'false', + ingredients = { + {'fi_thorium232_item',10}, + {'uranium-238',10}, + {'el_aluminum_item',10}, + }, + result = 'fi_basic_thorium_fuel_item', + result_count = 8, + energy_required = 20, + }, + { + name = 'fi_advanced_fuel_recipe', + type = 'recipe', + enabled = 'false', + ingredients = { + {'fi_plutonium239_item',1}, + {'uranium-238',19}, + {'el_aluminum_item',10}, + }, + result = 'fi_advanced_fuel_item', + result_count = 2, + energy_required = 20, + }, + { + name = 'fi_advanced_thorium_fuel_recipe', + type = 'recipe', + enabled = 'false', + ingredients = { + {'fi_uranium233_item',4}, + {'uranium-238',16}, + {'el_aluminum_item',10}, + }, + result = 'fi_advanced_thorium_fuel_item', + result_count = 2, + energy_required = 20, + }, + { + name = 'fi_pure_fuel_recipe', + type = 'recipe', + enabled = 'false', + ingredients = { + {'uranium-235',1}, + {'fi_plutonium239_item',1}, + {'el_aluminum_item',10}, + }, + result = 'fi_pure_fuel_item', + result_count = 1, + energy_required = 20, + }, + --reactor + { + name = 'fi_solid_reactor_recipe', + type = 'recipe', + enabled = 'false', + ingredients = { + {'steel-plate',450}, + {'concrete',800}, + {'fi_compound_material_item',600}, + {'copper-plate',200}, + {'el_energy_crystal_item',40}, + {'advanced-circuit',700}, + }, + result = 'fi_solid_reactor_item', + result_count = 1, + energy_required = 20, + }, + --material + { + name = 'fi_compound_material_recipe', + type = 'recipe', + enabled = 'false', + ingredients = { + {'el_aluminum_item',15}, + {'steel-plate',10}, + {'iron-plate',20}, + }, + result = 'fi_compound_material_item', + result_count = 2, + energy_required = 4, + }, + { + name = 'fi_low-density-structure_recipe', + type = 'recipe', + enabled = 'false', + category = 'fi_crafting_category', + subgroup = 'fi_item_subgroup_b', + ingredients = { + {'el_aluminum_item',8}, + {'steel-plate',4}, + {'copper-plate',30}, + }, + result = 'low-density-structure', + result_count = 4, + energy_required = 20, + order = 'b-b', + }, + + --uran etc + { + name = 'fi_plutonium239_recipe', + type = 'recipe', + enabled = 'false', + category = 'centrifuging', + ingredients = { + {'fi_used_basic_fuel_item',6}, + }, + result = 'fi_plutonium239_item', + result_count = 1, + energy_required = 20, + }, + { + name = 'fi_thorium232_recipe', + type = 'recipe', + enabled = 'false', + category = 'crafting-with-fluid', + main_product = 'fi_thorium232_item', + ingredients = { + {'stone',80}, + {'el_energy_crystal_item',2}, + {type="fluid", name="sulfuric-acid", amount=140}, + }, + results = { + {'fi_thorium232_item',2}, + {'uranium-238',3} + }, + result_count = 1, + energy_required = 40, + }, + { + name = 'fi_uranium233_recipe', + type = 'recipe', + enabled = 'false', + category = 'centrifuging', + ingredients = { + {'fi_used_basic_thorium_fuel_item',6}, + }, + result = 'fi_uranium233_item', + result_count = 1, + energy_required = 20, + }, + { + name = 'fi_atomic_bomb_recipe', + type = 'recipe', + enabled = 'false', + ingredients = { + {'explosive-rocket',10}, + {'fi_plutonium239_item',10}, + {'rocket-control-unit',10} + }, + result = 'atomic-bomb', + result_count = 1, + energy_required = 20, + }, + --wideraufbereitung + { + name = 'fi_advanced_fuel_recycle_recipe', + type = 'recipe', + enabled = 'false', + category = 'centrifuging', + ingredients = { + {'fi_used_advanced_fuel_item',4}, + }, + result = 'uranium-238', + result_count = 3, + energy_required = 20, + subgroup = 'fi_item_subgroup_a', + order = 'a-d', + always_show_made_in = true, + }, + { + name = 'fi_advanced_thorium_fuel_recycle_recipe', + type = 'recipe', + enabled = 'false', + category = 'centrifuging', + ingredients = { + {'fi_used_advanced_thorium_fuel_item',4}, + }, + result = 'uranium-238', + result_count = 3, + energy_required = 20, + subgroup = 'fi_item_subgroup_a', + order = 'a-e', + always_show_made_in = true, + }, + { + name = 'fi_pure_fuel_recycle_recipe', + type = 'recipe', + enabled = 'false', + category = 'centrifuging', + ingredients = { + {'fi_used_pure_fuel_item',4}, + }, + result = 'uranium-238', + result_count = 3, + energy_required = 20, + subgroup = 'fi_item_subgroup_a', + order = 'a-f', + always_show_made_in = true, + }, + --equip + { + name = 'fi_equipment_player_reactor_recipe', + type = 'recipe', + enabled = 'false', + ingredients = { + {'fi_solid_reactor_item',1}, + {'fi_pure_fuel_item',1}, + }, + result = 'fi_equipment_player_reactor_item', + result_count = 2, + energy_required = 20, + }, + { + name = 'fi_equipment_player_shield_recipe', + type = 'recipe', + enabled = 'false', + ingredients = { + {'fi_energy_crystal_item',100}, + {'low-density-structure',20}, + {'processing-unit',40}, + {'energy-shield-mk2-equipment',5} + }, + result = 'fi_equipment_player_shield_item', + result_count = 1, + energy_required = 20, + }, + { + name = 'fi_train_equipment_generator_recipe', + type = 'recipe', + enabled = 'false', + ingredients = { + {'fi_solid_reactor_item',1}, + {'low-density-structure',20}, + {'iron-gear-wheel',40}, + {'fi_pure_fuel_item',1}, + }, + result = 'fi_train_equipment_generator_item', + result_count = 2, + energy_required = 20, + }, + --crystals + { + name = 'fi_energy_crystal_recipe', + type = 'recipe', + enabled = 'false', + category = 'smelting', + ingredients = { + {'fi_base_crystal_item',2}, + }, + result = 'fi_energy_crystal_item', + result_count = 1, + energy_required = 4, + always_show_made_in = true, + }, + { + name = 'fi_catalyst_crystal_recipe', + type = 'recipe', + enabled = 'false', + category = 'centrifuging', + ingredients = { + {'el_train_fuel_diesel_energized_item',1}, + }, + result = 'fi_catalyst_crystal_item', + result_count = 2, + energy_required = 2, + always_show_made_in = true, + }, + { + name = 'fi_base_crystal_recipe', + type = 'recipe', + enabled = 'false', + category = 'crafting-with-fluid', + ingredients = { + {type="fluid", name="fi_crystal_fluid", amount=100}, + {type="item", name="fi_catalyst_crystal_item", amount=1}, + }, + result = 'fi_base_crystal_item', + result_count = 2, + energy_required = 6, + }, + { + name = 'fi_crushed_crystal_recipe', + type = 'recipe', + enabled = 'false', + category = 'fi_crushing', + ingredients = { + {'el_energy_crystal_item',4}, + }, + result = 'fi_crushed_crystal_item', + result_count = 1, + energy_required = 2, + always_show_made_in = true, + }, + { + name = 'fi_crystal_fluid_recipe', + type = 'recipe', + enabled = 'false', + category = 'chemistry', + main_product = 'fi_crystal_fluid', + ingredients = { + {type="item", name="fi_crushed_crystal_item", amount=2}, + {type="item", name="fi_crushed_lithium_item", amount=1}, + }, + results = { + {type="fluid", name="fi_crystal_fluid", amount=100}, + }, + energy_required = 4, + always_show_made_in = true, + }, + { + name = 'fi_fuel_train_crystal_recipe', + type = 'recipe', + enabled = 'false', + ingredients = { + {'fi_energy_crystal_item',6}, + {'el_lithium_item',6}, + {'el_train_fuel_diesel_item',6}, + }, + result = 'fi_fuel_train_crystal_item', + result_count = 4, + energy_required = 30, + }, + --crushed + { + name = 'fi_crushed_lithium_recipe', + type = 'recipe', + enabled = 'false', + category = 'fi_crushing', + ingredients = { + {'el_lithium_item',4}, + }, + result = 'fi_crushed_lithium_item', + result_count = 1, + energy_required = 2, + always_show_made_in = true, + }, + { + name = 'fi_crushed_iron_recipe', + type = 'recipe', + enabled = 'false', + category = 'fi_crushing', + ingredients = { + {'iron-plate',4}, + }, + result = 'fi_crushed_iron_item', + result_count = 1, + energy_required = 2, + always_show_made_in = true, + }, + { + name = 'fi_crushed_copper_recipe', + type = 'recipe', + enabled = 'false', + category = 'fi_crushing', + ingredients = { + {'copper-plate',4}, + }, + result = 'fi_crushed_copper_item', + result_count = 1, + energy_required = 2, + always_show_made_in = true, + }, + { + name = 'fi_crushed_aluminum_recipe', + type = 'recipe', + enabled = 'false', + category = 'fi_crushing', + ingredients = { + {'el_aluminum_item',4}, + }, + result = 'fi_crushed_aluminum_item', + result_count = 1, + energy_required = 2, + always_show_made_in = true, + }, + { + name = 'fi_crushed_coal_recipe', + type = 'recipe', + enabled = 'false', + category = 'fi_crushing', + ingredients = { + {'coal',4}, + }, + result = 'fi_crushed_coal_item', + result_count = 1, + energy_required = 2, + always_show_made_in = true, + }, + --matierals + { + name = 'fi_materials_industrial_steel_blend_recipe', + type = 'recipe', + enabled = 'false', + ingredients = { + {'fi_crushed_coal_item',3}, + {'fi_crushed_iron_item',4}, + {'fi_crushed_aluminum_item',1}, + }, + result = 'fi_industrial_steel_blend_item', + result_count = 2, + energy_required = 4, + }, + { + name = 'fi_materials_industrial_steel_recipe', + type = 'recipe', + enabled = 'false', + category = 'smelting', + ingredients = { + {'fi_industrial_steel_blend_item',4}, + }, + result = 'fi_industrial_steel_item', + result_count = 2, + energy_required = 2, + always_show_made_in = true, + }, + { + name = 'fi_materials_steel_recipe', + type = 'recipe', + enabled = 'false', + category = 'smelting', + ingredients = { + {'fi_industrial_steel_blend_item',1}, + }, + result = 'steel-plate', + result_count = 4, + energy_required = 6, + subgroup = 'fi_item_subgroup_b', + order = 'b-a', + always_show_made_in = true, + }, + --robo + { + name = 'fi_robo_port_recipe', + type = 'recipe', + enabled = 'false', + ingredients = { + {'fi_robo_charger_item',1}, + {'fi_industrial_steel_item',80}, + {'fi_energy_crystal_item',25}, + {'fi_compound_material_item',80}, + }, + result = 'fi_robo_port_item', + result_count = 1, + energy_required = 6, + }, + { + name = 'fi_robo_charger_recipe', + type = 'recipe', + enabled = 'false', + ingredients = { + {'roboport',1}, + {'fi_industrial_steel_item',60}, + {'fi_energy_crystal_item',25}, + {'el_energy_crystal_item',25}, + }, + result = 'fi_robo_charger_item', + result_count = 1, + energy_required = 6, + }, + --modules + { + name = 'fi_modules_base_recipe', + type = 'recipe', + enabled = 'false', + ingredients = { + {'low-density-structure',2}, + {'advanced-circuit',6}, + }, + result = 'fi_modules_base_item', + result_count = 1, + energy_required = 6, + }, + { + name = 'fi_modules_core_recipe', + type = 'recipe', + enabled = 'false', + ingredients = { + {'fi_modules_base_item',1}, + {'fi_base_crystal_item',2}, + }, + result = 'fi_modules_core_item', + result_count = 1, + energy_required = 6, + }, + { + name = 'fi_modules_productivity_1_recipe', + type = 'recipe', + enabled = 'false', + ingredients = { + {'fi_modules_core_item',1}, + {'productivity-module',2}, + {'advanced-circuit',6}, + }, + result = 'fi_modules_productivity_1_item', + result_count = 1, + energy_required = 6, + }, + { + name = 'fi_modules_productivity_2_recipe', + type = 'recipe', + enabled = 'false', + ingredients = { + {'fi_modules_productivity_1_item',4}, + {'fi_modules_core_item',1}, + {'productivity-module-2',2}, + {'processing-unit',6}, + }, + result = 'fi_modules_productivity_2_item', + result_count = 1, + energy_required = 6, + }, + { + name = 'fi_modules_productivity_3_recipe', + type = 'recipe', + enabled = 'false', + ingredients = { + {'fi_modules_productivity_2_item',4}, + {'fi_modules_core_item',1}, + {'productivity-module-3',2}, + {'fu_tech_sign_item',40}, + }, + result = 'fi_modules_productivity_3_item', + result_count = 1, + energy_required = 6, + }, + { + name = 'fi_modules_productivity_4_recipe', + type = 'recipe', + enabled = 'false', + ingredients = { + {'fi_modules_productivity_3_item',6}, + {'fi_modules_core_item',1}, + {'gr_materials_stack_up_item',4}, + }, + result = 'fi_modules_productivity_4_item', + result_count = 1, + energy_required = 6, + }, + { + name = 'fi_modules_productivity_5_recipe', + type = 'recipe', + enabled = 'false', + ingredients = { + {'fi_modules_productivity_4_item',6}, + {'fi_modules_core_item',1}, + {'gr_materials_stack_down_item',4}, + }, + result = 'fi_modules_productivity_5_item', + result_count = 1, + energy_required = 6, + }, + { + name = 'fi_modules_productivity_6_recipe', + type = 'recipe', + enabled = 'false', + ingredients = { + {'fi_modules_productivity_5_item',6}, + {'fi_modules_core_item',1}, + {'gr_materials_fusion_cell_item',4}, + }, + result = 'fi_modules_productivity_6_item', + result_count = 1, + energy_required = 6, + }, +}) \ No newline at end of file diff --git a/prototypes/fission/fi_compound_material.lua b/prototypes/fission/fi_compound_material.lua new file mode 100644 index 0000000..8afe2a5 --- /dev/null +++ b/prototypes/fission/fi_compound_material.lua @@ -0,0 +1,22 @@ +--local functions +local function config(name) + return settings.startup['fi_compound_material_'..name].value +end + +local function sprite(name) + return '__248k__/ressources/fission/fi_compound_material/fi_compound_material_'..name +end + +--item +data:extend({ + { + name = 'fi_compound_material_item', + type = 'item', + icon = sprite('item.png'), + icon_size = 64, + stack_size = 100, + subgroup = 'fi_item_subgroup_b', + order = 'a-a', + }, + +}) diff --git a/prototypes/fission/fi_crafter.lua b/prototypes/fission/fi_crafter.lua new file mode 100644 index 0000000..ac42351 --- /dev/null +++ b/prototypes/fission/fi_crafter.lua @@ -0,0 +1,108 @@ +--local functions +local function config(name) + return settings.startup['fi_crafter_'..name].value +end + +local function sprite(name) + return '__248k__/ressources/fission/fi_crafter/fi_crafter_'..name +end + +--item +data:extend({ + { + name = 'fi_crafter_item', + type = 'item', + icon = sprite('item.png'), + icon_size = 64, + place_result = 'fi_crafter_entity', + stack_size = 20, + subgroup = 'fi_item_subgroup_c', + order = 'a-a', + }, + +}) + +--entity +data:extend({ + --prototype + { + name = 'fi_crafter_entity', + type = 'assembling-machine', + icon = sprite('entity_icon.png'), + icon_size = 64, + flags = {"player-creation","placeable-neutral"}, + max_health = 300, + corpse = 'big-remnants', + collision_box = {{-1.4,-1.4},{1.4,1.4}}, + selection_box = {{-1.5,-1.5},{1.5,1.5}}, + map_color = {r=0, g=0, b=1, a=1}, + minable = { + mining_time = 1, + result = 'fi_crafter_item', + }, + crafting_categories = {'advanced-crafting','crafting','smelting','fi_crafting_category'}, + crafting_speed = 3.5, + energy_source = { + type = 'burner', + fuel_inventory_size = 3, + burnt_inventory_size = 3, + effectivity = 0.35, + emissions_per_minute = 20, + fuel_category = 'fi_basic_fuel' + }, + energy_usage = '200kW', + allowed_effects = {"speed", "productivity", "consumption", "pollution"}, + module_specification = { + module_info_icon_shift = { + 0, + 0.8 + }, + module_slots = 2 + }, + --animation + animation = { + north = { + filename = sprite('entity_animation.png'), + size = {480,448}, + scale = 0.2, + line_length = 3, + lines_per_file = 3, + frame_count = 4, + animation_speed = 0.5, + }, + east = { + filename = sprite('entity_animation.png'), + size = {480,448}, + scale = 0.2, + line_length = 3, + lines_per_file = 3, + frame_count = 4, + animation_speed = 0.5, + }, + south = { + filename = sprite('entity_animation.png'), + size = {480,448}, + scale = 0.2, + line_length = 3, + lines_per_file = 3, + frame_count = 4, + animation_speed = 0.5, + }, + west = { + filename = sprite('entity_animation.png'), + size = {480,448}, + scale = 0.2, + line_length = 3, + lines_per_file = 3, + frame_count = 4, + animation_speed = 0.5, + }, + }, + + working_sound = { + sound = { filename = '__base__/sound/nuclear-reactor-1.ogg'}, + idle_sound = { filename = "__base__/sound/idle1.ogg", volume = 0.6 }, + apparent_volume = 0.7, + }, + }, +}) \ No newline at end of file diff --git a/prototypes/fission/fi_crushed.lua b/prototypes/fission/fi_crushed.lua new file mode 100644 index 0000000..95c3274 --- /dev/null +++ b/prototypes/fission/fi_crushed.lua @@ -0,0 +1,57 @@ +--local functions +local function config(name) + return settings.startup['fi_crushed_'..name].value +end + +local function sprite(name) + return '__248k__/ressources/fission/fi_crushed/fi_crushed_'..name +end + +--item +data:extend({ + { + name = 'fi_crushed_lithium_item', + type = 'item', + icon = sprite('lithium_item.png'), + icon_size = 64, + stack_size = 100, + subgroup = 'fi_item_subgroup_a-b', + order = 'a-d', + }, + { + name = 'fi_crushed_iron_item', + type = 'item', + icon = sprite('iron_item.png'), + icon_size = 64, + stack_size = 100, + subgroup = 'fi_item_subgroup_a-b', + order = 'a-a', + }, + { + name = 'fi_crushed_copper_item', + type = 'item', + icon = sprite('copper_item.png'), + icon_size = 64, + stack_size = 100, + subgroup = 'fi_item_subgroup_a-b', + order = 'a-b', + }, + { + name = 'fi_crushed_aluminum_item', + type = 'item', + icon = sprite('aluminum_item.png'), + icon_size = 64, + stack_size = 100, + subgroup = 'fi_item_subgroup_a-b', + order = 'a-c', + }, + { + name = 'fi_crushed_coal_item', + type = 'item', + icon = sprite('coal_item.png'), + icon_size = 64, + stack_size = 100, + subgroup = 'fi_item_subgroup_a-b', + order = 'a-f', + }, +}) \ No newline at end of file diff --git a/prototypes/fission/fi_crusher.lua b/prototypes/fission/fi_crusher.lua new file mode 100644 index 0000000..9ebbd38 --- /dev/null +++ b/prototypes/fission/fi_crusher.lua @@ -0,0 +1,103 @@ +--local functions +local function config(name) + return settings.startup['fi_crusher_'..name].value +end + +local function sprite(name) + return '__248k__/ressources/fission/fi_crusher/fi_crusher_'..name +end + +--item +data:extend({ + { + name = 'fi_crusher_item', + type = 'item', + icon = sprite('item.png'), + icon_size = 64, + place_result = 'fi_crusher_entity', + stack_size = 20, + subgroup = 'fi_item_subgroup_c', + order = 'a-c', + }, + +}) + +--entity +data:extend({ + --prototype + { + name = 'fi_crusher_entity', + type = 'assembling-machine', + icon = sprite('entity_icon.png'), + icon_size = 64, + flags = {"player-creation","placeable-neutral"}, + max_health = 300, + corpse = 'big-remnants', + collision_box = {{-1.4,-1.4},{1.4,1.4}}, + selection_box = {{-1.5,-1.5},{1.5,1.5}}, + map_color = {r=0, g=0, b=1, a=1}, + minable = { + mining_time = 1, + result = 'fi_crusher_item', + }, + crafting_categories = {'fi_crushing'}, + crafting_speed = 1, + energy_source = { + type = 'electric', + usage_priority = 'secondary-input', + --input_flow_limit = '4MW', + }, + energy_usage = '1MW', + allowed_effects = {"speed", "productivity", "consumption", "pollution"}, + module_specification = { + module_info_icon_shift = { + 0, + 0.8 + }, + module_slots = 2 + }, + --animation + animation = { + north = { + filename = sprite('entity_animation.png'), + size = {480,448}, + scale = 0.2, + line_length = 3, + lines_per_file = 3, + frame_count = 4, + animation_speed = 0.5, + }, + east = { + filename = sprite('entity_animation.png'), + size = {480,448}, + scale = 0.2, + line_length = 3, + lines_per_file = 3, + frame_count = 4, + animation_speed = 0.5, + }, + south = { + filename = sprite('entity_animation.png'), + size = {480,448}, + scale = 0.2, + line_length = 3, + lines_per_file = 3, + frame_count = 4, + animation_speed = 0.5, + }, + west = { + filename = sprite('entity_animation.png'), + size = {480,448}, + scale = 0.2, + line_length = 3, + lines_per_file = 3, + frame_count = 4, + animation_speed = 0.5, + }, + }, + working_sound = { + sound = { filename ='__base__/sound/electric-mining-drill.ogg'}, + apparent_volume = 2.7, + }, + }, +}) \ No newline at end of file diff --git a/prototypes/fission/fi_energy_crystal.lua b/prototypes/fission/fi_energy_crystal.lua new file mode 100644 index 0000000..2e3787b --- /dev/null +++ b/prototypes/fission/fi_energy_crystal.lua @@ -0,0 +1,54 @@ +--local functions +local function config(name) + return settings.startup['fi_energy_crystal_'..name].value +end + +local function sprite(name) + return '__248k__/ressources/fission/fi_energy_crystal/fi_energy_crystal_'..name +end + +--item +data:extend({ + { + name = 'fi_energy_crystal_item', + type = 'item', + icon = sprite('item.png'), + icon_size = 64, + stack_size = 500, + subgroup = 'fi_item_subgroup_b', + order = 'a-c', + fuel_glow_color = {r=0.1,g=0.74,b=0.39,a=0.5}, + fuel_category = 'chemical', + fuel_acceleration_multiplier = 1, + fuel_emissions_multiplier = 1, + fuel_top_speed_multiplier = 1, + fuel_value = '300MJ', + }, + { + name = 'fi_crushed_crystal_item', + type = 'item', + icon = sprite('crushed_item.png'), + icon_size = 64, + stack_size = 100, + subgroup = 'fi_item_subgroup_a-b', + order = 'a-e', + }, + { + name = 'fi_catalyst_crystal_item', + type = 'item', + icon = sprite('catalyst_item.png'), + icon_size = 64, + stack_size = 20, + subgroup = 'fi_item_subgroup_f', + order = 'a-b', + }, + { + name = 'fi_base_crystal_item', + type = 'item', + icon = sprite('base_item.png'), + icon_size = 64, + stack_size = 20, + subgroup = 'fi_item_subgroup_f', + order = 'a-c', + }, +}) \ No newline at end of file diff --git a/prototypes/fission/fi_equipment.lua b/prototypes/fission/fi_equipment.lua new file mode 100644 index 0000000..260afec --- /dev/null +++ b/prototypes/fission/fi_equipment.lua @@ -0,0 +1,117 @@ +--local functions +local function config(name) + return settings.startup['fi_equipment_'..name].value +end + +local function sprite(name) + return '__248k__/ressources/fission/fi_equipment/fi_equipment_'..name +end + +--item +data:extend({ + { + name = 'fi_train_equipment_generator_item', + type = 'item', + icon = sprite('generator_item.png'), + icon_size = 64, + stack_size = 20, + subgroup = 'fi_item_subgroup_e', + placed_as_equipment_result = 'fi_train_equipment_generator_item', + order = 'a-a', + }, + { + name = 'fi_equipment_player_reactor_item', + type = 'item', + icon = sprite('player_reactor_item.png'), + icon_size = 64, + stack_size = 20, + subgroup = 'fi_item_subgroup_e', + placed_as_equipment_result = 'fi_equipment_player_reactor_item', + order = 'a-b', + }, + { + name = 'fi_equipment_player_shield_item', + type = 'item', + icon = sprite('player_shield_item.png'), + icon_size = 64, + stack_size = 20, + subgroup = 'fi_item_subgroup_e', + placed_as_equipment_result = 'fi_equipment_player_shield_item', + order = 'a-c', + }, + +}) + +--equipment +data:extend({ + { + name = 'fi_train_equipment_generator_item', + type = 'generator-equipment', + power = '2400kW', + categories = {'fi_train_equipment'}, + sprite = { + filename = sprite('generator_entity.png'), + width = 256, + height = 256, + priority = 'medium', + }, + shape = { + width = 3, + height = 3, + type = "full", + }, + energy_source = { + type = 'electric', + usage_priority = 'primary-output', + }, + + }, + { + name = 'fi_equipment_player_reactor_item', + type = 'generator-equipment', + power = '600kW', + categories = {'armor'}, + sprite = { + filename = sprite('player_reactor_entity.png'), + width = 256, + height = 256, + priority = 'medium', + }, + shape = { + width = 3, + height = 3, + type = "full", + }, + energy_source = { + type = 'electric', + usage_priority = 'primary-output', + }, + + }, + { + name = 'fi_equipment_player_shield_item', + type = 'energy-shield-equipment', + energy_per_shield = '20kJ', + max_shield_value = 400, + categories = {'armor'}, + sprite = { + filename = sprite('player_shield_entity.png'), + width = 256, + height = 256, + priority = 'medium', + }, + shape = { + width = 3, + height = 3, + type = "full", + }, + energy_source = { + type = 'electric', + usage_priority = 'primary-input', + input_flow_limit = "600kW", + buffer_capacity = "300kJ", + }, + + }, + +}) \ No newline at end of file diff --git a/prototypes/fission/fi_fuel.lua b/prototypes/fission/fi_fuel.lua new file mode 100644 index 0000000..c1bee72 --- /dev/null +++ b/prototypes/fission/fi_fuel.lua @@ -0,0 +1,180 @@ +--local functions +local function config(name) + return settings.startup['fi_fuel_'..name].value +end + +local function sprite(name) + return '__248k__/ressources/fission/fi_fuel/fi_fuel_'..name +end + +--item +data:extend({ + { + --u 235 + u 238 + name = 'fi_basic_fuel_item', + type = 'item', + icon = sprite('basic_item.png'), + icon_size = 64, + stack_size = 20, + subgroup = 'fi_item_subgroup_d', + fuel_category = 'fi_basic_fuel', + fuel_value = '10GJ', + fuel_glow_color = {r=0.1,g=0.74,b=0.39,a=0.5}, + order = 'a-a', + burnt_result = 'fi_used_basic_fuel_item', + }, + { + --u 238 + th 232 + name = 'fi_basic_thorium_fuel_item', + type = 'item', + icon = sprite('basic_thorium_item.png'), + icon_size = 64, + stack_size = 20, + subgroup = 'fi_item_subgroup_d', + fuel_category = 'fi_basic_fuel', + fuel_value = '6GJ', + fuel_glow_color = {r=0.1,g=0.74,b=0.39,a=0.5}, + order = 'a-b', + burnt_result = 'fi_used_basic_thorium_fuel_item', + }, + { + --u 238 + pu 239 + name = 'fi_advanced_fuel_item', + type = 'item', + icon = sprite('advanced_item.png'), + icon_size = 64, + stack_size = 20, + subgroup = 'fi_item_subgroup_d', + fuel_category = 'fi_advanced_fuel', + fuel_value = '14GJ', + fuel_glow_color = {r=0.1,g=0.74,b=0.39,a=0.5}, + order = 'b-a', + burnt_result = 'fi_used_advanced_fuel_item', + }, + { + --u 233 + u 238 + name = 'fi_advanced_thorium_fuel_item', + type = 'item', + icon = sprite('advanced_thorium_item.png'), + icon_size = 64, + stack_size = 20, + subgroup = 'fi_item_subgroup_d', + fuel_category = 'fi_advanced_fuel', + fuel_value = '10GJ', + fuel_glow_color = {r=0.1,g=0.74,b=0.39,a=0.5}, + order = 'b-b', + burnt_result = 'fi_used_advanced_thorium_fuel_item', + }, + { + --u 235 + pu 239 + name = 'fi_pure_fuel_item', + type = 'item', + icon = sprite('pure_item.png'), + icon_size = 64, + stack_size = 20, + subgroup = 'fi_item_subgroup_d', + fuel_category = 'fi_pure_fuel', + fuel_value = '28GJ', + fuel_glow_color = {r=0.1,g=0.74,b=0.39,a=0.5}, + order = 'c-a', + burnt_result = 'fi_used_pure_fuel_item', + }, + { + --used_basic + name = 'fi_used_basic_fuel_item', + type = 'item', + icon = sprite('used_basic_item.png'), + icon_size = 64, + stack_size = 20, + subgroup = 'fi_item_subgroup_d', + order = 'c-a', + }, + { + --used_basic_thorium + name = 'fi_used_basic_thorium_fuel_item', + type = 'item', + icon = sprite('used_basic_thorium_item.png'), + icon_size = 64, + stack_size = 20, + subgroup = 'fi_item_subgroup_d', + order = 'c-a', + }, + { + --used_advanced + name = 'fi_used_advanced_fuel_item', + type = 'item', + icon = sprite('used_advanced_item.png'), + icon_size = 64, + stack_size = 20, + subgroup = 'fi_item_subgroup_d', + order = 'c-a', + }, + { + --used_advanced_thorium + name = 'fi_used_advanced_thorium_fuel_item', + type = 'item', + icon = sprite('used_advanced_thorium_item.png'), + icon_size = 64, + stack_size = 20, + subgroup = 'fi_item_subgroup_d', + order = 'c-a', + }, + { + --used_pure + name = 'fi_used_pure_fuel_item', + type = 'item', + icon = sprite('used_pure_item.png'), + icon_size = 64, + stack_size = 20, + subgroup = 'fi_item_subgroup_d', + order = 'c-a', + }, + { + --u33 + name = 'fi_uranium233_item', + type = 'item', + icon = sprite('uranium233_item.png'), + icon_size = 64, + stack_size = 20, + subgroup = 'fi_item_subgroup_a', + order = 'a-b', + }, + { + --pu239 + name = 'fi_plutonium239_item', + type = 'item', + icon = sprite('plutonium239_item.png'), + icon_size = 64, + stack_size = 20, + subgroup = 'fi_item_subgroup_a', + order = 'a-c', + }, + { + --th232 + name = 'fi_thorium232_item', + type = 'item', + icon = sprite('thorium232_item.png'), + icon_size = 64, + stack_size = 20, + subgroup = 'fi_item_subgroup_a', + order = 'a-a', + }, + --train crystal fuel + { + name = 'fi_fuel_train_crystal_item', + type = 'item', + icon = sprite('train_crystal_item.png'), + icon_size = 64, + stack_size = 100, + subgroup = 'fi_item_subgroup_d', + order = 'd-a', + fuel_acceleration_multiplier = 0.6, + fuel_top_speed_multiplier = 1.55, + fuel_category = 'el_train_fuel', + fuel_emissions_multiplier = 3.5, + fuel_value = '350MJ', + }, + + + +}) \ No newline at end of file diff --git a/prototypes/fission/fi_materials.lua b/prototypes/fission/fi_materials.lua new file mode 100644 index 0000000..9a07b28 --- /dev/null +++ b/prototypes/fission/fi_materials.lua @@ -0,0 +1,32 @@ +--local functions +local function config(name) + return settings.startup['fi_materials_'..name].value +end + +local function sprite(name) + return '__248k__/ressources/fission/fi_materials/fi_materials_'..name +end + +--item +data:extend({ + { + name = 'fi_industrial_steel_item', + type = 'item', + icon = sprite('industrial_steel_item.png'), + icon_size = 64, + stack_size = 100, + subgroup = 'fi_item_subgroup_b', + order = 'a-b', + }, + { + name = 'fi_industrial_steel_blend_item', + type = 'item', + icon = sprite('industrial_steel_blend_item.png'), + icon_size = 64, + stack_size = 100, + subgroup = 'fi_item_subgroup_a-c', + order = 'a-a', + }, + + +}) diff --git a/prototypes/fission/fi_miner.lua b/prototypes/fission/fi_miner.lua new file mode 100644 index 0000000..21dd6d5 --- /dev/null +++ b/prototypes/fission/fi_miner.lua @@ -0,0 +1,114 @@ +--local functions +local function config(name) + return settings.startup['fi_miner_'..name].value +end + +local function sprite(name) + return '__248k__/ressources/fission/fi_miner/fi_miner_'..name +end + +--item +data:extend({ + { + name = 'fi_miner_item', + type = 'item', + icon = sprite('item.png'), + icon_size = 64, + place_result = 'fi_miner_entity', + stack_size = 20, + subgroup = 'fi_item_subgroup_c', + order = 'a-b', + }, + +}) + +--entity +data:extend({ + --prototype + { + name = 'fi_miner_entity', + type = 'mining-drill', + icon = sprite('entity_icon.png'), + icon_size = 64, + flags = {"player-creation","placeable-neutral"}, + max_health = 300, + corpse = 'big-remnants', + collision_box = {{-2.7,-1.3},{2.7,1.3}}, + selection_box = {{-3,-1.5},{3,1.5}}, + map_color = {r=0, g=0, b=1, a=1}, + minable = { + mining_time = 1, + result = 'fi_miner_item', + }, + energy_source = { + type = 'burner', + fuel_inventory_size = 3, + burnt_inventory_size = 3, + effectivity = 0.35, + emissions_per_minute = 75, + fuel_category = 'fi_basic_fuel' + }, + energy_usage = '4MW', + mining_speed = 4.5, + resource_categories = {'basic-solid'}, + resource_searching_radius = 6, + vector_to_place_result = {3.25,0}, + radius_visualisation_picture = + { + filename = "__base__/graphics/entity/beacon/beacon-radius-visualization.png", + width = 10, + height = 10, + }, + allowed_effects = {"speed", "productivity", "consumption", "pollution"}, + module_specification = { + module_info_icon_shift = { + 0, + 0.8 + }, + module_slots = 2 + }, + --animation + animations = { + north = { + filename = sprite('entity_animation_vertikal.png'), + size = {448*2,550}, + scale = 0.2, + line_length = 3, + lines_per_file = 3, + frame_count = 4, + animation_speed = 0.5, + shift = {0,-0.3}, + }, + east = { + filename = sprite('entity_animation_horizontal.png'), + size = {480,448*2}, + scale = 0.2, + line_length = 10, + frame_count = 4, + animation_speed = 0.5, + }, + south = { + filename = sprite('entity_animation_vertikal.png'), + size = {448*2,550}, + scale = 0.2, + line_length = 3, + lines_per_file = 3, + frame_count = 4, + animation_speed = 0.5, + shift = {0,-0.3}, + }, + west = { + filename = sprite('entity_animation_horizontal.png'), + size = {480,448*2}, + scale = 0.2, + line_length = 10, + frame_count = 4, + animation_speed = 0.5, + }, + }, + working_sound = { + sound = { filename ='__base__/sound/electric-mining-drill.ogg'}, + apparent_volume = 3.2, + }, + }, +}) \ No newline at end of file diff --git a/prototypes/fission/fi_modules.lua b/prototypes/fission/fi_modules.lua new file mode 100644 index 0000000..36a5ac8 --- /dev/null +++ b/prototypes/fission/fi_modules.lua @@ -0,0 +1,155 @@ +--local functions +local function config(name) + return settings.startup['fi_modules_'..name].value +end + +local function sprite(name) + return '__248k__/ressources/fission/fi_modules/fi_modules_'..name +end + +local limitation_list = { + 'el_aluminum_ore_recipe', + 'el_aluminum_item_recipe', + 'el_lithium_ore_recipe', + 'el_lithium_item_recipe', + 'el_train_fuel_diesel_recipe', + 'el_energy_crystal_recipe', + 'fi_compound_material_recipe', + 'fi_materials_industrial_steel_recipe', + 'fu_lead_ore_recipe', + 'fi_base_crystal_recipe', + 'fi_catalyst_crystal_recipe', + 'fi_energy_crystal_recipe' +} + +--item +data:extend({ + { + name = 'fi_modules_productivity_1_item', + type = 'module', + icon = sprite('productivity_1.png'), + icon_size = 64, + stack_size = 100, + subgroup = 'fi_item_subgroup_j', + category = '248k_productivity_category', + tier = 1, + order = 'a-a', + effect = { + consumption = {bonus = 0.9}, + speed = {bonus = -0.2}, + productivity = {bonus = 0.08}, + pollution = {bonus = 0.3} + }, + limitation = limitation_list, + limitation_message_key = 'limitation_message', + }, + { + name = 'fi_modules_productivity_2_item', + type = 'module', + icon = sprite('productivity_2.png'), + icon_size = 64, + stack_size = 100, + subgroup = 'fi_item_subgroup_j', + category = '248k_productivity_category', + tier = 2, + order = 'a-a', + effect = { + consumption = {bonus = 1.4}, + speed = {bonus = -0.35}, + productivity = {bonus = 0.12}, + pollution = {bonus = 0.6} + }, + limitation = limitation_list, + limitation_message_key = 'limitation_message', + }, + { + name = 'fi_modules_productivity_3_item', + type = 'module', + icon = sprite('productivity_3.png'), + icon_size = 64, + stack_size = 100, + subgroup = 'fi_item_subgroup_j', + category = '248k_productivity_category', + tier = 3, + order = 'a-a', + effect = { + consumption = {bonus = 2.6}, + speed = {bonus = -0.6}, + productivity = {bonus = 0.20}, + pollution = {bonus = 0.9} + }, + limitation = limitation_list, + limitation_message_key = 'limitation_message', + }, + { + name = 'fi_modules_productivity_4_item', + type = 'module', + icon = sprite('productivity_4.png'), + icon_size = 64, + stack_size = 100, + subgroup = 'gr_item_subgroup_d', + category = '248k_productivity_category', + tier = 4, + order = 'a-a', + effect = { + consumption = {bonus = 2}, + speed = {bonus = -0.5}, + productivity = {bonus = 0.05}, + pollution = {bonus = 1} + }, + }, + { + name = 'fi_modules_productivity_5_item', + type = 'module', + icon = sprite('productivity_5.png'), + icon_size = 64, + stack_size = 100, + subgroup = 'gr_item_subgroup_d', + category = '248k_productivity_category', + tier = 5, + order = 'a-b', + effect = { + consumption = {bonus = 3}, + speed = {bonus = -0.7}, + productivity = {bonus = 0.1}, + pollution = {bonus = 1} + }, + }, + { + name = 'fi_modules_productivity_6_item', + type = 'module', + icon = sprite('productivity_6.png'), + icon_size = 64, + stack_size = 100, + subgroup = 'gr_item_subgroup_d', + category = '248k_productivity_category', + tier = 6, + order = 'a-c', + effect = { + consumption = {bonus = 6}, + speed = {bonus = -0.9}, + productivity = {bonus = 0.25}, + pollution = {bonus = 1} + }, + }, + { + name = 'fi_modules_base_item', + type = 'item', + icon = sprite('base.png'), + icon_size = 64, + stack_size = 100, + subgroup = 'fi_item_subgroup_e', + order = 'b-k', + }, + { + name = 'fi_modules_core_item', + type = 'item', + icon = sprite('core.png'), + icon_size = 64, + stack_size = 100, + subgroup = 'fi_item_subgroup_e', + order = 'b-x', + }, + + +}) \ No newline at end of file diff --git a/prototypes/fission/fi_robo.lua b/prototypes/fission/fi_robo.lua new file mode 100644 index 0000000..608ffe9 --- /dev/null +++ b/prototypes/fission/fi_robo.lua @@ -0,0 +1,219 @@ +--local functions +local function config(name) + return settings.startup['fi_robo_'..name].value +end + +local function sprite(name) + return '__248k__/ressources/fission/fi_robo/fi_robo_'..name +end + +--item +data:extend({ + { + name = 'fi_robo_port_item', + type = 'item', + icon = sprite('port_item.png'), + icon_size = 64, + place_result = 'fi_robo_port_entity', + stack_size = 20, + subgroup = 'fi_item_subgroup_c', + order = 'a-b', + }, + { + name = 'fi_robo_charger_item', + type = 'item', + icon = sprite('charger_item.png'), + icon_size = 64, + place_result = 'fi_robo_charger_entity', + stack_size = 20, + subgroup = 'fi_item_subgroup_c', + order = 'a-b', + }, + +}) + +--entity +data:extend({ + --prototype port + { + name = 'fi_robo_port_entity', + type = 'roboport', + icon = sprite('port_entity_icon.png'), + icon_size = 64, + flags = {"player-creation","placeable-neutral"}, + max_health = 300, + corpse = 'big-remnants', + collision_box = {{-1.4,-1.4},{1.4,1.4}}, + selection_box = {{-1.5,-1.5},{1.5,1.5}}, + map_color = {r=0, g=0, b=1, a=1}, + minable = { + mining_time = 1, + result = 'fi_robo_port_item', + }, + energy_source = { + type = 'electric', + buffer_capacity = '400MJ', + usage_priority = 'secondary-input', + input_flow_limit = '160MW', + }, + energy_usage = '4MW', + charge_approach_distance = 2, + charging_energy = '2MW', + recharge_minimum = '1MW', + charging_station_count = 4, + construction_radius = 70, + logistics_radius = 70, + material_slots_count = 10, + robot_slots_count = 10, + request_to_open_door_timeout = 15, + spawn_and_station_height = 1.2, + robots_shrink_when_entering_and_exiting = true, + + base = { + filename = sprite('port_base.png'), + width = 600, + height = 600, + scale = 0.2, + shift = {0,-0.3}, + }, + base_patch = { + filename = sprite('port_base.png'), + width = 64, + height = 64, + }, + base_animation = { + filename = sprite('port_base.png'), + width = 64, + height = 1, + line_length = 1, + --lines_per_file = 1, + animation_speed = 0.5, + frame_count = 6, + scale = 1, + }, + door_animation_up = { + filename = sprite('port_door_animation.png'), + width = 600, + height = 600, + scale = 0.2, + shift = {0,-0.3}, + line_length = 4, + --lines_per_file = 1, + animation_speed = 0.5, + frame_count = 4, + }, + door_animation_down = { + filename = sprite('port_door_animation.png'), + width = 600, + height = 600, + scale = 0.2, + shift = {0,-0.3}, + line_length = 4, + --lines_per_file = 1, + animation_speed = 0.5, + frame_count = 4, + }, + recharging_animation = { + filename = "__base__/graphics/entity/roboport/roboport-recharging.png", + priority = "high", + width = 37, + height = 35, + frame_count = 16, + scale = 1.5, + animation_speed = 0.5 + }, + + + }, + --charger + { + name = 'fi_robo_charger_entity', + type = 'roboport', + icon = sprite('charger_entity_icon.png'), + icon_size = 64, + flags = {"player-creation","placeable-neutral"}, + max_health = 300, + corpse = 'big-remnants', + collision_box = {{-1.4,-1.4},{1.4,1.4}}, + selection_box = {{-1.5,-1.5},{1.5,1.5}}, + map_color = {r=0, g=0, b=1, a=1}, + minable = { + mining_time = 1, + result = 'fi_robo_charger_item', + }, + energy_source = { + type = 'electric', + buffer_capacity = '400MJ', + usage_priority = 'secondary-input', + input_flow_limit = '40MW', + }, + energy_usage = '4MW', + charge_approach_distance = 2, + charging_energy = '6MW', + recharge_minimum = '1MW', + charging_station_count = 6, + construction_radius = 1, + logistics_radius = 1, + material_slots_count = 0, + robot_slots_count = 0, + request_to_open_door_timeout = 4, + spawn_and_station_height = 2, + + base = { + filename = sprite('charger_base_2.png'), + width = 600, + height = 600, + scale = 0.2, + shift = {0,-0.3}, + }, + base_patch = { + filename = sprite('charger_base.png'), + width = 64, + height = 64, + }, + base_animation = { + filename = sprite('charger_animation_2.png'), + width = 600, + height = 600, + line_length = 5, + lines_per_file = 1, + scale = 0.2, + animation_speed = 0.3, + frame_count = 5, + shift = {0,-0.3}, + }, + door_animation_up = { + filename = sprite('charger_base.png'), + width = 64, + height = 1, + line_length = 1, + --lines_per_file = 1, + animation_speed = 0.5, + frame_count = 6, + scale = 1, + }, + door_animation_down = { + filename = sprite('charger_base.png'), + width = 64, + height = 1, + line_length = 1, + --lines_per_file = 1, + animation_speed = 0.5, + frame_count = 6, + scale = 1, + }, + recharging_animation = { + filename = "__base__/graphics/entity/roboport/roboport-recharging.png", + priority = "high", + width = 37, + height = 35, + frame_count = 16, + scale = 1.5, + animation_speed = 0.5 + } + + + + + }, +}) \ No newline at end of file diff --git a/prototypes/fission/fi_solid_reactor.lua b/prototypes/fission/fi_solid_reactor.lua new file mode 100644 index 0000000..0f435d9 --- /dev/null +++ b/prototypes/fission/fi_solid_reactor.lua @@ -0,0 +1,99 @@ +--local functions +local function config(name) + return settings.startup['fi_solid_reactor_'..name].value +end + +local function sprite(name) + return '__248k__/ressources/fission/fi_solid_reactor/fi_solid_reactor_'..name +end + +--item +data:extend({ + { + name = 'fi_solid_reactor_item', + type = 'item', + icon = sprite('item.png'), + icon_size = 64, + place_result = 'fi_solid_reactor_entity', + stack_size = 20, + subgroup = 'fi_item_subgroup_c', + order = 'b-a', + }, + +}) + +--entity +data:extend({ + --prototype + { + name = 'fi_solid_reactor_entity', + type = 'reactor', + icon = sprite('entity_icon.png'), + icon_size = 64, + flags = {"player-creation","placeable-neutral"}, + max_health = 300, + corpse = 'big-remnants', + collision_box = {{-2.7,-2.7},{2.7,2.7}}, + selection_box = {{-3.0,-3.0},{3.0,3.0}}, + map_color = {r=0, g=0, b=1, a=1}, + minable = { + mining_time = 1, + result = 'fi_solid_reactor_item', + }, + consumption = '60MW', + neighbour_bonus = 2, + energy_source = { + type = 'burner', + fuel_inventory_size = 3, + burnt_inventory_size = 3, + effectivity = 0.9, + fuel_categories = { + 'fi_basic_fuel', + 'fi_advanced_fuel', + 'fi_pure_fuel' + } + }, + heat_buffer = { + max_temperature = 1000, + specific_heat = '10MJ', + max_transfer = '10GW', + connections = { + {position = {0.5,-3}, direction = defines.direction.north}, + {position = {-0.5,-3}, direction = defines.direction.north}, + + {position = {2.9,0.5}, direction = defines.direction.east}, + {position = {2.9,-0.5}, direction = defines.direction.east}, + + {position = {-3,0.5}, direction = defines.direction.west}, + {position = {-3,-0.5}, direction = defines.direction.west}, + + {position = {0.5,2.9}, direction = defines.direction.south}, + {position = {-0.5,2.9}, direction = defines.direction.south} + } + }, + picture = { + filename = sprite('entity_animation.png'), + width = 960, + height = 960, + shift = {0, 0}, + scale = 0.2, + }, + working_light_picture ={ + filename = sprite('working_light.png'), + width = 960, + height = 960, + shift = {0, 0}, + scale = 0.2, + }, + light = { + type = 'basic', + intensity = 0.4, + size = 14, + color = {r=0.1,g=0.5,b=0.75} + }, + working_sound = { + sound = { filename ='__base__/sound/nuclear-reactor-1.ogg'}, + apparent_volume = 2.5, + }, + }, +}) \ No newline at end of file diff --git a/prototypes/fu_recipes.lua b/prototypes/fu_recipes.lua new file mode 100644 index 0000000..89984e0 --- /dev/null +++ b/prototypes/fu_recipes.lua @@ -0,0 +1,1088 @@ +data:extend({ + --fusor + { + name = 'fu_fusor_recipe', + type = 'recipe', + enabled = 'false', + ingredients = { + {'low-density-structure',100}, + {'fi_industrial_steel_item',400}, + {'fi_compound_material_item',400}, + {'fi_energy_crystal_item',100}, + {'concrete',500}, + {'lab',10}, + {'processing-unit',500} + }, + result = 'fu_fusor_item', + result_count = 1, + energy_required = 6, + }, + --reactor + { + name = 'fu_stelar_reactor_recipe', + type = 'recipe', + enabled = 'false', + ingredients = { + {'low-density-structure',100}, + {'fi_industrial_steel_item',1000}, + {'fi_compound_material_item',1000}, + {'concrete',2000}, + {'fu_lead_item',1000}, + {'pump',40}, + {'processing-unit',1000}, + {'fu_tech_sign_item',500}, + }, + result = 'fu_stelar_reactor_item', + result_count = 1, + energy_required = 60, + }, + { + name = 'fu_tokamak_reactor_recipe', + type = 'recipe', + enabled = 'false', + ingredients = { + {'low-density-structure',200}, + {'fi_industrial_steel_item',1500}, + {'fi_compound_material_item',1500}, + {'concrete',2000}, + {'fu_lead_item',1500}, + {'pump',80}, + {'processing-unit',2000}, + {'fu_tech_sign_item',10000}, + }, + result = 'fu_tokamak_reactor_item', + result_count = 1, + energy_required = 60, + }, + + --boiler + { + name = 'fu_boiler_recipe', + type = 'recipe', + enabled = 'false', + ingredients = { + {'heat-exchanger',4}, + {'fi_industrial_steel_item',80}, + {'fi_compound_material_item',80}, + {'concrete',100}, + {'heat-pipe',20} + }, + result = 'fu_boiler_item', + result_count = 1, + energy_required = 2, + }, + --burner + { + name = 'fu_burner_recipe', + type = 'recipe', + enabled = 'false', + hidden = false, + ingredients = { + {'el_burner_item',1}, + {'pipe',60}, + {'fi_compound_material_item',20}, + {'fi_energy_crystal_item',30} + }, + result = 'fu_burner_item', + result_count = 1, + energy_required = 2, + }, + --tech sign + { + name = 'fu_tech_sign_1_recipe', + type = 'recipe', + category = 'fu_fusor_crafting_category', + enabled = 'false', + ingredients = { + {type="fluid", name="fu_lithium_6", amount=100}, + {type="fluid", name="fu_protium", amount=100}, + }, + result = 'fu_tech_sign_item', + result_count = 5, + energy_required = 100, + always_show_made_in = true, + }, + { + name = 'fu_tech_sign_2_recipe', + type = 'recipe', + category = 'fu_fusor_crafting_category', + enabled = 'false', + ingredients = { + {type="fluid", name="fu_lithium_6", amount=100}, + {type="fluid", name="fu_deuterium", amount=100}, + }, + result = 'fu_tech_sign_item', + result_count = 100, + energy_required = 100, + always_show_made_in = true, + }, + { + name = 'fu_tech_sign_3_recipe', + type = 'recipe', + category = 'fu_fusor_crafting_category', + enabled = 'false', + ingredients = { + {type="fluid", name="fu_lithium_6", amount=100}, + {type="fluid", name="fu_helium_3", amount=100}, + }, + result = 'fu_tech_sign_item', + result_count = 100, + energy_required = 100, + always_show_made_in = true, + }, + { + name = 'fu_tech_sign_4_recipe', + type = 'recipe', + category = 'fu_fusor_crafting_category', + enabled = 'false', + ingredients = { + {type="fluid", name="fu_deuterium", amount=100}, + {type="fluid", name="fu_tritium", amount=100}, + }, + result = 'fu_tech_sign_item', + result_count = 10000, + energy_required = 100, + always_show_made_in = true, + }, + { + name = 'fu_tech_sign_5_recipe', + type = 'recipe', + category = 'fu_fusor_crafting_category', + enabled = 'false', + ingredients = { + {type="fluid", name="fu_deuterium", amount=200}, + }, + result = 'fu_tech_sign_item', + result_count = 2000, + energy_required = 100, + always_show_made_in = true, + }, + { + name = 'fu_tech_sign_6_recipe', + type = 'recipe', + category = 'fu_fusor_crafting_category', + enabled = 'false', + ingredients = { + {type="fluid", name="fu_deuterium", amount=100}, + {type="fluid", name="fu_helium_3", amount=100}, + }, + result = 'fu_tech_sign_item', + result_count = 1000, + energy_required = 100, + always_show_made_in = true, + }, + { + name = 'fu_tech_sign_7_recipe', + type = 'recipe', + category = 'fu_fusor_crafting_category', + enabled = 'false', + ingredients = { + {type="fluid", name="fu_protium", amount=20000}, + }, + result = 'fu_tech_sign_item', + result_count = 10, + energy_required = 100, + always_show_made_in = true, + }, + --elements + { + name = 'fu_boiler_hydrogen_oxygen_recipe', + type = 'recipe', + category = 'fu_boiler_crafting_category', + main_product = 'fu_hydrogen', + enabled = 'false', + ingredients = { + {type="fluid", name="water", amount=150}, + }, + results = { + {type="fluid", name="fu_hydrogen", amount=100, temperature=40}, + {type="fluid", name="fu_oxygen", amount=50, temperature=40} + }, + result_count = 1, + energy_required = 1, + }, + { + name = 'fu_boiler_hydrogen_oxygen_1_recipe', + type = 'recipe', + category = 'fu_boiler_crafting_category', + main_product = 'fu_hydrogen', + enabled = 'false', + ingredients = { + {type="fluid", name="water", amount=300}, + }, + results = { + {type="fluid", name="fu_hydrogen", amount=200, temperature=40}, + {type="fluid", name="fu_oxygen", amount=100, temperature=40} + }, + result_count = 1, + energy_required = 1, + }, + { + name = 'fu_boiler_hydrogen_oxygen_2_recipe', + type = 'recipe', + category = 'fu_boiler_crafting_category', + main_product = 'fu_hydrogen', + enabled = 'false', + ingredients = { + {type="fluid", name="water", amount=650}, + }, + results = { + {type="fluid", name="fu_hydrogen", amount=500, temperature=40}, + {type="fluid", name="fu_oxygen", amount=150, temperature=40}, + }, + result_count = 1, + energy_required = 1, + }, + { + name = 'fu_boiler_hydrogen_oxygen_3_recipe', + type = 'recipe', + category = 'fu_boiler_crafting_category', + main_product = 'fu_hydrogen', + enabled = 'false', + ingredients = { + {type="fluid", name="water", amount=1100}, + }, + results = { + {type="fluid", name="fu_hydrogen", amount=1000, temperature=40}, + }, + result_count = 1, + energy_required = 1, + }, + { + name = 'fu_hydrogen_recipe', + type = 'recipe', + category = 'oil-processing', + main_product = 'fu_protium', + enabled = 'false', + ingredients = { + {type="fluid", name="fu_hydrogen", amount=100000}, + }, + results = { + {type="fluid", name="fu_protium", amount=99998}, + {type="fluid", name="fu_deuterium", amount=10}, + {type="fluid", name="fu_tritium", amount=1} + }, + energy_required = 100, + }, + { + name = 'fu_lithium_6_recipe', + type = 'recipe', + category = 'chemistry', + enabled = 'false', + ingredients = { + {type="item", name="fi_crushed_lithium_item", amount=1}, + }, + results = { + {type="fluid", name="fu_lithium_6", amount=1}, + }, + result_count = 1, + energy_required = 1, + }, + --lead + { + name = 'fu_lead_ore_recipe', + type = 'recipe', + category = 'crafting-with-fluid', + enabled = 'false', + ingredients = { + {type="item", name="stone", amount=10}, + {type="fluid", name="sulfuric-acid", amount=20}, + }, + result = 'fu_lead_ore_item', + result_count = 4, + energy_required = 2, + }, + --lead ore + { + name = 'fu_lead_recipe', + type = 'recipe', + category = 'smelting', + enabled = 'false', + ingredients = { + {type="item", name="fu_lead_ore_item", amount=4}, + }, + result = 'fu_lead_item', + result_count = 2, + energy_required = 2, + }, + { + name = 'fu_lead_crushed_recipe', + type = 'recipe', + category = 'fi_crushing', + enabled = 'false', + ingredients = { + {type="item", name="fu_lead_item", amount=4}, + }, + result = 'fu_crushed_lead_item', + result_count = 1, + energy_required = 2, + }, + { + name = 'fu_lead_molten_recipe', + type = 'recipe', + category = 'crafting-with-fluid', + enabled = 'false', + ingredients = { + {type="item", name="fu_crushed_lead_item", amount=10}, + }, + results = { + {type="fluid", name="fu_lead_fluid", amount=100, temperature=500}, + }, + result_count = 1, + energy_required = 10, + }, + --stelerator fusion + { + name = 'fu_stelerator_1_recipe', + type = 'recipe', + category = 'fu_stelar_reactor_crafting_category', + enabled = 'false', + ingredients = { + {type="fluid", name="fu_lead_fluid", amount=1000, temperature=500}, + {type="fluid", name="fu_protium", amount=20}, + }, + results = { + {type="fluid", name="fu_lead_fluid", amount=1000, temperature=1500}, + }, + result_count = 1, + energy_required = 1, + }, + { + name = 'fu_stelerator_2_recipe', + type = 'recipe', + category = 'fu_stelar_reactor_crafting_category', + enabled = 'false', + ingredients = { + {type="fluid", name="fu_lead_fluid", amount=1000, temperature=500}, + {type="fluid", name="fu_deuterium", amount=1}, + {type="fluid", name="fu_tritium", amount=1}, + }, + results = { + {type="fluid", name="fu_lead_fluid", amount=1000, temperature=1500}, + }, + result_count = 1, + energy_required = 1, + }, + { + name = 'fu_stelerator_3_recipe', + type = 'recipe', + category = 'fu_stelar_reactor_crafting_category', + enabled = 'false', + ingredients = { + {type="fluid", name="fu_lead_fluid", amount=1000, temperature=500}, + {type="fluid", name="fu_protium", amount=15}, + {type="fluid", name="fu_lithium_6", amount=15}, + }, + results = { + {type="fluid", name="fu_lead_fluid", amount=1000, temperature=1500}, + }, + result_count = 1, + energy_required = 1, + }, + --tokamak fusion + { + name = 'fu_tokamak_1_recipe', + type = 'recipe', + category = 'fu_tokamak_reactor_crafting_category', + enabled = 'false', + ingredients = { + {type="fluid", name="fu_lead_fluid", amount=110000, temperature=500}, + {type="fluid", name="fu_deuterium", amount=200}, + }, + results = { + {type="fluid", name="fu_lead_fluid", amount=110000, temperature=1500}, + }, + result_count = 1, + energy_required = 100, + }, + { + name = 'fu_tokamak_2_recipe', + type = 'recipe', + category = 'fu_tokamak_reactor_crafting_category', + enabled = 'false', + ingredients = { + {type="fluid", name="fu_lead_fluid", amount=180000, temperature=500}, + {type="fluid", name="fu_deuterium", amount=100}, + {type="fluid", name="fu_tritium", amount=100}, + }, + results = { + {type="fluid", name="fu_lead_fluid", amount=180000, temperature=1500}, + }, + result_count = 1, + energy_required = 100, + }, + --exchanger + { + name = 'fu_exchanger_item_recipe', + type = 'recipe', + enabled = 'false', + ingredients = { + {type="item", name="heat-exchanger", amount=10}, + {type="item", name="fi_compound_material_item", amount=40}, + {type="item", name="fi_industrial_steel_item", amount=40}, + {type="item", name="concrete", amount=60}, + }, + results = { + {type="item", name="fu_exchanger_item", amount=1}, + }, + result_count = 1, + energy_required = 10, + }, + { + name = 'fu_exchanger_1_recipe', + type = 'recipe', + category = 'fu_exchanger_crafting_category', + main_product = 'steam', + enabled = 'false', + ingredients = { + {type="fluid", name="fu_lead_fluid", amount=50, temperature=1500}, + {type="fluid", name="water", amount=1000}, + }, + results = { + {type="fluid", name="fu_lead_fluid", amount=50, temperature=500}, + {type="fluid", name="steam", amount=1000, temperature=500}, + }, + result_count = 1, + energy_required = 1, + subgroup = 'fu_item_subgroup_e', + order = 'b-a', + always_show_made_in = true, + }, + { + name = 'fu_exchanger_2_recipe', + type = 'recipe', + category = 'fu_exchanger_crafting_category', + main_product = 'steam', + enabled = 'false', + ingredients = { + {type="fluid", name="fu_lead_fluid", amount=100, temperature=1500}, + {type="fluid", name="water", amount=1000}, + }, + results = { + {type="fluid", name="fu_lead_fluid", amount=100, temperature=500}, + {type="fluid", name="steam", amount=1000, temperature=1000}, + }, + result_count = 1, + energy_required = 1, + subgroup = 'fu_item_subgroup_e', + order = 'b-a', + always_show_made_in = true, + }, + --fu_robo + { + name = 'fu_robo_logistic_recipe', + type = 'recipe', + enabled = 'false', + ingredients = { + {type="item", name="logistic-robot", amount=2}, + {type="item", name="fu_tech_sign_item", amount=2}, + {type="item", name="fi_energy_crystal_item", amount=3}, + {type="item", name="low-density-structure", amount=20}, + {type="item", name="el_lithium_battery", amount=10}, + {type="item", name="flying-robot-frame", amount=4}, + }, + result = 'fu_robo_logistic_item', + result_count = 1, + energy_required = 10, + }, + { + name = 'fu_robo_construction_recipe', + type = 'recipe', + enabled = 'false', + ingredients = { + {type="item", name="construction-robot", amount=2}, + {type="item", name="fu_tech_sign_item", amount=2}, + {type="item", name="fi_energy_crystal_item", amount=3}, + {type="item", name="low-density-structure", amount=20}, + {type="item", name="el_lithium_battery", amount=10}, + {type="item", name="flying-robot-frame", amount=4}, + }, + result = 'fu_robo_construction_item', + result_count = 1, + energy_required = 10, + }, + --fu activator + { + name = 'fu_activator_recipe', + type = 'recipe', + enabled = 'false', + ingredients = { + {type="item", name="fi_crafter_item", amount=2}, + {type="item", name="fu_tech_sign_item", amount=100}, + {type="item", name="fi_energy_crystal_item", amount=20}, + {type="item", name="fi_compound_material_item", amount=200}, + {type="item", name="fi_industrial_steel_item", amount=200}, + }, + result = 'fu_activator_item', + result_count = 1, + energy_required = 10, + }, + { + name = 'fu_activator_1_recipe', + type = 'recipe', + category = 'fu_activator_crafting_category', + main_product = 'fu_deuterium', + enabled = 'false', + ingredients = { + {type="fluid", name="fu_protium", amount=10}, + }, + results = { + {type="fluid", name="fu_protium", amount=9}, + {type="fluid", name="fu_deuterium", amount=1}, + }, + result_count = 1, + energy_required = 10, + always_show_made_in = true, + }, + { + name = 'fu_activator_2_recipe', + type = 'recipe', + category = 'fu_activator_crafting_category', + main_product = 'fu_tritium', + enabled = 'false', + ingredients = { + {type="fluid", name="fu_deuterium", amount=10}, + }, + results = { + {type="fluid", name="fu_deuterium", amount=9}, + {type="fluid", name="fu_tritium", amount=1}, + }, + result_count = 1, + energy_required = 10, + always_show_made_in = true, + }, + --stelar engine + { + name = 'fu_star_engine_cooler_recipe', + type = 'recipe', + enabled = 'false', + ingredients = { + {'low-density-structure',1000}, + {'fi_industrial_steel_item',1000}, + {'fi_compound_material_item',1000}, + {'copper-cable',1000}, + {'heat-exchanger',10}, + {'concrete',10000}, + {'fu_lead_item',4000}, + {'fi_energy_crystal_item',200}, + {'fu_tech_sign_item',10000}, + }, + result = 'fu_star_engine_cooler_item', + result_count = 1, + energy_required = 60, + }, + { + name = 'fu_star_engine_cooler_up_recipe', + type = 'recipe', + enabled = 'false', + ingredients = { + {'low-density-structure',1000}, + {'fi_industrial_steel_item',1000}, + {'fi_compound_material_item',1000}, + {'copper-cable',1000}, + {'heat-exchanger',10}, + {'concrete',10000}, + {'fu_lead_item',4000}, + {'fi_energy_crystal_item',200}, + {'fu_tech_sign_item',10000}, + }, + result = 'fu_star_engine_cooler_up_item', + result_count = 1, + energy_required = 60, + }, + { + name = 'fu_star_engine_heater_recipe', + type = 'recipe', + enabled = 'false', + ingredients = { + {'low-density-structure',1000}, + {'fi_industrial_steel_item',1000}, + {'fi_compound_material_item',1000}, + {'copper-cable',1000}, + {'heat-pipe',200}, + {'concrete',10000}, + {'fu_lead_item',4000}, + {'fi_energy_crystal_item',200}, + {'fu_tech_sign_item',10000}, + }, + result = 'fu_star_engine_heater_item', + result_count = 1, + energy_required = 60, + }, + { + name = 'fu_star_engine_heater_left_recipe', + type = 'recipe', + enabled = 'false', + ingredients = { + {'low-density-structure',1000}, + {'fi_industrial_steel_item',1000}, + {'fi_compound_material_item',1000}, + {'copper-cable',1000}, + {'heat-pipe',200}, + {'concrete',10000}, + {'fu_lead_item',4000}, + {'fi_energy_crystal_item',200}, + {'fu_tech_sign_item',10000}, + }, + result = 'fu_star_engine_heater_left_item', + result_count = 1, + energy_required = 60, + }, + { + name = 'fu_star_engine_core_recipe', + type = 'recipe', + enabled = 'false', + ingredients = { + {'low-density-structure',1000}, + {'fi_industrial_steel_item',6000}, + {'fi_compound_material_item',3000}, + {'concrete',10000}, + {'fu_lead_item',4000}, + {'fi_energy_crystal_item',1000}, + {'processing-unit',3000}, + {'electronic-circuit',3000}, + {'advanced-circuit',3000}, + {'fu_tech_sign_item',65535}, + }, + result = 'fu_star_engine_core_item', + result_count = 1, + energy_required = 200, + }, + --star fusion + --heating + { + name = 'fu_star_engine_heater_1_recipe', + type = 'recipe', + category = 'fu_star_engine_heater_crafting_category', + enabled = 'false', + subgroup = 'fu_star_engine_subgroup_a', + ingredients = { + {type="fluid", name="fu_protium", amount=13000}, + }, + results = { + {type="fluid", name="fu_protium_heated", amount=13000}, + }, + result_count = 1, + energy_required = 1, + }, + --core + { + name = 'fu_star_engine_core_1_recipe', + type = 'recipe', + category = 'fu_star_engine_core_crafting_category', + enabled = 'false', + subgroup = 'fu_star_engine_subgroup_b', + ingredients = { + {type="fluid", name="fu_protium_heated", amount=13000*2}, + }, + results = { + {type="fluid", name="fu_iron_heated", amount=500*2}, + }, + result_count = 1, + energy_required = 1, + }, + { + name = 'fu_star_engine_core_2_recipe', + type = 'recipe', + category = 'fu_star_engine_core_crafting_category', + enabled = 'false', + subgroup = 'fu_star_engine_subgroup_b', + ingredients = { + {type="fluid", name="fu_protium_heated", amount=29000}, + }, + results = { + {type="fluid", name="fu_copper_heated", amount=500*2}, + }, + result_count = 1, + energy_required = 1, + }, + { + name = 'fu_star_engine_core_3_recipe', + type = 'recipe', + category = 'fu_star_engine_core_crafting_category', + enabled = 'false', + subgroup = 'fu_star_engine_subgroup_b', + ingredients = { + {type="fluid", name="fu_protium_heated", amount=16000}, + }, + results = { + {type="fluid", name="fu_sulfur_heated", amount=500*2}, + }, + result_count = 1, + energy_required = 1, + }, + { + name = 'fu_star_engine_core_4_recipe', + type = 'recipe', + category = 'fu_star_engine_core_crafting_category', + enabled = 'false', + subgroup = 'fu_star_engine_subgroup_b', + ingredients = { + {type="fluid", name="fu_protium_heated", amount=3000}, + }, + results = { + {type="fluid", name="fu_lithium_7_heated", amount=500*2}, + }, + result_count = 1, + energy_required = 1, + }, + { + name = 'fu_star_engine_core_5_recipe', + type = 'recipe', + category = 'fu_star_engine_core_crafting_category', + enabled = 'false', + subgroup = 'fu_star_engine_subgroup_b', + ingredients = { + {type="fluid", name="fu_protium_heated", amount=92000}, + }, + results = { + {type="fluid", name="fu_uranium_235_heated", amount=500*2}, + }, + result_count = 1, + energy_required = 1, + }, + { + name = 'fu_star_engine_core_6_recipe', + type = 'recipe', + category = 'fu_star_engine_core_crafting_category', + enabled = 'false', + subgroup = 'fu_star_engine_subgroup_b', + ingredients = { + {type="fluid", name="fu_protium_heated", amount=92000}, + }, + results = { + {type="fluid", name="fu_uranium_238_heated", amount=500*2}, + }, + result_count = 1, + energy_required = 1, + }, + --cooler + { + name = 'fu_star_engine_cooler_1_recipe', + type = 'recipe', + category = 'fu_star_engine_cooler_crafting_category', + enabled = 'false', + subgroup = 'fu_star_engine_subgroup_c', + ingredients = { + {type="fluid", name="fu_iron_heated", amount=500}, + }, + results = { + {type="fluid", name="fu_iron", amount=500}, + }, + result_count = 1, + energy_required = 1, + }, + { + name = 'fu_star_engine_cooler_2_recipe', + type = 'recipe', + category = 'fu_star_engine_cooler_crafting_category', + enabled = 'false', + subgroup = 'fu_star_engine_subgroup_c', + ingredients = { + {type="fluid", name="fu_copper_heated", amount=500}, + }, + results = { + {type="fluid", name="fu_copper", amount=500}, + }, + result_count = 1, + energy_required = 1, + }, + { + name = 'fu_star_engine_cooler_3_recipe', + type = 'recipe', + category = 'fu_star_engine_cooler_crafting_category', + enabled = 'false', + subgroup = 'fu_star_engine_subgroup_c', + ingredients = { + {type="fluid", name="fu_sulfur_heated", amount=500}, + }, + results = { + {type="fluid", name="fu_sulfur", amount=500}, + }, + result_count = 1, + energy_required = 1, + }, + { + name = 'fu_star_engine_cooler_4_recipe', + type = 'recipe', + category = 'fu_star_engine_cooler_crafting_category', + enabled = 'false', + subgroup = 'fu_star_engine_subgroup_c', + ingredients = { + {type="fluid", name="fu_lithium_7_heated", amount=500}, + }, + results = { + {type="fluid", name="fu_lithium_7", amount=500}, + }, + result_count = 1, + energy_required = 1, + }, + { + name = 'fu_star_engine_cooler_5_recipe', + type = 'recipe', + category = 'fu_star_engine_cooler_crafting_category', + enabled = 'false', + subgroup = 'fu_star_engine_subgroup_c', + ingredients = { + {type="fluid", name="fu_uranium_235_heated", amount=500}, + }, + results = { + {type="fluid", name="fu_uranium_235", amount=500}, + }, + result_count = 1, + energy_required = 1, + }, + { + name = 'fu_star_engine_cooler_6_recipe', + type = 'recipe', + category = 'fu_star_engine_cooler_crafting_category', + enabled = 'false', + subgroup = 'fu_star_engine_subgroup_c', + ingredients = { + {type="fluid", name="fu_uranium_238_heated", amount=500}, + }, + results = { + {type="fluid", name="fu_uranium_238", amount=500}, + }, + result_count = 1, + energy_required = 1, + }, + --caster + { + name = 'fu_star_engine_caster_1_recipe', + type = 'recipe', + category = 'crafting-with-fluid', + enabled = 'false', + subgroup = 'fu_star_engine_subgroup_d', + ingredients = { + {type="fluid", name="fu_iron", amount=500}, + }, + results = { + {type="item", name="iron-plate", amount=500}, + }, + result_count = 1, + energy_required = 6, + }, + { + name = 'fu_star_engine_caster_2_recipe', + type = 'recipe', + category = 'crafting-with-fluid', + enabled = 'false', + subgroup = 'fu_star_engine_subgroup_d', + ingredients = { + {type="fluid", name="fu_copper", amount=500}, + }, + results = { + {type="item", name="copper-plate", amount=500}, + }, + result_count = 1, + energy_required = 6, + }, + { + name = 'fu_star_engine_caster_3_recipe', + type = 'recipe', + category = 'crafting-with-fluid', + enabled = 'false', + subgroup = 'fu_star_engine_subgroup_d', + ingredients = { + {type="fluid", name="fu_sulfur", amount=500}, + }, + results = { + {type="item", name="sulfur", amount=500}, + }, + result_count = 1, + energy_required = 6, + }, + { + name = 'fu_star_engine_caster_4_recipe', + type = 'recipe', + category = 'crafting-with-fluid', + enabled = 'false', + subgroup = 'fu_star_engine_subgroup_d', + ingredients = { + {type="fluid", name="fu_lithium_7", amount=500}, + }, + results = { + {type="item", name="el_lithium_item", amount=500}, + }, + result_count = 1, + energy_required = 6, + }, + { + name = 'fu_star_engine_caster_5_recipe', + type = 'recipe', + category = 'crafting-with-fluid', + enabled = 'false', + subgroup = 'fu_star_engine_subgroup_d', + ingredients = { + {type="fluid", name="fu_uranium_235", amount=500}, + }, + results = { + {type="item", name="uranium-235", amount=500}, + }, + result_count = 1, + energy_required = 6, + }, + { + name = 'fu_star_engine_caster_6_recipe', + type = 'recipe', + category = 'crafting-with-fluid', + enabled = 'false', + subgroup = 'fu_star_engine_subgroup_d', + ingredients = { + {type="fluid", name="fu_uranium_238", amount=500}, + }, + results = { + {type="item", name="uranium-238", amount=500}, + }, + result_count = 1, + energy_required = 6, + }, + --space probes + { + name = 'fu_space_probe_sputnik_recipe', + type = 'recipe', + category = 'advanced-crafting', + enabled = 'false', + ingredients = { + {type="item", name="rocket-control-unit", amount=10}, + {type="item", name="low-density-structure", amount=100}, + {type="item", name="fusion-reactor-equipment", amount=1}, + {type="item", name="processing-unit", amount=200}, + {type="item", name="advanced-circuit", amount=100}, + {type="item", name="radar", amount=10}, + }, + results = { + {type="item", name="fu_space_probe_sputnik_item", amount=1}, + }, + result_count = 1, + energy_required = 20, + always_show_made_in = true, + }, + { + name = 'fu_space_probe_probe_recipe', + type = 'recipe', + category = 'advanced-crafting', + enabled = 'false', + ingredients = { + {type="item", name="rocket-control-unit", amount=10}, + {type="item", name="fi_energy_crystal_item", amount=100}, + {type="item", name="fu_space_probe_data_card_2_item", amount=5}, + {type="item", name="processing-unit", amount=100}, + {type="item", name="fu_space_probe_sputnik_item", amount=1}, + }, + results = { + {type="item", name="fu_space_probe_probe_item", amount=1}, + }, + result_count = 1, + energy_required = 20, + always_show_made_in = true, + }, + { + name = 'fu_space_probe_deep_probe_recipe', + type = 'recipe', + category = 'advanced-crafting', + enabled = 'false', + ingredients = { + {type="item", name="fu_space_probe_data_card_3_item", amount=5}, + {type="item", name="fu_space_probe_probe_item", amount=1}, + {type="item", name="rocket-control-unit", amount=10}, + {type="item", name="fi_energy_crystal_item", amount=100}, + {type="item", name="processing-unit", amount=100}, + }, + results = { + {type="item", name="fu_space_probe_deep_probe_item", amount=1}, + }, + result_count = 1, + energy_required = 20, + always_show_made_in = true, + }, + --data card 2 + { + name = 'fu_space_probe_data_card_2_recipe', + type = 'recipe', + category = 'crafting-with-fluid', + enabled = 'false', + ingredients = { + {type="item", name="fu_space_probe_data_card_1_item", amount=1}, + {type="fluid", name="el_ki_cpu_fluid", amount=1000}, + }, + results = { + {type="item", name="fu_space_probe_data_card_2_item", amount=1}, + }, + result_count = 1, + energy_required = 20, + always_show_made_in = true, + }, + -- space ore + { + name = 'fu_space_probe_ore_recipe', + type = 'recipe', + category = 'centrifuging', + enabled = 'false', + main_product = 'fu_space_probe_down_matter_item', + ingredients = { + {type="item", name="fu_space_probe_ore_item", amount=10}, + {type="item", name="fi_energy_crystal_item", amount=20}, + }, + results = { + {type="item", name="fu_space_probe_down_matter_item", amount=1}, + {type="item", name="fu_space_probe_up_matter_item", amount=1}, + {type="item", name="fi_base_crystal_item", amount=10}, + }, + result_count = 1, + energy_required = 10, + always_show_made_in = true, + }, + --science + { + name = 'fu_space_probe_science_recipe', + type = 'recipe', + category = 'crafting', + enabled = 'false', + ingredients = { + {type="item", name="fu_space_probe_up_matter_item", amount=10}, + {type="item", name="fu_space_probe_down_matter_item", amount=10}, + {type="item", name="fu_tech_sign_item", amount=100}, + }, + results = { + {type="item", name="fu_space_probe_science_item", amount=1000}, + }, + result_count = 1, + energy_required = 20, + }, + { + name = 'fu_space_probe_science_recipe_1', + type = 'recipe', + category = 'crafting', + enabled = 'false', + ingredients = { + {type="item", name="fu_space_probe_up_matter_item", amount=10}, + {type="item", name="fu_space_probe_down_matter_item", amount=10}, + {type="item", name="fu_tech_sign_item", amount=100}, + }, + results = { + {type="item", name="fu_space_probe_science_item_1", amount=1000}, + }, + result_count = 1, + energy_required = 20, + }, + --crystals + { + name = 'fu_crystal_from_fluid_recipe', + type = 'recipe', + category = 'crafting-with-fluid', + enabled = 'false', + subgroup = 'fu_item_subgroup_a-b', + ingredients = { + {type="fluid", name="petroleum-gas", amount=400}, + {type="item", name="fi_catalyst_crystal_item", amount=1} + }, + results = { + {type="item", name="fi_energy_crystal_item", amount=1}, + }, + result_count = 1, + energy_required = 6, + }, + +}) \ No newline at end of file diff --git a/prototypes/fusion/fu_activator.lua b/prototypes/fusion/fu_activator.lua new file mode 100644 index 0000000..b813d1f --- /dev/null +++ b/prototypes/fusion/fu_activator.lua @@ -0,0 +1,143 @@ +--local functions +local function config(name) + return settings.startup['fu_activator_'..name].value +end + +local function sprite(name) + return '__248k__/ressources/fusion/fu_activator/fu_activator_'..name +end + +--item +data:extend({ + { + name = 'fu_activator_item', + type = 'item', + icon = sprite('item.png'), + icon_size = 64, + place_result = 'fu_activator_entity', + stack_size = 20, + subgroup = 'fu_item_subgroup_c', + order = 'a-a', + }, + +}) + +--entity +data:extend({ + --prototype + { + name = 'fu_activator_entity', + type = 'assembling-machine', + icon = sprite('entity_icon.png'), + icon_size = 64, + flags = {"player-creation","placeable-neutral"}, + max_health = 300, + corpse = 'big-remnants', + collision_box = {{-1.4,-1.4},{1.4,1.4}}, + selection_box = {{-1.5,-1.5},{1.5,1.5}}, + map_color = {r=0, g=0, b=1, a=1}, + minable = { + mining_time = 1, + result = 'fu_activator_item', + }, + crafting_categories = {'fu_activator_crafting_category'}, + crafting_speed = 1, + energy_source = { + type = 'burner', + fuel_inventory_size = 3, + burnt_inventory_size = 3, + effectivity = 1, + emissions_per_minute = 40, + fuel_categories = {'fi_basic_fuel','fi_advanced_fuel'} + }, + energy_usage = '50MW', + allowed_effects = {"speed", "consumption", "pollution"}, + module_specification = { + module_info_icon_shift = { + 0, + 0.8 + }, + module_slots = 2 + }, + --fluids + fluid_boxes = { + { + base_area = 1, + height = 2, + base_level = -1, + pipe_covers = pipecoverspictures(), + pipe_connections = + { + {type = "input", position = {-2, 0}} + }, + production_type = "input" + }, + { + base_area = 1, + height = 2, + base_level = 1, + pipe_covers = pipecoverspictures(), + pipe_connections = + { + {type = "output", position = {2, 0}}, + }, + production_type = "output" + }, + { + base_area = 1, + height = 2, + base_level = 1, + pipe_covers = pipecoverspictures(), + pipe_connections = + { + {type = "output", position = {0, -2}}, + }, + production_type = "output" + }, + }, + --animation + animation = { + north = { + filename = sprite('entity_animation.png'), + size = {420,448}, + scale = 0.26, + line_length = 2, + frame_count = 2, + animation_speed = 0.5, + shift = {0,-0.2} + }, + east = { + filename = sprite('entity_animation.png'), + size = {420,448}, + scale = 0.26, + line_length = 2, + frame_count = 2, + animation_speed = 0.5, + shift = {0,-0.2} + }, + south = { + filename = sprite('entity_animation.png'), + size = {420,448}, + scale = 0.26, + line_length = 2, + frame_count = 2, + animation_speed = 0.5, + shift = {0,-0.2} + }, + west = { + filename = sprite('entity_animation.png'), + size = {420,448}, + scale = 0.26, + line_length = 2, + frame_count = 2, + animation_speed = 0.5, + shift = {0,-0.2}, + }, + }, + + working_sound = { + sound = { filename = '__base__/sound/nuclear-reactor-1.ogg'}, + apparent_volume = 2.5, + }, + }, +}) \ No newline at end of file diff --git a/prototypes/fusion/fu_boiler.lua b/prototypes/fusion/fu_boiler.lua new file mode 100644 index 0000000..24f8d15 --- /dev/null +++ b/prototypes/fusion/fu_boiler.lua @@ -0,0 +1,144 @@ +--local functions +local function config(name) + return settings.startup['fu_boiler_'..name].value +end + +local function sprite(name) + return '__248k__/ressources/fusion/fu_boiler/fu_boiler_'..name +end + +--item +data:extend({ + { + name = 'fu_boiler_item', + type = 'item', + icon = sprite('item.png'), + icon_size = 64, + place_result = 'fu_boiler_entity', + stack_size = 20, + subgroup = 'fu_item_subgroup_c', + order = 'a-c', + }, + +}) + +--entity +data:extend({ + --prototype + { + name = 'fu_boiler_entity', + type = 'assembling-machine', + icon = sprite('entity_icon.png'), + icon_size = 64, + flags = {"player-creation","placeable-neutral"}, + max_health = 300, + corpse = 'big-remnants', + collision_box = {{-1.8,-1.8},{1.8,1.8}}, + selection_box = {{-2,-2},{2,2}}, + map_color = {r=0, g=0, b=1, a=1}, + minable = { + mining_time = 1, + result = 'fu_boiler_item', + }, + crafting_categories = {'fu_boiler_crafting_category'}, + crafting_speed = 1, + energy_source = { + type = 'heat', + max_temperature = 1000, + specific_heat = '100MJ', + max_transfer = '10GW', + connections = { + {position = {0.5,-1.8}, direction = defines.direction.north}, + {position = {-0.5,-1.8}, direction = defines.direction.north}, + } + }, + energy_usage = '150MW', + allowed_effects = {"speed", "productivity", "consumption", "pollution"}, + module_specification = { + module_info_icon_shift = { + 0, + 0.8 + }, + module_slots = 2 + }, + --fluids + fluid_boxes = { + { + filter = 'water', + base_area = 1, + height = 2, + base_level = -1, + pipe_covers = pipecoverspictures(), + pipe_connections = + { + {type = "input", position = {-2.5, -0.5}} + }, + production_type = "input" + }, + { + filter = 'fu_hydrogen', + base_area = 1, + height = 2, + base_level = 1, + pipe_covers = pipecoverspictures(), + pipe_connections = + { + {type = "output", position = {2.5, -0.5}}, + }, + production_type = "output" + }, + { + filter = 'fu_oxygen', + base_area = 1, + height = 2, + base_level = 1, + pipe_covers = pipecoverspictures(), + pipe_connections = + { + {type = "output", position = {0.5, 2.5}}, + }, + production_type = "output" + }, + }, + --animation + animation = { + north = { + filename = sprite('entity_animation.png'), + size = {512,512}, + scale = 0.255, + line_length = 1, + frame_count = 1, + animation_speed = 0.5, + }, + east = { + filename = sprite('entity_animation.png'), + size = {512,512}, + scale = 0.255, + line_length = 1, + frame_count = 1, + animation_speed = 0.5, + }, + south = { + filename = sprite('entity_animation.png'), + size = {512,512}, + scale = 0.255, + line_length = 1, + frame_count = 1, + animation_speed = 0.5, + }, + west = { + filename = sprite('entity_animation.png'), + size = {512,512}, + scale = 0.255, + line_length = 1, + frame_count = 1, + animation_speed = 0.5, + }, + }, + + working_sound = { + sound = { filename = '__base__/sound/nuclear-reactor-1.ogg'}, + apparent_volume = 2.5, + }, + }, +}) \ No newline at end of file diff --git a/prototypes/fusion/fu_burner.lua b/prototypes/fusion/fu_burner.lua new file mode 100644 index 0000000..3b95242 --- /dev/null +++ b/prototypes/fusion/fu_burner.lua @@ -0,0 +1,105 @@ +--local functions +local function config(name) + return settings.startup['fu_burner_'..name].value +end + +local function sprite(name) + return '__248k__/ressources/fusion/fu_burner/fu_burner_'..name +end + +--item +data:extend({ + { + name = 'fu_burner_item', + type = 'item', + icon = sprite('item.png'), + icon_size = 64, + place_result = 'fu_burner_entity', + stack_size = 20, + subgroup = 'fu_item_subgroup_c', + order = 'a-b', + }, +}) + +--entity +data:extend({ +{ + name = 'fu_burner_entity', + type = 'generator', + icon = sprite('entity_icon.png'), + icon_size = 64, + flags = {"player-creation","placeable-neutral", "not-rotatable"}, + --minable + minable = { + mining_time = 1, + result = 'fu_burner_item', + }, + max_health = 150, + corpse = 'small-remnants', + collision_box = {{-1.4,-1.4},{1.4,1.4}}, + selection_box = {{-1.5,-1.5},{1.5,1.5}}, + --energy + effectivity = 1, + energy_source = { + type = 'electric', + usage_priority = 'primary-output', + input_flow_limit = '0W', + output_flow_limit = tostring(config('power_output'))..'W', + }, + max_power_output = tostring(config('power_output'))..'W', + maximum_temperature = 40, + fluid_usage_per_tick = 1, + fluid_box = { + base_area = 1, + height = 2, + base_level = -1, + filter = 'fu_oxygen', + minimum_temperature = 0, + maximum_temperature = 40, + production_type = 'input-output', + pipe_connections = { + {type = "input-output", position = {2, 0}}, + {type = "input-output", position = {-2, 0}}, + }, + }, + fluid_input = { + name = 'fu_oxygen', + minimum_temperature = 0, + }, + --animation + vertical_animation = { + filename = sprite('entity_animation.png'), + size = {420,448}, + scale = 0.26, + line_length = 1, + frame_count = 1, + animation_speed = 0.5, + shift = {0,-0.2} + }, + horizontal_animation = { + filename = sprite('entity_animation.png'), + size = {420,448}, + scale = 0.26, + line_length = 1, + frame_count = 1, + animation_speed = 0.5, + shift = {0,-0.2} + }, + map_color = {r=0, g=0, b=1, a=1}, + working_sound = + { + sound = { filename = "__base__/sound/furnace.ogg" }, + apparent_volume = 1.5, + }, + smoke = { + { + name = 'smoke', + tape = 'trival-smoke', + frequency = 0.5, + position = {-0.6,-1.8}, + --deviation = {x = -2, y = -2}, + duration = 0.5, + }, + }, +}, +}) \ No newline at end of file diff --git a/prototypes/fusion/fu_exchanger.lua b/prototypes/fusion/fu_exchanger.lua new file mode 100644 index 0000000..d29138e --- /dev/null +++ b/prototypes/fusion/fu_exchanger.lua @@ -0,0 +1,145 @@ +--local functions +local function config(name) + return settings.startup['fu_exchanger_'..name].value +end + +local function sprite(name) + return '__248k__/ressources/fusion/fu_exchanger/fu_exchanger_'..name +end + +--item +data:extend({ + { + name = 'fu_exchanger_item', + type = 'item', + icon = sprite('item.png'), + icon_size = 64, + place_result = 'fu_exchanger_entity', + stack_size = 20, + subgroup = 'fu_item_subgroup_c', + order = 'a-c', + }, + +}) + +--entity +data:extend({ + --prototype + { + name = 'fu_exchanger_entity', + type = 'assembling-machine', + icon = sprite('entity_icon.png'), + icon_size = 64, + flags = {"player-creation","placeable-neutral"}, + max_health = 300, + corpse = 'big-remnants', + collision_box = {{-1.8,-1.8},{1.8,1.8}}, + selection_box = {{-2,-2},{2,2}}, + map_color = {r=0, g=0, b=1, a=1}, + minable = { + mining_time = 1, + result = 'fu_exchanger_item', + }, + crafting_categories = {'fu_exchanger_crafting_category'}, + crafting_speed = 1, + energy_source = { + type = 'void', + }, + energy_usage = '20MW', + allowed_effects = {"speed", "consumption", "pollution"}, + module_specification = { + module_info_icon_shift = { + 0, + 0.8 + }, + module_slots = 2 + }, + --fluids + fluid_boxes = { + { + base_area = 1, + height = 2, + base_level = -1, + pipe_covers = pipecoverspictures(), + pipe_connections = + { + {type = "input", position = {-2.5, -0.5}} + }, + production_type = "input" + }, + { + base_area = 1, + height = 2, + base_level = -1, + pipe_covers = pipecoverspictures(), + pipe_connections = + { + {type = "input", position = {-2.5, 1.5}} + }, + production_type = "input" + }, + { + base_area = 1, + height = 2, + base_level = 1, + pipe_covers = pipecoverspictures(), + pipe_connections = + { + {type = "output", position = {2.5, -0.5}}, + }, + production_type = "output" + }, + { + base_area = 1, + height = 2, + base_level = 1, + pipe_covers = pipecoverspictures(), + pipe_connections = + { + {type = "output", position = {2.5, 1.5}}, + }, + production_type = "output" + }, + }, + --animation + animation = { + north = { + filename = sprite('entity_animation.png'), + size = {480,500}, + scale = 0.27, + line_length = 1, + frame_count = 1, + animation_speed = 0.5, + }, + east = { + filename = sprite('entity_animation.png'), + size = {480,500}, + scale = 0.27, + line_length = 1, + frame_count = 1, + animation_speed = 0.5, + }, + south = { + filename = sprite('entity_animation.png'), + size = {480,500}, + scale = 0.27, + line_length = 1, + frame_count = 1, + animation_speed = 0.5, + }, + west = { + filename = sprite('entity_animation.png'), + size = {480,500}, + scale = 0.27, + line_length = 1, + frame_count = 1, + animation_speed = 0.5, + }, + }, + + working_sound = { + sound = { filename = '__base__/sound/heat-exchanger.ogg'}, + apparent_volume = 2.5, + }, + }, +}) \ No newline at end of file diff --git a/prototypes/fusion/fu_fusor.lua b/prototypes/fusion/fu_fusor.lua new file mode 100644 index 0000000..c373b1e --- /dev/null +++ b/prototypes/fusion/fu_fusor.lua @@ -0,0 +1,139 @@ +--local functions +local function config(name) + return settings.startup['fu_fusor_'..name].value +end + +local function sprite(name) + return '__248k__/ressources/fusion/fu_fusor/fu_fusor_'..name +end + +--item +data:extend({ + { + name = 'fu_fusor_item', + type = 'item', + icon = sprite('item.png'), + icon_size = 64, + place_result = 'fu_fusor_entity', + stack_size = 20, + subgroup = 'fu_item_subgroup_d', + order = 'a-a', + }, + { + name = 'fu_tech_sign_item', + type = 'item', + icon = sprite('tech_sign_item.png'), + icon_size = 64, + stack_size = 10000, + subgroup = 'fu_item_subgroup_b', + order = 'a-a', + }, + +}) + +--entity +data:extend({ + --prototype + { + name = 'fu_fusor_entity', + type = 'assembling-machine', + icon = sprite('entity_icon.png'), + icon_size = 64, + flags = {"player-creation","placeable-neutral","not-rotatable"}, + max_health = 300, + corpse = 'big-remnants', + collision_box = {{-2.8,-2.3},{2.8,2.3}}, + selection_box = {{-3,-2.5},{3,2.5}}, + map_color = {r=0, g=0, b=1, a=1}, + minable = { + mining_time = 1, + result = 'fu_fusor_item', + }, + crafting_categories = {'fu_fusor_crafting_category'}, + crafting_speed = 1, + energy_source = { + type = 'electric', + buffer_capacity = '400MJ', + usage_priority = 'secondary-input', + input_flow_limit = '600MW', + }, + energy_usage = '400MW', + allowed_effects = {"speed", "productivity", "consumption", "pollution"}, + module_specification = { + module_info_icon_shift = { + 0, + 0.8 + }, + module_slots = 2 + }, + --fluid + fluid_boxes = { + { + base_area = 1, + height = 2, + base_level = -1, + pipe_covers = pipecoverspictures(), + pipe_connections = + { + {type = "input", position = {-1.5, -3}}, + }, + production_type = "input" + }, + { + base_area = 1, + height = 2, + base_level = -1, + pipe_covers = pipecoverspictures(), + pipe_connections = + { + {type = "input", position = {1.5, -3}} + }, + production_type = "input" + }, + }, + --animation + animation = { + north = { + filename = sprite('entity_animation.png'), + size = {512*2,512*2}, + scale = 0.2, + line_length = 1, + frame_count = 1, + animation_speed = 0.5, + shift = {0,-1}, + }, + east = { + filename = sprite('entity_animation.png'), + size = {512*2,512*2}, + scale = 0.2, + line_length = 1, + frame_count = 1, + animation_speed = 0.5, + shift = {0,-1}, + }, + south = { + filename = sprite('entity_animation.png'), + size = {512*2,512*2}, + scale = 0.2, + line_length = 1, + frame_count = 1, + animation_speed = 0.5, + shift = {0,-1}, + }, + west = { + filename = sprite('entity_animation.png'), + size = {512*2,512*2}, + scale = 0.2, + line_length = 1, + frame_count = 1, + animation_speed = 0.5, + shift = {0,-1}, + }, + }, + + working_sound = { + sound = { filename = '__base__/sound/nuclear-reactor-1.ogg'}, + apparent_volume = 2.5, + }, + }, +}) \ No newline at end of file diff --git a/prototypes/fusion/fu_lead.lua b/prototypes/fusion/fu_lead.lua new file mode 100644 index 0000000..36e8b58 --- /dev/null +++ b/prototypes/fusion/fu_lead.lua @@ -0,0 +1,43 @@ +--local functions +local function config(name) + return settings.startup['el_lead_'..name].value +end + +local function sprite(name) + return '__248k__/ressources/fusion/fu_lead/fu_lead_'..name +end +--ore +data:extend({ + { + name = 'fu_lead_ore_item', + type = 'item', + icon = sprite('ore_item.png'), + icon_size = 64, + stack_size = 100, + subgroup = 'fu_item_subgroup_a', + order = 'a-a', + }, + +}) +--item +data:extend({ + { + name = 'fu_lead_item', + type = 'item', + icon = sprite('item.png'), + icon_size = 64, + stack_size = 100, + subgroup = 'fu_item_subgroup_a', + order = 'b-a', + }, + { + name = 'fu_crushed_lead_item', + type = 'item', + icon = sprite('crushed_item.png'), + icon_size = 64, + stack_size = 100, + subgroup = 'fu_item_subgroup_a-b', + order = 'c-a', + }, + +}) \ No newline at end of file diff --git a/prototypes/fusion/fu_reactor.lua b/prototypes/fusion/fu_reactor.lua new file mode 100644 index 0000000..b50b62d --- /dev/null +++ b/prototypes/fusion/fu_reactor.lua @@ -0,0 +1,277 @@ +--local functions +local function config(name) + return settings.startup['fu_stelar_reactor_'..name].value +end + +local function sprite(name) + return '__248k__/ressources/fusion/fu_reactor/fu_reactor_'..name +end + +--item +data:extend({ + { + name = 'fu_stelar_reactor_item', + type = 'item', + icon = sprite('stelar_item.png'), + icon_size = 64, + place_result = 'fu_stelar_reactor_entity', + stack_size = 20, + subgroup = 'fu_item_subgroup_d', + order = 'a-c', + }, + { + name = 'fu_tokamak_reactor_item', + type = 'item', + icon = sprite('tokamak_item.png'), + icon_size = 64, + place_result = 'fu_tokamak_reactor_entity', + stack_size = 20, + subgroup = 'fu_item_subgroup_d', + order = 'a-b', + }, +}) + +--entity +data:extend({ + --prototype + { + name = 'fu_stelar_reactor_entity', + type = 'assembling-machine', + icon = sprite('stelar_entity_icon.png'), + icon_size = 64, + flags = {"player-creation","placeable-neutral","not-rotatable"}, + max_health = 1500, + corpse = 'big-remnants', + collision_box = {{-5.8,-3.8},{5.8,5.8}}, + selection_box = {{-6,-4},{6,6}}, + map_color = {r=0, g=0, b=1, a=1}, + minable = { + mining_time = 1, + result = 'fu_stelar_reactor_item', + }, + crafting_categories = {'fu_stelar_reactor_crafting_category'}, + crafting_speed = 1, + energy_source = { + type = 'electric', + buffer_capacity = '400MJ', + usage_priority = 'secondary-input', + input_flow_limit = '600MW', + }, + energy_usage = '400MW', + --fluid + fluid_boxes = { + { + base_area = 1, + height = 2, + base_level = -1, + pipe_covers = pipecoverspictures(), + pipe_connections = + { + {type = "input", position = {-1.5, -4.5}}, + }, + production_type = "input" + }, + { + base_area = 1, + height = 2, + base_level = -1, + pipe_covers = pipecoverspictures(), + pipe_connections = + { + {type = "input", position = {1.5, -4.5}} + }, + production_type = "input" + }, + { + base_area = 1, + height = 2, + base_level = -1, + pipe_covers = pipecoverspictures(), + pipe_connections = + { + {type = "input", position = {0.5, -4.5}} + }, + production_type = "input" + }, + { + base_area = 1, + height = 2, + base_level = 1, + pipe_covers = pipecoverspictures(), + pipe_connections = + { + {type = "output", position = {-0.5, -4.5}} + }, + production_type = "output" + }, + }, + --animation + animation = { + north = { + filename = sprite('stelar_entity_animation.png'), + size = {512*2,512*2}, + scale = 0.4, + line_length = 3, + lines_per_file = 3, + frame_count = 9, + animation_speed = 0.5, + shift = {0,0.4}, + }, + east = { + filename = sprite('stelar_entity_animation.png'), + size = {512*2,512*2}, + scale = 0.4, + line_length = 3, + lines_per_file = 3, + frame_count = 9, + animation_speed = 0.5, + shift = {0,0.4}, + }, + south = { + filename = sprite('stelar_entity_animation.png'), + size = {512*2,512*2}, + scale = 0.4, + line_length = 3, + lines_per_file = 3, + frame_count = 9, + animation_speed = 0.5, + shift = {0,0.4}, + }, + west = { + filename = sprite('stelar_entity_animation.png'), + size = {512*2,512*2}, + scale = 0.4, + line_length = 3, + lines_per_file = 3, + frame_count = 9, + animation_speed = 0.5, + shift = {0,0.4}, + }, + }, + + working_sound = { + sound = { filename = '__base__/sound/nuclear-reactor-1.ogg'}, + apparent_volume = 2.5, + }, + }, + { + name = 'fu_tokamak_reactor_entity', + type = 'assembling-machine', + icon = sprite('tokamak_entity_icon.png'), + icon_size = 64, + flags = {"player-creation","placeable-neutral","not-rotatable"}, + max_health = 1500, + corpse = 'big-remnants', + collision_box = {{-5.8,-3.8},{5.8,5.8}}, + selection_box = {{-6,-4},{6,6}}, + map_color = {r=0, g=0, b=1, a=1}, + minable = { + mining_time = 1, + result = 'fu_tokamak_reactor_item', + }, + crafting_categories = {'fu_tokamak_reactor_crafting_category'}, + crafting_speed = 1, + energy_source = { + type = 'electric', + buffer_capacity = '400MJ', + usage_priority = 'secondary-input', + input_flow_limit = '600MW', + }, + energy_usage = '400MW', + --fluid + fluid_boxes = { + { + base_area = 1, + height = 2, + base_level = -1, + pipe_covers = pipecoverspictures(), + pipe_connections = + { + {type = "input", position = {-1.5, -4.5}}, + }, + production_type = "input" + }, + { + base_area = 1, + height = 2, + base_level = -1, + pipe_covers = pipecoverspictures(), + pipe_connections = + { + {type = "input", position = {1.5, -4.5}} + }, + production_type = "input" + }, + { + base_area = 1, + height = 2, + base_level = -1, + pipe_covers = pipecoverspictures(), + pipe_connections = + { + {type = "input", position = {0.5, -4.5}} + }, + production_type = "input" + }, + { + base_area = 1, + height = 2, + base_level = 1, + pipe_covers = pipecoverspictures(), + pipe_connections = + { + {type = "output", position = {-0.5, -4.5}} + }, + production_type = "output" + }, + }, + --animation + animation = { + north = { + filename = sprite('tokamak_entity_animation_vertikal.png'), + size = {512*3,512*2}, + scale = 0.37, + line_length = 3, + lines_per_file = 3, + frame_count = 9, + animation_speed = 0.5, + shift = {2.34,0.3}, + }, + east = { + filename = sprite('tokamak_entity_animation_horizontal.png'), + size = {512*3,512*2}, + scale = 0.37, + line_length = 3, + lines_per_file = 3, + frame_count = 9, + animation_speed = 0.5, + shift = {2.34,0.3}, + }, + south = { + filename = sprite('tokamak_entity_animation_vertikal.png'), + size = {512*3,512*2}, + scale = 0.37, + line_length = 3, + lines_per_file = 3, + frame_count = 9, + animation_speed = 0.5, + shift = {2.34,0.3}, + }, + west = { + filename = sprite('tokamak_entity_animation_horizontal.png'), + size = {512*3,512*2}, + scale = 0.37, + line_length = 3, + lines_per_file = 3, + frame_count = 9, + animation_speed = 0.5, + shift = {2.34,0.3}, + }, + }, + + working_sound = { + sound = { filename = '__base__/sound/nuclear-reactor-1.ogg'}, + apparent_volume = 2.5, + }, + }, +}) \ No newline at end of file diff --git a/prototypes/fusion/fu_robo.lua b/prototypes/fusion/fu_robo.lua new file mode 100644 index 0000000..bb39077 --- /dev/null +++ b/prototypes/fusion/fu_robo.lua @@ -0,0 +1,259 @@ +--local functions +local function config(name) + return settings.startup['fu_robo_'..name].value +end + +local function sprite(name) + return '__248k__/ressources/fusion/fu_robo/fu_robo_'..name +end + +--item +data:extend({ + { + name = 'fu_robo_logistic_item', + type = 'item', + icon = sprite('logistic_item.png'), + icon_size = 64, + place_result = 'fu_robo_logistic_entity', + stack_size = 50, + subgroup = 'fu_item_subgroup_d', + order = 'b-a', + }, + { + name = 'fu_robo_construction_item', + type = 'item', + icon = sprite('construction_item.png'), + icon_size = 64, + place_result = 'fu_robo_construction_entity', + stack_size = 50, + subgroup = 'fu_item_subgroup_d', + order = 'b-b', + }, +}) + +data:extend({ + { + name = 'fu_robo_logistic_entity', + type = 'logistic-robot', + icon = sprite('logistic_entity_icon.png'), + icon_size = 64, + flags = {"placeable-player", "player-creation", "placeable-off-grid", "not-on-map"}, + max_health = 800, + corpse = 'big-remnants', + collision_box = {{0, 0}, {0, 0}}, + selection_box = {{-0.5, -1.5}, {0.5, -0.5}}, + minable = { + mining_time = 1, + result = 'fu_robo_logistic_item', + }, + max_payload_size = 5, + speed = 0.24, + transfer_distance = 0.5, + max_energy = "20MJ", + energy_per_tick = "0.14kJ", + speed_multiplier_when_out_of_energy = 0.2, + energy_per_move = "10kJ", + min_to_charge = 0.2, + max_to_charge = 0.9, + cargo_centered = {0.0, 0.2}, + idle = + { + filename = sprite('logistic_entity_animation.png'), + priority = "high", + line_length = 16, + width = 128, + height = 128, + scale = 0.5, + frame_count = 1, + shift = {0,0}, + direction_count = 16, + }, + idle_with_cargo = + { + filename = sprite('logistic_entity_animation.png'), + priority = "high", + line_length = 16, + width = 128, + height = 128, + scale = 0.5, + frame_count = 1, + shift = {0,0}, + direction_count = 16, + }, + in_motion = + { + filename = sprite('logistic_entity_animation.png'), + priority = "high", + line_length = 16, + width = 128, + height = 128, + scale = 0.5, + frame_count = 1, + shift = {0,0}, + direction_count = 16, + }, + in_motion_with_cargo = + { + filename = sprite('logistic_entity_animation.png'), + priority = "high", + line_length = 16, + width = 128, + height = 128, + scale = 0.5, + frame_count = 1, + shift = {0,0}, + direction_count = 16, + }, + shadow_idle = + { + filename = "__base__/graphics/entity/logistic-robot/logistic-robot-shadow.png", + priority = "high", + line_length = 16, + width = 58, + height = 29, + frame_count = 1, + direction_count = 16, + y = 29, + draw_as_shadow = true, + }, + shadow_in_motion = + { + filename = "__base__/graphics/entity/logistic-robot/logistic-robot-shadow.png", + priority = "high", + line_length = 16, + width = 58, + height = 29, + frame_count = 1, + direction_count = 16, + draw_as_shadow = true, + }, + shadow_idle_with_cargo = + { + filename = "__base__/graphics/entity/logistic-robot/logistic-robot-shadow.png", + priority = "high", + line_length = 16, + width = 58, + height = 29, + frame_count = 1, + direction_count = 16, + draw_as_shadow = true, + }, + shadow_in_motion_with_cargo = + { + filename = "__base__/graphics/entity/logistic-robot/logistic-robot-shadow.png", + priority = "high", + line_length = 16, + width = 58, + height = 29, + frame_count = 1, + direction_count = 16, + draw_as_shadow = true, + }, + }, + { + name = 'fu_robo_construction_entity', + type = 'construction-robot', + icon = sprite('construction_entity_icon.png'), + icon_size = 64, + flags = {"placeable-player", "player-creation", "placeable-off-grid", "not-on-map"}, + max_health = 800, + corpse = 'big-remnants', + collision_box = {{0, 0}, {0, 0}}, + selection_box = {{-0.5, -1.5}, {0.5, -0.5}}, + minable = { + mining_time = 1, + result = 'fu_robo_construction_item', + }, + working_light = {intensity = 0.8, size = 3}, + max_payload_size = 5, + speed = 0.24, + transfer_distance = 0.5, + max_energy = "20MJ", + energy_per_tick = "0.14kJ", + speed_multiplier_when_out_of_energy = 0.2, + energy_per_move = "10kJ", + min_to_charge = 0.2, + max_to_charge = 0.9, + cargo_centered = {0.0, 0.2}, + construction_vector = {0.30, 0.22}, + idle = + { + filename = sprite('construction_entity_animation.png'), + priority = "high", + line_length = 16, + width = 128, + height = 128, + scale = 0.5, + frame_count = 1, + shift = {0,0}, + direction_count = 16, + }, + in_motion = + { + filename = sprite('construction_entity_animation.png'), + priority = "high", + line_length = 16, + width = 128, + height = 128, + scale = 0.5, + frame_count = 1, + shift = {0,0}, + direction_count = 16, + }, + shadow_idle = + { + filename = "__base__/graphics/entity/logistic-robot/logistic-robot-shadow.png", + priority = "high", + line_length = 16, + width = 58, + height = 29, + frame_count = 1, + direction_count = 16, + y = 29, + draw_as_shadow = true, + }, + shadow_in_motion = + { + filename = "__base__/graphics/entity/logistic-robot/logistic-robot-shadow.png", + priority = "high", + line_length = 16, + width = 58, + height = 29, + frame_count = 1, + direction_count = 16, + draw_as_shadow = true, + }, + working = + { + filename = "__base__/graphics/entity/logistic-robot/logistic-robot-shadow.png", + priority = "high", + line_length = 16, + width = 58, + height = 29, + frame_count = 1, + direction_count = 16, + draw_as_shadow = true, + }, + shadow_working = + { + filename = "__base__/graphics/entity/logistic-robot/logistic-robot-shadow.png", + priority = "high", + line_length = 16, + width = 58, + height = 29, + frame_count = 1, + direction_count = 16, + draw_as_shadow = true, + }, + 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, + }, + }, +}) \ No newline at end of file diff --git a/prototypes/fusion/fu_space_probe.lua b/prototypes/fusion/fu_space_probe.lua new file mode 100644 index 0000000..8ee0214 --- /dev/null +++ b/prototypes/fusion/fu_space_probe.lua @@ -0,0 +1,122 @@ +--local functions +local function config(name) + return settings.startup['fu_space_probe_'..name].value +end + +local function sprite(name) + return '__248k__/ressources/fusion/fu_space_probe/fu_space_probe_'..name +end + +--item +data:extend({ + --space probes + { + name = 'fu_space_probe_sputnik_item', + type = 'item', + icon = sprite('sputnik_item.png'), + icon_size = 64, + stack_size = 1, + subgroup = 'fu_item_subgroup_d', + rocket_launch_product = {'fu_space_probe_data_card_1_item',10}, + order = 'd-a', + }, + { + name = 'fu_space_probe_probe_item', + type = 'item', + icon = sprite('probe_item.png'), + icon_size = 64, + stack_size = 1, + subgroup = 'fu_item_subgroup_d', + rocket_launch_product = {'fu_space_probe_data_card_3_item',10}, + order = 'd-b', + }, + { + name = 'fu_space_probe_deep_probe_item', + type = 'item', + icon = sprite('deep_probe_item.png'), + icon_size = 64, + stack_size = 1, + subgroup = 'fu_item_subgroup_d', + rocket_launch_product = {'fu_space_probe_ore_item',100}, + order = 'd-c', + }, + --data cards + { + name = 'fu_space_probe_data_card_1_item', + type = 'item', + icon = sprite('data_card_1_item.png'), + icon_size = 64, + stack_size = 100, + subgroup = 'fu_item_subgroup_a', + order = 'd-a', + }, + { + name = 'fu_space_probe_data_card_2_item', + type = 'item', + icon = sprite('data_card_2_item.png'), + icon_size = 64, + stack_size = 100, + subgroup = 'fu_item_subgroup_a', + order = 'd-b', + }, + { + name = 'fu_space_probe_data_card_3_item', + type = 'item', + icon = sprite('data_card_3_item.png'), + icon_size = 64, + stack_size = 100, + subgroup = 'fu_item_subgroup_a', + order = 'd-c', + }, + -- matter + --ore + { + name = 'fu_space_probe_ore_item', + type = 'item', + icon = sprite('ore_item.png'), + icon_size = 64, + stack_size = 100, + subgroup = 'fu_item_subgroup_d', + order = 'd-d', + }, + { + name = 'fu_space_probe_down_matter_item', + type = 'item', + icon = sprite('down_matter_item.png'), + icon_size = 64, + stack_size = 100, + subgroup = 'fu_item_subgroup_a', + order = 'd-d', + }, + { + name = 'fu_space_probe_up_matter_item', + type = 'item', + icon = sprite('up_matter_item.png'), + icon_size = 64, + stack_size = 100, + subgroup = 'fu_item_subgroup_a', + order = 'd-e', + }, + --science + { + name = 'fu_space_probe_science_item', + type = 'tool', + icon = sprite('science_item.png'), + durability = 1, + icon_size = 64, + stack_size = 10000, + subgroup = 'fu_item_subgroup_b', + order = 'd-a', + }, + { + name = 'fu_space_probe_science_item_1', + type = 'item', + icon = sprite('science_item_1.png'), + durability = 1, + icon_size = 64, + stack_size = 10000, + subgroup = 'fu_item_subgroup_b', + order = 'd-b', + }, + +}) \ No newline at end of file diff --git a/prototypes/fusion/fu_star_engine/fu_star_engine_caster.lua b/prototypes/fusion/fu_star_engine/fu_star_engine_caster.lua new file mode 100644 index 0000000..5dd8c0d --- /dev/null +++ b/prototypes/fusion/fu_star_engine/fu_star_engine_caster.lua @@ -0,0 +1,145 @@ +--local functions +local function config(name) + return settings.startup['fu_star_engine_caster_'..name].value +end + +local function sprite(name) + return '__248k__/ressources/fusion/fu_star_engine/fu_star_engine_caster/fu_star_engine_caster_'..name +end + +--item +data:extend({ + { + name = 'fu_star_engine_caster_item', + type = 'item', + icon = sprite('item.png'), + icon_size = 64, + place_result = 'fu_star_engine_caster_entity', + stack_size = 20, + subgroup = 'fu_item_subgroup_d-b', + order = 'a-c', + }, + +}) + +--entity +data:extend({ + --prototype + { + name = 'fu_star_engine_caster_entity', + type = 'assembling-machine', + icon = sprite('entity_icon.png'), + icon_size = 64, + flags = {"player-creation","placeable-neutral","not-rotatable"}, + max_health = 300, + corpse = 'big-remnants', + collision_box = {{-1.8,-1.8},{1.8,1.8}}, + selection_box = {{-2,-2},{2,2}}, + map_color = {r=0, g=0, b=1, a=1}, + minable = { + mining_time = 1, + result = 'fu_star_engine_caster_item', + }, + crafting_categories = {'fu_star_engine_caster_crafting_category'}, + crafting_speed = 1, + energy_source = { + type = 'void', + }, + energy_usage = '20MW', + allowed_effects = {"speed", "productivity", "consumption", "pollution"}, + module_specification = { + module_info_icon_shift = { + 0, + 0.8 + }, + module_slots = 2 + }, + --fluids + fluid_boxes = { + { + base_area = 1, + height = 2, + base_level = -1, + pipe_covers = pipecoverspictures(), + pipe_connections = + { + {type = "input", position = {-2.5, -0.5}} + }, + production_type = "input" + }, + { + base_area = 1, + height = 2, + base_level = -1, + pipe_covers = pipecoverspictures(), + pipe_connections = + { + {type = "input", position = {-2.5, 1.5}} + }, + production_type = "input" + }, + { + base_area = 1, + height = 2, + base_level = 1, + pipe_covers = pipecoverspictures(), + pipe_connections = + { + {type = "output", position = {2.5, -0.5}}, + }, + production_type = "output" + }, + { + base_area = 1, + height = 2, + base_level = 1, + pipe_covers = pipecoverspictures(), + pipe_connections = + { + {type = "output", position = {2.5, 1.5}}, + }, + production_type = "output" + }, + }, + --animation + animation = { + north = { + filename = sprite('entity_animation.png'), + size = {480,500}, + scale = 0.27, + line_length = 1, + frame_count = 1, + animation_speed = 0.5, + }, + east = { + filename = sprite('entity_animation.png'), + size = {480,500}, + scale = 0.27, + line_length = 1, + frame_count = 1, + animation_speed = 0.5, + }, + south = { + filename = sprite('entity_animation.png'), + size = {480,500}, + scale = 0.27, + line_length = 1, + frame_count = 1, + animation_speed = 0.5, + }, + west = { + filename = sprite('entity_animation.png'), + size = {480,500}, + scale = 0.27, + line_length = 1, + frame_count = 1, + animation_speed = 0.5, + }, + }, + + working_sound = { + sound = { filename = '__base__/sound/heat-exchanger.ogg'}, + apparent_volume = 2.5, + }, + }, +}) \ No newline at end of file diff --git a/prototypes/fusion/fu_star_engine/fu_star_engine_cooler.lua b/prototypes/fusion/fu_star_engine/fu_star_engine_cooler.lua new file mode 100644 index 0000000..f035e22 --- /dev/null +++ b/prototypes/fusion/fu_star_engine/fu_star_engine_cooler.lua @@ -0,0 +1,174 @@ +--local functions +local function config(name) + return settings.startup['fu_star_engine_cooler_'..name].value +end + +local function sprite(name) + return '__248k__/ressources/fusion/fu_star_engine/fu_star_engine_cooler/fu_star_engine_cooler_'..name +end + +--item +data:extend({ + { + name = 'fu_star_engine_cooler_item', + type = 'item', + icon = sprite('item.png'), + icon_size = 64, + place_result = 'fu_star_engine_cooler_entity', + stack_size = 1, + subgroup = 'fu_item_subgroup_d-b', + order = 'b-b', + }, + +}) + +--entity +data:extend({ + --prototype + { + name = 'fu_star_engine_cooler_entity', + type = 'assembling-machine', + icon = sprite('entity_icon.png'), + icon_size = 64, + flags = {"player-creation","placeable-neutral","not-rotatable"}, + max_health = 300, + corpse = 'big-remnants', + collision_box = {{-6.5,-10.5},{6.5,10.5}}, + selection_box = {{-6.5,-10.5},{6.5,10.5}}, + map_color = {r=0, g=0, b=1, a=1}, + minable = { + mining_time = 1, + result = 'fu_star_engine_cooler_item', + }, + crafting_categories = {'fu_star_engine_cooler_crafting_category'}, + crafting_speed = 1, + energy_source = { + type = 'electric', + usage_priority = 'secondary-input', + input_flow_limit = '4GW', + }, + energy_usage = '0.5GW', + --fluids + fluid_boxes = { + { + base_area = 1, + height = 2, + base_level = -1, + + pipe_connections = + { + {type = "input", position = {-4, -11}} + }, + production_type = "input" + }, + { + base_area = 1, + height = 2, + base_level = -1, + + pipe_connections = + { + {type = "input", position = {4, -11}} + }, + production_type = "input" + }, + { + base_area = 1, + height = 2, + base_level = 1, + + pipe_connections = + { + {type = "output", position = {0, 11}}, + }, + production_type = "output" + }, + { + base_area = 1, + height = 2, + base_level = 1, + + pipe_connections = + { + {type = "output", position = {-2, 11}}, + }, + production_type = "output" + }, + { + base_area = 1, + height = 2, + base_level = 1, + + pipe_connections = + { + {type = "output", position = {2, 11}}, + }, + production_type = "output" + }, + { + base_area = 1, + height = 2, + base_level = 1, + + pipe_connections = + { + {type = "output", position = {-4, 11}}, + }, + production_type = "output" + }, + { + base_area = 1, + height = 2, + base_level = 1, + + pipe_connections = + { + {type = "output", position = {4, 11}}, + }, + production_type = "output" + }, + }, + --animation + animation = { + north = { + filename = sprite('entity_animation_1.png'), + size = {600*2,512*2}, + scale = 0.8, + shift = {5.5,0.5}, + line_length = 1, + lines_per_file = 1, + frame_count = 1, + animation_speed = 0.3, + }, + east = { + filename = sprite('entity_animation.png'), + size = {480,500}, + scale = 0.27, + line_length = 1, + frame_count = 1, + animation_speed = 0.5, + }, + south = { + filename = sprite('entity_animation.png'), + size = {480,500}, + scale = 0.27, + line_length = 1, + frame_count = 1, + animation_speed = 0.5, + }, + west = { + filename = sprite('entity_animation.png'), + size = {480,500}, + scale = 0.27, + line_length = 1, + frame_count = 1, + animation_speed = 0.5, + }, + }, + + working_sound = { + sound = { filename = '__base__/sound/heat-exchanger.ogg'}, + apparent_volume = 2.5, + }, + }, +}) \ No newline at end of file diff --git a/prototypes/fusion/fu_star_engine/fu_star_engine_cooler_up.lua b/prototypes/fusion/fu_star_engine/fu_star_engine_cooler_up.lua new file mode 100644 index 0000000..2456917 --- /dev/null +++ b/prototypes/fusion/fu_star_engine/fu_star_engine_cooler_up.lua @@ -0,0 +1,176 @@ +--local functions +local function config(name) + return settings.startup['fu_star_engine_cooler_up_'..name].value +end + +local function sprite(name) + return '__248k__/ressources/fusion/fu_star_engine/fu_star_engine_cooler_up/fu_star_engine_cooler_up_'..name +end + +--item +data:extend({ + { + name = 'fu_star_engine_cooler_up_item', + type = 'item', + icon = sprite('item.png'), + icon_size = 64, + place_result = 'fu_star_engine_cooler_up_entity', + stack_size = 1, + subgroup = 'fu_item_subgroup_d-b', + order = 'b-a', + }, + +}) + +--entity +data:extend({ + --prototype + { + name = 'fu_star_engine_cooler_up_entity', + type = 'assembling-machine', + icon = sprite('entity_icon.png'), + icon_size = 64, + flags = {"player-creation","placeable-neutral","not-rotatable"}, + max_health = 300, + corpse = 'big-remnants', + collision_box = {{-6.5,-10.5},{6.5,10.5}}, + selection_box = {{-6.5,-10.5},{6.5,10.5}}, + map_color = {r=0, g=0, b=1, a=1}, + minable = { + mining_time = 1, + result = 'fu_star_engine_cooler_up_item', + }, + crafting_categories = {'fu_star_engine_cooler_crafting_category'}, + crafting_speed = 1, + energy_source = { + type = 'electric', + usage_priority = 'secondary-input', + input_flow_limit = '4GW', + }, + energy_usage = '0.5GW', + --fluids + fluid_boxes = { + { + base_area = 1, + height = 2, + base_level = -1, + + pipe_connections = + { + {type = "input", position = {-4, 11}} + }, + production_type = "input" + }, + { + base_area = 1, + height = 2, + base_level = -1, + + pipe_connections = + { + {type = "input", position = {4, 11}} + }, + production_type = "input" + }, + { + base_area = 1, + height = 2, + base_level = 1, + + pipe_connections = + { + {type = "output", position = {0, -11}}, + }, + production_type = "output" + }, + { + base_area = 1, + height = 2, + base_level = 1, + + pipe_connections = + { + {type = "output", position = {-2, -11}}, + }, + production_type = "output" + }, + { + base_area = 1, + height = 2, + base_level = 1, + + pipe_connections = + { + {type = "output", position = {2, -11}}, + }, + production_type = "output" + }, + { + base_area = 1, + height = 2, + base_level = 1, + + pipe_connections = + { + {type = "output", position = {-4, -11}}, + }, + production_type = "output" + }, + { + base_area = 1, + height = 2, + base_level = 1, + + pipe_connections = + { + {type = "output", position = {4, -11}}, + }, + production_type = "output" + }, + --{-4, -11}{4, -11} + --{-2, 11}{2, 11}{0, 11}{-4, 11}{4, 11} + }, + --animation + animation = { + north = { + filename = sprite('entity_animation_1.png'), + size = {600*2,512*2}, + scale = 0.8, + shift = {5.5,-0.5}, + line_length = 1, + lines_per_file = 1, + frame_count = 1, + animation_speed = 0.3, + }, + east = { + filename = sprite('entity_animation.png'), + size = {480,500}, + scale = 0.27, + line_length = 1, + frame_count = 1, + animation_speed = 0.5, + }, + south = { + filename = sprite('entity_animation.png'), + size = {480,500}, + scale = 0.27, + line_length = 1, + frame_count = 1, + animation_speed = 0.5, + }, + west = { + filename = sprite('entity_animation.png'), + size = {480,500}, + scale = 0.27, + line_length = 1, + frame_count = 1, + animation_speed = 0.5, + }, + }, + + working_sound = { + sound = { filename = '__base__/sound/heat-exchanger.ogg'}, + apparent_volume = 2.5, + }, + }, +}) \ No newline at end of file diff --git a/prototypes/fusion/fu_star_engine/fu_star_engine_core.lua b/prototypes/fusion/fu_star_engine/fu_star_engine_core.lua new file mode 100644 index 0000000..eb0ce18 --- /dev/null +++ b/prototypes/fusion/fu_star_engine/fu_star_engine_core.lua @@ -0,0 +1,186 @@ +--local functions +local function config(name) + return settings.startup['fu_star_engine_core_'..name].value +end + +local function sprite(name) + return '__248k__/ressources/fusion/fu_star_engine/fu_star_engine_core/fu_star_engine_core_'..name +end + +--item +data:extend({ + { + name = 'fu_star_engine_core_item', + type = 'item', + icon = sprite('item.png'), + icon_size = 64, + place_result = 'fu_star_engine_core_entity', + stack_size = 1, + subgroup = 'fu_item_subgroup_d-b', + order = 'a-a', + }, + +}) + +--entity +data:extend({ + --prototype + { + name = 'fu_star_engine_core_entity', + type = 'assembling-machine', + icon = sprite('entity_icon.png'), + icon_size = 64, + flags = {"player-creation","placeable-neutral","not-rotatable"}, + max_health = 300, + corpse = 'big-remnants', + collision_box = {{-8.5,-4.5},{8.5,8.5}}, + selection_box = {{-8.5,-4.5},{8.5,8.5}}, + map_color = {r=0, g=0, b=1, a=1}, + minable = { + mining_time = 1, + result = 'fu_star_engine_core_item', + }, + crafting_categories = {'fu_star_engine_core_crafting_category'}, + crafting_speed = 1, + energy_source = { + type = 'electric', + usage_priority = 'secondary-input', + input_flow_limit = '4GW', + }, + energy_usage = '1GW', + --fluids + fluid_boxes = { + --in + --right + { + base_area = 1, + height = 2, + base_level = -1, + pipe_connections = + { + {type = "input", position = {-9, -1}} + }, + production_type = "input" + }, + { + base_area = 1, + height = 2, + base_level = -1, + pipe_connections = + { + {type = "input", position = {-9, 4}} + }, + production_type = "input" + }, + --left + { + base_area = 1, + height = 2, + base_level = -1, + pipe_connections = + { + {type = "input", position = {9, -1}} + }, + production_type = "input" + }, + { + base_area = 1, + height = 2, + base_level = -1, + pipe_connections = + { + {type = "input", position = {9, 4}} + }, + production_type = "input" + }, + --out + --up + { + base_area = 1, + height = 2, + base_level = 1, + pipe_connections = + { + {type = "output", position = {-4, -5}}, + }, + production_type = "output" + }, + { + base_area = 1, + height = 2, + base_level = 1, + pipe_connections = + { + {type = "output", position = {4, -5}}, + }, + production_type = "output" + }, + --down + { + base_area = 1, + height = 2, + base_level = 1, + pipe_connections = + { + {type = "output", position = {-4, 9}}, + }, + production_type = "output" + }, + { + base_area = 1, + height = 2, + base_level = 1, + pipe_connections = + { + {type = "output", position = {4, 9}}, + }, + production_type = "output" + }, + }, + --animation + animation = { + north = { + filename = sprite('entity_animation.png'), + size = {600*2,512*2}, + scale = 0.6, + shift = {2,0}, + line_length = 3, + lines_per_file = 3, + frame_count = 9, + animation_speed = 0.3, + }, + east = { + filename = sprite('entity_animation.png'), + size = {600*2,512*2}, + scale = 0.5, + line_length = 3, + lines_per_file = 3, + frame_count = 9, + animation_speed = 0.5, + }, + south = { + filename = sprite('entity_animation.png'), + size = {600*2,512*2}, + scale = 0.5, + line_length = 3, + lines_per_file = 3, + frame_count = 9, + animation_speed = 0.5, + }, + west = { + filename = sprite('entity_animation.png'), + size = {600*2,512*2}, + scale = 0.5, + line_length = 3, + lines_per_file = 3, + frame_count = 9, + animation_speed = 0.5, + }, + }, + + working_sound = { + sound = { filename = '__base__/sound/heat-exchanger.ogg'}, + apparent_volume = 2.5, + }, + }, +}) \ No newline at end of file diff --git a/prototypes/fusion/fu_star_engine/fu_star_engine_heater.lua b/prototypes/fusion/fu_star_engine/fu_star_engine_heater.lua new file mode 100644 index 0000000..8c386b7 --- /dev/null +++ b/prototypes/fusion/fu_star_engine/fu_star_engine_heater.lua @@ -0,0 +1,157 @@ +--local functions +local function config(name) + return settings.startup['fu_star_engine_heater_'..name].value +end + +local function sprite(name) + return '__248k__/ressources/fusion/fu_star_engine/fu_star_engine_heater/fu_star_engine_heater_'..name +end + +--item +data:extend({ + { + name = 'fu_star_engine_heater_item', + type = 'item', + icon = sprite('item.png'), + icon_size = 64, + place_result = 'fu_star_engine_heater_entity', + stack_size = 1, + subgroup = 'fu_item_subgroup_d-b', + order = 'c-b', + }, + +}) + +--entity +data:extend({ + --prototype + { + name = 'fu_star_engine_heater_entity', + type = 'assembling-machine', + icon = sprite('entity_icon.png'), + icon_size = 64, + flags = {"player-creation","placeable-neutral","not-rotatable"}, + max_health = 300, + corpse = 'big-remnants', + collision_box = {{-15,-6.5},{11,6.5}}, + selection_box = {{-15,-6.5},{11,6.5}}, + map_color = {r=0, g=0, b=1, a=1}, + minable = { + mining_time = 1, + result = 'fu_star_engine_heater_item', + }, + crafting_categories = {'fu_star_engine_heater_crafting_category'}, + crafting_speed = 1, + energy_source = { + type = 'electric', + usage_priority = 'secondary-input', + input_flow_limit = '4GW', + }, + energy_usage = '0.7GW', + --fluids + fluid_boxes = { + { + base_area = 1, + height = 2, + base_level = -1, + + pipe_connections = + { + {type = "input", position = {11.5, 0}} + }, + production_type = "input" + }, + { + base_area = 1, + height = 2, + base_level = -1, + + pipe_connections = + { + {type = "input", position = {11.5, 3}} + }, + production_type = "input" + }, + { + base_area = 1, + height = 2, + base_level = -1, + + pipe_connections = + { + {type = "input", position = {11.5, -3}} + }, + production_type = "input" + }, + { + base_area = 1, + height = 2, + base_level = 1, + + pipe_connections = + { + {type = "output", position = {-15.5, -2}}, + }, + production_type = "output" + }, + { + base_area = 1, + height = 2, + base_level = 1, + + pipe_connections = + { + {type = "output", position = {-15.5, 3}}, + }, + production_type = "output" + }, + --{-15, -3.5}}{-15, 3.5}} + --{11, 0}},{11, 3.5}},{11, -3.5}}, + }, + --animation + animation = { + north = { + filename = sprite('entity_animation.png'), + size = {600*2,512*2}, + scale = 0.8, + shift = {0.3,-0.2}, + line_length = 3, + lines_per_file = 3, + frame_count = 9, + animation_speed = 0.3, + }, + east = { + filename = sprite('entity_animation.png'), + size = {600*2,512*2}, + scale = 0.1, + line_length = 3, + lines_per_file = 3, + frame_count = 9, + animation_speed = 0.3, + }, + south = { + filename = sprite('entity_animation.png'), + size = {600*2,512*2}, + scale = 0.1, + line_length = 3, + lines_per_file = 3, + frame_count = 9, + animation_speed = 0.3, + }, + west = { + filename = sprite('entity_animation.png'), + size = {600*2,512*2}, + scale = 0.1, + line_length = 3, + lines_per_file = 3, + frame_count = 9, + animation_speed = 0.3, + }, + }, + + working_sound = { + sound = { filename = '__base__/sound/heat-exchanger.ogg'}, + apparent_volume = 2.5, + }, + }, +}) \ No newline at end of file diff --git a/prototypes/fusion/fu_star_engine/fu_star_engine_heater_left.lua b/prototypes/fusion/fu_star_engine/fu_star_engine_heater_left.lua new file mode 100644 index 0000000..dc1845a --- /dev/null +++ b/prototypes/fusion/fu_star_engine/fu_star_engine_heater_left.lua @@ -0,0 +1,157 @@ +--local functions +local function config(name) + return settings.startup['fu_star_engine_heater_left_'..name].value +end + +local function sprite(name) + return '__248k__/ressources/fusion/fu_star_engine/fu_star_engine_heater_left/fu_star_engine_heater_left_'..name +end + +--item +data:extend({ + { + name = 'fu_star_engine_heater_left_item', + type = 'item', + icon = sprite('item.png'), + icon_size = 64, + place_result = 'fu_star_engine_heater_left_entity', + stack_size = 1, + subgroup = 'fu_item_subgroup_d-b', + order = 'c-a', + }, + +}) + +--entity +data:extend({ + --prototype + { + name = 'fu_star_engine_heater_left_entity', + type = 'assembling-machine', + icon = sprite('entity_icon.png'), + icon_size = 64, + flags = {"player-creation","placeable-neutral","not-rotatable"}, + max_health = 300, + corpse = 'big-remnants', + collision_box = {{-15,-6.5},{11,6.5}}, + selection_box = {{-15,-6.5},{11,6.5}}, + map_color = {r=0, g=0, b=1, a=1}, + minable = { + mining_time = 1, + result = 'fu_star_engine_heater_left_item', + }, + crafting_categories = {'fu_star_engine_heater_crafting_category'}, + crafting_speed = 1, + energy_source = { + type = 'electric', + usage_priority = 'secondary-input', + input_flow_limit = '4GW', + }, + energy_usage = '0.7GW', + --fluids + fluid_boxes = { + { + base_area = 1, + height = 2, + base_level = -1, + + pipe_connections = + { + {type = "input", position = {-15.5, 0}} + }, + production_type = "input" + }, + { + base_area = 1, + height = 2, + base_level = -1, + + pipe_connections = + { + {type = "input", position = {-15.5, 3}} + }, + production_type = "input" + }, + { + base_area = 1, + height = 2, + base_level = -1, + + pipe_connections = + { + {type = "input", position = {-15.5, -3}} + }, + production_type = "input" + }, + { + base_area = 1, + height = 2, + base_level = 1, + + pipe_connections = + { + {type = "output", position = {11.5, -2}}, + }, + production_type = "output" + }, + { + base_area = 1, + height = 2, + base_level = 1, + + pipe_connections = + { + {type = "output", position = {11.5, 3}}, + }, + production_type = "output" + }, + --{-15, -3.5}}{-15, 3.5}} + --{11, 0}},{11, 3.5}},{11, -3.5}}, + }, + --animation + animation = { + north = { + filename = sprite('entity_animation.png'), + size = {600*2,512*2}, + scale = 0.8, + shift = {0.3-5+0.1,-0.2}, + line_length = 3, + lines_per_file = 3, + frame_count = 9, + animation_speed = 0.3, + }, + east = { + filename = sprite('entity_animation.png'), + size = {600*2,512*2}, + scale = 0.1, + line_length = 3, + lines_per_file = 3, + frame_count = 9, + animation_speed = 0.3, + }, + south = { + filename = sprite('entity_animation.png'), + size = {600*2,512*2}, + scale = 0.1, + line_length = 3, + lines_per_file = 3, + frame_count = 9, + animation_speed = 0.3, + }, + west = { + filename = sprite('entity_animation.png'), + size = {600*2,512*2}, + scale = 0.1, + line_length = 3, + lines_per_file = 3, + frame_count = 9, + animation_speed = 0.3, + }, + }, + + working_sound = { + sound = { filename = '__base__/sound/heat-exchanger.ogg'}, + apparent_volume = 2.5, + }, + }, +}) \ No newline at end of file diff --git a/prototypes/gr_recipes.lua b/prototypes/gr_recipes.lua new file mode 100644 index 0000000..e9c244f --- /dev/null +++ b/prototypes/gr_recipes.lua @@ -0,0 +1,752 @@ +data:extend({ + --crafter + { + name = 'gr_crafter_recipe', + type = 'recipe', + enabled = 'false', + ingredients = { + {'fi_crafter_item',2}, + {'fi_industrial_steel_item',100}, + {'fi_compound_material_item',100}, + {'gr_materials_fusion_cell_item',1}, + {'processing-unit',50} + }, + result = 'gr_crafter_item', + result_count = 1, + energy_required = 6, + }, + { + name = 'gr_materials_fusion_cell_recipe', + type = 'recipe', + enabled = 'false', + category = 'fi_crafting_category', + ingredients = { + {'fu_space_probe_up_matter_item',1}, + {'fu_tech_sign_item',40}, + {'fusion-reactor-equipment',1} + }, + result = 'gr_materials_fusion_cell_item', + result_count = 1, + energy_required = 35, + }, + { + name = 'gr_materials_stack_down_item_recipe', + type = 'recipe', + enabled = 'false', + ingredients = { + {'fu_space_probe_down_matter_item',3}, + {'low-density-structure',10}, + {'fu_space_probe_data_card_3_item',2}, + }, + result = 'gr_materials_stack_down_item', + result_count = 1, + energy_required = 10, + }, + { + name = 'gr_materials_stack_up_item_recipe', + type = 'recipe', + enabled = 'false', + ingredients = { + {'fu_space_probe_up_matter_item',3}, + {'low-density-structure',10}, + {'fu_space_probe_data_card_3_item',2}, + }, + result = 'gr_materials_stack_up_item', + result_count = 1, + energy_required = 10, + }, + { + name = 'gr_wheel_recipe', + type = 'recipe', + category = 'crafting-with-fluid', + enabled = 'false', + subgroup = 'fu_star_engine_subgroup_e', + ingredients = { + {type="fluid", name="fu_iron", amount=500}, + }, + results = { + {type="item", name="iron-gear-wheel", amount=500}, + }, + result_count = 1, + energy_required = 6, + }, + { + name = 'gr_steel_recipe', + type = 'recipe', + category = 'crafting-with-fluid', + enabled = 'false', + subgroup = 'fu_star_engine_subgroup_e', + ingredients = { + {type="fluid", name="fu_iron", amount=500}, + }, + results = { + {type="item", name="steel-plate", amount=500}, + }, + result_count = 1, + energy_required = 6, + }, + --train + { + name = 'gr_magnet_train_recipe', + type = 'recipe', + enabled = 'false', + ingredients = { + {type="item", name="gr_materials_fusion_cell_item", amount=4}, + {type="item", name="low-density-structure", amount=100}, + {type="item", name="gr_materials_stack_up_item", amount=4}, + {type="item", name="copper-cable", amount=1000}, + {type="item", name="gr_magnet_train_pre_item", amount=1}, + }, + results = { + {type="item", name="gr_magnet_train_item", amount=1}, + }, + result_count = 1, + energy_required = 6, + }, + { + name = 'gr_magnet_wagon_recipe', + type = 'recipe', + enabled = 'false', + ingredients = { + {type="item", name="gr_materials_fusion_cell_item", amount=2}, + {type="item", name="low-density-structure", amount=100}, + {type="item", name="gr_materials_stack_down_item", amount=2}, + {type="item", name="copper-cable", amount=1000}, + {type="item", name="gr_magnet_wagon_pre_item", amount=1}, + }, + results = { + {type="item", name="gr_magnet_wagon_item", amount=1}, + }, + result_count = 1, + energy_required = 6, + }, + { + name = 'gr_magnet_tanker_recipe', + type = 'recipe', + enabled = 'false', + ingredients = { + {type="item", name="gr_materials_fusion_cell_item", amount=2}, + {type="item", name="low-density-structure", amount=100}, + {type="item", name="gr_materials_stack_down_item", amount=2}, + {type="item", name="copper-cable", amount=1000}, + {type="item", name="gr_magnet_tanker_pre_item", amount=1}, + }, + results = { + {type="item", name="gr_magnet_tanker_item", amount=1}, + }, + result_count = 1, + energy_required = 6, + }, + { + name = 'gr_magnet_train_pre_recipe', + type = 'recipe', + enabled = 'false', + ingredients = { + {type="item", name="gr_materials_fusion_cell_item", amount=4}, + {type="item", name="low-density-structure", amount=100}, + {type="item", name="iron-plate", amount=100}, + {type="item", name="copper-cable", amount=1000}, + {type="item", name="el_diesel_train_item", amount=1}, + }, + results = { + {type="item", name="gr_magnet_train_pre_item", amount=1}, + }, + result_count = 1, + energy_required = 6, + }, + { + name = 'gr_magnet_wagon_pre_recipe', + type = 'recipe', + enabled = 'false', + ingredients = { + {type="item", name="gr_materials_fusion_cell_item", amount=2}, + {type="item", name="low-density-structure", amount=100}, + {type="item", name="iron-plate", amount=100}, + {type="item", name="copper-cable", amount=1000}, + {type="item", name="cargo-wagon", amount=1}, + }, + results = { + {type="item", name="gr_magnet_wagon_pre_item", amount=1}, + }, + result_count = 1, + energy_required = 6, + }, + { + name = 'gr_magnet_tanker_pre_recipe', + type = 'recipe', + enabled = 'false', + ingredients = { + {type="item", name="gr_materials_fusion_cell_item", amount=2}, + {type="item", name="low-density-structure", amount=100}, + {type="item", name="iron-plate", amount=100}, + {type="item", name="copper-cable", amount=1000}, + {type="item", name="fluid-wagon", amount=1}, + }, + results = { + {type="item", name="gr_magnet_tanker_pre_item", amount=1}, + }, + result_count = 1, + energy_required = 6, + }, + --kovarex for matter + { + name = 'gr_kovarex_recipe', + type = 'recipe', + category = 'centrifuging', + enabled = 'false', + main_product = 'fu_space_probe_up_matter_item', + ingredients = { + {type="item", name="fu_space_probe_down_matter_item", amount=10} + }, + results = { + {type="item", name="fu_space_probe_down_matter_item", amount=9}, + {type="item", name="fu_space_probe_up_matter_item", amount=1} + }, + result_count = 1, + energy_required = 100, + always_show_made_in = true + }, + --cooker + { + name = 'gr_cooker_recipe', + type = 'recipe', + enabled = 'false', + main_product = 'gr_cooker_item', + ingredients = { + {'fi_industrial_steel_item',200}, + {'fi_compound_material_item',200}, + {'processing-unit',100}, + {'pipe',60} + }, + results = { + {type="item", name="gr_cooker_item", amount=1} + }, + result_count = 1, + energy_required = 5 + }, + { + name = 'gr_cooker_fluid_recipe', + type = 'recipe', + category = 'gr_cooker_fluid', + enabled = 'false', + main_product = 'gr_materials_cooked_crystal_item', + ingredients = { + {type="fluid", name="water", amount=1000}, + {type="item", name="fi_crushed_crystal_item", amount=1} + }, + results = { + {type="item", name="gr_materials_cooked_crystal_item", amount=1} + }, + result_count = 1, + energy_required = 60, + always_show_made_in = true + }, + { + name = 'gr_cooked_crystal_recipe', + type = 'recipe', + category = 'chemistry', + enabled = 'false', + main_product = 'gr_materials_refined_crystal_item', + ingredients = { + {type="item", name="gr_materials_cooked_crystal_item", amount=1}, + {type="fluid", name="petroleum-gas", amount=100} + }, + results = { + {type="item", name="gr_materials_refined_crystal_item", amount=1} + }, + result_count = 1, + energy_required = 30, + always_show_made_in = true + }, + { + name = 'gr_refined_crystal_recipe', + type = 'recipe', + category = 'centrifuging', + enabled = 'false', + main_product = 'fi_energy_crystal_item', + subgroup = 'gr_item_subgroup_a', + ingredients = { + {type="item", name="gr_materials_refined_crystal_item", amount=1} + }, + results = { + {type="item", name="fi_energy_crystal_item", amount=1}, + {type="item", name="el_energy_crystal_item", amount=4} + }, + result_count = 1, + energy_required = 10, + always_show_made_in = true + }, + --charger + { + name = 'gr_charger_recipe', + type = 'recipe', + enabled = 'false', + main_product = 'gr_charger_item', + ingredients = { + {'low-density-structure',100}, + {'fi_industrial_steel_item',400}, + {'fi_compound_material_item',400}, + {'fu_tech_sign_item',1000}, + {'concrete',500}, + {'lab',10}, + {'processing-unit',500} + }, + results = { + {type="item", name="gr_charger_item", amount=1} + }, + result_count = 1, + energy_required = 5 + }, + { + name = 'gr_stabilizer_recipe', + type = 'recipe', + category = 'gr_charger_category', + enabled = 'false', + main_product = 'gr_materials_stabilizer_item', + ingredients = { + {'gr_materials_crushed_exotic_item',1}, + {'fi_energy_crystal_item',20}, + {'fu_tech_sign_item',100}, + }, + results = { + {type="item", name="gr_materials_stabilizer_item", amount=2} + }, + result_count = 1, + energy_required = 10, + always_show_made_in = true + }, + { + name = 'gr_crushed_exotic_recipe', + type = 'recipe', + enabled = 'false', + category = 'fi_crushing', + ingredients = { + {'fu_space_probe_ore_item',1}, + }, + result = 'gr_materials_crushed_exotic_item', + result_count = 1, + energy_required = 20, + always_show_made_in = true + }, + { + name = 'gr_black_hole_recipe', + type = 'recipe', + enabled = 'false', + ingredients = { + {'fu_star_engine_core_item',1}, + {'fu_star_engine_heater_left_item',1}, + {'fu_star_engine_heater_item',1}, + {'fu_star_engine_cooler_up_item',1}, + {'fu_star_engine_cooler_item',1}, + {'gr_materials_stack_up_item',40}, + {'gr_materials_stack_down_item',40}, + }, + result = 'gr_black_hole_item', + result_count = 1, + energy_required = 200, + }, + { + name = 'gr_white_hole_recipe', + type = 'recipe', + enabled = 'false', + ingredients = { + {'fu_star_engine_core_item',1}, + {'fu_star_engine_heater_left_item',1}, + {'fu_star_engine_heater_item',1}, + {'fu_star_engine_cooler_up_item',1}, + {'fu_star_engine_cooler_item',1}, + {'gr_materials_stack_up_item',40}, + {'gr_materials_stack_down_item',40}, + }, + result = 'gr_white_hole_item', + result_count = 1, + energy_required = 200, + }, + { + name = 'gr_lab_recipe', + type = 'recipe', + enabled = 'false', + ingredients = { + {'gr_materials_stack_up_item',10}, + {'gr_materials_stack_down_item',10}, + {'lab',40}, + {'fi_industrial_steel_item',100}, + {'fi_compound_material_item',100}, + }, + result = 'gr_lab_item', + result_count = 1, + energy_required = 200, + }, + --endgame + + { + name = 'gr_red_data_recipe', + type = 'recipe', + enabled = 'false', + category = 'fu_fusor_crafting_category', + ingredients = { + {'automation-science-pack',100}, + {'gr_materials_data_item',1} + }, + result = 'gr_materials_red_data_item', + result_count = 1, + energy_required = 10, + always_show_made_in = true + }, + { + name = 'gr_red_recipe', + type = 'recipe', + enabled = 'false', + category = 'fu_fusor_crafting_category', + ingredients = { + {'gr_materials_red_data_item',36}, + }, + result = 'gr_materials_red_item', + result_count = 1, + energy_required = 100, + always_show_made_in = true + }, + + + { + name = 'gr_green_data_recipe', + type = 'recipe', + enabled = 'false', + category = 'fu_fusor_crafting_category', + ingredients = { + {'logistic-science-pack',100}, + {'gr_materials_data_item',1} + }, + result = 'gr_materials_green_data_item', + result_count = 1, + energy_required = 10, + always_show_made_in = true + }, + { + name = 'gr_green_recipe', + type = 'recipe', + enabled = 'false', + category = 'fu_fusor_crafting_category', + ingredients = { + {'gr_materials_green_data_item',72}, + {'gr_materials_red_item',2} + }, + result = 'gr_materials_green_item', + result_count = 1, + energy_required = 100, + always_show_made_in = true + }, + + + { + name = 'gr_blue_data_recipe', + type = 'recipe', + enabled = 'false', + category = 'fu_fusor_crafting_category', + ingredients = { + {'chemical-science-pack',100}, + {'gr_materials_data_item',1} + }, + result = 'gr_materials_blue_data_item', + result_count = 1, + energy_required = 10, + always_show_made_in = true + }, + { + name = 'gr_blue_recipe', + type = 'recipe', + enabled = 'false', + category = 'fu_fusor_crafting_category', + ingredients = { + {'gr_materials_blue_data_item',155}, + {'gr_materials_green_item',2} + }, + result = 'gr_materials_blue_item', + result_count = 1, + energy_required = 100, + always_show_made_in = true + }, + + + { + name = 'gr_purple_data_recipe', + type = 'recipe', + enabled = 'false', + category = 'fu_fusor_crafting_category', + ingredients = { + {'production-science-pack',100}, + {'gr_materials_data_item',1} + }, + result = 'gr_materials_purple_data_item', + result_count = 1, + energy_required = 10, + always_show_made_in = true + }, + { + name = 'gr_purple_recipe', + type = 'recipe', + enabled = 'false', + category = 'fu_fusor_crafting_category', + ingredients = { + {'gr_materials_purple_data_item',310}, + {'gr_materials_blue_item',2} + }, + result = 'gr_materials_purple_item', + result_count = 1, + energy_required = 100, + always_show_made_in = true + }, + + + { + name = 'gr_yellow_data_recipe', + type = 'recipe', + enabled = 'false', + category = 'fu_fusor_crafting_category', + ingredients = { + {'utility-science-pack',100}, + {'gr_materials_data_item',1} + }, + result = 'gr_materials_yellow_data_item', + result_count = 1, + energy_required = 10, + always_show_made_in = true + }, + { + name = 'gr_yellow_recipe', + type = 'recipe', + enabled = 'false', + category = 'fu_fusor_crafting_category', + ingredients = { + {'gr_materials_yellow_data_item',620}, + {'gr_materials_purple_item',2} + }, + result = 'gr_materials_yellow_item', + result_count = 1, + energy_required = 100, + always_show_made_in = true + }, + + + + { + name = 'gr_grey_data_recipe', + type = 'recipe', + enabled = 'false', + category = 'fu_fusor_crafting_category', + ingredients = { + {'space-science-pack',100}, + {'gr_materials_data_item',1} + }, + result = 'gr_materials_grey_data_item', + result_count = 1, + energy_required = 10, + always_show_made_in = true + }, + { + name = 'gr_grey_recipe', + type = 'recipe', + enabled = 'false', + category = 'fu_fusor_crafting_category', + ingredients = { + {'gr_materials_grey_data_item',1240}, + {'gr_materials_yellow_item',2} + }, + result = 'gr_materials_grey_item', + result_count = 1, + energy_required = 100, + always_show_made_in = true + }, + + + { + name = 'gr_white_data_recipe', + type = 'recipe', + enabled = 'false', + category = 'fu_fusor_crafting_category', + ingredients = { + {'fu_space_probe_science_item',100}, + {'gr_materials_data_item',1} + }, + result = 'gr_materials_white_data_item', + result_count = 1, + energy_required = 10, + always_show_made_in = true + }, + { + name = 'gr_white_recipe', + type = 'recipe', + enabled = 'false', + category = 'fu_fusor_crafting_category', + ingredients = { + {'gr_materials_white_data_item',2480}, + {'gr_materials_grey_item',2} + }, + result = 'gr_materials_white_item', + result_count = 1, + energy_required = 100, + always_show_made_in = true + }, + + + + + + + + { + name = 'gr_data_recipe', + type = 'recipe', + enabled = 'false', + category = 'fu_fusor_crafting_category', + ingredients = { + {'gr_materials_crushed_exotic_item',1}, + {'gr_materials_stabilizer_item',1}, + {'processing-unit',100}, + {'fi_modules_base_item',10} + }, + result = 'gr_materials_data_item', + result_count = 1, + energy_required = 10, + always_show_made_in = true + }, + { + name = 'gr_stacked_data_recipe', + type = 'recipe', + enabled = 'false', + category = 'fu_fusor_crafting_category', + ingredients = { + {'gr_materials_data_item',3}, + {'gr_materials_stack_up_item',1}, + {'gr_materials_stack_down_item',1} + }, + result = 'gr_materials_stacked_data_item', + result_count = 1, + energy_required = 10, + always_show_made_in = true + }, + + { + name = 'gr_red_pack_recipe', + type = 'recipe', + enabled = 'false', + category = 'gr_charger_category', + ingredients = { + {'automation-science-pack',100}, + {'gr_materials_stacked_data_item',1} + }, + result = 'gr_materials_red_pack_item', + result_count = 100, + energy_required = 10, + always_show_made_in = true + }, + { + name = 'gr_green_pack_recipe', + type = 'recipe', + enabled = 'false', + category = 'gr_charger_category', + ingredients = { + {'logistic-science-pack',100}, + {'gr_materials_stacked_data_item',1} + }, + result = 'gr_materials_green_pack_item', + result_count = 100, + energy_required = 10, + always_show_made_in = true + }, + { + name = 'gr_blue_pack_recipe', + type = 'recipe', + enabled = 'false', + category = 'gr_charger_category', + ingredients = { + {'chemical-science-pack',100}, + {'gr_materials_stacked_data_item',1} + }, + result = 'gr_materials_blue_pack_item', + result_count = 100, + energy_required = 10, + always_show_made_in = true + }, + { + name = 'gr_purple_pack_recipe', + type = 'recipe', + enabled = 'false', + category = 'gr_charger_category', + ingredients = { + {'production-science-pack',100}, + {'gr_materials_stacked_data_item',1} + }, + result = 'gr_materials_purple_pack_item', + result_count = 100, + energy_required = 10, + always_show_made_in = true + }, + { + name = 'gr_yellow_pack_recipe', + type = 'recipe', + enabled = 'false', + category = 'gr_charger_category', + ingredients = { + {'utility-science-pack',100}, + {'gr_materials_stacked_data_item',1} + }, + result = 'gr_materials_yellow_pack_item', + result_count = 100, + energy_required = 10, + always_show_made_in = true + }, + { + name = 'gr_grey_pack_recipe', + type = 'recipe', + enabled = 'false', + category = 'gr_charger_category', + ingredients = { + {'space-science-pack',100}, + {'gr_materials_stacked_data_item',1} + }, + result = 'gr_materials_grey_pack_item', + result_count = 100, + energy_required = 10, + always_show_made_in = true + }, + { + name = 'gr_white_pack_recipe', + type = 'recipe', + enabled = 'false', + category = 'gr_charger_category', + ingredients = { + {'fu_space_probe_science_item',100}, + {'gr_materials_stacked_data_item',1} + }, + result = 'gr_materials_white_pack_item', + result_count = 100, + energy_required = 10, + always_show_made_in = true + }, + { + name = 'gr_materials_charge_recipe', + type = 'recipe', + enabled = 'false', + ingredients = { + {'fu_space_probe_science_item',100}, + {'low-density-structure',40}, + {'gr_materials_fusion_cell_item',10}, + {'discharge-defense-equipment',10} + }, + result = 'gr_materials_charge_item', + result_count = 1, + energy_required = 10, + }, + { + name = 'gr_materials_charge_remote_recipe', + type = 'recipe', + enabled = 'false', + ingredients = { + {'gr_materials_fusion_cell_item',1} + }, + result = 'gr_materials_charge_remote', + result_count = 1, + energy_required = 10, + }, +}) \ No newline at end of file diff --git a/prototypes/gravitation/gr_black_hole.lua b/prototypes/gravitation/gr_black_hole.lua new file mode 100644 index 0000000..c8669f1 --- /dev/null +++ b/prototypes/gravitation/gr_black_hole.lua @@ -0,0 +1,77 @@ +--local functions +local function config(name) + return settings.startup['gr_black_hole_'..name].value +end + +local function sprite(name) + return '__248k__/ressources/gravitation/gr_black_hole/gr_black_hole_'..name +end + +--item +data:extend({ + { + name = 'gr_black_hole_item', + type = 'item', + icon = sprite('item.png'), + icon_size = 64, + place_result = 'gr_black_hole_base_entity', + stack_size = 1, + subgroup = 'gr_item_subgroup_c', + order = 'e-a', + }, + { + name = 'gr_black_hole_base_entity', + type = 'container', + icon = sprite('item.png'), + icon_size = 64, + collision_box = {{-5.8,-3.8},{5.8,5.8}}, + selection_box = {{-6,-4},{6,6}}, + selection_priority = 60, + picture = { + filename = sprite('base_animation.png'), + width = 512*2, + height = 512*2, + scale = 0.4, + }, + inventory_size = 80, + flags = {"player-creation","placeable-neutral","not-rotatable"}, + max_health = 1500, + corpse = 'big-remnants', + map_color = {r=1, g=0, b=0, a=0.5}, + minable = { + mining_time = 1, + result = 'gr_black_hole_item', + }, + integration_patch_render_layer = "higher-object-under" + }, + { + name = "gr_black_hole_energy_entity", + type = "electric-energy-interface", + energy_source = { + type = "electric", + render_no_power_icon = false, + buffer_capacity = "10YJ", + usage_priority = "primary-output", + max_input_flow = "0W", + --drain = "1GW" + }, + light = { + type = 'basic', + intensity = 10, + size = 20, + color = {r=0,g=0,b=0.75} + }, + render_layer = "higher-object-above", + animation = { + filename = sprite('working_animation.png'), + size = {512*2,512*2}, + scale = 0.4, + line_length = 4, + frame_count = 4, + animation_speed = 0.5 + }, + continuous_animation = true + } +}) + + diff --git a/prototypes/gravitation/gr_charger.lua b/prototypes/gravitation/gr_charger.lua new file mode 100644 index 0000000..02267f3 --- /dev/null +++ b/prototypes/gravitation/gr_charger.lua @@ -0,0 +1,99 @@ +--local functions +local function config(name) + return settings.startup['gr_charger_'..name].value +end + +local function sprite(name) + return '__248k__/ressources/gravitation/gr_charger/gr_charger_'..name +end + +--item +data:extend({ + { + name = 'gr_charger_item', + type = 'item', + icon = sprite('entity_icon.png'), + icon_size = 64, + place_result = 'gr_charger_entity', + stack_size = 20, + subgroup = 'gr_item_subgroup_c', + order = 'a-a', + } +}) + +--entity +data:extend({ + --prototype + { + name = 'gr_charger_entity', + type = 'assembling-machine', + icon = sprite('entity_icon.png'), + icon_size = 64, + flags = {"player-creation","placeable-neutral"}, + max_health = 300, + corpse = 'big-remnants', + collision_box = {{-1.4,-1.4},{1.4,1.4}}, + selection_box = {{-1.5,-1.5},{1.5,1.5}}, + map_color = {r=0, g=0, b=1, a=1}, + minable = { + mining_time = 1, + result = 'gr_charger_item', + }, + crafting_categories = {"gr_charger_category"}, + crafting_speed = 1, + energy_source = { + type = 'heat', + max_temperature = 1000, + specific_heat = '100MJ', + max_transfer = '10GW', + connections = { + {position = {0,-1.5}, direction = defines.direction.north}, + {position = {0,1.4}, direction = defines.direction.south}, + {position = {1.4,0}, direction = defines.direction.east}, + {position = {-1.5,0}, direction = defines.direction.west} + } + }, + energy_usage = '150MW', + --animation + animation = { + north = { + filename = sprite('entity_animation.png'), + size = {480,448}, + scale = 0.2, + line_length = 4, + frame_count = 4, + animation_speed = 0.5, + }, + east = { + filename = sprite('entity_animation.png'), + size = {480,448}, + scale = 0.2, + line_length = 4, + frame_count = 4, + animation_speed = 0.5, + }, + south = { + filename = sprite('entity_animation.png'), + size = {480,448}, + scale = 0.2, + line_length = 4, + frame_count = 4, + animation_speed = 0.5, + }, + west = { + filename = sprite('entity_animation.png'), + size = {480,448}, + scale = 0.2, + line_length = 4, + frame_count = 4, + animation_speed = 0.5, + }, + }, + + working_sound = { + sound = { filename = '__base__/sound/assembling-machine-t3-1.ogg'}, + idle_sound = { filename = "__base__/sound/idle1.ogg", volume = 0.6 }, + apparent_volume = 0.7, + }, + }, +}) \ No newline at end of file diff --git a/prototypes/gravitation/gr_cooker.lua b/prototypes/gravitation/gr_cooker.lua new file mode 100644 index 0000000..1e7d3b0 --- /dev/null +++ b/prototypes/gravitation/gr_cooker.lua @@ -0,0 +1,145 @@ +--local functions +local function config(name) + return settings.startup['gr_cooker_'..name].value +end + +local function sprite(name) + return '__248k__/ressources/gravitation/gr_cooker/gr_cooker_'..name +end + +--item +data:extend({ + { + name = 'gr_cooker_item', + type = 'item', + icon = sprite('item.png'), + icon_size = 64, + place_result = 'gr_cooker_entity', + stack_size = 20, + subgroup = 'gr_item_subgroup_c', + order = 'a-b', + }, + +}) + +--entity +data:extend({ + --prototype + { + name = 'gr_cooker_entity', + type = 'assembling-machine', + icon = sprite('item.png'), + icon_size = 64, + flags = {"player-creation","placeable-neutral"}, + max_health = 300, + corpse = 'big-remnants', + collision_box = {{-2.4,-2.4},{2.4,2.4}}, + selection_box = {{-2.5,-2.5},{2.5,2.5}}, + map_color = {r=0, g=0, b=1, a=1}, + minable = { + mining_time = 1, + result = 'gr_cooker_item', + }, + crafting_categories = {'gr_cooker_fluid'}, + crafting_speed = 1, + ingredient_count = 2, + --fixed_recipe = 'el_water_pressure_recipe', + energy_source = { + type = 'electric', + usage_priority = 'secondary-input', + input_flow_limit = '400MW', + }, + energy_usage = '4MW', + fluid_boxes = { + { + base_area = 1, + height = 2, + base_level = -1, + pipe_covers = pipecoverspictures(), + pipe_connections = + { + {type = "input", position = {0, -3}}, + }, + production_type = "input" + }, + { + base_area = 1, + height = 2, + base_level = -1, + pipe_covers = pipecoverspictures(), + pipe_connections = + { + {type = "input", position = {-3, 0}} + }, + production_type = "input" + }, + { + base_area = 1, + height = 2, + base_level = -1, + pipe_covers = pipecoverspictures(), + pipe_connections = + { + {type = "input", position = {3, 0}}, + --{type = "output", position = {2, -2.5}} + }, + production_type = "input" + }, + { + base_area = 1, + height = 2, + base_level = -1, + pipe_covers = pipecoverspictures(), + pipe_connections = + { + {type = "input", position = {0, 3}}, + }, + production_type = "input" + }, + }, + --animation + animation = { + north = { + filename = sprite('entity_animation.png'), + size = {512,512}, + scale = 0.32, + line_length = 4, + frame_count = 4, + animation_speed = 0.2, + shift = {0, -0.2} + }, + east = { + filename = sprite('entity_animation.png'), + size = {512,512}, + scale = 0.32, + line_length = 4, + frame_count = 4, + animation_speed = 0.2, + shift = {0, -0.2} + }, + south = { + filename = sprite('entity_animation.png'), + size = {512,512}, + scale = 0.32, + line_length = 4, + frame_count = 4, + animation_speed = 0.2, + shift = {0, -0.2} + }, + west = { + filename = sprite('entity_animation.png'), + size = {512,512}, + scale = 0.32, + line_length = 4, + frame_count = 4, + animation_speed = 0.2, + shift = {0, -0.2} + }, + }, + working_sound = + { + sound = {filename = "__base__/sound/chemical-plant-3.ogg" }, + apparent_volume = 0.3, + }, + }, +}) \ No newline at end of file diff --git a/prototypes/gravitation/gr_crafter.lua b/prototypes/gravitation/gr_crafter.lua new file mode 100644 index 0000000..863e85e --- /dev/null +++ b/prototypes/gravitation/gr_crafter.lua @@ -0,0 +1,103 @@ +--local functions +local function config(name) + return settings.startup['gr_crafter_'..name].value +end + +local function sprite(name) + return '__248k__/ressources/gravitation/gr_crafter/gr_crafter_'..name +end + +--item +data:extend({ + { + name = 'gr_crafter_item', + type = 'item', + icon = sprite('entity_icon.png'), + icon_size = 64, + place_result = 'gr_crafter_entity', + stack_size = 20, + subgroup = 'gr_item_subgroup_c', + order = 'a-a', + }, + +}) + +--entity +data:extend({ + --prototype + { + name = 'gr_crafter_entity', + type = 'assembling-machine', + icon = sprite('entity_icon.png'), + icon_size = 64, + flags = {"player-creation","placeable-neutral"}, + max_health = 300, + corpse = 'big-remnants', + collision_box = {{-1.4,-1.4},{1.4,1.4}}, + selection_box = {{-1.5,-1.5},{1.5,1.5}}, + map_color = {r=0, g=0, b=1, a=1}, + minable = { + mining_time = 1, + result = 'gr_crafter_item', + }, + crafting_categories = {'advanced-crafting','crafting','smelting','fi_crafting_category'}, + crafting_speed = 10, + energy_source = { + type = 'void', + }, + energy_usage = '1W', + allowed_effects = {"speed", "productivity", "consumption", "pollution"}, + module_specification = { + module_info_icon_shift = { + 0, + 0.8 + }, + module_slots = 4 + }, + --animation + animation = { + north = { + filename = sprite('entity_animation.png'), + size = {480,448}, + scale = 0.2, + line_length = 3, + lines_per_file = 3, + frame_count = 4, + animation_speed = 0.5, + }, + east = { + filename = sprite('entity_animation.png'), + size = {480,448}, + scale = 0.2, + line_length = 3, + lines_per_file = 3, + frame_count = 4, + animation_speed = 0.5, + }, + south = { + filename = sprite('entity_animation.png'), + size = {480,448}, + scale = 0.2, + line_length = 3, + lines_per_file = 3, + frame_count = 4, + animation_speed = 0.5, + }, + west = { + filename = sprite('entity_animation.png'), + size = {480,448}, + scale = 0.2, + line_length = 3, + lines_per_file = 3, + frame_count = 4, + animation_speed = 0.5, + }, + }, + + working_sound = { + sound = { filename = '__base__/sound/assembling-machine-t3-1.ogg'}, + idle_sound = { filename = "__base__/sound/idle1.ogg", volume = 0.6 }, + apparent_volume = 0.7, + }, + }, +}) \ No newline at end of file diff --git a/prototypes/gravitation/gr_lab.lua b/prototypes/gravitation/gr_lab.lua new file mode 100644 index 0000000..8c8817d --- /dev/null +++ b/prototypes/gravitation/gr_lab.lua @@ -0,0 +1,84 @@ +--local functions +local function config(name) + return settings.startup['gr_lab_'..name].value +end + +local function sprite(name) + return '__248k__/ressources/gravitation/gr_lab/gr_lab_'..name +end + +--item +data:extend({ + { + name = 'gr_lab_item', + type = 'item', + icon = sprite('item.png'), + icon_size = 64, + place_result = 'gr_lab_entity', + stack_size = 20, + subgroup = 'gr_item_subgroup_c', + order = 'a-a', + } +}) + +--entity +data:extend({ + --prototype + { + name = 'gr_lab_entity', + type = 'lab', + icon = sprite('item.png'), + icon_size = 64, + flags = {"player-creation","placeable-neutral"}, + max_health = 300, + corpse = 'big-remnants', + collision_box = {{-4,-4},{4,4}}, + selection_box = {{-4,-4},{4,4}}, + map_color = {r=0, g=0, b=1, a=1}, + minable = { + mining_time = 1, + result = 'gr_lab_item', + }, + crafting_speed = 1, + energy_source = { + type = "electric", + usage_priority = "secondary-input", + drain = "20MW" + }, + energy_usage = "500MW", + --animation + + inputs = { + "gr_materials_red_pack_item", + "gr_materials_green_pack_item", + "gr_materials_blue_pack_item", + "gr_materials_purple_pack_item", + "gr_materials_yellow_pack_item", + "gr_materials_grey_pack_item", + "gr_materials_white_pack_item" + }, + + off_animation = { + filename = sprite('off_animation.png'), + size = {512,512}, + scale = 0.6, + line_length = 1, + frame_count = 1, + animation_speed = 0.1 + }, + on_animation = { + filename = sprite('animation.png'), + size = {512,512}, + scale = 0.6, + line_length = 5, + frame_count = 5, + animation_speed = 0.1 + }, + + working_sound = { + sound = { filename = '__base__/sound/assembling-machine-t3-1.ogg'}, + idle_sound = { filename = "__base__/sound/idle1.ogg", volume = 0.6 }, + apparent_volume = 0.7, + }, + }, +}) \ No newline at end of file diff --git a/prototypes/gravitation/gr_materials.lua b/prototypes/gravitation/gr_materials.lua new file mode 100644 index 0000000..eb3aabd --- /dev/null +++ b/prototypes/gravitation/gr_materials.lua @@ -0,0 +1,406 @@ +--local functions +local function config(name) + return settings.startup['gr_materials_'..name].value +end + +local function sprite(name) + return '__248k__/ressources/gravitation/gr_materials/gr_materials_'..name +end + +--item +data:extend({ + { + name = 'gr_materials_fusion_cell_item', + type = 'item', + icon = sprite('fusion_cell_item.png'), + icon_size = 64, + stack_size = 10, + subgroup = 'gr_item_subgroup_a', + order = 'a-c', + }, + { + name = 'gr_materials_stack_down_item', + type = 'item', + icon = sprite('stack_down_item.png'), + icon_size = 64, + stack_size = 100, + subgroup = 'gr_item_subgroup_a', + order = 'a-a', + }, + { + name = 'gr_materials_stack_up_item', + type = 'item', + icon = sprite('stack_up_item.png'), + icon_size = 64, + stack_size = 100, + subgroup = 'gr_item_subgroup_a', + order = 'a-b', + }, + { + name = 'gr_materials_cooked_crystal_item', + type = 'item', + icon = sprite('cooked_crystal_item.png'), + icon_size = 64, + stack_size = 10, + subgroup = 'gr_item_subgroup_a', + order = 'a-d', + }, + { + name = 'gr_materials_refined_crystal_item', + type = 'item', + icon = sprite('refined_crystal_item.png'), + icon_size = 64, + stack_size = 10, + subgroup = 'gr_item_subgroup_a', + order = 'a-e', + }, + { + name = 'gr_materials_crushed_exotic_item', + type = 'item', + icon = sprite('crushed_exotic_item.png'), + icon_size = 64, + stack_size = 20, + subgroup = 'gr_item_subgroup_a', + order = 'a-f', + }, + { + name = 'gr_materials_stabilizer_item', + type = 'item', + icon = sprite('stabilizer_item.png'), + icon_size = 64, + stack_size = 100, + subgroup = 'gr_item_subgroup_a', + order = 'a-g', + }, + + + + { + name = 'gr_materials_red_item', + type = 'item', + icon = sprite('red_item.png'), + icon_size = 64, + stack_size = 2, + subgroup = 'gr_item_subgroup_f', + order = 'c-a', + }, + { + name = 'gr_materials_red_data_item', + type = 'item', + icon = sprite('red_data_item.png'), + icon_size = 64, + stack_size = 10000, + subgroup = 'gr_item_subgroup_f', + order = 'b-a', + }, + { + name = 'gr_materials_green_item', + type = 'item', + icon = sprite('green_item.png'), + icon_size = 64, + stack_size = 2, + subgroup = 'gr_item_subgroup_f', + order = 'c-b', + }, + { + name = 'gr_materials_green_data_item', + type = 'item', + icon = sprite('green_data_item.png'), + icon_size = 64, + stack_size = 10000, + subgroup = 'gr_item_subgroup_f', + order = 'b-b', + }, + { + name = 'gr_materials_blue_item', + type = 'item', + icon = sprite('blue_item.png'), + icon_size = 64, + stack_size = 2, + subgroup = 'gr_item_subgroup_f', + order = 'c-c', + }, + { + name = 'gr_materials_blue_data_item', + type = 'item', + icon = sprite('blue_data_item.png'), + icon_size = 64, + stack_size = 10000, + subgroup = 'gr_item_subgroup_f', + order = 'b-c', + }, + { + name = 'gr_materials_purple_item', + type = 'item', + icon = sprite('purple_item.png'), + icon_size = 64, + stack_size = 2, + subgroup = 'gr_item_subgroup_f', + order = 'c-d', + }, + { + name = 'gr_materials_purple_data_item', + type = 'item', + icon = sprite('purple_data_item.png'), + icon_size = 64, + stack_size = 10000, + subgroup = 'gr_item_subgroup_f', + order = 'b-d', + }, + { + name = 'gr_materials_yellow_item', + type = 'item', + icon = sprite('yellow_item.png'), + icon_size = 64, + stack_size = 2, + subgroup = 'gr_item_subgroup_f', + order = 'c-e', + }, + { + name = 'gr_materials_yellow_data_item', + type = 'item', + icon = sprite('yellow_data_item.png'), + icon_size = 64, + stack_size = 10000, + subgroup = 'gr_item_subgroup_f', + order = 'b-e', + }, + { + name = 'gr_materials_grey_item', + type = 'item', + icon = sprite('grey_item.png'), + icon_size = 64, + stack_size = 2, + subgroup = 'gr_item_subgroup_f', + order = 'c-f', + }, + { + name = 'gr_materials_grey_data_item', + type = 'item', + icon = sprite('grey_data_item.png'), + icon_size = 64, + stack_size = 10000, + subgroup = 'gr_item_subgroup_f', + order = 'b-f', + }, + { + name = 'gr_materials_white_item', + type = 'item', + icon = sprite('white_item.png'), + icon_size = 64, + stack_size = 1, + subgroup = 'gr_item_subgroup_f', + order = 'c-g', + }, + { + name = 'gr_materials_white_data_item', + type = 'item', + icon = sprite('white_data_item.png'), + icon_size = 64, + stack_size = 10000, + subgroup = 'gr_item_subgroup_f', + order = 'b-g', + }, + + + { + name = 'gr_materials_data_item', + type = 'item', + icon = sprite('data_item.png'), + icon_size = 64, + stack_size = 500, + subgroup = 'gr_item_subgroup_a', + order = 'f-a', + }, + { + name = 'gr_materials_stacked_data_item', + type = 'item', + icon = sprite('data_stacked_item.png'), + icon_size = 64, + stack_size = 100, + subgroup = 'gr_item_subgroup_a', + order = 'f-b', + }, + + { + name = 'gr_materials_red_pack_item', + type = 'tool', + durability = 1, + icon = sprite('red_pack_item.png'), + icon_size = 64, + stack_size = 10000, + subgroup = 'gr_item_subgroup_f', + order = 'a-a', + }, + { + name = 'gr_materials_green_pack_item', + type = 'tool', + durability = 1, + icon = sprite('green_pack_item.png'), + icon_size = 64, + stack_size = 10000, + subgroup = 'gr_item_subgroup_f', + order = 'a-b', + }, + { + name = 'gr_materials_blue_pack_item', + type = 'tool', + durability = 1, + icon = sprite('blue_pack_item.png'), + icon_size = 64, + stack_size = 10000, + subgroup = 'gr_item_subgroup_f', + order = 'a-c', + }, + { + name = 'gr_materials_purple_pack_item', + type = 'tool', + durability = 1, + icon = sprite('purple_pack_item.png'), + icon_size = 64, + stack_size = 10000, + subgroup = 'gr_item_subgroup_f', + order = 'a-d', + }, + { + name = 'gr_materials_yellow_pack_item', + type = 'tool', + durability = 1, + icon = sprite('yellow_pack_item.png'), + icon_size = 64, + stack_size = 10000, + subgroup = 'gr_item_subgroup_f', + order = 'a-e', + }, + { + name = 'gr_materials_grey_pack_item', + type = 'tool', + durability = 1, + icon = sprite('grey_pack_item.png'), + icon_size = 64, + stack_size = 10000, + subgroup = 'gr_item_subgroup_f', + order = 'a-f', + }, + { + name = 'gr_materials_white_pack_item', + type = 'tool', + durability = 1, + icon = sprite('white_pack_item.png'), + icon_size = 64, + stack_size = 10000, + subgroup = 'gr_item_subgroup_f', + order = 'a-g', + }, + + { + name = 'gr_materials_charge_item', + type = 'item', + icon = sprite('charge_item.png'), + icon_size = 64, + stack_size = 20, + subgroup = 'gr_item_subgroup_b', + placed_as_equipment_result = 'gr_materials_charge_item', + order = 'c-a', + }, + { + name = 'gr_materials_charge_item', + type = 'active-defense-equipment', + attack_parameters = + { + type = "projectile", + ammo_category = "electric", + damage_modifier = 100, + cooldown = 100, + projectile_center = {0, 0}, + projectile_creation_distance = 0.6, + range = 500, + sound = + { + filename = "__base__/sound/fight/pulse.ogg", + volume = 0.7 + }, + ammo_type = + { + type = "projectile", + category = "electric", + energy_consumption = "20MJ", + action = + { + { + type = "area", + radius = 250, + force = "enemy", + action_delivery = + { + { + type = "instant", + target_effects = + { + { + type = "create-sticker", + sticker = "stun-sticker" + }, + { + type = "push-back", + distance = 4 + } + } + }, + { + type = "beam", + beam = "electric-beam-no-sound", + max_length = 500, + duration = 60, + source_offset = {0, -0.5}, + add_to_shooter = false + } + } + } + } + } + }, + automatic = false, + ability_icon = + { + filename = "__base__/graphics/icons/discharge-defense-equipment-controller.png", + flags = { "icon" }, + mipmap_count = 4, + size = 64, + priority = "extra-high-no-scale" + }, + categories = {'armor'}, + sprite = { + filename = sprite('charge_entity.png'), + width = 256, + height = 256, + priority = 'medium', + }, + shape = { + width = 3, + height = 3, + type = "full", + }, + energy_source = { + type = 'electric', + usage_priority = 'primary-input', + buffer_capacity = "40MJ" + }, + + }, + { + type = "capsule", + name = "gr_materials_charge_remote", + icon = "__base__/graphics/icons/discharge-defense-equipment-controller.png", + icon_size = 64, icon_mipmaps = 4, + capsule_action = + { + type = "equipment-remote", + equipment = "gr_materials_charge_item" + }, + subgroup = 'gr_item_subgroup_b', + order = "c-b", + stack_size = 1 + }, + +}) \ No newline at end of file diff --git a/prototypes/gravitation/gr_train.lua b/prototypes/gravitation/gr_train.lua new file mode 100644 index 0000000..db6020d --- /dev/null +++ b/prototypes/gravitation/gr_train.lua @@ -0,0 +1,675 @@ +--local functions +local function config(name) + return settings.startup['gr_magnet_train_'..name].value +end + +local function sprite(name) + return '__248k__/ressources/gravitation/gr_magnet_train/gr_magnet_train_'..name +end + +--item +data:extend({ + { + name = 'gr_magnet_train_item', + type = 'item-with-entity-data', + icon = sprite('item.png'), + icon_size = 64, + place_result = 'gr_magnet_train_entity', + stack_size = 20, + subgroup = 'gr_item_subgroup_b', + order = 'b-a', + }, + { + name = 'gr_magnet_wagon_item', + type = 'item-with-entity-data', + icon = sprite('wagon_item.png'), + icon_size = 64, + place_result = 'gr_magnet_wagon_entity', + stack_size = 20, + subgroup = 'gr_item_subgroup_b', + order = 'b-b', + }, + { + name = 'gr_magnet_tanker_item', + type = 'item-with-entity-data', + icon = sprite('wagon_item.png'), + icon_size = 64, + place_result = 'gr_magnet_tanker_entity', + stack_size = 20, + subgroup = 'gr_item_subgroup_b', + order = 'b-c', + }, +}) + +--entity +data:extend({ + { + name = 'gr_magnet_train_entity', + type = 'locomotive', + icon = sprite('item.png'), + icon_size = 64, + flags = {"player-creation","placeable-neutral","placeable-off-grid"}, + max_health = 1200, + corpse = "medium-remnants", + dying_explosion = "medium-explosion", + collision_box = {{-0.6, -2.6}, {0.6, 2.6}}, + selection_box = {{-1, -3}, {1, 3}}, + drawing_box = {{-1, -4}, {1, 3}}, + connection_distance = 3, + joint_distance = 4, + wheels = standard_train_wheels, + rail_category = "regular", + 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.2, + allow_manual_color = false, + minable = { + mining_time = 1, + result = 'gr_magnet_train_item', + }, + --stats + max_speed = 4.0, + max_power = '40kW', + braking_force = 1, + friction_force = 0.00025, + air_resistance = 0.0001, + vertical_selection_shift = -0.5, + energy_per_hit_point = 8, + reversing_power_modifier = 0.5, + weight = 10, + --burner + energy_source = {type = "void"}, + --light + 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.3, -10}, + size = 1, + intensity = 1.5, + }, + { + type = "oriented", + minimum_darkness = 0.3, + picture = { + filename = "__core__/graphics/light-cone.png", + priority = "medium", + scale = 2, + width = 200, + height = 200, + }, + shift = {0.3, -10}, + size = 1, + intensity = 1.5, + }, + }, + --animation + pictures = { + priority = "low", + width = 512, + height = 512, + direction_count = 128, + filenames = {sprite('animation_1.png'),sprite('animation_2.png')}, + line_length = 8, + lines_per_file = 8, + shift = {0.2, -0.6}, + scale = 0.5, + }, + wheels = { + priority = "low", + width = 512/2, + height = 512/2, + direction_count = 128, + filenames = {sprite('wheels_animation.png'),sprite('wheels_animation.png')}, + line_length = 8, + lines_per_file = 8, + shift = {0.2, -0.6}, + scale = 0.5, + }, + --minimap + minimap_representation = { + filename = "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-minimap-representation.png", + flags = {"icon"}, + size = {20, 40}, + scale = 0.5, + }, + selected_minimap_representation = { + filename = "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-selected-minimap-representation.png", + flags = {"icon"}, + size = {20, 40}, + scale = 0.5, + }, + --stop trigger + stop_trigger = { + -- left side + { + type = "create-trivial-smoke", + repeat_count = 75, + smoke_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-trivial-smoke", + repeat_count = 75, + smoke_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, + } + }, + }, + }, + working_sound = { + sound = { filename ='__base__/sound/train-engine.ogg'}, + apparent_volume = 0.5, + }, + vehicle_impact_sound = { + filename = "__base__/sound/car-metal-impact-6.ogg", + volume = 0.8 + }, + + }, + { + name = 'gr_magnet_wagon_entity', + type = 'cargo-wagon', + icon = sprite('wagon_item.png'), + icon_size = 64, + flags = {"player-creation","placeable-neutral","placeable-off-grid"}, + max_health = 1200, + corpse = "medium-remnants", + dying_explosion = "medium-explosion", + collision_box = {{-0.6, -2.6}, {0.6, 2.6}}, + selection_box = {{-1, -3}, {1, 3}}, + drawing_box = {{-1, -4}, {1, 3}}, + connection_distance = 3, + joint_distance = 4, + wheels = standard_train_wheels, + rail_category = "regular", + 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.2, + allow_manual_color = false, + minable = { + mining_time = 1, + result = 'gr_magnet_wagon_item', + }, + --stats + max_speed = 4.0, + friction_force = 0.00125, + air_resistance = 0.00125, + braking_force = 1, + vertical_selection_shift = -0.5, + energy_per_hit_point = 8, + weight = 10, + inventory_size = 80, + --animation + pictures = { + priority = "low", + width = 512, + height = 512, + direction_count = 128, + filenames = {sprite('wagon_animation.png'),sprite('wagon_animation.png')}, + line_length = 8, + lines_per_file = 8, + shift = {0.2, -0.6}, + scale = 0.5, + }, + wheels = { + priority = "low", + width = 512/2, + height = 512/2, + direction_count = 128, + filenames = {sprite('wheels_animation.png'),sprite('wheels_animation.png')}, + line_length = 8, + lines_per_file = 8, + shift = {0.2, -0.6}, + scale = 0.5, + }, + --minimap + minimap_representation = { + filename = "__base__/graphics/entity/cargo-wagon/cargo-wagon-minimap-representation.png", + flags = {"icon"}, + size = {20, 40}, + scale = 0.5, + }, + selected_minimap_representation = { + filename = "__base__/graphics/entity/cargo-wagon/cargo-wagon-selected-minimap-representation.png", + flags = {"icon"}, + size = {20, 40}, + scale = 0.5, + }, + vehicle_impact_sound = { + filename = "__base__/sound/car-metal-impact-6.ogg", + volume = 0.8 + }, + }, + { + name = 'gr_magnet_tanker_entity', + type = 'fluid-wagon', + icon = sprite('wagon_item.png'), + icon_size = 64, + flags = {"player-creation","placeable-neutral","placeable-off-grid"}, + max_health = 1200, + corpse = "medium-remnants", + dying_explosion = "medium-explosion", + collision_box = {{-0.6, -2.6}, {0.6, 2.6}}, + selection_box = {{-1, -3}, {1, 3}}, + drawing_box = {{-1, -4}, {1, 3}}, + connection_distance = 3, + joint_distance = 4, + wheels = standard_train_wheels, + rail_category = "regular", + 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.2, + allow_manual_color = false, + minable = { + mining_time = 1, + result = 'gr_magnet_tanker_item', + }, + --stats + max_speed = 4.0, + friction_force = 0.00125, + air_resistance = 0.00125, + braking_force = 1, + vertical_selection_shift = -0.5, + energy_per_hit_point = 8, + weight = 10, + capacity = 200000, + tank_count = 3, + --animation + pictures = { + priority = "low", + width = 512, + height = 512, + direction_count = 128, + filenames = {sprite('wagon_animation.png'),sprite('wagon_animation.png')}, + line_length = 8, + lines_per_file = 8, + shift = {0.2, -0.6}, + scale = 0.5, + }, + wheels = { + priority = "low", + width = 512/2, + height = 512/2, + direction_count = 128, + filenames = {sprite('wheels_animation.png'),sprite('wheels_animation.png')}, + line_length = 8, + lines_per_file = 8, + shift = {0.2, -0.6}, + scale = 0.5, + }, + --minimap + minimap_representation = { + filename = "__base__/graphics/entity/cargo-wagon/cargo-wagon-minimap-representation.png", + flags = {"icon"}, + size = {20, 40}, + scale = 0.5, + }, + selected_minimap_representation = { + filename = "__base__/graphics/entity/cargo-wagon/cargo-wagon-selected-minimap-representation.png", + flags = {"icon"}, + size = {20, 40}, + scale = 0.5, + }, + vehicle_impact_sound = { + filename = "__base__/sound/car-metal-impact-6.ogg", + volume = 0.8 + }, + }, + --=================================================== + --pre + --=================================================== + { + name = 'gr_magnet_train_pre_item', + type = 'item-with-entity-data', + icon = sprite('pre_item.png'), + icon_size = 64, + place_result = 'gr_magnet_train_pre_entity', + stack_size = 20, + subgroup = 'gr_item_subgroup_b', + order = 'b-a', + }, + { + name = 'gr_magnet_wagon_pre_item', + type = 'item-with-entity-data', + icon = sprite('wagon_pre_item.png'), + icon_size = 64, + place_result = 'gr_magnet_wagon_pre_entity', + stack_size = 20, + subgroup = 'gr_item_subgroup_b', + order = 'b-b', + }, + { + name = 'gr_magnet_tanker_pre_item', + type = 'item-with-entity-data', + icon = sprite('wagon_pre_item.png'), + icon_size = 64, + place_result = 'gr_magnet_tanker_pre_entity', + stack_size = 20, + subgroup = 'gr_item_subgroup_b', + order = 'b-c', + }, + { + name = 'gr_magnet_train_pre_entity', + type = 'locomotive', + icon = sprite('pre_item.png'), + icon_size = 64, + flags = {"player-creation","placeable-neutral","placeable-off-grid"}, + max_health = 1200, + corpse = "medium-remnants", + dying_explosion = "medium-explosion", + collision_box = {{-0.6, -2.6}, {0.6, 2.6}}, + selection_box = {{-1, -3}, {1, 3}}, + drawing_box = {{-1, -4}, {1, 3}}, + connection_distance = 3, + joint_distance = 4, + wheels = standard_train_wheels, + rail_category = "regular", + 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.2, + allow_manual_color = false, + minable = { + mining_time = 1, + result = 'gr_magnet_train_pre_item', + }, + --stats + max_speed = 2, + max_power = '40kW', + braking_force = 1, + friction_force = 0.00025, + air_resistance = 0.0001, + vertical_selection_shift = -0.5, + energy_per_hit_point = 8, + reversing_power_modifier = 0.5, + weight = 10, + --burner + energy_source = {type = "void"}, + --light + 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.3, -10}, + size = 1, + intensity = 1.5, + }, + { + type = "oriented", + minimum_darkness = 0.3, + picture = { + filename = "__core__/graphics/light-cone.png", + priority = "medium", + scale = 2, + width = 200, + height = 200, + }, + shift = {0.3, -10}, + size = 1, + intensity = 1.5, + }, + }, + --animation + pictures = { + priority = "low", + width = 512, + height = 512, + direction_count = 128, + filenames = {sprite('pre_animation_1.png'),sprite('pre_animation_2.png')}, + line_length = 8, + lines_per_file = 8, + shift = {0.2, -0.6}, + scale = 0.5, + }, + wheels = { + priority = "low", + width = 512/2, + height = 512/2, + direction_count = 128, + filenames = {sprite('wheels_animation.png'),sprite('wheels_animation.png')}, + line_length = 8, + lines_per_file = 8, + shift = {0.2, -0.6}, + scale = 0.5, + }, + --minimap + minimap_representation = { + filename = "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-minimap-representation.png", + flags = {"icon"}, + size = {20, 40}, + scale = 0.5, + }, + selected_minimap_representation = { + filename = "__base__/graphics/entity/diesel-locomotive/diesel-locomotive-selected-minimap-representation.png", + flags = {"icon"}, + size = {20, 40}, + scale = 0.5, + }, + --stop trigger + stop_trigger = { + -- left side + { + type = "create-trivial-smoke", + repeat_count = 75, + smoke_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-trivial-smoke", + repeat_count = 75, + smoke_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, + } + }, + }, + }, + working_sound = { + sound = { filename ='__base__/sound/train-engine.ogg'}, + apparent_volume = 0.5, + }, + vehicle_impact_sound = { + filename = "__base__/sound/car-metal-impact-6.ogg", + volume = 0.8 + }, + + }, + { + name = 'gr_magnet_wagon_pre_entity', + type = 'cargo-wagon', + icon = sprite('wagon_pre_item.png'), + icon_size = 64, + flags = {"player-creation","placeable-neutral","placeable-off-grid"}, + max_health = 1200, + corpse = "medium-remnants", + dying_explosion = "medium-explosion", + collision_box = {{-0.6, -2.6}, {0.6, 2.6}}, + selection_box = {{-1, -3}, {1, 3}}, + drawing_box = {{-1, -4}, {1, 3}}, + connection_distance = 3, + joint_distance = 4, + wheels = standard_train_wheels, + rail_category = "regular", + 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.2, + allow_manual_color = false, + minable = { + mining_time = 1, + result = 'gr_magnet_wagon_pre_item', + }, + --stats + max_speed = 1.5, + friction_force = 0.00125, + air_resistance = 0.00125, + braking_force = 1, + vertical_selection_shift = -0.5, + energy_per_hit_point = 8, + weight = 10, + inventory_size = 40, + --animation + pictures = { + priority = "low", + width = 512, + height = 512, + direction_count = 128, + filenames = {sprite('wagon_pre_animation.png'),sprite('wagon_pre_animation.png')}, + line_length = 8, + lines_per_file = 8, + shift = {0.2, -0.6}, + scale = 0.5, + }, + wheels = { + priority = "low", + width = 512/2, + height = 512/2, + direction_count = 128, + filenames = {sprite('wheels_animation.png'),sprite('wheels_animation.png')}, + line_length = 8, + lines_per_file = 8, + shift = {0.2, -0.6}, + scale = 0.5, + }, + --minimap + minimap_representation = { + filename = "__base__/graphics/entity/cargo-wagon/cargo-wagon-minimap-representation.png", + flags = {"icon"}, + size = {20, 40}, + scale = 0.5, + }, + selected_minimap_representation = { + filename = "__base__/graphics/entity/cargo-wagon/cargo-wagon-selected-minimap-representation.png", + flags = {"icon"}, + size = {20, 40}, + scale = 0.5, + }, + vehicle_impact_sound = { + filename = "__base__/sound/car-metal-impact-6.ogg", + volume = 0.8 + }, + }, + { + name = 'gr_magnet_tanker_pre_entity', + type = 'fluid-wagon', + icon = sprite('wagon_pre_item.png'), + icon_size = 64, + flags = {"player-creation","placeable-neutral","placeable-off-grid"}, + max_health = 1200, + corpse = "medium-remnants", + dying_explosion = "medium-explosion", + collision_box = {{-0.6, -2.6}, {0.6, 2.6}}, + selection_box = {{-1, -3}, {1, 3}}, + drawing_box = {{-1, -4}, {1, 3}}, + connection_distance = 3, + joint_distance = 4, + wheels = standard_train_wheels, + rail_category = "regular", + 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.2, + allow_manual_color = false, + minable = { + mining_time = 1, + result = 'gr_magnet_tanker_pre_item', + }, + --stats + max_speed = 1.5, + friction_force = 0.00125, + air_resistance = 0.00125, + braking_force = 1, + vertical_selection_shift = -0.5, + energy_per_hit_point = 8, + weight = 10, + capacity = 100000, + tank_count = 3, + --animation + pictures = { + priority = "low", + width = 512, + height = 512, + direction_count = 128, + filenames = {sprite('wagon_pre_animation.png'),sprite('wagon_pre_animation.png')}, + line_length = 8, + lines_per_file = 8, + shift = {0.2, -0.6}, + scale = 0.5, + }, + wheels = { + priority = "low", + width = 512/2, + height = 512/2, + direction_count = 128, + filenames = {sprite('wheels_animation.png'),sprite('wheels_animation.png')}, + line_length = 8, + lines_per_file = 8, + shift = {0.2, -0.6}, + scale = 0.5, + }, + --minimap + minimap_representation = { + filename = "__base__/graphics/entity/cargo-wagon/cargo-wagon-minimap-representation.png", + flags = {"icon"}, + size = {20, 40}, + scale = 0.5, + }, + selected_minimap_representation = { + filename = "__base__/graphics/entity/cargo-wagon/cargo-wagon-selected-minimap-representation.png", + flags = {"icon"}, + size = {20, 40}, + scale = 0.5, + }, + vehicle_impact_sound = { + filename = "__base__/sound/car-metal-impact-6.ogg", + volume = 0.8 + }, + }, +}) \ No newline at end of file diff --git a/prototypes/gravitation/gr_white_hole.lua b/prototypes/gravitation/gr_white_hole.lua new file mode 100644 index 0000000..2b367dd --- /dev/null +++ b/prototypes/gravitation/gr_white_hole.lua @@ -0,0 +1,57 @@ +--local functions +local function config(name) + return settings.startup['gr_white_hole_'..name].value +end + +local function sprite(name) + return '__248k__/ressources/gravitation/gr_white_hole/gr_white_hole_'..name +end + +--item +data:extend({ + { + name = 'gr_white_hole_item', + type = 'item', + icon = sprite('item.png'), + icon_size = 64, + place_result = 'gr_white_hole_entity', + stack_size = 1, + subgroup = 'gr_item_subgroup_c', + order = 'e-a', + }, + { + name = "gr_white_hole_entity", + type = "furnace", + icon = sprite('item.png'), + icon_size = 64, + collision_box = {{-5.8,-5.8},{5.8,5.8}}, + selection_box = {{-6,-6},{6,6}}, + max_health = 1500, + corpse = 'big-remnants', + map_color = {r=1, g=0, b=0, a=0.5}, + minable = { + mining_time = 1, + result = 'gr_white_hole_item', + }, + result_inventory_size = 1, + source_inventory_size = 1, + crafting_categories = {"gr_white_hole_category"}, + crafting_speed = 1, + energy_source = { + type = "electric", + usage_priority = "secondary-input", + drain = "1TW" + }, + energy_usage = "1TW", + animation = { + filename = sprite('animation.png'), + size = {512*2,512*2}, + scale = 0.4, + line_length = 4, + frame_count = 4, + animation_speed = 0.1 + }, + } +}) + + diff --git a/ressources/booktorio/Thumbs.db b/ressources/booktorio/Thumbs.db new file mode 100644 index 0000000..2b5d930 Binary files /dev/null and b/ressources/booktorio/Thumbs.db differ diff --git a/ressources/booktorio/bk_sprite_1.png b/ressources/booktorio/bk_sprite_1.png new file mode 100644 index 0000000..09cc9b4 Binary files /dev/null and b/ressources/booktorio/bk_sprite_1.png differ diff --git a/ressources/booktorio/bk_sprite_10.PNG b/ressources/booktorio/bk_sprite_10.PNG new file mode 100644 index 0000000..07989d1 Binary files /dev/null and b/ressources/booktorio/bk_sprite_10.PNG differ diff --git a/ressources/booktorio/bk_sprite_2.png b/ressources/booktorio/bk_sprite_2.png new file mode 100644 index 0000000..e558f43 Binary files /dev/null and b/ressources/booktorio/bk_sprite_2.png differ diff --git a/ressources/booktorio/bk_sprite_3.png b/ressources/booktorio/bk_sprite_3.png new file mode 100644 index 0000000..070708b Binary files /dev/null and b/ressources/booktorio/bk_sprite_3.png differ diff --git a/ressources/booktorio/bk_sprite_6.png b/ressources/booktorio/bk_sprite_6.png new file mode 100644 index 0000000..b87143e Binary files /dev/null and b/ressources/booktorio/bk_sprite_6.png differ diff --git a/ressources/booktorio/bk_sprite_7.png b/ressources/booktorio/bk_sprite_7.png new file mode 100644 index 0000000..2be3878 Binary files /dev/null and b/ressources/booktorio/bk_sprite_7.png differ diff --git a/ressources/booktorio/bk_sprite_8.PNG b/ressources/booktorio/bk_sprite_8.PNG new file mode 100644 index 0000000..ee76e1f Binary files /dev/null and b/ressources/booktorio/bk_sprite_8.PNG differ diff --git a/ressources/booktorio/bk_sprite_9.PNG b/ressources/booktorio/bk_sprite_9.PNG new file mode 100644 index 0000000..bcfe0ca Binary files /dev/null and b/ressources/booktorio/bk_sprite_9.PNG differ diff --git a/ressources/electronic/el_aluminum/Thumbs.db b/ressources/electronic/el_aluminum/Thumbs.db new file mode 100644 index 0000000..1691df8 Binary files /dev/null and b/ressources/electronic/el_aluminum/Thumbs.db differ diff --git a/ressources/electronic/el_aluminum/el_aluminum_item.png b/ressources/electronic/el_aluminum/el_aluminum_item.png new file mode 100644 index 0000000..ac010a6 Binary files /dev/null and b/ressources/electronic/el_aluminum/el_aluminum_item.png differ diff --git a/ressources/electronic/el_aluminum/el_aluminum_ore_item.png b/ressources/electronic/el_aluminum/el_aluminum_ore_item.png new file mode 100644 index 0000000..0a8b9c6 Binary files /dev/null and b/ressources/electronic/el_aluminum/el_aluminum_ore_item.png differ diff --git a/ressources/electronic/el_burner/Thumbs.db b/ressources/electronic/el_burner/Thumbs.db new file mode 100644 index 0000000..791c78f Binary files /dev/null and b/ressources/electronic/el_burner/Thumbs.db differ diff --git a/ressources/electronic/el_burner/el_burner_entity_animation.png b/ressources/electronic/el_burner/el_burner_entity_animation.png new file mode 100644 index 0000000..788588f Binary files /dev/null and b/ressources/electronic/el_burner/el_burner_entity_animation.png differ diff --git a/ressources/electronic/el_burner/el_burner_entity_icon.png b/ressources/electronic/el_burner/el_burner_entity_icon.png new file mode 100644 index 0000000..8dc19d6 Binary files /dev/null and b/ressources/electronic/el_burner/el_burner_entity_icon.png differ diff --git a/ressources/electronic/el_burner/el_burner_item.png b/ressources/electronic/el_burner/el_burner_item.png new file mode 100644 index 0000000..8dc19d6 Binary files /dev/null and b/ressources/electronic/el_burner/el_burner_item.png differ diff --git a/ressources/electronic/el_burner/el_burner_kerosene_entity_animation.png b/ressources/electronic/el_burner/el_burner_kerosene_entity_animation.png new file mode 100644 index 0000000..e8642e5 Binary files /dev/null and b/ressources/electronic/el_burner/el_burner_kerosene_entity_animation.png differ diff --git a/ressources/electronic/el_burner/el_burner_kerosene_entity_icon.png b/ressources/electronic/el_burner/el_burner_kerosene_entity_icon.png new file mode 100644 index 0000000..70de39a Binary files /dev/null and b/ressources/electronic/el_burner/el_burner_kerosene_entity_icon.png differ diff --git a/ressources/electronic/el_burner/el_burner_kerosene_item.png b/ressources/electronic/el_burner/el_burner_kerosene_item.png new file mode 100644 index 0000000..70de39a Binary files /dev/null and b/ressources/electronic/el_burner/el_burner_kerosene_item.png differ diff --git a/ressources/electronic/el_diesel_train/Thumbs.db b/ressources/electronic/el_diesel_train/Thumbs.db new file mode 100644 index 0000000..9500e70 Binary files /dev/null and b/ressources/electronic/el_diesel_train/Thumbs.db differ diff --git a/ressources/electronic/el_diesel_train/el_diesel_train_animation_1.png b/ressources/electronic/el_diesel_train/el_diesel_train_animation_1.png new file mode 100644 index 0000000..023f9fd Binary files /dev/null and b/ressources/electronic/el_diesel_train/el_diesel_train_animation_1.png differ diff --git a/ressources/electronic/el_diesel_train/el_diesel_train_animation_2.png b/ressources/electronic/el_diesel_train/el_diesel_train_animation_2.png new file mode 100644 index 0000000..e50afca Binary files /dev/null and b/ressources/electronic/el_diesel_train/el_diesel_train_animation_2.png differ diff --git a/ressources/electronic/el_diesel_train/el_diesel_train_entity_icon.png b/ressources/electronic/el_diesel_train/el_diesel_train_entity_icon.png new file mode 100644 index 0000000..0346eb9 Binary files /dev/null and b/ressources/electronic/el_diesel_train/el_diesel_train_entity_icon.png differ diff --git a/ressources/electronic/el_diesel_train/el_diesel_train_item.png b/ressources/electronic/el_diesel_train/el_diesel_train_item.png new file mode 100644 index 0000000..0346eb9 Binary files /dev/null and b/ressources/electronic/el_diesel_train/el_diesel_train_item.png differ diff --git a/ressources/electronic/el_energy_crystal/Thumbs.db b/ressources/electronic/el_energy_crystal/Thumbs.db new file mode 100644 index 0000000..8129fca Binary files /dev/null and b/ressources/electronic/el_energy_crystal/Thumbs.db differ diff --git a/ressources/electronic/el_energy_crystal/el_energy_crystal_item.png b/ressources/electronic/el_energy_crystal/el_energy_crystal_item.png new file mode 100644 index 0000000..989bf21 Binary files /dev/null and b/ressources/electronic/el_energy_crystal/el_energy_crystal_item.png differ diff --git a/ressources/electronic/el_ki/Thumbs.db b/ressources/electronic/el_ki/Thumbs.db new file mode 100644 index 0000000..570e1ed Binary files /dev/null and b/ressources/electronic/el_ki/Thumbs.db differ diff --git a/ressources/electronic/el_ki/el_ki_beacon/Thumbs.db b/ressources/electronic/el_ki/el_ki_beacon/Thumbs.db new file mode 100644 index 0000000..4881dc9 Binary files /dev/null and b/ressources/electronic/el_ki/el_ki_beacon/Thumbs.db differ diff --git a/ressources/electronic/el_ki/el_ki_beacon/el_ki_beacon_entity_animation.png b/ressources/electronic/el_ki/el_ki_beacon/el_ki_beacon_entity_animation.png new file mode 100644 index 0000000..dc3d614 Binary files /dev/null and b/ressources/electronic/el_ki/el_ki_beacon/el_ki_beacon_entity_animation.png differ diff --git a/ressources/electronic/el_ki/el_ki_beacon/el_ki_beacon_entity_animation_2.png b/ressources/electronic/el_ki/el_ki_beacon/el_ki_beacon_entity_animation_2.png new file mode 100644 index 0000000..11fdaac Binary files /dev/null and b/ressources/electronic/el_ki/el_ki_beacon/el_ki_beacon_entity_animation_2.png differ diff --git a/ressources/electronic/el_ki/el_ki_beacon/el_ki_beacon_entity_animation_3.png b/ressources/electronic/el_ki/el_ki_beacon/el_ki_beacon_entity_animation_3.png new file mode 100644 index 0000000..9a3e4f4 Binary files /dev/null and b/ressources/electronic/el_ki/el_ki_beacon/el_ki_beacon_entity_animation_3.png differ diff --git a/ressources/electronic/el_ki/el_ki_beacon/el_ki_beacon_entity_icon.png b/ressources/electronic/el_ki/el_ki_beacon/el_ki_beacon_entity_icon.png new file mode 100644 index 0000000..ac8a180 Binary files /dev/null and b/ressources/electronic/el_ki/el_ki_beacon/el_ki_beacon_entity_icon.png differ diff --git a/ressources/electronic/el_ki/el_ki_beacon/el_ki_beacon_fi.png b/ressources/electronic/el_ki/el_ki_beacon/el_ki_beacon_fi.png new file mode 100644 index 0000000..1d9ab42 Binary files /dev/null and b/ressources/electronic/el_ki/el_ki_beacon/el_ki_beacon_fi.png differ diff --git a/ressources/electronic/el_ki/el_ki_beacon/el_ki_beacon_fu.png b/ressources/electronic/el_ki/el_ki_beacon/el_ki_beacon_fu.png new file mode 100644 index 0000000..6db0d06 Binary files /dev/null and b/ressources/electronic/el_ki/el_ki_beacon/el_ki_beacon_fu.png differ diff --git a/ressources/electronic/el_ki/el_ki_beacon/el_ki_beacon_item.png b/ressources/electronic/el_ki/el_ki_beacon/el_ki_beacon_item.png new file mode 100644 index 0000000..ac8a180 Binary files /dev/null and b/ressources/electronic/el_ki/el_ki_beacon/el_ki_beacon_item.png differ diff --git a/ressources/electronic/el_ki/el_ki_beacon/el_ki_beacon_slave_entity_animation.png b/ressources/electronic/el_ki/el_ki_beacon/el_ki_beacon_slave_entity_animation.png new file mode 100644 index 0000000..3ecf902 Binary files /dev/null and b/ressources/electronic/el_ki/el_ki_beacon/el_ki_beacon_slave_entity_animation.png differ diff --git a/ressources/electronic/el_ki/el_ki_beacon/el_ki_beacon_slave_entity_icon.png b/ressources/electronic/el_ki/el_ki_beacon/el_ki_beacon_slave_entity_icon.png new file mode 100644 index 0000000..f20d20c Binary files /dev/null and b/ressources/electronic/el_ki/el_ki_beacon/el_ki_beacon_slave_entity_icon.png differ diff --git a/ressources/electronic/el_ki/el_ki_core/Thumbs.db b/ressources/electronic/el_ki/el_ki_core/Thumbs.db new file mode 100644 index 0000000..95acdd3 Binary files /dev/null and b/ressources/electronic/el_ki/el_ki_core/Thumbs.db differ diff --git a/ressources/electronic/el_ki/el_ki_core/el_ki_core_entity_animation.png b/ressources/electronic/el_ki/el_ki_core/el_ki_core_entity_animation.png new file mode 100644 index 0000000..2c2a69a Binary files /dev/null and b/ressources/electronic/el_ki/el_ki_core/el_ki_core_entity_animation.png differ diff --git a/ressources/electronic/el_ki/el_ki_core/el_ki_core_entity_animation_2.png b/ressources/electronic/el_ki/el_ki_core/el_ki_core_entity_animation_2.png new file mode 100644 index 0000000..c4f828b Binary files /dev/null and b/ressources/electronic/el_ki/el_ki_core/el_ki_core_entity_animation_2.png differ diff --git a/ressources/electronic/el_ki/el_ki_core/el_ki_core_entity_animation_3.png b/ressources/electronic/el_ki/el_ki_core/el_ki_core_entity_animation_3.png new file mode 100644 index 0000000..52fb18a Binary files /dev/null and b/ressources/electronic/el_ki/el_ki_core/el_ki_core_entity_animation_3.png differ diff --git a/ressources/electronic/el_ki/el_ki_core/el_ki_core_entity_icon.png b/ressources/electronic/el_ki/el_ki_core/el_ki_core_entity_icon.png new file mode 100644 index 0000000..5de0d1e Binary files /dev/null and b/ressources/electronic/el_ki/el_ki_core/el_ki_core_entity_icon.png differ diff --git a/ressources/electronic/el_ki/el_ki_core/el_ki_core_fi.png b/ressources/electronic/el_ki/el_ki_core/el_ki_core_fi.png new file mode 100644 index 0000000..61be6d2 Binary files /dev/null and b/ressources/electronic/el_ki/el_ki_core/el_ki_core_fi.png differ diff --git a/ressources/electronic/el_ki/el_ki_core/el_ki_core_fu.png b/ressources/electronic/el_ki/el_ki_core/el_ki_core_fu.png new file mode 100644 index 0000000..01e8b05 Binary files /dev/null and b/ressources/electronic/el_ki/el_ki_core/el_ki_core_fu.png differ diff --git a/ressources/electronic/el_ki/el_ki_core/el_ki_core_item.png b/ressources/electronic/el_ki/el_ki_core/el_ki_core_item.png new file mode 100644 index 0000000..5de0d1e Binary files /dev/null and b/ressources/electronic/el_ki/el_ki_core/el_ki_core_item.png differ diff --git a/ressources/electronic/el_ki/el_ki_core/el_ki_core_slave_container_entity_animation.png b/ressources/electronic/el_ki/el_ki_core/el_ki_core_slave_container_entity_animation.png new file mode 100644 index 0000000..55f8ef5 Binary files /dev/null and b/ressources/electronic/el_ki/el_ki_core/el_ki_core_slave_container_entity_animation.png differ diff --git a/ressources/electronic/el_ki/el_ki_core/el_ki_core_slave_container_entity_icon.png b/ressources/electronic/el_ki/el_ki_core/el_ki_core_slave_container_entity_icon.png new file mode 100644 index 0000000..9676a5f Binary files /dev/null and b/ressources/electronic/el_ki/el_ki_core/el_ki_core_slave_container_entity_icon.png differ diff --git a/ressources/electronic/el_ki/el_ki_core/el_ki_core_slave_entity_animation.png b/ressources/electronic/el_ki/el_ki_core/el_ki_core_slave_entity_animation.png new file mode 100644 index 0000000..959476d Binary files /dev/null and b/ressources/electronic/el_ki/el_ki_core/el_ki_core_slave_entity_animation.png differ diff --git a/ressources/electronic/el_ki/el_ki_core/el_ki_core_slave_entity_icon.png b/ressources/electronic/el_ki/el_ki_core/el_ki_core_slave_entity_icon.png new file mode 100644 index 0000000..472a1cf Binary files /dev/null and b/ressources/electronic/el_ki/el_ki_core/el_ki_core_slave_entity_icon.png differ diff --git a/ressources/electronic/el_ki/el_ki_cpu/Thumbs.db b/ressources/electronic/el_ki/el_ki_cpu/Thumbs.db new file mode 100644 index 0000000..89d5144 Binary files /dev/null and b/ressources/electronic/el_ki/el_ki_cpu/Thumbs.db differ diff --git a/ressources/electronic/el_ki/el_ki_cpu/el_ki_cpu_entity_animation.png b/ressources/electronic/el_ki/el_ki_cpu/el_ki_cpu_entity_animation.png new file mode 100644 index 0000000..692c85c Binary files /dev/null and b/ressources/electronic/el_ki/el_ki_cpu/el_ki_cpu_entity_animation.png differ diff --git a/ressources/electronic/el_ki/el_ki_cpu/el_ki_cpu_entity_icon.png b/ressources/electronic/el_ki/el_ki_cpu/el_ki_cpu_entity_icon.png new file mode 100644 index 0000000..0c0c900 Binary files /dev/null and b/ressources/electronic/el_ki/el_ki_cpu/el_ki_cpu_entity_icon.png differ diff --git a/ressources/electronic/el_ki/el_ki_cpu/el_ki_cpu_item.png b/ressources/electronic/el_ki/el_ki_cpu/el_ki_cpu_item.png new file mode 100644 index 0000000..0c0c900 Binary files /dev/null and b/ressources/electronic/el_ki/el_ki_cpu/el_ki_cpu_item.png differ diff --git a/ressources/electronic/el_ki/el_ki_linker/Thumbs.db b/ressources/electronic/el_ki/el_ki_linker/Thumbs.db new file mode 100644 index 0000000..14869c7 Binary files /dev/null and b/ressources/electronic/el_ki/el_ki_linker/Thumbs.db differ diff --git a/ressources/electronic/el_ki/el_ki_linker/el_ki_linker_entity_icon.png b/ressources/electronic/el_ki/el_ki_linker/el_ki_linker_entity_icon.png new file mode 100644 index 0000000..8b2e344 Binary files /dev/null and b/ressources/electronic/el_ki/el_ki_linker/el_ki_linker_entity_icon.png differ diff --git a/ressources/electronic/el_ki/el_ki_linker/el_ki_science_blue_data.png b/ressources/electronic/el_ki/el_ki_linker/el_ki_science_blue_data.png new file mode 100644 index 0000000..dcdb1a3 Binary files /dev/null and b/ressources/electronic/el_ki/el_ki_linker/el_ki_science_blue_data.png differ diff --git a/ressources/electronic/el_ki/el_ki_linker/el_ki_science_red_data.png b/ressources/electronic/el_ki/el_ki_linker/el_ki_science_red_data.png new file mode 100644 index 0000000..dedaac6 Binary files /dev/null and b/ressources/electronic/el_ki/el_ki_linker/el_ki_science_red_data.png differ diff --git a/ressources/electronic/el_ki/el_ki_linker/el_ki_selection_tool.png b/ressources/electronic/el_ki/el_ki_linker/el_ki_selection_tool.png new file mode 100644 index 0000000..06cdc61 Binary files /dev/null and b/ressources/electronic/el_ki/el_ki_linker/el_ki_selection_tool.png differ diff --git a/ressources/electronic/el_ki/el_ki_memory/Thumbs.db b/ressources/electronic/el_ki/el_ki_memory/Thumbs.db new file mode 100644 index 0000000..3679c3c Binary files /dev/null and b/ressources/electronic/el_ki/el_ki_memory/Thumbs.db differ diff --git a/ressources/electronic/el_ki/el_ki_memory/el_ki_memory_entity_animation.png b/ressources/electronic/el_ki/el_ki_memory/el_ki_memory_entity_animation.png new file mode 100644 index 0000000..798a649 Binary files /dev/null and b/ressources/electronic/el_ki/el_ki_memory/el_ki_memory_entity_animation.png differ diff --git a/ressources/electronic/el_ki/el_ki_memory/el_ki_memory_entity_icon.png b/ressources/electronic/el_ki/el_ki_memory/el_ki_memory_entity_icon.png new file mode 100644 index 0000000..976d96e Binary files /dev/null and b/ressources/electronic/el_ki/el_ki_memory/el_ki_memory_entity_icon.png differ diff --git a/ressources/electronic/el_ki/el_ki_memory/el_ki_memory_item.png b/ressources/electronic/el_ki/el_ki_memory/el_ki_memory_item.png new file mode 100644 index 0000000..976d96e Binary files /dev/null and b/ressources/electronic/el_ki/el_ki_memory/el_ki_memory_item.png differ diff --git a/ressources/electronic/el_ki/fi_ki_circuit/Thumbs.db b/ressources/electronic/el_ki/fi_ki_circuit/Thumbs.db new file mode 100644 index 0000000..36beab9 Binary files /dev/null and b/ressources/electronic/el_ki/fi_ki_circuit/Thumbs.db differ diff --git a/ressources/electronic/el_ki/fi_ki_circuit/fi_ki_circuit_entity_animation.png b/ressources/electronic/el_ki/fi_ki_circuit/fi_ki_circuit_entity_animation.png new file mode 100644 index 0000000..0d193ef Binary files /dev/null and b/ressources/electronic/el_ki/fi_ki_circuit/fi_ki_circuit_entity_animation.png differ diff --git a/ressources/electronic/el_ki/fi_ki_circuit/fi_ki_circuit_entity_icon.png b/ressources/electronic/el_ki/fi_ki_circuit/fi_ki_circuit_entity_icon.png new file mode 100644 index 0000000..cc77cb0 Binary files /dev/null and b/ressources/electronic/el_ki/fi_ki_circuit/fi_ki_circuit_entity_icon.png differ diff --git a/ressources/electronic/el_ki/fi_ki_circuit/fi_ki_circuit_item.png b/ressources/electronic/el_ki/fi_ki_circuit/fi_ki_circuit_item.png new file mode 100644 index 0000000..9830940 Binary files /dev/null and b/ressources/electronic/el_ki/fi_ki_circuit/fi_ki_circuit_item.png differ diff --git a/ressources/electronic/el_ki/fu_ki_circuit/Thumbs.db b/ressources/electronic/el_ki/fu_ki_circuit/Thumbs.db new file mode 100644 index 0000000..486a3d8 Binary files /dev/null and b/ressources/electronic/el_ki/fu_ki_circuit/Thumbs.db differ diff --git a/ressources/electronic/el_ki/fu_ki_circuit/fu_ki_circuit_entity_animation.png b/ressources/electronic/el_ki/fu_ki_circuit/fu_ki_circuit_entity_animation.png new file mode 100644 index 0000000..119f28c Binary files /dev/null and b/ressources/electronic/el_ki/fu_ki_circuit/fu_ki_circuit_entity_animation.png differ diff --git a/ressources/electronic/el_ki/fu_ki_circuit/fu_ki_circuit_entity_icon.png b/ressources/electronic/el_ki/fu_ki_circuit/fu_ki_circuit_entity_icon.png new file mode 100644 index 0000000..6ed5e5b Binary files /dev/null and b/ressources/electronic/el_ki/fu_ki_circuit/fu_ki_circuit_entity_icon.png differ diff --git a/ressources/electronic/el_ki/fu_ki_circuit/fu_ki_circuit_item.png b/ressources/electronic/el_ki/fu_ki_circuit/fu_ki_circuit_item.png new file mode 100644 index 0000000..0671bbd Binary files /dev/null and b/ressources/electronic/el_ki/fu_ki_circuit/fu_ki_circuit_item.png differ diff --git a/ressources/electronic/el_ki/ki_science/Thumbs.db b/ressources/electronic/el_ki/ki_science/Thumbs.db new file mode 100644 index 0000000..946415e Binary files /dev/null and b/ressources/electronic/el_ki/ki_science/Thumbs.db differ diff --git a/ressources/electronic/el_lithium/Thumbs.db b/ressources/electronic/el_lithium/Thumbs.db new file mode 100644 index 0000000..f88af8e Binary files /dev/null and b/ressources/electronic/el_lithium/Thumbs.db differ diff --git a/ressources/electronic/el_lithium/el_lithium_battery.png b/ressources/electronic/el_lithium/el_lithium_battery.png new file mode 100644 index 0000000..30a173a Binary files /dev/null and b/ressources/electronic/el_lithium/el_lithium_battery.png differ diff --git a/ressources/electronic/el_lithium/el_lithium_item.png b/ressources/electronic/el_lithium/el_lithium_item.png new file mode 100644 index 0000000..17928fc Binary files /dev/null and b/ressources/electronic/el_lithium/el_lithium_item.png differ diff --git a/ressources/electronic/el_lithium/el_lithium_ore_item.png b/ressources/electronic/el_lithium/el_lithium_ore_item.png new file mode 100644 index 0000000..2508e13 Binary files /dev/null and b/ressources/electronic/el_lithium/el_lithium_ore_item.png differ diff --git a/ressources/electronic/el_pressurizer/Thumbs.db b/ressources/electronic/el_pressurizer/Thumbs.db new file mode 100644 index 0000000..db655e7 Binary files /dev/null and b/ressources/electronic/el_pressurizer/Thumbs.db differ diff --git a/ressources/electronic/el_pressurizer/el_pressurizer_entity_animation.png b/ressources/electronic/el_pressurizer/el_pressurizer_entity_animation.png new file mode 100644 index 0000000..600c575 Binary files /dev/null and b/ressources/electronic/el_pressurizer/el_pressurizer_entity_animation.png differ diff --git a/ressources/electronic/el_pressurizer/el_pressurizer_entity_icon.png b/ressources/electronic/el_pressurizer/el_pressurizer_entity_icon.png new file mode 100644 index 0000000..0d06f97 Binary files /dev/null and b/ressources/electronic/el_pressurizer/el_pressurizer_entity_icon.png differ diff --git a/ressources/electronic/el_pressurizer/el_pressurizer_item.png b/ressources/electronic/el_pressurizer/el_pressurizer_item.png new file mode 100644 index 0000000..0d06f97 Binary files /dev/null and b/ressources/electronic/el_pressurizer/el_pressurizer_item.png differ diff --git a/ressources/electronic/el_solar/Thumbs.db b/ressources/electronic/el_solar/Thumbs.db new file mode 100644 index 0000000..6e228ba Binary files /dev/null and b/ressources/electronic/el_solar/Thumbs.db differ diff --git a/ressources/electronic/el_solar/el_solar_entity_icon.png b/ressources/electronic/el_solar/el_solar_entity_icon.png new file mode 100644 index 0000000..2a4ce8e Binary files /dev/null and b/ressources/electronic/el_solar/el_solar_entity_icon.png differ diff --git a/ressources/electronic/el_solar/el_solar_entity_picture.png b/ressources/electronic/el_solar/el_solar_entity_picture.png new file mode 100644 index 0000000..ab9a0cc Binary files /dev/null and b/ressources/electronic/el_solar/el_solar_entity_picture.png differ diff --git a/ressources/electronic/el_solar/el_solar_entity_picture_1.png b/ressources/electronic/el_solar/el_solar_entity_picture_1.png new file mode 100644 index 0000000..e3265c9 Binary files /dev/null and b/ressources/electronic/el_solar/el_solar_entity_picture_1.png differ diff --git a/ressources/electronic/el_solar/el_solar_item.png b/ressources/electronic/el_solar/el_solar_item.png new file mode 100644 index 0000000..2a4ce8e Binary files /dev/null and b/ressources/electronic/el_solar/el_solar_item.png differ diff --git a/ressources/electronic/el_tank/Thumbs.db b/ressources/electronic/el_tank/Thumbs.db new file mode 100644 index 0000000..2fe8f4a Binary files /dev/null and b/ressources/electronic/el_tank/Thumbs.db differ diff --git a/ressources/electronic/el_tank/el_tank_blank.png b/ressources/electronic/el_tank/el_tank_blank.png new file mode 100644 index 0000000..3ecf902 Binary files /dev/null and b/ressources/electronic/el_tank/el_tank_blank.png differ diff --git a/ressources/electronic/el_tank/el_tank_entity_picture.png b/ressources/electronic/el_tank/el_tank_entity_picture.png new file mode 100644 index 0000000..ab061ff Binary files /dev/null and b/ressources/electronic/el_tank/el_tank_entity_picture.png differ diff --git a/ressources/electronic/el_tank/el_tank_item.png b/ressources/electronic/el_tank/el_tank_item.png new file mode 100644 index 0000000..7f05b26 Binary files /dev/null and b/ressources/electronic/el_tank/el_tank_item.png differ diff --git a/ressources/electronic/el_train_equipment/Thumbs.db b/ressources/electronic/el_train_equipment/Thumbs.db new file mode 100644 index 0000000..eb41b24 Binary files /dev/null and b/ressources/electronic/el_train_equipment/Thumbs.db differ diff --git a/ressources/electronic/el_train_equipment/el_train_equipment_accelerator_entity.png b/ressources/electronic/el_train_equipment/el_train_equipment_accelerator_entity.png new file mode 100644 index 0000000..6dbc2c4 Binary files /dev/null and b/ressources/electronic/el_train_equipment/el_train_equipment_accelerator_entity.png differ diff --git a/ressources/electronic/el_train_equipment/el_train_equipment_accelerator_item.png b/ressources/electronic/el_train_equipment/el_train_equipment_accelerator_item.png new file mode 100644 index 0000000..a9dd99a Binary files /dev/null and b/ressources/electronic/el_train_equipment/el_train_equipment_accelerator_item.png differ diff --git a/ressources/electronic/el_train_equipment/el_train_equipment_generator_entity.png b/ressources/electronic/el_train_equipment/el_train_equipment_generator_entity.png new file mode 100644 index 0000000..341dea1 Binary files /dev/null and b/ressources/electronic/el_train_equipment/el_train_equipment_generator_entity.png differ diff --git a/ressources/electronic/el_train_equipment/el_train_equipment_generator_item.png b/ressources/electronic/el_train_equipment/el_train_equipment_generator_item.png new file mode 100644 index 0000000..9713f95 Binary files /dev/null and b/ressources/electronic/el_train_equipment/el_train_equipment_generator_item.png differ diff --git a/ressources/electronic/el_train_fuel/Thumbs.db b/ressources/electronic/el_train_fuel/Thumbs.db new file mode 100644 index 0000000..2746542 Binary files /dev/null and b/ressources/electronic/el_train_fuel/Thumbs.db differ diff --git a/ressources/electronic/el_train_fuel/el_train_fuel_diesel_energized_item.png b/ressources/electronic/el_train_fuel/el_train_fuel_diesel_energized_item.png new file mode 100644 index 0000000..e705e90 Binary files /dev/null and b/ressources/electronic/el_train_fuel/el_train_fuel_diesel_energized_item.png differ diff --git a/ressources/electronic/el_train_fuel/el_train_fuel_diesel_item.png b/ressources/electronic/el_train_fuel/el_train_fuel_diesel_item.png new file mode 100644 index 0000000..4c52df4 Binary files /dev/null and b/ressources/electronic/el_train_fuel/el_train_fuel_diesel_item.png differ diff --git a/ressources/electronic/el_water_generator/Thumbs.db b/ressources/electronic/el_water_generator/Thumbs.db new file mode 100644 index 0000000..ff2dbad Binary files /dev/null and b/ressources/electronic/el_water_generator/Thumbs.db differ diff --git a/ressources/electronic/el_water_generator/el_water_generator_entity_animation_horizontal_1.png b/ressources/electronic/el_water_generator/el_water_generator_entity_animation_horizontal_1.png new file mode 100644 index 0000000..32e91cb Binary files /dev/null and b/ressources/electronic/el_water_generator/el_water_generator_entity_animation_horizontal_1.png differ diff --git a/ressources/electronic/el_water_generator/el_water_generator_entity_animation_vertikal_1.png b/ressources/electronic/el_water_generator/el_water_generator_entity_animation_vertikal_1.png new file mode 100644 index 0000000..9bf07e5 Binary files /dev/null and b/ressources/electronic/el_water_generator/el_water_generator_entity_animation_vertikal_1.png differ diff --git a/ressources/electronic/el_water_generator/el_water_generator_entity_icon.png b/ressources/electronic/el_water_generator/el_water_generator_entity_icon.png new file mode 100644 index 0000000..53c3bb1 Binary files /dev/null and b/ressources/electronic/el_water_generator/el_water_generator_entity_icon.png differ diff --git a/ressources/electronic/el_water_generator/el_water_generator_item.png b/ressources/electronic/el_water_generator/el_water_generator_item.png new file mode 100644 index 0000000..53c3bb1 Binary files /dev/null and b/ressources/electronic/el_water_generator/el_water_generator_item.png differ diff --git a/ressources/elements/Thumbs.db b/ressources/elements/Thumbs.db new file mode 100644 index 0000000..35491c6 Binary files /dev/null and b/ressources/elements/Thumbs.db differ diff --git a/ressources/elements/fu_copper.png b/ressources/elements/fu_copper.png new file mode 100644 index 0000000..9b3d385 Binary files /dev/null and b/ressources/elements/fu_copper.png differ diff --git a/ressources/elements/fu_copper_heated.png b/ressources/elements/fu_copper_heated.png new file mode 100644 index 0000000..d7ce03f Binary files /dev/null and b/ressources/elements/fu_copper_heated.png differ diff --git a/ressources/elements/fu_deuterium.png b/ressources/elements/fu_deuterium.png new file mode 100644 index 0000000..8e536af Binary files /dev/null and b/ressources/elements/fu_deuterium.png differ diff --git a/ressources/elements/fu_helium_3.png b/ressources/elements/fu_helium_3.png new file mode 100644 index 0000000..7ff24ad Binary files /dev/null and b/ressources/elements/fu_helium_3.png differ diff --git a/ressources/elements/fu_helium_4.png b/ressources/elements/fu_helium_4.png new file mode 100644 index 0000000..4dff3cc Binary files /dev/null and b/ressources/elements/fu_helium_4.png differ diff --git a/ressources/elements/fu_hydrogen.png b/ressources/elements/fu_hydrogen.png new file mode 100644 index 0000000..e124459 Binary files /dev/null and b/ressources/elements/fu_hydrogen.png differ diff --git a/ressources/elements/fu_iron.png b/ressources/elements/fu_iron.png new file mode 100644 index 0000000..66b5ccc Binary files /dev/null and b/ressources/elements/fu_iron.png differ diff --git a/ressources/elements/fu_iron_heated.png b/ressources/elements/fu_iron_heated.png new file mode 100644 index 0000000..4c8c2b7 Binary files /dev/null and b/ressources/elements/fu_iron_heated.png differ diff --git a/ressources/elements/fu_lithium_6.png b/ressources/elements/fu_lithium_6.png new file mode 100644 index 0000000..6c52e70 Binary files /dev/null and b/ressources/elements/fu_lithium_6.png differ diff --git a/ressources/elements/fu_lithium_7.png b/ressources/elements/fu_lithium_7.png new file mode 100644 index 0000000..f478893 Binary files /dev/null and b/ressources/elements/fu_lithium_7.png differ diff --git a/ressources/elements/fu_lithium_7_heated.png b/ressources/elements/fu_lithium_7_heated.png new file mode 100644 index 0000000..a3b0033 Binary files /dev/null and b/ressources/elements/fu_lithium_7_heated.png differ diff --git a/ressources/elements/fu_oxygen.png b/ressources/elements/fu_oxygen.png new file mode 100644 index 0000000..b28072c Binary files /dev/null and b/ressources/elements/fu_oxygen.png differ diff --git a/ressources/elements/fu_oxygen_16.png b/ressources/elements/fu_oxygen_16.png new file mode 100644 index 0000000..a23cd18 Binary files /dev/null and b/ressources/elements/fu_oxygen_16.png differ diff --git a/ressources/elements/fu_protium.png b/ressources/elements/fu_protium.png new file mode 100644 index 0000000..10797dc Binary files /dev/null and b/ressources/elements/fu_protium.png differ diff --git a/ressources/elements/fu_protium_heated.png b/ressources/elements/fu_protium_heated.png new file mode 100644 index 0000000..84c90c6 Binary files /dev/null and b/ressources/elements/fu_protium_heated.png differ diff --git a/ressources/elements/fu_sulfur.png b/ressources/elements/fu_sulfur.png new file mode 100644 index 0000000..9db2ec6 Binary files /dev/null and b/ressources/elements/fu_sulfur.png differ diff --git a/ressources/elements/fu_sulfur_heated.png b/ressources/elements/fu_sulfur_heated.png new file mode 100644 index 0000000..8c74992 Binary files /dev/null and b/ressources/elements/fu_sulfur_heated.png differ diff --git a/ressources/elements/fu_tritium.png b/ressources/elements/fu_tritium.png new file mode 100644 index 0000000..00a4e23 Binary files /dev/null and b/ressources/elements/fu_tritium.png differ diff --git a/ressources/elements/fu_uranium_235.png b/ressources/elements/fu_uranium_235.png new file mode 100644 index 0000000..d86ac8b Binary files /dev/null and b/ressources/elements/fu_uranium_235.png differ diff --git a/ressources/elements/fu_uranium_235_heated.png b/ressources/elements/fu_uranium_235_heated.png new file mode 100644 index 0000000..8f4dbd3 Binary files /dev/null and b/ressources/elements/fu_uranium_235_heated.png differ diff --git a/ressources/elements/fu_uranium_238.png b/ressources/elements/fu_uranium_238.png new file mode 100644 index 0000000..8e3835b Binary files /dev/null and b/ressources/elements/fu_uranium_238.png differ diff --git a/ressources/elements/fu_uranium_238_heated.png b/ressources/elements/fu_uranium_238_heated.png new file mode 100644 index 0000000..c0bf482 Binary files /dev/null and b/ressources/elements/fu_uranium_238_heated.png differ diff --git a/ressources/fission/fi_compound_material/Thumbs.db b/ressources/fission/fi_compound_material/Thumbs.db new file mode 100644 index 0000000..d1ead76 Binary files /dev/null and b/ressources/fission/fi_compound_material/Thumbs.db differ diff --git a/ressources/fission/fi_compound_material/fi_compound_material_item.png b/ressources/fission/fi_compound_material/fi_compound_material_item.png new file mode 100644 index 0000000..f7dc63b Binary files /dev/null and b/ressources/fission/fi_compound_material/fi_compound_material_item.png differ diff --git a/ressources/fission/fi_crafter/Thumbs.db b/ressources/fission/fi_crafter/Thumbs.db new file mode 100644 index 0000000..01c8559 Binary files /dev/null and b/ressources/fission/fi_crafter/Thumbs.db differ diff --git a/ressources/fission/fi_crafter/fi_crafter_entity_animation.png b/ressources/fission/fi_crafter/fi_crafter_entity_animation.png new file mode 100644 index 0000000..05380fd Binary files /dev/null and b/ressources/fission/fi_crafter/fi_crafter_entity_animation.png differ diff --git a/ressources/fission/fi_crafter/fi_crafter_entity_icon.png b/ressources/fission/fi_crafter/fi_crafter_entity_icon.png new file mode 100644 index 0000000..e064133 Binary files /dev/null and b/ressources/fission/fi_crafter/fi_crafter_entity_icon.png differ diff --git a/ressources/fission/fi_crafter/fi_crafter_item.png b/ressources/fission/fi_crafter/fi_crafter_item.png new file mode 100644 index 0000000..e064133 Binary files /dev/null and b/ressources/fission/fi_crafter/fi_crafter_item.png differ diff --git a/ressources/fission/fi_crushed/Thumbs.db b/ressources/fission/fi_crushed/Thumbs.db new file mode 100644 index 0000000..e3ef820 Binary files /dev/null and b/ressources/fission/fi_crushed/Thumbs.db differ diff --git a/ressources/fission/fi_crushed/fi_crushed_aluminum_item.png b/ressources/fission/fi_crushed/fi_crushed_aluminum_item.png new file mode 100644 index 0000000..9ed8d39 Binary files /dev/null and b/ressources/fission/fi_crushed/fi_crushed_aluminum_item.png differ diff --git a/ressources/fission/fi_crushed/fi_crushed_coal_item.png b/ressources/fission/fi_crushed/fi_crushed_coal_item.png new file mode 100644 index 0000000..3c0594b Binary files /dev/null and b/ressources/fission/fi_crushed/fi_crushed_coal_item.png differ diff --git a/ressources/fission/fi_crushed/fi_crushed_copper_item.png b/ressources/fission/fi_crushed/fi_crushed_copper_item.png new file mode 100644 index 0000000..5dc4462 Binary files /dev/null and b/ressources/fission/fi_crushed/fi_crushed_copper_item.png differ diff --git a/ressources/fission/fi_crushed/fi_crushed_iron_item.png b/ressources/fission/fi_crushed/fi_crushed_iron_item.png new file mode 100644 index 0000000..9c6b66d Binary files /dev/null and b/ressources/fission/fi_crushed/fi_crushed_iron_item.png differ diff --git a/ressources/fission/fi_crushed/fi_crushed_lithium_item.png b/ressources/fission/fi_crushed/fi_crushed_lithium_item.png new file mode 100644 index 0000000..08e9a3d Binary files /dev/null and b/ressources/fission/fi_crushed/fi_crushed_lithium_item.png differ diff --git a/ressources/fission/fi_crusher/Thumbs.db b/ressources/fission/fi_crusher/Thumbs.db new file mode 100644 index 0000000..b4a56e0 Binary files /dev/null and b/ressources/fission/fi_crusher/Thumbs.db differ diff --git a/ressources/fission/fi_crusher/fi_crusher_entity_animation.png b/ressources/fission/fi_crusher/fi_crusher_entity_animation.png new file mode 100644 index 0000000..c280cf3 Binary files /dev/null and b/ressources/fission/fi_crusher/fi_crusher_entity_animation.png differ diff --git a/ressources/fission/fi_crusher/fi_crusher_entity_icon.png b/ressources/fission/fi_crusher/fi_crusher_entity_icon.png new file mode 100644 index 0000000..b722c6c Binary files /dev/null and b/ressources/fission/fi_crusher/fi_crusher_entity_icon.png differ diff --git a/ressources/fission/fi_crusher/fi_crusher_item.png b/ressources/fission/fi_crusher/fi_crusher_item.png new file mode 100644 index 0000000..b722c6c Binary files /dev/null and b/ressources/fission/fi_crusher/fi_crusher_item.png differ diff --git a/ressources/fission/fi_energy_crystal/Thumbs.db b/ressources/fission/fi_energy_crystal/Thumbs.db new file mode 100644 index 0000000..7d37eb1 Binary files /dev/null and b/ressources/fission/fi_energy_crystal/Thumbs.db differ diff --git a/ressources/fission/fi_energy_crystal/fi_energy_crystal_base_item.png b/ressources/fission/fi_energy_crystal/fi_energy_crystal_base_item.png new file mode 100644 index 0000000..44b8c3b Binary files /dev/null and b/ressources/fission/fi_energy_crystal/fi_energy_crystal_base_item.png differ diff --git a/ressources/fission/fi_energy_crystal/fi_energy_crystal_catalyst_item.png b/ressources/fission/fi_energy_crystal/fi_energy_crystal_catalyst_item.png new file mode 100644 index 0000000..785f332 Binary files /dev/null and b/ressources/fission/fi_energy_crystal/fi_energy_crystal_catalyst_item.png differ diff --git a/ressources/fission/fi_energy_crystal/fi_energy_crystal_crushed_item.png b/ressources/fission/fi_energy_crystal/fi_energy_crystal_crushed_item.png new file mode 100644 index 0000000..c3525f6 Binary files /dev/null and b/ressources/fission/fi_energy_crystal/fi_energy_crystal_crushed_item.png differ diff --git a/ressources/fission/fi_energy_crystal/fi_energy_crystal_item.png b/ressources/fission/fi_energy_crystal/fi_energy_crystal_item.png new file mode 100644 index 0000000..89d1656 Binary files /dev/null and b/ressources/fission/fi_energy_crystal/fi_energy_crystal_item.png differ diff --git a/ressources/fission/fi_equipment/Thumbs.db b/ressources/fission/fi_equipment/Thumbs.db new file mode 100644 index 0000000..12962b7 Binary files /dev/null and b/ressources/fission/fi_equipment/Thumbs.db differ diff --git a/ressources/fission/fi_equipment/fi_equipment_generator_entity.png b/ressources/fission/fi_equipment/fi_equipment_generator_entity.png new file mode 100644 index 0000000..a5004e0 Binary files /dev/null and b/ressources/fission/fi_equipment/fi_equipment_generator_entity.png differ diff --git a/ressources/fission/fi_equipment/fi_equipment_generator_item.png b/ressources/fission/fi_equipment/fi_equipment_generator_item.png new file mode 100644 index 0000000..1f3fc55 Binary files /dev/null and b/ressources/fission/fi_equipment/fi_equipment_generator_item.png differ diff --git a/ressources/fission/fi_equipment/fi_equipment_player_reactor_entity.png b/ressources/fission/fi_equipment/fi_equipment_player_reactor_entity.png new file mode 100644 index 0000000..b8dc759 Binary files /dev/null and b/ressources/fission/fi_equipment/fi_equipment_player_reactor_entity.png differ diff --git a/ressources/fission/fi_equipment/fi_equipment_player_reactor_item.png b/ressources/fission/fi_equipment/fi_equipment_player_reactor_item.png new file mode 100644 index 0000000..8c72fc1 Binary files /dev/null and b/ressources/fission/fi_equipment/fi_equipment_player_reactor_item.png differ diff --git a/ressources/fission/fi_equipment/fi_equipment_player_shield_entity.png b/ressources/fission/fi_equipment/fi_equipment_player_shield_entity.png new file mode 100644 index 0000000..601a304 Binary files /dev/null and b/ressources/fission/fi_equipment/fi_equipment_player_shield_entity.png differ diff --git a/ressources/fission/fi_equipment/fi_equipment_player_shield_item.png b/ressources/fission/fi_equipment/fi_equipment_player_shield_item.png new file mode 100644 index 0000000..1853fef Binary files /dev/null and b/ressources/fission/fi_equipment/fi_equipment_player_shield_item.png differ diff --git a/ressources/fission/fi_fuel/Thumbs.db b/ressources/fission/fi_fuel/Thumbs.db new file mode 100644 index 0000000..a9dc30f Binary files /dev/null and b/ressources/fission/fi_fuel/Thumbs.db differ diff --git a/ressources/fission/fi_fuel/fi_fuel_advanced_item.png b/ressources/fission/fi_fuel/fi_fuel_advanced_item.png new file mode 100644 index 0000000..4b77d67 Binary files /dev/null and b/ressources/fission/fi_fuel/fi_fuel_advanced_item.png differ diff --git a/ressources/fission/fi_fuel/fi_fuel_advanced_thorium_item.png b/ressources/fission/fi_fuel/fi_fuel_advanced_thorium_item.png new file mode 100644 index 0000000..a4aeb54 Binary files /dev/null and b/ressources/fission/fi_fuel/fi_fuel_advanced_thorium_item.png differ diff --git a/ressources/fission/fi_fuel/fi_fuel_basic_item.png b/ressources/fission/fi_fuel/fi_fuel_basic_item.png new file mode 100644 index 0000000..7431025 Binary files /dev/null and b/ressources/fission/fi_fuel/fi_fuel_basic_item.png differ diff --git a/ressources/fission/fi_fuel/fi_fuel_basic_thorium_item.png b/ressources/fission/fi_fuel/fi_fuel_basic_thorium_item.png new file mode 100644 index 0000000..54fadf3 Binary files /dev/null and b/ressources/fission/fi_fuel/fi_fuel_basic_thorium_item.png differ diff --git a/ressources/fission/fi_fuel/fi_fuel_plutonium239_item.png b/ressources/fission/fi_fuel/fi_fuel_plutonium239_item.png new file mode 100644 index 0000000..a49bcc4 Binary files /dev/null and b/ressources/fission/fi_fuel/fi_fuel_plutonium239_item.png differ diff --git a/ressources/fission/fi_fuel/fi_fuel_pure_item.png b/ressources/fission/fi_fuel/fi_fuel_pure_item.png new file mode 100644 index 0000000..5ceca09 Binary files /dev/null and b/ressources/fission/fi_fuel/fi_fuel_pure_item.png differ diff --git a/ressources/fission/fi_fuel/fi_fuel_thorium232_item.png b/ressources/fission/fi_fuel/fi_fuel_thorium232_item.png new file mode 100644 index 0000000..48306a4 Binary files /dev/null and b/ressources/fission/fi_fuel/fi_fuel_thorium232_item.png differ diff --git a/ressources/fission/fi_fuel/fi_fuel_train_crystal_item.png b/ressources/fission/fi_fuel/fi_fuel_train_crystal_item.png new file mode 100644 index 0000000..605ed56 Binary files /dev/null and b/ressources/fission/fi_fuel/fi_fuel_train_crystal_item.png differ diff --git a/ressources/fission/fi_fuel/fi_fuel_uranium233_item.png b/ressources/fission/fi_fuel/fi_fuel_uranium233_item.png new file mode 100644 index 0000000..382a40e Binary files /dev/null and b/ressources/fission/fi_fuel/fi_fuel_uranium233_item.png differ diff --git a/ressources/fission/fi_fuel/fi_fuel_used_advanced_item.png b/ressources/fission/fi_fuel/fi_fuel_used_advanced_item.png new file mode 100644 index 0000000..144bf06 Binary files /dev/null and b/ressources/fission/fi_fuel/fi_fuel_used_advanced_item.png differ diff --git a/ressources/fission/fi_fuel/fi_fuel_used_advanced_thorium_item.png b/ressources/fission/fi_fuel/fi_fuel_used_advanced_thorium_item.png new file mode 100644 index 0000000..889d759 Binary files /dev/null and b/ressources/fission/fi_fuel/fi_fuel_used_advanced_thorium_item.png differ diff --git a/ressources/fission/fi_fuel/fi_fuel_used_basic_item.png b/ressources/fission/fi_fuel/fi_fuel_used_basic_item.png new file mode 100644 index 0000000..f1bb32b Binary files /dev/null and b/ressources/fission/fi_fuel/fi_fuel_used_basic_item.png differ diff --git a/ressources/fission/fi_fuel/fi_fuel_used_basic_thorium_item.png b/ressources/fission/fi_fuel/fi_fuel_used_basic_thorium_item.png new file mode 100644 index 0000000..be1221f Binary files /dev/null and b/ressources/fission/fi_fuel/fi_fuel_used_basic_thorium_item.png differ diff --git a/ressources/fission/fi_fuel/fi_fuel_used_pure_item.png b/ressources/fission/fi_fuel/fi_fuel_used_pure_item.png new file mode 100644 index 0000000..b804252 Binary files /dev/null and b/ressources/fission/fi_fuel/fi_fuel_used_pure_item.png differ diff --git a/ressources/fission/fi_materials/Thumbs.db b/ressources/fission/fi_materials/Thumbs.db new file mode 100644 index 0000000..9157925 Binary files /dev/null and b/ressources/fission/fi_materials/Thumbs.db differ diff --git a/ressources/fission/fi_materials/fi_materials_industrial_steel_blend_item.png b/ressources/fission/fi_materials/fi_materials_industrial_steel_blend_item.png new file mode 100644 index 0000000..fb67ec3 Binary files /dev/null and b/ressources/fission/fi_materials/fi_materials_industrial_steel_blend_item.png differ diff --git a/ressources/fission/fi_materials/fi_materials_industrial_steel_item.png b/ressources/fission/fi_materials/fi_materials_industrial_steel_item.png new file mode 100644 index 0000000..dd0f23f Binary files /dev/null and b/ressources/fission/fi_materials/fi_materials_industrial_steel_item.png differ diff --git a/ressources/fission/fi_miner/Thumbs.db b/ressources/fission/fi_miner/Thumbs.db new file mode 100644 index 0000000..6a39740 Binary files /dev/null and b/ressources/fission/fi_miner/Thumbs.db differ diff --git a/ressources/fission/fi_miner/fi_miner_entity_animation_horizontal.png b/ressources/fission/fi_miner/fi_miner_entity_animation_horizontal.png new file mode 100644 index 0000000..7bb7bc0 Binary files /dev/null and b/ressources/fission/fi_miner/fi_miner_entity_animation_horizontal.png differ diff --git a/ressources/fission/fi_miner/fi_miner_entity_animation_vertikal.png b/ressources/fission/fi_miner/fi_miner_entity_animation_vertikal.png new file mode 100644 index 0000000..d43280e Binary files /dev/null and b/ressources/fission/fi_miner/fi_miner_entity_animation_vertikal.png differ diff --git a/ressources/fission/fi_miner/fi_miner_entity_icon.png b/ressources/fission/fi_miner/fi_miner_entity_icon.png new file mode 100644 index 0000000..f973540 Binary files /dev/null and b/ressources/fission/fi_miner/fi_miner_entity_icon.png differ diff --git a/ressources/fission/fi_miner/fi_miner_item.png b/ressources/fission/fi_miner/fi_miner_item.png new file mode 100644 index 0000000..166ad6b Binary files /dev/null and b/ressources/fission/fi_miner/fi_miner_item.png differ diff --git a/ressources/fission/fi_modules/fi_modules_base.png b/ressources/fission/fi_modules/fi_modules_base.png new file mode 100644 index 0000000..f7027af Binary files /dev/null and b/ressources/fission/fi_modules/fi_modules_base.png differ diff --git a/ressources/fission/fi_modules/fi_modules_core.png b/ressources/fission/fi_modules/fi_modules_core.png new file mode 100644 index 0000000..7e12739 Binary files /dev/null and b/ressources/fission/fi_modules/fi_modules_core.png differ diff --git a/ressources/fission/fi_modules/fi_modules_productivity_1.png b/ressources/fission/fi_modules/fi_modules_productivity_1.png new file mode 100644 index 0000000..cbdf905 Binary files /dev/null and b/ressources/fission/fi_modules/fi_modules_productivity_1.png differ diff --git a/ressources/fission/fi_modules/fi_modules_productivity_2.png b/ressources/fission/fi_modules/fi_modules_productivity_2.png new file mode 100644 index 0000000..6861a2f Binary files /dev/null and b/ressources/fission/fi_modules/fi_modules_productivity_2.png differ diff --git a/ressources/fission/fi_modules/fi_modules_productivity_3.png b/ressources/fission/fi_modules/fi_modules_productivity_3.png new file mode 100644 index 0000000..064fd84 Binary files /dev/null and b/ressources/fission/fi_modules/fi_modules_productivity_3.png differ diff --git a/ressources/fission/fi_modules/fi_modules_productivity_4.png b/ressources/fission/fi_modules/fi_modules_productivity_4.png new file mode 100644 index 0000000..46d3605 Binary files /dev/null and b/ressources/fission/fi_modules/fi_modules_productivity_4.png differ diff --git a/ressources/fission/fi_modules/fi_modules_productivity_5.png b/ressources/fission/fi_modules/fi_modules_productivity_5.png new file mode 100644 index 0000000..d0c9343 Binary files /dev/null and b/ressources/fission/fi_modules/fi_modules_productivity_5.png differ diff --git a/ressources/fission/fi_modules/fi_modules_productivity_6.png b/ressources/fission/fi_modules/fi_modules_productivity_6.png new file mode 100644 index 0000000..153d161 Binary files /dev/null and b/ressources/fission/fi_modules/fi_modules_productivity_6.png differ diff --git a/ressources/fission/fi_robo/Thumbs.db b/ressources/fission/fi_robo/Thumbs.db new file mode 100644 index 0000000..078a7ce Binary files /dev/null and b/ressources/fission/fi_robo/Thumbs.db differ diff --git a/ressources/fission/fi_robo/fi_robo_charger_animation_2.png b/ressources/fission/fi_robo/fi_robo_charger_animation_2.png new file mode 100644 index 0000000..86dd382 Binary files /dev/null and b/ressources/fission/fi_robo/fi_robo_charger_animation_2.png differ diff --git a/ressources/fission/fi_robo/fi_robo_charger_base.png b/ressources/fission/fi_robo/fi_robo_charger_base.png new file mode 100644 index 0000000..3ecf902 Binary files /dev/null and b/ressources/fission/fi_robo/fi_robo_charger_base.png differ diff --git a/ressources/fission/fi_robo/fi_robo_charger_base_2.png b/ressources/fission/fi_robo/fi_robo_charger_base_2.png new file mode 100644 index 0000000..3f83e15 Binary files /dev/null and b/ressources/fission/fi_robo/fi_robo_charger_base_2.png differ diff --git a/ressources/fission/fi_robo/fi_robo_charger_entity_icon.png b/ressources/fission/fi_robo/fi_robo_charger_entity_icon.png new file mode 100644 index 0000000..596515b Binary files /dev/null and b/ressources/fission/fi_robo/fi_robo_charger_entity_icon.png differ diff --git a/ressources/fission/fi_robo/fi_robo_charger_item.png b/ressources/fission/fi_robo/fi_robo_charger_item.png new file mode 100644 index 0000000..596515b Binary files /dev/null and b/ressources/fission/fi_robo/fi_robo_charger_item.png differ diff --git a/ressources/fission/fi_robo/fi_robo_port_base.png b/ressources/fission/fi_robo/fi_robo_port_base.png new file mode 100644 index 0000000..ad3a828 Binary files /dev/null and b/ressources/fission/fi_robo/fi_robo_port_base.png differ diff --git a/ressources/fission/fi_robo/fi_robo_port_door_animation.png b/ressources/fission/fi_robo/fi_robo_port_door_animation.png new file mode 100644 index 0000000..b1921b4 Binary files /dev/null and b/ressources/fission/fi_robo/fi_robo_port_door_animation.png differ diff --git a/ressources/fission/fi_robo/fi_robo_port_entity_icon.png b/ressources/fission/fi_robo/fi_robo_port_entity_icon.png new file mode 100644 index 0000000..d0e7080 Binary files /dev/null and b/ressources/fission/fi_robo/fi_robo_port_entity_icon.png differ diff --git a/ressources/fission/fi_robo/fi_robo_port_item.png b/ressources/fission/fi_robo/fi_robo_port_item.png new file mode 100644 index 0000000..d0e7080 Binary files /dev/null and b/ressources/fission/fi_robo/fi_robo_port_item.png differ diff --git a/ressources/fission/fi_solid_reactor/Thumbs.db b/ressources/fission/fi_solid_reactor/Thumbs.db new file mode 100644 index 0000000..9ec776b Binary files /dev/null and b/ressources/fission/fi_solid_reactor/Thumbs.db differ diff --git a/ressources/fission/fi_solid_reactor/fi_solid_reactor_entity_animation.png b/ressources/fission/fi_solid_reactor/fi_solid_reactor_entity_animation.png new file mode 100644 index 0000000..8670056 Binary files /dev/null and b/ressources/fission/fi_solid_reactor/fi_solid_reactor_entity_animation.png differ diff --git a/ressources/fission/fi_solid_reactor/fi_solid_reactor_entity_icon.png b/ressources/fission/fi_solid_reactor/fi_solid_reactor_entity_icon.png new file mode 100644 index 0000000..b5b3a58 Binary files /dev/null and b/ressources/fission/fi_solid_reactor/fi_solid_reactor_entity_icon.png differ diff --git a/ressources/fission/fi_solid_reactor/fi_solid_reactor_item.png b/ressources/fission/fi_solid_reactor/fi_solid_reactor_item.png new file mode 100644 index 0000000..b5b3a58 Binary files /dev/null and b/ressources/fission/fi_solid_reactor/fi_solid_reactor_item.png differ diff --git a/ressources/fission/fi_solid_reactor/fi_solid_reactor_working_light.png b/ressources/fission/fi_solid_reactor/fi_solid_reactor_working_light.png new file mode 100644 index 0000000..bf45ada Binary files /dev/null and b/ressources/fission/fi_solid_reactor/fi_solid_reactor_working_light.png differ diff --git a/ressources/fluids/Thumbs.db b/ressources/fluids/Thumbs.db new file mode 100644 index 0000000..4e9b804 Binary files /dev/null and b/ressources/fluids/Thumbs.db differ diff --git a/ressources/fluids/el_acidic_water.png b/ressources/fluids/el_acidic_water.png new file mode 100644 index 0000000..dcd3cfd Binary files /dev/null and b/ressources/fluids/el_acidic_water.png differ diff --git a/ressources/fluids/el_desulfurized_kerosene.png b/ressources/fluids/el_desulfurized_kerosene.png new file mode 100644 index 0000000..09936a3 Binary files /dev/null and b/ressources/fluids/el_desulfurized_kerosene.png differ diff --git a/ressources/fluids/el_kerosene.png b/ressources/fluids/el_kerosene.png new file mode 100644 index 0000000..4565258 Binary files /dev/null and b/ressources/fluids/el_kerosene.png differ diff --git a/ressources/fluids/el_ki_cpu_fluid.png b/ressources/fluids/el_ki_cpu_fluid.png new file mode 100644 index 0000000..ddc4de9 Binary files /dev/null and b/ressources/fluids/el_ki_cpu_fluid.png differ diff --git a/ressources/fluids/el_ki_memory_fluid.png b/ressources/fluids/el_ki_memory_fluid.png new file mode 100644 index 0000000..7fde687 Binary files /dev/null and b/ressources/fluids/el_ki_memory_fluid.png differ diff --git a/ressources/fluids/el_pressurized_water.png b/ressources/fluids/el_pressurized_water.png new file mode 100644 index 0000000..9e0d4ba Binary files /dev/null and b/ressources/fluids/el_pressurized_water.png differ diff --git a/ressources/fluids/fi_crystal_fluid.png b/ressources/fluids/fi_crystal_fluid.png new file mode 100644 index 0000000..ef247ee Binary files /dev/null and b/ressources/fluids/fi_crystal_fluid.png differ diff --git a/ressources/fluids/fi_ki_circuit_fluid.png b/ressources/fluids/fi_ki_circuit_fluid.png new file mode 100644 index 0000000..3a892cd Binary files /dev/null and b/ressources/fluids/fi_ki_circuit_fluid.png differ diff --git a/ressources/fluids/fu_ki_circuit_fluid.png b/ressources/fluids/fu_ki_circuit_fluid.png new file mode 100644 index 0000000..f0ebc57 Binary files /dev/null and b/ressources/fluids/fu_ki_circuit_fluid.png differ diff --git a/ressources/fluids/fu_lead_fluid.png b/ressources/fluids/fu_lead_fluid.png new file mode 100644 index 0000000..efb21fa Binary files /dev/null and b/ressources/fluids/fu_lead_fluid.png differ diff --git a/ressources/fusion/fu_activator/Thumbs.db b/ressources/fusion/fu_activator/Thumbs.db new file mode 100644 index 0000000..f062f59 Binary files /dev/null and b/ressources/fusion/fu_activator/Thumbs.db differ diff --git a/ressources/fusion/fu_activator/fu_activator_entity_animation.png b/ressources/fusion/fu_activator/fu_activator_entity_animation.png new file mode 100644 index 0000000..396a6b7 Binary files /dev/null and b/ressources/fusion/fu_activator/fu_activator_entity_animation.png differ diff --git a/ressources/fusion/fu_activator/fu_activator_entity_icon.png b/ressources/fusion/fu_activator/fu_activator_entity_icon.png new file mode 100644 index 0000000..b504635 Binary files /dev/null and b/ressources/fusion/fu_activator/fu_activator_entity_icon.png differ diff --git a/ressources/fusion/fu_activator/fu_activator_item.png b/ressources/fusion/fu_activator/fu_activator_item.png new file mode 100644 index 0000000..b504635 Binary files /dev/null and b/ressources/fusion/fu_activator/fu_activator_item.png differ diff --git a/ressources/fusion/fu_boiler/Thumbs.db b/ressources/fusion/fu_boiler/Thumbs.db new file mode 100644 index 0000000..5a4b3b7 Binary files /dev/null and b/ressources/fusion/fu_boiler/Thumbs.db differ diff --git a/ressources/fusion/fu_boiler/fu_boiler_entity_animation.png b/ressources/fusion/fu_boiler/fu_boiler_entity_animation.png new file mode 100644 index 0000000..5e345bb Binary files /dev/null and b/ressources/fusion/fu_boiler/fu_boiler_entity_animation.png differ diff --git a/ressources/fusion/fu_boiler/fu_boiler_entity_icon.png b/ressources/fusion/fu_boiler/fu_boiler_entity_icon.png new file mode 100644 index 0000000..e834881 Binary files /dev/null and b/ressources/fusion/fu_boiler/fu_boiler_entity_icon.png differ diff --git a/ressources/fusion/fu_boiler/fu_boiler_item.png b/ressources/fusion/fu_boiler/fu_boiler_item.png new file mode 100644 index 0000000..e834881 Binary files /dev/null and b/ressources/fusion/fu_boiler/fu_boiler_item.png differ diff --git a/ressources/fusion/fu_burner/Thumbs.db b/ressources/fusion/fu_burner/Thumbs.db new file mode 100644 index 0000000..1faf8f0 Binary files /dev/null and b/ressources/fusion/fu_burner/Thumbs.db differ diff --git a/ressources/fusion/fu_burner/fu_burner_entity_animation.png b/ressources/fusion/fu_burner/fu_burner_entity_animation.png new file mode 100644 index 0000000..99890d0 Binary files /dev/null and b/ressources/fusion/fu_burner/fu_burner_entity_animation.png differ diff --git a/ressources/fusion/fu_burner/fu_burner_entity_icon.png b/ressources/fusion/fu_burner/fu_burner_entity_icon.png new file mode 100644 index 0000000..aa69126 Binary files /dev/null and b/ressources/fusion/fu_burner/fu_burner_entity_icon.png differ diff --git a/ressources/fusion/fu_burner/fu_burner_item.png b/ressources/fusion/fu_burner/fu_burner_item.png new file mode 100644 index 0000000..aa69126 Binary files /dev/null and b/ressources/fusion/fu_burner/fu_burner_item.png differ diff --git a/ressources/fusion/fu_exchanger/Thumbs.db b/ressources/fusion/fu_exchanger/Thumbs.db new file mode 100644 index 0000000..a7ed3c3 Binary files /dev/null and b/ressources/fusion/fu_exchanger/Thumbs.db differ diff --git a/ressources/fusion/fu_exchanger/fu_exchanger_entity_animation.png b/ressources/fusion/fu_exchanger/fu_exchanger_entity_animation.png new file mode 100644 index 0000000..1ee666e Binary files /dev/null and b/ressources/fusion/fu_exchanger/fu_exchanger_entity_animation.png differ diff --git a/ressources/fusion/fu_exchanger/fu_exchanger_entity_icon.png b/ressources/fusion/fu_exchanger/fu_exchanger_entity_icon.png new file mode 100644 index 0000000..3e47f4e Binary files /dev/null and b/ressources/fusion/fu_exchanger/fu_exchanger_entity_icon.png differ diff --git a/ressources/fusion/fu_exchanger/fu_exchanger_item.png b/ressources/fusion/fu_exchanger/fu_exchanger_item.png new file mode 100644 index 0000000..3e47f4e Binary files /dev/null and b/ressources/fusion/fu_exchanger/fu_exchanger_item.png differ diff --git a/ressources/fusion/fu_fusor/Thumbs.db b/ressources/fusion/fu_fusor/Thumbs.db new file mode 100644 index 0000000..44a28d3 Binary files /dev/null and b/ressources/fusion/fu_fusor/Thumbs.db differ diff --git a/ressources/fusion/fu_fusor/fu_fusor_entity_animation.png b/ressources/fusion/fu_fusor/fu_fusor_entity_animation.png new file mode 100644 index 0000000..25b51be Binary files /dev/null and b/ressources/fusion/fu_fusor/fu_fusor_entity_animation.png differ diff --git a/ressources/fusion/fu_fusor/fu_fusor_entity_icon.png b/ressources/fusion/fu_fusor/fu_fusor_entity_icon.png new file mode 100644 index 0000000..9b57881 Binary files /dev/null and b/ressources/fusion/fu_fusor/fu_fusor_entity_icon.png differ diff --git a/ressources/fusion/fu_fusor/fu_fusor_item.png b/ressources/fusion/fu_fusor/fu_fusor_item.png new file mode 100644 index 0000000..9b57881 Binary files /dev/null and b/ressources/fusion/fu_fusor/fu_fusor_item.png differ diff --git a/ressources/fusion/fu_fusor/fu_fusor_item_1.png b/ressources/fusion/fu_fusor/fu_fusor_item_1.png new file mode 100644 index 0000000..b772fb5 Binary files /dev/null and b/ressources/fusion/fu_fusor/fu_fusor_item_1.png differ diff --git a/ressources/fusion/fu_fusor/fu_fusor_tech_sign_item.png b/ressources/fusion/fu_fusor/fu_fusor_tech_sign_item.png new file mode 100644 index 0000000..4d6e5e6 Binary files /dev/null and b/ressources/fusion/fu_fusor/fu_fusor_tech_sign_item.png differ diff --git a/ressources/fusion/fu_lead/Thumbs.db b/ressources/fusion/fu_lead/Thumbs.db new file mode 100644 index 0000000..3b46d41 Binary files /dev/null and b/ressources/fusion/fu_lead/Thumbs.db differ diff --git a/ressources/fusion/fu_lead/fu_lead_crushed_item.png b/ressources/fusion/fu_lead/fu_lead_crushed_item.png new file mode 100644 index 0000000..5663315 Binary files /dev/null and b/ressources/fusion/fu_lead/fu_lead_crushed_item.png differ diff --git a/ressources/fusion/fu_lead/fu_lead_item.png b/ressources/fusion/fu_lead/fu_lead_item.png new file mode 100644 index 0000000..f770b2c Binary files /dev/null and b/ressources/fusion/fu_lead/fu_lead_item.png differ diff --git a/ressources/fusion/fu_lead/fu_lead_ore_item.png b/ressources/fusion/fu_lead/fu_lead_ore_item.png new file mode 100644 index 0000000..7ecd2af Binary files /dev/null and b/ressources/fusion/fu_lead/fu_lead_ore_item.png differ diff --git a/ressources/fusion/fu_reactor/Thumbs.db b/ressources/fusion/fu_reactor/Thumbs.db new file mode 100644 index 0000000..8b2eebe Binary files /dev/null and b/ressources/fusion/fu_reactor/Thumbs.db differ diff --git a/ressources/fusion/fu_reactor/fu_reactor_stelar_entity_animation.png b/ressources/fusion/fu_reactor/fu_reactor_stelar_entity_animation.png new file mode 100644 index 0000000..249ceba Binary files /dev/null and b/ressources/fusion/fu_reactor/fu_reactor_stelar_entity_animation.png differ diff --git a/ressources/fusion/fu_reactor/fu_reactor_stelar_entity_icon.png b/ressources/fusion/fu_reactor/fu_reactor_stelar_entity_icon.png new file mode 100644 index 0000000..704edc9 Binary files /dev/null and b/ressources/fusion/fu_reactor/fu_reactor_stelar_entity_icon.png differ diff --git a/ressources/fusion/fu_reactor/fu_reactor_stelar_entity_icon_1.png b/ressources/fusion/fu_reactor/fu_reactor_stelar_entity_icon_1.png new file mode 100644 index 0000000..a41914a Binary files /dev/null and b/ressources/fusion/fu_reactor/fu_reactor_stelar_entity_icon_1.png differ diff --git a/ressources/fusion/fu_reactor/fu_reactor_stelar_item.png b/ressources/fusion/fu_reactor/fu_reactor_stelar_item.png new file mode 100644 index 0000000..704edc9 Binary files /dev/null and b/ressources/fusion/fu_reactor/fu_reactor_stelar_item.png differ diff --git a/ressources/fusion/fu_reactor/fu_reactor_tokamak_entity_animation_horizontal.png b/ressources/fusion/fu_reactor/fu_reactor_tokamak_entity_animation_horizontal.png new file mode 100644 index 0000000..ad1aaee Binary files /dev/null and b/ressources/fusion/fu_reactor/fu_reactor_tokamak_entity_animation_horizontal.png differ diff --git a/ressources/fusion/fu_reactor/fu_reactor_tokamak_entity_animation_vertikal.png b/ressources/fusion/fu_reactor/fu_reactor_tokamak_entity_animation_vertikal.png new file mode 100644 index 0000000..8875b69 Binary files /dev/null and b/ressources/fusion/fu_reactor/fu_reactor_tokamak_entity_animation_vertikal.png differ diff --git a/ressources/fusion/fu_reactor/fu_reactor_tokamak_entity_icon.png b/ressources/fusion/fu_reactor/fu_reactor_tokamak_entity_icon.png new file mode 100644 index 0000000..2190059 Binary files /dev/null and b/ressources/fusion/fu_reactor/fu_reactor_tokamak_entity_icon.png differ diff --git a/ressources/fusion/fu_reactor/fu_reactor_tokamak_item.png b/ressources/fusion/fu_reactor/fu_reactor_tokamak_item.png new file mode 100644 index 0000000..2190059 Binary files /dev/null and b/ressources/fusion/fu_reactor/fu_reactor_tokamak_item.png differ diff --git a/ressources/fusion/fu_robo/Thumbs.db b/ressources/fusion/fu_robo/Thumbs.db new file mode 100644 index 0000000..d18b36f Binary files /dev/null and b/ressources/fusion/fu_robo/Thumbs.db differ diff --git a/ressources/fusion/fu_robo/fu_robo_construction_entity_animation.png b/ressources/fusion/fu_robo/fu_robo_construction_entity_animation.png new file mode 100644 index 0000000..81e3173 Binary files /dev/null and b/ressources/fusion/fu_robo/fu_robo_construction_entity_animation.png differ diff --git a/ressources/fusion/fu_robo/fu_robo_construction_entity_icon.png b/ressources/fusion/fu_robo/fu_robo_construction_entity_icon.png new file mode 100644 index 0000000..9cc5fe2 Binary files /dev/null and b/ressources/fusion/fu_robo/fu_robo_construction_entity_icon.png differ diff --git a/ressources/fusion/fu_robo/fu_robo_construction_item.png b/ressources/fusion/fu_robo/fu_robo_construction_item.png new file mode 100644 index 0000000..9cc5fe2 Binary files /dev/null and b/ressources/fusion/fu_robo/fu_robo_construction_item.png differ diff --git a/ressources/fusion/fu_robo/fu_robo_logistic_entity_animation.png b/ressources/fusion/fu_robo/fu_robo_logistic_entity_animation.png new file mode 100644 index 0000000..6f8db05 Binary files /dev/null and b/ressources/fusion/fu_robo/fu_robo_logistic_entity_animation.png differ diff --git a/ressources/fusion/fu_robo/fu_robo_logistic_entity_icon.png b/ressources/fusion/fu_robo/fu_robo_logistic_entity_icon.png new file mode 100644 index 0000000..6e1e09b Binary files /dev/null and b/ressources/fusion/fu_robo/fu_robo_logistic_entity_icon.png differ diff --git a/ressources/fusion/fu_robo/fu_robo_logistic_item.png b/ressources/fusion/fu_robo/fu_robo_logistic_item.png new file mode 100644 index 0000000..6e1e09b Binary files /dev/null and b/ressources/fusion/fu_robo/fu_robo_logistic_item.png differ diff --git a/ressources/fusion/fu_space_probe/Thumbs.db b/ressources/fusion/fu_space_probe/Thumbs.db new file mode 100644 index 0000000..9b57378 Binary files /dev/null and b/ressources/fusion/fu_space_probe/Thumbs.db differ diff --git a/ressources/fusion/fu_space_probe/fu_space_probe_data_card_1_item.png b/ressources/fusion/fu_space_probe/fu_space_probe_data_card_1_item.png new file mode 100644 index 0000000..3ea51a9 Binary files /dev/null and b/ressources/fusion/fu_space_probe/fu_space_probe_data_card_1_item.png differ diff --git a/ressources/fusion/fu_space_probe/fu_space_probe_data_card_2_item.png b/ressources/fusion/fu_space_probe/fu_space_probe_data_card_2_item.png new file mode 100644 index 0000000..6aeeaf1 Binary files /dev/null and b/ressources/fusion/fu_space_probe/fu_space_probe_data_card_2_item.png differ diff --git a/ressources/fusion/fu_space_probe/fu_space_probe_data_card_3_item.png b/ressources/fusion/fu_space_probe/fu_space_probe_data_card_3_item.png new file mode 100644 index 0000000..2d02bdb Binary files /dev/null and b/ressources/fusion/fu_space_probe/fu_space_probe_data_card_3_item.png differ diff --git a/ressources/fusion/fu_space_probe/fu_space_probe_deep_probe_item.png b/ressources/fusion/fu_space_probe/fu_space_probe_deep_probe_item.png new file mode 100644 index 0000000..c605ec2 Binary files /dev/null and b/ressources/fusion/fu_space_probe/fu_space_probe_deep_probe_item.png differ diff --git a/ressources/fusion/fu_space_probe/fu_space_probe_down_matter_item.png b/ressources/fusion/fu_space_probe/fu_space_probe_down_matter_item.png new file mode 100644 index 0000000..2d6b8ce Binary files /dev/null and b/ressources/fusion/fu_space_probe/fu_space_probe_down_matter_item.png differ diff --git a/ressources/fusion/fu_space_probe/fu_space_probe_ore_item.png b/ressources/fusion/fu_space_probe/fu_space_probe_ore_item.png new file mode 100644 index 0000000..11ae9cf Binary files /dev/null and b/ressources/fusion/fu_space_probe/fu_space_probe_ore_item.png differ diff --git a/ressources/fusion/fu_space_probe/fu_space_probe_probe_item.png b/ressources/fusion/fu_space_probe/fu_space_probe_probe_item.png new file mode 100644 index 0000000..18c548c Binary files /dev/null and b/ressources/fusion/fu_space_probe/fu_space_probe_probe_item.png differ diff --git a/ressources/fusion/fu_space_probe/fu_space_probe_science_item.png b/ressources/fusion/fu_space_probe/fu_space_probe_science_item.png new file mode 100644 index 0000000..27b848c Binary files /dev/null and b/ressources/fusion/fu_space_probe/fu_space_probe_science_item.png differ diff --git a/ressources/fusion/fu_space_probe/fu_space_probe_science_item_1.png b/ressources/fusion/fu_space_probe/fu_space_probe_science_item_1.png new file mode 100644 index 0000000..0c35d1c Binary files /dev/null and b/ressources/fusion/fu_space_probe/fu_space_probe_science_item_1.png differ diff --git a/ressources/fusion/fu_space_probe/fu_space_probe_science_item_krastorio.png b/ressources/fusion/fu_space_probe/fu_space_probe_science_item_krastorio.png new file mode 100644 index 0000000..07c523f Binary files /dev/null and b/ressources/fusion/fu_space_probe/fu_space_probe_science_item_krastorio.png differ diff --git a/ressources/fusion/fu_space_probe/fu_space_probe_sputnik_item.png b/ressources/fusion/fu_space_probe/fu_space_probe_sputnik_item.png new file mode 100644 index 0000000..ff5f21d Binary files /dev/null and b/ressources/fusion/fu_space_probe/fu_space_probe_sputnik_item.png differ diff --git a/ressources/fusion/fu_space_probe/fu_space_probe_up_matter_item.png b/ressources/fusion/fu_space_probe/fu_space_probe_up_matter_item.png new file mode 100644 index 0000000..22b8b24 Binary files /dev/null and b/ressources/fusion/fu_space_probe/fu_space_probe_up_matter_item.png differ diff --git a/ressources/fusion/fu_star_engine/fu_star_engine_caster/Thumbs.db b/ressources/fusion/fu_star_engine/fu_star_engine_caster/Thumbs.db new file mode 100644 index 0000000..848c84b Binary files /dev/null and b/ressources/fusion/fu_star_engine/fu_star_engine_caster/Thumbs.db differ diff --git a/ressources/fusion/fu_star_engine/fu_star_engine_caster/fu_star_engine_caster_entity_animation.png b/ressources/fusion/fu_star_engine/fu_star_engine_caster/fu_star_engine_caster_entity_animation.png new file mode 100644 index 0000000..2447789 Binary files /dev/null and b/ressources/fusion/fu_star_engine/fu_star_engine_caster/fu_star_engine_caster_entity_animation.png differ diff --git a/ressources/fusion/fu_star_engine/fu_star_engine_caster/fu_star_engine_caster_entity_icon.png b/ressources/fusion/fu_star_engine/fu_star_engine_caster/fu_star_engine_caster_entity_icon.png new file mode 100644 index 0000000..fdf84c9 Binary files /dev/null and b/ressources/fusion/fu_star_engine/fu_star_engine_caster/fu_star_engine_caster_entity_icon.png differ diff --git a/ressources/fusion/fu_star_engine/fu_star_engine_caster/fu_star_engine_caster_item.png b/ressources/fusion/fu_star_engine/fu_star_engine_caster/fu_star_engine_caster_item.png new file mode 100644 index 0000000..fdf84c9 Binary files /dev/null and b/ressources/fusion/fu_star_engine/fu_star_engine_caster/fu_star_engine_caster_item.png differ diff --git a/ressources/fusion/fu_star_engine/fu_star_engine_cooler/Thumbs.db b/ressources/fusion/fu_star_engine/fu_star_engine_cooler/Thumbs.db new file mode 100644 index 0000000..b165423 Binary files /dev/null and b/ressources/fusion/fu_star_engine/fu_star_engine_cooler/Thumbs.db differ diff --git a/ressources/fusion/fu_star_engine/fu_star_engine_cooler/fu_star_engine_cooler_entity_animation.png b/ressources/fusion/fu_star_engine/fu_star_engine_cooler/fu_star_engine_cooler_entity_animation.png new file mode 100644 index 0000000..2447789 Binary files /dev/null and b/ressources/fusion/fu_star_engine/fu_star_engine_cooler/fu_star_engine_cooler_entity_animation.png differ diff --git a/ressources/fusion/fu_star_engine/fu_star_engine_cooler/fu_star_engine_cooler_entity_animation_1.png b/ressources/fusion/fu_star_engine/fu_star_engine_cooler/fu_star_engine_cooler_entity_animation_1.png new file mode 100644 index 0000000..7998996 Binary files /dev/null and b/ressources/fusion/fu_star_engine/fu_star_engine_cooler/fu_star_engine_cooler_entity_animation_1.png differ diff --git a/ressources/fusion/fu_star_engine/fu_star_engine_cooler/fu_star_engine_cooler_entity_icon.png b/ressources/fusion/fu_star_engine/fu_star_engine_cooler/fu_star_engine_cooler_entity_icon.png new file mode 100644 index 0000000..5bdaf00 Binary files /dev/null and b/ressources/fusion/fu_star_engine/fu_star_engine_cooler/fu_star_engine_cooler_entity_icon.png differ diff --git a/ressources/fusion/fu_star_engine/fu_star_engine_cooler/fu_star_engine_cooler_item.png b/ressources/fusion/fu_star_engine/fu_star_engine_cooler/fu_star_engine_cooler_item.png new file mode 100644 index 0000000..5bdaf00 Binary files /dev/null and b/ressources/fusion/fu_star_engine/fu_star_engine_cooler/fu_star_engine_cooler_item.png differ diff --git a/ressources/fusion/fu_star_engine/fu_star_engine_cooler_up/Thumbs.db b/ressources/fusion/fu_star_engine/fu_star_engine_cooler_up/Thumbs.db new file mode 100644 index 0000000..bd39ece Binary files /dev/null and b/ressources/fusion/fu_star_engine/fu_star_engine_cooler_up/Thumbs.db differ diff --git a/ressources/fusion/fu_star_engine/fu_star_engine_cooler_up/fu_star_engine_cooler_up_entity_animation.png b/ressources/fusion/fu_star_engine/fu_star_engine_cooler_up/fu_star_engine_cooler_up_entity_animation.png new file mode 100644 index 0000000..2447789 Binary files /dev/null and b/ressources/fusion/fu_star_engine/fu_star_engine_cooler_up/fu_star_engine_cooler_up_entity_animation.png differ diff --git a/ressources/fusion/fu_star_engine/fu_star_engine_cooler_up/fu_star_engine_cooler_up_entity_animation_1.png b/ressources/fusion/fu_star_engine/fu_star_engine_cooler_up/fu_star_engine_cooler_up_entity_animation_1.png new file mode 100644 index 0000000..ef4107f Binary files /dev/null and b/ressources/fusion/fu_star_engine/fu_star_engine_cooler_up/fu_star_engine_cooler_up_entity_animation_1.png differ diff --git a/ressources/fusion/fu_star_engine/fu_star_engine_cooler_up/fu_star_engine_cooler_up_entity_icon.png b/ressources/fusion/fu_star_engine/fu_star_engine_cooler_up/fu_star_engine_cooler_up_entity_icon.png new file mode 100644 index 0000000..22c508f Binary files /dev/null and b/ressources/fusion/fu_star_engine/fu_star_engine_cooler_up/fu_star_engine_cooler_up_entity_icon.png differ diff --git a/ressources/fusion/fu_star_engine/fu_star_engine_cooler_up/fu_star_engine_cooler_up_item.png b/ressources/fusion/fu_star_engine/fu_star_engine_cooler_up/fu_star_engine_cooler_up_item.png new file mode 100644 index 0000000..22c508f Binary files /dev/null and b/ressources/fusion/fu_star_engine/fu_star_engine_cooler_up/fu_star_engine_cooler_up_item.png differ diff --git a/ressources/fusion/fu_star_engine/fu_star_engine_core/Thumbs.db b/ressources/fusion/fu_star_engine/fu_star_engine_core/Thumbs.db new file mode 100644 index 0000000..1e03dde Binary files /dev/null and b/ressources/fusion/fu_star_engine/fu_star_engine_core/Thumbs.db differ diff --git a/ressources/fusion/fu_star_engine/fu_star_engine_core/fu_star_engine_core_entity_animation.png b/ressources/fusion/fu_star_engine/fu_star_engine_core/fu_star_engine_core_entity_animation.png new file mode 100644 index 0000000..9d4fab7 Binary files /dev/null and b/ressources/fusion/fu_star_engine/fu_star_engine_core/fu_star_engine_core_entity_animation.png differ diff --git a/ressources/fusion/fu_star_engine/fu_star_engine_core/fu_star_engine_core_entity_icon.png b/ressources/fusion/fu_star_engine/fu_star_engine_core/fu_star_engine_core_entity_icon.png new file mode 100644 index 0000000..541e793 Binary files /dev/null and b/ressources/fusion/fu_star_engine/fu_star_engine_core/fu_star_engine_core_entity_icon.png differ diff --git a/ressources/fusion/fu_star_engine/fu_star_engine_core/fu_star_engine_core_item.png b/ressources/fusion/fu_star_engine/fu_star_engine_core/fu_star_engine_core_item.png new file mode 100644 index 0000000..541e793 Binary files /dev/null and b/ressources/fusion/fu_star_engine/fu_star_engine_core/fu_star_engine_core_item.png differ diff --git a/ressources/fusion/fu_star_engine/fu_star_engine_heater/Thumbs.db b/ressources/fusion/fu_star_engine/fu_star_engine_heater/Thumbs.db new file mode 100644 index 0000000..729fbc9 Binary files /dev/null and b/ressources/fusion/fu_star_engine/fu_star_engine_heater/Thumbs.db differ diff --git a/ressources/fusion/fu_star_engine/fu_star_engine_heater/fu_star_engine_heater_entity_animation.png b/ressources/fusion/fu_star_engine/fu_star_engine_heater/fu_star_engine_heater_entity_animation.png new file mode 100644 index 0000000..f6f7c81 Binary files /dev/null and b/ressources/fusion/fu_star_engine/fu_star_engine_heater/fu_star_engine_heater_entity_animation.png differ diff --git a/ressources/fusion/fu_star_engine/fu_star_engine_heater/fu_star_engine_heater_entity_icon.png b/ressources/fusion/fu_star_engine/fu_star_engine_heater/fu_star_engine_heater_entity_icon.png new file mode 100644 index 0000000..c1f4ecf Binary files /dev/null and b/ressources/fusion/fu_star_engine/fu_star_engine_heater/fu_star_engine_heater_entity_icon.png differ diff --git a/ressources/fusion/fu_star_engine/fu_star_engine_heater/fu_star_engine_heater_item.png b/ressources/fusion/fu_star_engine/fu_star_engine_heater/fu_star_engine_heater_item.png new file mode 100644 index 0000000..c1f4ecf Binary files /dev/null and b/ressources/fusion/fu_star_engine/fu_star_engine_heater/fu_star_engine_heater_item.png differ diff --git a/ressources/fusion/fu_star_engine/fu_star_engine_heater_left/Thumbs.db b/ressources/fusion/fu_star_engine/fu_star_engine_heater_left/Thumbs.db new file mode 100644 index 0000000..78309d5 Binary files /dev/null and b/ressources/fusion/fu_star_engine/fu_star_engine_heater_left/Thumbs.db differ diff --git a/ressources/fusion/fu_star_engine/fu_star_engine_heater_left/fu_star_engine_heater_left_entity_animation.png b/ressources/fusion/fu_star_engine/fu_star_engine_heater_left/fu_star_engine_heater_left_entity_animation.png new file mode 100644 index 0000000..e0f3ce6 Binary files /dev/null and b/ressources/fusion/fu_star_engine/fu_star_engine_heater_left/fu_star_engine_heater_left_entity_animation.png differ diff --git a/ressources/fusion/fu_star_engine/fu_star_engine_heater_left/fu_star_engine_heater_left_entity_icon.png b/ressources/fusion/fu_star_engine/fu_star_engine_heater_left/fu_star_engine_heater_left_entity_icon.png new file mode 100644 index 0000000..ef844f5 Binary files /dev/null and b/ressources/fusion/fu_star_engine/fu_star_engine_heater_left/fu_star_engine_heater_left_entity_icon.png differ diff --git a/ressources/fusion/fu_star_engine/fu_star_engine_heater_left/fu_star_engine_heater_left_item.png b/ressources/fusion/fu_star_engine/fu_star_engine_heater_left/fu_star_engine_heater_left_item.png new file mode 100644 index 0000000..ef844f5 Binary files /dev/null and b/ressources/fusion/fu_star_engine/fu_star_engine_heater_left/fu_star_engine_heater_left_item.png differ diff --git a/ressources/gravitation/Thumbs.db b/ressources/gravitation/Thumbs.db new file mode 100644 index 0000000..334eddd Binary files /dev/null and b/ressources/gravitation/Thumbs.db differ diff --git a/ressources/gravitation/gr_black_hole/Thumbs.db b/ressources/gravitation/gr_black_hole/Thumbs.db new file mode 100644 index 0000000..c9c9124 Binary files /dev/null and b/ressources/gravitation/gr_black_hole/Thumbs.db differ diff --git a/ressources/gravitation/gr_black_hole/gr_black_hole_base_animation.png b/ressources/gravitation/gr_black_hole/gr_black_hole_base_animation.png new file mode 100644 index 0000000..3cfedfd Binary files /dev/null and b/ressources/gravitation/gr_black_hole/gr_black_hole_base_animation.png differ diff --git a/ressources/gravitation/gr_black_hole/gr_black_hole_item.png b/ressources/gravitation/gr_black_hole/gr_black_hole_item.png new file mode 100644 index 0000000..42d93b9 Binary files /dev/null and b/ressources/gravitation/gr_black_hole/gr_black_hole_item.png differ diff --git a/ressources/gravitation/gr_black_hole/gr_black_hole_working_animation.png b/ressources/gravitation/gr_black_hole/gr_black_hole_working_animation.png new file mode 100644 index 0000000..0a8c903 Binary files /dev/null and b/ressources/gravitation/gr_black_hole/gr_black_hole_working_animation.png differ diff --git a/ressources/gravitation/gr_charger/Thumbs.db b/ressources/gravitation/gr_charger/Thumbs.db new file mode 100644 index 0000000..8b2e0fe Binary files /dev/null and b/ressources/gravitation/gr_charger/Thumbs.db differ diff --git a/ressources/gravitation/gr_charger/gr_charger_entity_animation.png b/ressources/gravitation/gr_charger/gr_charger_entity_animation.png new file mode 100644 index 0000000..5221758 Binary files /dev/null and b/ressources/gravitation/gr_charger/gr_charger_entity_animation.png differ diff --git a/ressources/gravitation/gr_charger/gr_charger_entity_icon.png b/ressources/gravitation/gr_charger/gr_charger_entity_icon.png new file mode 100644 index 0000000..0082d2b Binary files /dev/null and b/ressources/gravitation/gr_charger/gr_charger_entity_icon.png differ diff --git a/ressources/gravitation/gr_cooker/Thumbs.db b/ressources/gravitation/gr_cooker/Thumbs.db new file mode 100644 index 0000000..97d3f16 Binary files /dev/null and b/ressources/gravitation/gr_cooker/Thumbs.db differ diff --git a/ressources/gravitation/gr_cooker/gr_cooker_entity_animation.png b/ressources/gravitation/gr_cooker/gr_cooker_entity_animation.png new file mode 100644 index 0000000..bb52467 Binary files /dev/null and b/ressources/gravitation/gr_cooker/gr_cooker_entity_animation.png differ diff --git a/ressources/gravitation/gr_cooker/gr_cooker_item.png b/ressources/gravitation/gr_cooker/gr_cooker_item.png new file mode 100644 index 0000000..8e1a743 Binary files /dev/null and b/ressources/gravitation/gr_cooker/gr_cooker_item.png differ diff --git a/ressources/gravitation/gr_crafter/Thumbs.db b/ressources/gravitation/gr_crafter/Thumbs.db new file mode 100644 index 0000000..f164bf4 Binary files /dev/null and b/ressources/gravitation/gr_crafter/Thumbs.db differ diff --git a/ressources/gravitation/gr_crafter/gr_crafter_entity_animation.png b/ressources/gravitation/gr_crafter/gr_crafter_entity_animation.png new file mode 100644 index 0000000..5307df4 Binary files /dev/null and b/ressources/gravitation/gr_crafter/gr_crafter_entity_animation.png differ diff --git a/ressources/gravitation/gr_crafter/gr_crafter_entity_icon.png b/ressources/gravitation/gr_crafter/gr_crafter_entity_icon.png new file mode 100644 index 0000000..f1f29fd Binary files /dev/null and b/ressources/gravitation/gr_crafter/gr_crafter_entity_icon.png differ diff --git a/ressources/gravitation/gr_lab/gr_lab_animation.png b/ressources/gravitation/gr_lab/gr_lab_animation.png new file mode 100644 index 0000000..a03bd47 Binary files /dev/null and b/ressources/gravitation/gr_lab/gr_lab_animation.png differ diff --git a/ressources/gravitation/gr_lab/gr_lab_item.png b/ressources/gravitation/gr_lab/gr_lab_item.png new file mode 100644 index 0000000..e53164d Binary files /dev/null and b/ressources/gravitation/gr_lab/gr_lab_item.png differ diff --git a/ressources/gravitation/gr_lab/gr_lab_off_animation.png b/ressources/gravitation/gr_lab/gr_lab_off_animation.png new file mode 100644 index 0000000..17179a6 Binary files /dev/null and b/ressources/gravitation/gr_lab/gr_lab_off_animation.png differ diff --git a/ressources/gravitation/gr_magnet_train/Thumbs.db b/ressources/gravitation/gr_magnet_train/Thumbs.db new file mode 100644 index 0000000..c691b1c Binary files /dev/null and b/ressources/gravitation/gr_magnet_train/Thumbs.db differ diff --git a/ressources/gravitation/gr_magnet_train/gr_magnet_train_animation_1.png b/ressources/gravitation/gr_magnet_train/gr_magnet_train_animation_1.png new file mode 100644 index 0000000..9a54c22 Binary files /dev/null and b/ressources/gravitation/gr_magnet_train/gr_magnet_train_animation_1.png differ diff --git a/ressources/gravitation/gr_magnet_train/gr_magnet_train_animation_2.png b/ressources/gravitation/gr_magnet_train/gr_magnet_train_animation_2.png new file mode 100644 index 0000000..ae92e49 Binary files /dev/null and b/ressources/gravitation/gr_magnet_train/gr_magnet_train_animation_2.png differ diff --git a/ressources/gravitation/gr_magnet_train/gr_magnet_train_item.png b/ressources/gravitation/gr_magnet_train/gr_magnet_train_item.png new file mode 100644 index 0000000..608d3ed Binary files /dev/null and b/ressources/gravitation/gr_magnet_train/gr_magnet_train_item.png differ diff --git a/ressources/gravitation/gr_magnet_train/gr_magnet_train_pre_animation_1.png b/ressources/gravitation/gr_magnet_train/gr_magnet_train_pre_animation_1.png new file mode 100644 index 0000000..543fd11 Binary files /dev/null and b/ressources/gravitation/gr_magnet_train/gr_magnet_train_pre_animation_1.png differ diff --git a/ressources/gravitation/gr_magnet_train/gr_magnet_train_pre_animation_2.png b/ressources/gravitation/gr_magnet_train/gr_magnet_train_pre_animation_2.png new file mode 100644 index 0000000..df7c8c4 Binary files /dev/null and b/ressources/gravitation/gr_magnet_train/gr_magnet_train_pre_animation_2.png differ diff --git a/ressources/gravitation/gr_magnet_train/gr_magnet_train_pre_item.png b/ressources/gravitation/gr_magnet_train/gr_magnet_train_pre_item.png new file mode 100644 index 0000000..c29cb98 Binary files /dev/null and b/ressources/gravitation/gr_magnet_train/gr_magnet_train_pre_item.png differ diff --git a/ressources/gravitation/gr_magnet_train/gr_magnet_train_wagon_animation.png b/ressources/gravitation/gr_magnet_train/gr_magnet_train_wagon_animation.png new file mode 100644 index 0000000..afe722c Binary files /dev/null and b/ressources/gravitation/gr_magnet_train/gr_magnet_train_wagon_animation.png differ diff --git a/ressources/gravitation/gr_magnet_train/gr_magnet_train_wagon_item.png b/ressources/gravitation/gr_magnet_train/gr_magnet_train_wagon_item.png new file mode 100644 index 0000000..dcfa157 Binary files /dev/null and b/ressources/gravitation/gr_magnet_train/gr_magnet_train_wagon_item.png differ diff --git a/ressources/gravitation/gr_magnet_train/gr_magnet_train_wagon_pre_animation.png b/ressources/gravitation/gr_magnet_train/gr_magnet_train_wagon_pre_animation.png new file mode 100644 index 0000000..0d80bb7 Binary files /dev/null and b/ressources/gravitation/gr_magnet_train/gr_magnet_train_wagon_pre_animation.png differ diff --git a/ressources/gravitation/gr_magnet_train/gr_magnet_train_wagon_pre_item.png b/ressources/gravitation/gr_magnet_train/gr_magnet_train_wagon_pre_item.png new file mode 100644 index 0000000..f377ac4 Binary files /dev/null and b/ressources/gravitation/gr_magnet_train/gr_magnet_train_wagon_pre_item.png differ diff --git a/ressources/gravitation/gr_magnet_train/gr_magnet_train_wheels_animation.png b/ressources/gravitation/gr_magnet_train/gr_magnet_train_wheels_animation.png new file mode 100644 index 0000000..bebdc2e Binary files /dev/null and b/ressources/gravitation/gr_magnet_train/gr_magnet_train_wheels_animation.png differ diff --git a/ressources/gravitation/gr_materials/Thumbs.db b/ressources/gravitation/gr_materials/Thumbs.db new file mode 100644 index 0000000..b258779 Binary files /dev/null and b/ressources/gravitation/gr_materials/Thumbs.db differ diff --git a/ressources/gravitation/gr_materials/gr_materials_blue_data_item.png b/ressources/gravitation/gr_materials/gr_materials_blue_data_item.png new file mode 100644 index 0000000..a6eb623 Binary files /dev/null and b/ressources/gravitation/gr_materials/gr_materials_blue_data_item.png differ diff --git a/ressources/gravitation/gr_materials/gr_materials_blue_item.png b/ressources/gravitation/gr_materials/gr_materials_blue_item.png new file mode 100644 index 0000000..69171da Binary files /dev/null and b/ressources/gravitation/gr_materials/gr_materials_blue_item.png differ diff --git a/ressources/gravitation/gr_materials/gr_materials_blue_pack_item.png b/ressources/gravitation/gr_materials/gr_materials_blue_pack_item.png new file mode 100644 index 0000000..af9da96 Binary files /dev/null and b/ressources/gravitation/gr_materials/gr_materials_blue_pack_item.png differ diff --git a/ressources/gravitation/gr_materials/gr_materials_charge_entity.png b/ressources/gravitation/gr_materials/gr_materials_charge_entity.png new file mode 100644 index 0000000..388d06c Binary files /dev/null and b/ressources/gravitation/gr_materials/gr_materials_charge_entity.png differ diff --git a/ressources/gravitation/gr_materials/gr_materials_charge_item.png b/ressources/gravitation/gr_materials/gr_materials_charge_item.png new file mode 100644 index 0000000..af6675a Binary files /dev/null and b/ressources/gravitation/gr_materials/gr_materials_charge_item.png differ diff --git a/ressources/gravitation/gr_materials/gr_materials_cooked_crystal_item.png b/ressources/gravitation/gr_materials/gr_materials_cooked_crystal_item.png new file mode 100644 index 0000000..b5d919b Binary files /dev/null and b/ressources/gravitation/gr_materials/gr_materials_cooked_crystal_item.png differ diff --git a/ressources/gravitation/gr_materials/gr_materials_crushed_exotic_item.png b/ressources/gravitation/gr_materials/gr_materials_crushed_exotic_item.png new file mode 100644 index 0000000..edfc30c Binary files /dev/null and b/ressources/gravitation/gr_materials/gr_materials_crushed_exotic_item.png differ diff --git a/ressources/gravitation/gr_materials/gr_materials_data_item.png b/ressources/gravitation/gr_materials/gr_materials_data_item.png new file mode 100644 index 0000000..cba672d Binary files /dev/null and b/ressources/gravitation/gr_materials/gr_materials_data_item.png differ diff --git a/ressources/gravitation/gr_materials/gr_materials_data_stacked_item.png b/ressources/gravitation/gr_materials/gr_materials_data_stacked_item.png new file mode 100644 index 0000000..ab48632 Binary files /dev/null and b/ressources/gravitation/gr_materials/gr_materials_data_stacked_item.png differ diff --git a/ressources/gravitation/gr_materials/gr_materials_fusion_cell_item.png b/ressources/gravitation/gr_materials/gr_materials_fusion_cell_item.png new file mode 100644 index 0000000..8cba8d7 Binary files /dev/null and b/ressources/gravitation/gr_materials/gr_materials_fusion_cell_item.png differ diff --git a/ressources/gravitation/gr_materials/gr_materials_green_data_item.png b/ressources/gravitation/gr_materials/gr_materials_green_data_item.png new file mode 100644 index 0000000..ddb701e Binary files /dev/null and b/ressources/gravitation/gr_materials/gr_materials_green_data_item.png differ diff --git a/ressources/gravitation/gr_materials/gr_materials_green_item.png b/ressources/gravitation/gr_materials/gr_materials_green_item.png new file mode 100644 index 0000000..54d4301 Binary files /dev/null and b/ressources/gravitation/gr_materials/gr_materials_green_item.png differ diff --git a/ressources/gravitation/gr_materials/gr_materials_green_pack_item.png b/ressources/gravitation/gr_materials/gr_materials_green_pack_item.png new file mode 100644 index 0000000..da375fd Binary files /dev/null and b/ressources/gravitation/gr_materials/gr_materials_green_pack_item.png differ diff --git a/ressources/gravitation/gr_materials/gr_materials_grey_data_item.png b/ressources/gravitation/gr_materials/gr_materials_grey_data_item.png new file mode 100644 index 0000000..8a5cd3f Binary files /dev/null and b/ressources/gravitation/gr_materials/gr_materials_grey_data_item.png differ diff --git a/ressources/gravitation/gr_materials/gr_materials_grey_item.png b/ressources/gravitation/gr_materials/gr_materials_grey_item.png new file mode 100644 index 0000000..7be017c Binary files /dev/null and b/ressources/gravitation/gr_materials/gr_materials_grey_item.png differ diff --git a/ressources/gravitation/gr_materials/gr_materials_grey_pack_item.png b/ressources/gravitation/gr_materials/gr_materials_grey_pack_item.png new file mode 100644 index 0000000..45a7455 Binary files /dev/null and b/ressources/gravitation/gr_materials/gr_materials_grey_pack_item.png differ diff --git a/ressources/gravitation/gr_materials/gr_materials_purple_data_item.png b/ressources/gravitation/gr_materials/gr_materials_purple_data_item.png new file mode 100644 index 0000000..c8aef6f Binary files /dev/null and b/ressources/gravitation/gr_materials/gr_materials_purple_data_item.png differ diff --git a/ressources/gravitation/gr_materials/gr_materials_purple_item.png b/ressources/gravitation/gr_materials/gr_materials_purple_item.png new file mode 100644 index 0000000..b5bcc50 Binary files /dev/null and b/ressources/gravitation/gr_materials/gr_materials_purple_item.png differ diff --git a/ressources/gravitation/gr_materials/gr_materials_purple_pack_item.png b/ressources/gravitation/gr_materials/gr_materials_purple_pack_item.png new file mode 100644 index 0000000..885bd12 Binary files /dev/null and b/ressources/gravitation/gr_materials/gr_materials_purple_pack_item.png differ diff --git a/ressources/gravitation/gr_materials/gr_materials_red_data_item.png b/ressources/gravitation/gr_materials/gr_materials_red_data_item.png new file mode 100644 index 0000000..d7a880c Binary files /dev/null and b/ressources/gravitation/gr_materials/gr_materials_red_data_item.png differ diff --git a/ressources/gravitation/gr_materials/gr_materials_red_item.png b/ressources/gravitation/gr_materials/gr_materials_red_item.png new file mode 100644 index 0000000..dae7392 Binary files /dev/null and b/ressources/gravitation/gr_materials/gr_materials_red_item.png differ diff --git a/ressources/gravitation/gr_materials/gr_materials_red_pack_item.png b/ressources/gravitation/gr_materials/gr_materials_red_pack_item.png new file mode 100644 index 0000000..2890b13 Binary files /dev/null and b/ressources/gravitation/gr_materials/gr_materials_red_pack_item.png differ diff --git a/ressources/gravitation/gr_materials/gr_materials_refined_crystal_item.png b/ressources/gravitation/gr_materials/gr_materials_refined_crystal_item.png new file mode 100644 index 0000000..3860ae5 Binary files /dev/null and b/ressources/gravitation/gr_materials/gr_materials_refined_crystal_item.png differ diff --git a/ressources/gravitation/gr_materials/gr_materials_stabilizer_item.png b/ressources/gravitation/gr_materials/gr_materials_stabilizer_item.png new file mode 100644 index 0000000..6834b1b Binary files /dev/null and b/ressources/gravitation/gr_materials/gr_materials_stabilizer_item.png differ diff --git a/ressources/gravitation/gr_materials/gr_materials_stack_down_item.png b/ressources/gravitation/gr_materials/gr_materials_stack_down_item.png new file mode 100644 index 0000000..85e9f61 Binary files /dev/null and b/ressources/gravitation/gr_materials/gr_materials_stack_down_item.png differ diff --git a/ressources/gravitation/gr_materials/gr_materials_stack_up_item.png b/ressources/gravitation/gr_materials/gr_materials_stack_up_item.png new file mode 100644 index 0000000..f26da51 Binary files /dev/null and b/ressources/gravitation/gr_materials/gr_materials_stack_up_item.png differ diff --git a/ressources/gravitation/gr_materials/gr_materials_white_data_item.png b/ressources/gravitation/gr_materials/gr_materials_white_data_item.png new file mode 100644 index 0000000..17c0a54 Binary files /dev/null and b/ressources/gravitation/gr_materials/gr_materials_white_data_item.png differ diff --git a/ressources/gravitation/gr_materials/gr_materials_white_item.png b/ressources/gravitation/gr_materials/gr_materials_white_item.png new file mode 100644 index 0000000..5ecd465 Binary files /dev/null and b/ressources/gravitation/gr_materials/gr_materials_white_item.png differ diff --git a/ressources/gravitation/gr_materials/gr_materials_white_pack_item.png b/ressources/gravitation/gr_materials/gr_materials_white_pack_item.png new file mode 100644 index 0000000..35be4df Binary files /dev/null and b/ressources/gravitation/gr_materials/gr_materials_white_pack_item.png differ diff --git a/ressources/gravitation/gr_materials/gr_materials_yellow_data_item.png b/ressources/gravitation/gr_materials/gr_materials_yellow_data_item.png new file mode 100644 index 0000000..3c35f43 Binary files /dev/null and b/ressources/gravitation/gr_materials/gr_materials_yellow_data_item.png differ diff --git a/ressources/gravitation/gr_materials/gr_materials_yellow_item.png b/ressources/gravitation/gr_materials/gr_materials_yellow_item.png new file mode 100644 index 0000000..88a3e46 Binary files /dev/null and b/ressources/gravitation/gr_materials/gr_materials_yellow_item.png differ diff --git a/ressources/gravitation/gr_materials/gr_materials_yellow_pack_item.png b/ressources/gravitation/gr_materials/gr_materials_yellow_pack_item.png new file mode 100644 index 0000000..e775e50 Binary files /dev/null and b/ressources/gravitation/gr_materials/gr_materials_yellow_pack_item.png differ diff --git a/ressources/gravitation/gr_white_hole/gr_white_hole_animation.png b/ressources/gravitation/gr_white_hole/gr_white_hole_animation.png new file mode 100644 index 0000000..31d5196 Binary files /dev/null and b/ressources/gravitation/gr_white_hole/gr_white_hole_animation.png differ diff --git a/ressources/gravitation/gr_white_hole/gr_white_hole_item.png b/ressources/gravitation/gr_white_hole/gr_white_hole_item.png new file mode 100644 index 0000000..7c0c510 Binary files /dev/null and b/ressources/gravitation/gr_white_hole/gr_white_hole_item.png differ diff --git a/ressources/groups/Thumbs.db b/ressources/groups/Thumbs.db new file mode 100644 index 0000000..47ffb30 Binary files /dev/null and b/ressources/groups/Thumbs.db differ diff --git a/ressources/groups/el_group_icon.png b/ressources/groups/el_group_icon.png new file mode 100644 index 0000000..f3cdddf Binary files /dev/null and b/ressources/groups/el_group_icon.png differ diff --git a/ressources/groups/fi_group_icon.png b/ressources/groups/fi_group_icon.png new file mode 100644 index 0000000..b9c243c Binary files /dev/null and b/ressources/groups/fi_group_icon.png differ diff --git a/ressources/groups/fu_group_icon.png b/ressources/groups/fu_group_icon.png new file mode 100644 index 0000000..771a029 Binary files /dev/null and b/ressources/groups/fu_group_icon.png differ diff --git a/ressources/groups/gr_group_icon.png b/ressources/groups/gr_group_icon.png new file mode 100644 index 0000000..20eee4b Binary files /dev/null and b/ressources/groups/gr_group_icon.png differ diff --git a/ressources/particles/Thumbs.db b/ressources/particles/Thumbs.db new file mode 100644 index 0000000..b3e8e63 Binary files /dev/null and b/ressources/particles/Thumbs.db differ diff --git a/ressources/particles/explosion.png b/ressources/particles/explosion.png new file mode 100644 index 0000000..5b244ef Binary files /dev/null and b/ressources/particles/explosion.png differ diff --git a/ressources/techs/Thumbs.db b/ressources/techs/Thumbs.db new file mode 100644 index 0000000..3c08737 Binary files /dev/null and b/ressources/techs/Thumbs.db differ diff --git a/ressources/techs/el_aluminum_tech.png b/ressources/techs/el_aluminum_tech.png new file mode 100644 index 0000000..eb4367c Binary files /dev/null and b/ressources/techs/el_aluminum_tech.png differ diff --git a/ressources/techs/el_burner_tech.png b/ressources/techs/el_burner_tech.png new file mode 100644 index 0000000..d9403a1 Binary files /dev/null and b/ressources/techs/el_burner_tech.png differ diff --git a/ressources/techs/el_crystal_tech.png b/ressources/techs/el_crystal_tech.png new file mode 100644 index 0000000..c2105214 Binary files /dev/null and b/ressources/techs/el_crystal_tech.png differ diff --git a/ressources/techs/el_energy_tech.png b/ressources/techs/el_energy_tech.png new file mode 100644 index 0000000..ad18283 Binary files /dev/null and b/ressources/techs/el_energy_tech.png differ diff --git a/ressources/techs/el_kerosene_tech.png b/ressources/techs/el_kerosene_tech.png new file mode 100644 index 0000000..66deeff Binary files /dev/null and b/ressources/techs/el_kerosene_tech.png differ diff --git a/ressources/techs/el_ki_eff_1_tech.png b/ressources/techs/el_ki_eff_1_tech.png new file mode 100644 index 0000000..bc27103 Binary files /dev/null and b/ressources/techs/el_ki_eff_1_tech.png differ diff --git a/ressources/techs/el_ki_eff_2_tech.png b/ressources/techs/el_ki_eff_2_tech.png new file mode 100644 index 0000000..c4f3fe2 Binary files /dev/null and b/ressources/techs/el_ki_eff_2_tech.png differ diff --git a/ressources/techs/el_ki_eff_3_tech.png b/ressources/techs/el_ki_eff_3_tech.png new file mode 100644 index 0000000..d9af40e Binary files /dev/null and b/ressources/techs/el_ki_eff_3_tech.png differ diff --git a/ressources/techs/el_ki_sup_1_tech.png b/ressources/techs/el_ki_sup_1_tech.png new file mode 100644 index 0000000..4f8a0c2 Binary files /dev/null and b/ressources/techs/el_ki_sup_1_tech.png differ diff --git a/ressources/techs/el_ki_sup_2_tech.png b/ressources/techs/el_ki_sup_2_tech.png new file mode 100644 index 0000000..7b9954a Binary files /dev/null and b/ressources/techs/el_ki_sup_2_tech.png differ diff --git a/ressources/techs/el_ki_sup_3_tech.png b/ressources/techs/el_ki_sup_3_tech.png new file mode 100644 index 0000000..a95f16b Binary files /dev/null and b/ressources/techs/el_ki_sup_3_tech.png differ diff --git a/ressources/techs/el_ki_sup_4_tech.png b/ressources/techs/el_ki_sup_4_tech.png new file mode 100644 index 0000000..580174e Binary files /dev/null and b/ressources/techs/el_ki_sup_4_tech.png differ diff --git a/ressources/techs/el_ki_tech.png b/ressources/techs/el_ki_tech.png new file mode 100644 index 0000000..f72975e Binary files /dev/null and b/ressources/techs/el_ki_tech.png differ diff --git a/ressources/techs/el_lithium_tech.png b/ressources/techs/el_lithium_tech.png new file mode 100644 index 0000000..a1a8e64 Binary files /dev/null and b/ressources/techs/el_lithium_tech.png differ diff --git a/ressources/techs/el_solar_tech.png b/ressources/techs/el_solar_tech.png new file mode 100644 index 0000000..6640184 Binary files /dev/null and b/ressources/techs/el_solar_tech.png differ diff --git a/ressources/techs/el_stage_tech.png b/ressources/techs/el_stage_tech.png new file mode 100644 index 0000000..9cb2d31 Binary files /dev/null and b/ressources/techs/el_stage_tech.png differ diff --git a/ressources/techs/el_train_tech.png b/ressources/techs/el_train_tech.png new file mode 100644 index 0000000..1db2c84 Binary files /dev/null and b/ressources/techs/el_train_tech.png differ diff --git a/ressources/techs/el_water_generator_tech.png b/ressources/techs/el_water_generator_tech.png new file mode 100644 index 0000000..fea2c04 Binary files /dev/null and b/ressources/techs/el_water_generator_tech.png differ diff --git a/ressources/techs/fi_blends_tech.png b/ressources/techs/fi_blends_tech.png new file mode 100644 index 0000000..19458fc Binary files /dev/null and b/ressources/techs/fi_blends_tech.png differ diff --git a/ressources/techs/fi_crusher_tech.png b/ressources/techs/fi_crusher_tech.png new file mode 100644 index 0000000..067f1d4 Binary files /dev/null and b/ressources/techs/fi_crusher_tech.png differ diff --git a/ressources/techs/fi_crystal_tech.png b/ressources/techs/fi_crystal_tech.png new file mode 100644 index 0000000..5261601 Binary files /dev/null and b/ressources/techs/fi_crystal_tech.png differ diff --git a/ressources/techs/fi_energy_tech.png b/ressources/techs/fi_energy_tech.png new file mode 100644 index 0000000..233b755 Binary files /dev/null and b/ressources/techs/fi_energy_tech.png differ diff --git a/ressources/techs/fi_ki_eff_1_tech.png b/ressources/techs/fi_ki_eff_1_tech.png new file mode 100644 index 0000000..bd90be4 Binary files /dev/null and b/ressources/techs/fi_ki_eff_1_tech.png differ diff --git a/ressources/techs/fi_ki_eff_2_tech.png b/ressources/techs/fi_ki_eff_2_tech.png new file mode 100644 index 0000000..85d99d2 Binary files /dev/null and b/ressources/techs/fi_ki_eff_2_tech.png differ diff --git a/ressources/techs/fi_ki_eff_3_tech.png b/ressources/techs/fi_ki_eff_3_tech.png new file mode 100644 index 0000000..fc5b67e Binary files /dev/null and b/ressources/techs/fi_ki_eff_3_tech.png differ diff --git a/ressources/techs/fi_ki_tech.png b/ressources/techs/fi_ki_tech.png new file mode 100644 index 0000000..f6b7fbe Binary files /dev/null and b/ressources/techs/fi_ki_tech.png differ diff --git a/ressources/techs/fi_materials_tech.png b/ressources/techs/fi_materials_tech.png new file mode 100644 index 0000000..4f0eeb3 Binary files /dev/null and b/ressources/techs/fi_materials_tech.png differ diff --git a/ressources/techs/fi_miner_tech.png b/ressources/techs/fi_miner_tech.png new file mode 100644 index 0000000..80b39de Binary files /dev/null and b/ressources/techs/fi_miner_tech.png differ diff --git a/ressources/techs/fi_modules_1_tech.png b/ressources/techs/fi_modules_1_tech.png new file mode 100644 index 0000000..1c23fc9 Binary files /dev/null and b/ressources/techs/fi_modules_1_tech.png differ diff --git a/ressources/techs/fi_modules_2_tech.png b/ressources/techs/fi_modules_2_tech.png new file mode 100644 index 0000000..49ee637 Binary files /dev/null and b/ressources/techs/fi_modules_2_tech.png differ diff --git a/ressources/techs/fi_modules_3_tech.png b/ressources/techs/fi_modules_3_tech.png new file mode 100644 index 0000000..628253c Binary files /dev/null and b/ressources/techs/fi_modules_3_tech.png differ diff --git a/ressources/techs/fi_modules_4_tech.png b/ressources/techs/fi_modules_4_tech.png new file mode 100644 index 0000000..b04043f Binary files /dev/null and b/ressources/techs/fi_modules_4_tech.png differ diff --git a/ressources/techs/fi_modules_5_tech.png b/ressources/techs/fi_modules_5_tech.png new file mode 100644 index 0000000..8e03869 Binary files /dev/null and b/ressources/techs/fi_modules_5_tech.png differ diff --git a/ressources/techs/fi_modules_6_tech.png b/ressources/techs/fi_modules_6_tech.png new file mode 100644 index 0000000..4e88d3f Binary files /dev/null and b/ressources/techs/fi_modules_6_tech.png differ diff --git a/ressources/techs/fi_refining_tech.png b/ressources/techs/fi_refining_tech.png new file mode 100644 index 0000000..1e11e21 Binary files /dev/null and b/ressources/techs/fi_refining_tech.png differ diff --git a/ressources/techs/fi_robo_tech.png b/ressources/techs/fi_robo_tech.png new file mode 100644 index 0000000..8697512 Binary files /dev/null and b/ressources/techs/fi_robo_tech.png differ diff --git a/ressources/techs/fi_solid_reactor_tech.png b/ressources/techs/fi_solid_reactor_tech.png new file mode 100644 index 0000000..63291ff Binary files /dev/null and b/ressources/techs/fi_solid_reactor_tech.png differ diff --git a/ressources/techs/fi_stage_tech.png b/ressources/techs/fi_stage_tech.png new file mode 100644 index 0000000..39180e9 Binary files /dev/null and b/ressources/techs/fi_stage_tech.png differ diff --git a/ressources/techs/fi_train_tech.png b/ressources/techs/fi_train_tech.png new file mode 100644 index 0000000..9cf8f1b Binary files /dev/null and b/ressources/techs/fi_train_tech.png differ diff --git a/ressources/techs/fu_activator_tech.png b/ressources/techs/fu_activator_tech.png new file mode 100644 index 0000000..d59adef Binary files /dev/null and b/ressources/techs/fu_activator_tech.png differ diff --git a/ressources/techs/fu_basic_elements_tech.png b/ressources/techs/fu_basic_elements_tech.png new file mode 100644 index 0000000..9f7444c Binary files /dev/null and b/ressources/techs/fu_basic_elements_tech.png differ diff --git a/ressources/techs/fu_crystal_tech.png b/ressources/techs/fu_crystal_tech.png new file mode 100644 index 0000000..5681abb Binary files /dev/null and b/ressources/techs/fu_crystal_tech.png differ diff --git a/ressources/techs/fu_energy_tech.png b/ressources/techs/fu_energy_tech.png new file mode 100644 index 0000000..6ab5f10 Binary files /dev/null and b/ressources/techs/fu_energy_tech.png differ diff --git a/ressources/techs/fu_fusor_tech.png b/ressources/techs/fu_fusor_tech.png new file mode 100644 index 0000000..d8a1b80 Binary files /dev/null and b/ressources/techs/fu_fusor_tech.png differ diff --git a/ressources/techs/fu_fusor_tech_1.png b/ressources/techs/fu_fusor_tech_1.png new file mode 100644 index 0000000..c45cb1d Binary files /dev/null and b/ressources/techs/fu_fusor_tech_1.png differ diff --git a/ressources/techs/fu_hydrogen_1_tech.png b/ressources/techs/fu_hydrogen_1_tech.png new file mode 100644 index 0000000..c9214c5 Binary files /dev/null and b/ressources/techs/fu_hydrogen_1_tech.png differ diff --git a/ressources/techs/fu_hydrogen_2_tech.png b/ressources/techs/fu_hydrogen_2_tech.png new file mode 100644 index 0000000..037cf67 Binary files /dev/null and b/ressources/techs/fu_hydrogen_2_tech.png differ diff --git a/ressources/techs/fu_hydrogen_3_tech.png b/ressources/techs/fu_hydrogen_3_tech.png new file mode 100644 index 0000000..1dd72dc Binary files /dev/null and b/ressources/techs/fu_hydrogen_3_tech.png differ diff --git a/ressources/techs/fu_ki_eff_1_tech.png b/ressources/techs/fu_ki_eff_1_tech.png new file mode 100644 index 0000000..8bed150 Binary files /dev/null and b/ressources/techs/fu_ki_eff_1_tech.png differ diff --git a/ressources/techs/fu_ki_eff_2_tech.png b/ressources/techs/fu_ki_eff_2_tech.png new file mode 100644 index 0000000..86f5f6f Binary files /dev/null and b/ressources/techs/fu_ki_eff_2_tech.png differ diff --git a/ressources/techs/fu_ki_eff_3_tech.png b/ressources/techs/fu_ki_eff_3_tech.png new file mode 100644 index 0000000..43b0f00 Binary files /dev/null and b/ressources/techs/fu_ki_eff_3_tech.png differ diff --git a/ressources/techs/fu_ki_plus_1_tech.png b/ressources/techs/fu_ki_plus_1_tech.png new file mode 100644 index 0000000..7aaeefb Binary files /dev/null and b/ressources/techs/fu_ki_plus_1_tech.png differ diff --git a/ressources/techs/fu_ki_plus_2_tech.png b/ressources/techs/fu_ki_plus_2_tech.png new file mode 100644 index 0000000..3c3fb3f Binary files /dev/null and b/ressources/techs/fu_ki_plus_2_tech.png differ diff --git a/ressources/techs/fu_ki_tech.png b/ressources/techs/fu_ki_tech.png new file mode 100644 index 0000000..f11e959 Binary files /dev/null and b/ressources/techs/fu_ki_tech.png differ diff --git a/ressources/techs/fu_lead_tech.png b/ressources/techs/fu_lead_tech.png new file mode 100644 index 0000000..a03c574 Binary files /dev/null and b/ressources/techs/fu_lead_tech.png differ diff --git a/ressources/techs/fu_reactor_tech.png b/ressources/techs/fu_reactor_tech.png new file mode 100644 index 0000000..d75c137 Binary files /dev/null and b/ressources/techs/fu_reactor_tech.png differ diff --git a/ressources/techs/fu_reactor_tech_1.png b/ressources/techs/fu_reactor_tech_1.png new file mode 100644 index 0000000..767fbbe Binary files /dev/null and b/ressources/techs/fu_reactor_tech_1.png differ diff --git a/ressources/techs/fu_robo_tech.png b/ressources/techs/fu_robo_tech.png new file mode 100644 index 0000000..a2a2eda Binary files /dev/null and b/ressources/techs/fu_robo_tech.png differ diff --git a/ressources/techs/fu_space_probe_1_tech.png b/ressources/techs/fu_space_probe_1_tech.png new file mode 100644 index 0000000..bfc193c Binary files /dev/null and b/ressources/techs/fu_space_probe_1_tech.png differ diff --git a/ressources/techs/fu_space_probe_2_tech.png b/ressources/techs/fu_space_probe_2_tech.png new file mode 100644 index 0000000..4d4cfa1 Binary files /dev/null and b/ressources/techs/fu_space_probe_2_tech.png differ diff --git a/ressources/techs/fu_space_probe_3_tech.png b/ressources/techs/fu_space_probe_3_tech.png new file mode 100644 index 0000000..bb7f819 Binary files /dev/null and b/ressources/techs/fu_space_probe_3_tech.png differ diff --git a/ressources/techs/fu_stage_tech.png b/ressources/techs/fu_stage_tech.png new file mode 100644 index 0000000..faa1631 Binary files /dev/null and b/ressources/techs/fu_stage_tech.png differ diff --git a/ressources/techs/fu_star_engine_copper_tech.png b/ressources/techs/fu_star_engine_copper_tech.png new file mode 100644 index 0000000..50a9fd1 Binary files /dev/null and b/ressources/techs/fu_star_engine_copper_tech.png differ diff --git a/ressources/techs/fu_star_engine_iron_tech.png b/ressources/techs/fu_star_engine_iron_tech.png new file mode 100644 index 0000000..cd96c3c Binary files /dev/null and b/ressources/techs/fu_star_engine_iron_tech.png differ diff --git a/ressources/techs/fu_star_engine_lithium_7_tech.png b/ressources/techs/fu_star_engine_lithium_7_tech.png new file mode 100644 index 0000000..e3e2823 Binary files /dev/null and b/ressources/techs/fu_star_engine_lithium_7_tech.png differ diff --git a/ressources/techs/fu_star_engine_sulfur_tech.png b/ressources/techs/fu_star_engine_sulfur_tech.png new file mode 100644 index 0000000..79cbc46 Binary files /dev/null and b/ressources/techs/fu_star_engine_sulfur_tech.png differ diff --git a/ressources/techs/fu_star_engine_tech.png b/ressources/techs/fu_star_engine_tech.png new file mode 100644 index 0000000..e7dcfa7 Binary files /dev/null and b/ressources/techs/fu_star_engine_tech.png differ diff --git a/ressources/techs/fu_star_engine_uranium_235_tech.png b/ressources/techs/fu_star_engine_uranium_235_tech.png new file mode 100644 index 0000000..a2ce2f3 Binary files /dev/null and b/ressources/techs/fu_star_engine_uranium_235_tech.png differ diff --git a/ressources/techs/fu_star_engine_uranium_238_tech.png b/ressources/techs/fu_star_engine_uranium_238_tech.png new file mode 100644 index 0000000..ac1e052 Binary files /dev/null and b/ressources/techs/fu_star_engine_uranium_238_tech.png differ diff --git a/ressources/techs/fu_tokamak_tech.png b/ressources/techs/fu_tokamak_tech.png new file mode 100644 index 0000000..b94be5f Binary files /dev/null and b/ressources/techs/fu_tokamak_tech.png differ diff --git a/ressources/techs/gr_black_hole_tech.png b/ressources/techs/gr_black_hole_tech.png new file mode 100644 index 0000000..e71147d Binary files /dev/null and b/ressources/techs/gr_black_hole_tech.png differ diff --git a/ressources/techs/gr_blue_tech.png b/ressources/techs/gr_blue_tech.png new file mode 100644 index 0000000..d94357a Binary files /dev/null and b/ressources/techs/gr_blue_tech.png differ diff --git a/ressources/techs/gr_charger_tech.png b/ressources/techs/gr_charger_tech.png new file mode 100644 index 0000000..471f896 Binary files /dev/null and b/ressources/techs/gr_charger_tech.png differ diff --git a/ressources/techs/gr_compact_fusion_tech.png b/ressources/techs/gr_compact_fusion_tech.png new file mode 100644 index 0000000..5ba2087 Binary files /dev/null and b/ressources/techs/gr_compact_fusion_tech.png differ diff --git a/ressources/techs/gr_cooker_tech.png b/ressources/techs/gr_cooker_tech.png new file mode 100644 index 0000000..f0ee3f3 Binary files /dev/null and b/ressources/techs/gr_cooker_tech.png differ diff --git a/ressources/techs/gr_crafter_tech.png b/ressources/techs/gr_crafter_tech.png new file mode 100644 index 0000000..a9d101b Binary files /dev/null and b/ressources/techs/gr_crafter_tech.png differ diff --git a/ressources/techs/gr_data_tech.png b/ressources/techs/gr_data_tech.png new file mode 100644 index 0000000..2a35f12 Binary files /dev/null and b/ressources/techs/gr_data_tech.png differ diff --git a/ressources/techs/gr_green_tech.png b/ressources/techs/gr_green_tech.png new file mode 100644 index 0000000..978e9c2 Binary files /dev/null and b/ressources/techs/gr_green_tech.png differ diff --git a/ressources/techs/gr_grey_tech.png b/ressources/techs/gr_grey_tech.png new file mode 100644 index 0000000..3acfec4 Binary files /dev/null and b/ressources/techs/gr_grey_tech.png differ diff --git a/ressources/techs/gr_kovarex_tech.png b/ressources/techs/gr_kovarex_tech.png new file mode 100644 index 0000000..0ad9980 Binary files /dev/null and b/ressources/techs/gr_kovarex_tech.png differ diff --git a/ressources/techs/gr_lab_tech.png b/ressources/techs/gr_lab_tech.png new file mode 100644 index 0000000..9a14052 Binary files /dev/null and b/ressources/techs/gr_lab_tech.png differ diff --git a/ressources/techs/gr_materials_tech.png b/ressources/techs/gr_materials_tech.png new file mode 100644 index 0000000..d60be2b Binary files /dev/null and b/ressources/techs/gr_materials_tech.png differ diff --git a/ressources/techs/gr_purple_tech.png b/ressources/techs/gr_purple_tech.png new file mode 100644 index 0000000..55cc77b Binary files /dev/null and b/ressources/techs/gr_purple_tech.png differ diff --git a/ressources/techs/gr_red_tech.png b/ressources/techs/gr_red_tech.png new file mode 100644 index 0000000..30d2a6c Binary files /dev/null and b/ressources/techs/gr_red_tech.png differ diff --git a/ressources/techs/gr_stage_tech.png b/ressources/techs/gr_stage_tech.png new file mode 100644 index 0000000..2db5f3d Binary files /dev/null and b/ressources/techs/gr_stage_tech.png differ diff --git a/ressources/techs/gr_steel_tech.png b/ressources/techs/gr_steel_tech.png new file mode 100644 index 0000000..4e05f5b Binary files /dev/null and b/ressources/techs/gr_steel_tech.png differ diff --git a/ressources/techs/gr_train_plus_tech.png b/ressources/techs/gr_train_plus_tech.png new file mode 100644 index 0000000..1020924 Binary files /dev/null and b/ressources/techs/gr_train_plus_tech.png differ diff --git a/ressources/techs/gr_train_tech.png b/ressources/techs/gr_train_tech.png new file mode 100644 index 0000000..6a5be7e Binary files /dev/null and b/ressources/techs/gr_train_tech.png differ diff --git a/ressources/techs/gr_wheel_tech.png b/ressources/techs/gr_wheel_tech.png new file mode 100644 index 0000000..4dfcc16 Binary files /dev/null and b/ressources/techs/gr_wheel_tech.png differ diff --git a/ressources/techs/gr_white_hole_tech.png b/ressources/techs/gr_white_hole_tech.png new file mode 100644 index 0000000..bf1012b Binary files /dev/null and b/ressources/techs/gr_white_hole_tech.png differ diff --git a/ressources/techs/gr_white_tech.png b/ressources/techs/gr_white_tech.png new file mode 100644 index 0000000..77f8b6a Binary files /dev/null and b/ressources/techs/gr_white_tech.png differ diff --git a/ressources/techs/gr_yellow_tech.png b/ressources/techs/gr_yellow_tech.png new file mode 100644 index 0000000..c6488c4 Binary files /dev/null and b/ressources/techs/gr_yellow_tech.png differ diff --git a/scripts/SE/data-final-fixes.lua b/scripts/SE/data-final-fixes.lua new file mode 100644 index 0000000..e44f41a --- /dev/null +++ b/scripts/SE/data-final-fixes.lua @@ -0,0 +1,84 @@ +local function config(name) + return settings.startup['el_ki_beacon_'..name].value +end + +--techs +table.insert(data.raw.lab["gr_lab_entity"].inputs, "se-deep-space-science-pack-1") +table.insert(data.raw.lab["gr_lab_entity"].inputs, "se-material-science-pack-2") +table.insert(data.raw.lab["gr_lab_entity"].inputs, "se-rocket-science-pack") +--se-energy-science-pack-1 +table.insert(data.raw.technology["fu_energy_tech"].unit.ingredients, {"se-energy-science-pack-1", 1}) +table.insert(data.raw.technology["fu_reactor_tech"].unit.ingredients, {"se-energy-science-pack-1", 1}) +table.insert(data.raw.technology["fu_tokamak_tech"].unit.ingredients, {"se-energy-science-pack-2", 1}) +table.insert(data.raw.technology["fu_star_engine_tech"].unit.ingredients, {"se-energy-science-pack-3", 1}) +--se-energy-material-pack-1 +table.insert(data.raw.technology["fu_star_engine_copper_tech"].unit.ingredients, {"se-material-science-pack-1", 1}) +table.insert(data.raw.technology["fu_star_engine_iron_tech"].unit.ingredients, {"se-material-science-pack-1", 1}) +table.insert(data.raw.technology["fu_star_engine_sulfur_tech"].unit.ingredients, {"se-material-science-pack-1", 1}) +--ki +table.insert(data.raw.technology["fu_ki_plus_1_tech"].unit.ingredients, {"se-deep-space-science-pack-2", 1}) +table.insert(data.raw.technology["fu_ki_plus_2_tech"].unit.ingredients, {"se-deep-space-science-pack-4", 1}) +table.insert(data.raw.technology["el_ki_sup_2_tech"].unit.ingredients, {"se-energy-science-pack-1", 1}) +table.insert(data.raw.technology["el_ki_sup_3_tech"].unit.ingredients, {"se-energy-science-pack-2", 1}) +table.insert(data.raw.technology["el_ki_sup_4_tech"].unit.ingredients, {"se-energy-science-pack-3", 1}) + +--modules +table.insert(data.raw.technology["fi_modules_4_tech"].unit.ingredients, {"se-deep-space-science-pack-2", 1}) +table.insert(data.raw.technology["fi_modules_5_tech"].unit.ingredients, {"se-deep-space-science-pack-3", 1}) +table.insert(data.raw.technology["fi_modules_6_tech"].unit.ingredients, {"se-deep-space-science-pack-4", 1}) + + +data.raw.technology["gr_stage_tech"].prerequisites = { + 'fu_space_probe_3_tech', + 'fu_hydrogen_3_tech', + 'fu_lead_tech' +} + +for i,v in pairs(data.raw.beacon) do + if (i == "el_ki_beacon_entity-spaced") or (i == "fi_ki_beacon_entity-spaced") or (i == "fu_ki_beacon_entity-spaced") then + data.raw.beacon[i] = nil + end +end + +--buff beacons +data.raw.beacon["el_ki_beacon_entity"].module_specification = { + module_slots = 10, + module_info_icon_shift = {0, 0.5}, + module_info_multi_row_initial_height_modifier = -0.3, +} +data.raw.beacon["el_ki_beacon_entity"].energy_usage = '2MW' +data.raw.beacon["el_ki_beacon_entity"].supply_area_distance = config('supply_area') + 2 + +data.raw.beacon["fi_ki_beacon_entity"].module_specification = { + module_slots = 15, + module_info_icon_shift = {0, 0.5}, + module_info_multi_row_initial_height_modifier = -0.3, +} +data.raw.beacon["fi_ki_beacon_entity"].energy_usage = '8MW' +data.raw.beacon["fi_ki_beacon_entity"].supply_area_distance = config('supply_area') + 6 + +data.raw.beacon["fu_ki_beacon_entity"].module_specification = { + module_slots = 45, + module_info_icon_shift = {0, 0.5}, + module_info_multi_row_initial_height_modifier = -0.3, +} +data.raw.beacon["fu_ki_beacon_entity"].energy_usage = '80MW' +data.raw.beacon["fu_ki_beacon_entity"].supply_area_distance = config('supply_area') + 15 + + +--buff cores +data.raw.beacon["el_ki_core_slave_entity"].module_specification = { + module_slots = 5, + module_info_icon_shift = {0, 0.5}, + module_info_multi_row_initial_height_modifier = -0.3, +} +data.raw.beacon["fi_ki_core_slave_entity"].module_specification = { + module_slots = 5, + module_info_icon_shift = {0, 0.5}, + module_info_multi_row_initial_height_modifier = -0.3, +} +data.raw.beacon["fu_ki_core_slave_entity"].module_specification = { + module_slots = 5, + module_info_icon_shift = {0, 0.5}, + module_info_multi_row_initial_height_modifier = -0.3, +} \ No newline at end of file diff --git a/scripts/SE/data.lua b/scripts/SE/data.lua new file mode 100644 index 0000000..41c7ac2 --- /dev/null +++ b/scripts/SE/data.lua @@ -0,0 +1,34 @@ +--on space station +data.raw["assembling-machine"]["el_ki_memory_entity"].se_allow_in_space = true +data.raw["assembling-machine"]["el_ki_cpu_entity"].se_allow_in_space = true +data.raw["assembling-machine"]["el_ki_core_entity"].se_allow_in_space = true + +data.raw["assembling-machine"]["fi_ki_circuit_entity"].se_allow_in_space = true +data.raw["assembling-machine"]["fi_ki_core_entity"].se_allow_in_space = true + +data.raw["assembling-machine"]["fu_ki_circuit_entity"].se_allow_in_space = true +data.raw["assembling-machine"]["fu_ki_core_entity"].se_allow_in_space = true + +data.raw["beacon"]["el_ki_beacon_entity"].se_allow_in_space = true +data.raw["beacon"]["fi_ki_beacon_entity"].se_allow_in_space = true +data.raw["beacon"]["fu_ki_beacon_entity"].se_allow_in_space = true +data.raw["beacon"]["el_ki_beacon_entity"].allow_in_space = true +data.raw["beacon"]["fi_ki_beacon_entity"].allow_in_space = true +data.raw["beacon"]["fu_ki_beacon_entity"].allow_in_space = true + +data.raw["assembling-machine"]["fi_crafter_entity"].se_allow_in_space = true +data.raw["assembling-machine"]["fi_crusher_entity"].se_allow_in_space = true + +data.raw["assembling-machine"]["fu_star_engine_core_entity"].se_allow_in_space = true +data.raw["assembling-machine"]["fu_star_engine_cooler_up_entity"].se_allow_in_space = true +data.raw["assembling-machine"]["fu_star_engine_cooler_entity"].se_allow_in_space = true +data.raw["assembling-machine"]["fu_star_engine_heater_left_entity"].se_allow_in_space = true +data.raw["assembling-machine"]["fu_star_engine_heater_entity"].se_allow_in_space = true + +data.raw["assembling-machine"]["fu_fusor_entity"].se_allow_in_space = true +data.raw["assembling-machine"]["fu_tokamak_reactor_entity"].se_allow_in_space = true +data.raw["assembling-machine"]["fu_stelar_reactor_entity"].se_allow_in_space = true +data.raw["assembling-machine"]["fu_activator_entity"].se_allow_in_space = true +data.raw["assembling-machine"]["fu_exchanger_entity"].se_allow_in_space = true + +data.raw["assembling-machine"]["gr_crafter_entity"].se_allow_in_space = true \ No newline at end of file diff --git a/scripts/bk_main.lua b/scripts/bk_main.lua new file mode 100644 index 0000000..4648df0 --- /dev/null +++ b/scripts/bk_main.lua @@ -0,0 +1,141 @@ +--tables +local table_248k_diesel_train = +{ + {"Fuels", "Burn value", "Vehicle acceleration", "Top speed", "Equipment", "Effects"}, + {"[item=el_train_fuel_diesel_item]", "100MJ", "100%", "100%","[item=el_train_equipment_accelerator_item]", "acceleration: +35%"}, + {"[item=el_train_fuel_diesel_energized_item]", "135MJ", "55%", "130%", "[item=el_train_equipment_generator_item]", "power: +600kW"}, + {"[item=fi_fuel_train_crystal_item]", "350MJ", "60%", "155%", "[item=fi_train_equipment_generator_item]", "power: +2.4MW"}, +} +local table_248k_star_engine = +{ + {"Products", "Amount/s out", "Protium/s usage"}, + {"Fusion Stage"}, + {"[item=iron-plate]", "1 000", "26 000"}, + {"[item=copper-plate]", "896", "26 000 "}, + {"[item=sulfur]", "1 000", "16 000"}, + {"[item=el_lithium_item]", "1 000", "3 000"}, + {"[item=uranium-238]", "282", "26 000"}, + {"[item=uranium-235]", "282", "26 000"}, + {"Exotic Stage"}, + {"[item=iron-gear-wheel]", "1 000", "26 000"}, + {"[item=steel-plate]", "1 000", "26 000"}, +} +local table_248k_exotic_science = +{ + {"Satelites", "Result", "Amount"}, + {"[item=fu_space_probe_sputnik_item]", "[item=fu_space_probe_data_card_1_item]", "10"}, + {"[item=fu_space_probe_probe_item]", "[item=fu_space_probe_data_card_2_item]", "10"}, + {"[item=fu_space_probe_deep_probe_item]", "[item=fu_space_probe_ore_item]", "100"}, +} +--Thread +local thread_248k = +{ + name = {"248k mod " .. "[item=fu_star_engine_core_item]"}, + localized = false, + specified_version = 0, + topics = + { + { + name = {"gui.bk_248k_overview"}, + align = "center", + topic = + { + {type = "title", title = {"gui.bk_248k_about"}}, + {type = "text", text = {"gui.bk_248k_about_text"}}, + {type = "image", spritename = "bk_sprite_1"}, + {type = "image", spritename = "bk_sprite_2"}, + {type = "subtitle", subtitle = {"gui.bk_248k_first_steps"}, align = "center"}, + {type = "text", text = {"gui.bk_248k_first_steps_text"}} + } + }, + { + name = "KI1 core " .. "[item=el_ki_core_item]", + localized = false, + align = "center", + topic = + { + {type = "title", title = {"gui.bk_248k_ki1_core"}}, + {type = "text", text = {"gui.bk_248k_ki1_core_text"}}, + {type = "image", spritename = "bk_sprite_3"}, + {type = "text", text = {"gui.bk_248k_ki2_core_text"}}, + {type = "image", spritename = "bk_sprite_7"} + } + }, + { + name = "Diesel train " .. "[item=el_diesel_train_item]", + localized = false, + align = "center", + topic = + { + {type = "title", title = {"gui.bk_248k_diesel_train"}}, + {type = "text", text = {"gui.bk_248k_diesel_train_text"}}, + {type = "table", table = table_248k_diesel_train} + } + }, + { + name = "Fusion " .. "[item=fu_fusor_item]", + localized = false, + align = "center", + topic = + { + {type = "title", title = {"gui.bk_248k_fusion"}}, + {type = "text", text = {"gui.bk_248k_fusion_text"}}, + {type = "image", spritename = "bk_sprite_4"}, + {type = "text", text = {"gui.bk_248k_fusion_1_text"}}, + {type = "image", spritename = "bk_sprite_5"}, + {type = "text", text = {"gui.bk_248k_fusion_2_text"}}, + } + }, + { + name = "Star engine " .. "[item=fu_star_engine_core_item]", + localized = false, + align = "center", + topic = + { + {type = "title", title = {"gui.bk_248k_star_engine"}}, + {type = "text", text = {"gui.bk_248k_star_engine_text"}}, + {type = "image", spritename = "bk_sprite_6"}, + {type = "text", text = {"gui.bk_248k_star_engine_1_text"}}, + {type = "table", table = table_248k_star_engine} + } + }, + { + name = "Exotic science " .. "[item=fu_space_probe_science_item]", + localized = false, + align = "center", + topic = + { + {type = "title", title = {"gui.bk_248k_exotic_science"}}, + {type = "text", text = {"gui.bk_248k_exotic_science_text"}}, + {type = "table", table = table_248k_exotic_science} + } + }, + { + name = "Blueprints " .. "[item=processing-unit]", + localized = false, + align = "center", + topic = + { + {type = "title", title = {"gui.bk_248k_blueprints"}}, + {type = "text", text = {"gui.bk_248k_blueprints_text"}}, + {type = "blueprint", text = "gui.bk_248k_blueprints_1", blueprint ="0eNq9mt1u6kYUhd/F1+Ro/sdGVd+g172oIgvCnNQqGGSb06YR794xpA4o3ll7o7Q3UQzmmzV7L3uWB16L9faYDl3TDsXytWie9m1fLH97LfrmuV1tx9eGl0MqlkUzpF2xKNrVbjxK2/rP1ZC6+jm1qVsN+64+n3BaFE27SX8VS316XBSpHZqhSRfk+eClbo+7deryCROszx9fPaeHYdX+kYc47Pv8oX07Dp5BD8Z/84viJf+ny28+j5BFtulpPKUfz9Hjny5trgdp8pE9PZ5Op8WHgc008KHJU5sZ0E0DhjzgDMK+I467wxzCvgHiWfGm6S6Cz6Nn/UO339br9PvqR7Pvxg89Nd3TsRnq/N5mIn1vun6oP7Ti+/aY5zdJODeiuNSlzzXMndRKqfF4d1idm5PP+rk48UunidK5adD1vtnmV2Zmbt6LdztzNwP0N714GPYPz93+2G7mwGoCfyhqmEEH2GZ9A5xBRIhQyCklrtjoan7FKqRpVPK5Jq0YopxElNZQlYGqDN8L+hMvmDm2ZcxYiWbs+GormXG1R8UsYS0Dnm8QTRdeCvCeqRmXgujeoeGlAK9Oo9hd1LImGs0mC71sDKyjlpTRWFBGC6uIlwUvUoQugAgVYf9XIkWR7xMtbGcJJnsFpGZb8dUZmY0tXiq0lVTSopVCexi++AuFjrJmWBTsxvvgpA1Xz6HJliiCWM+Myfrd0F6SkiMVk20Q5GRPqI8ChiMYJWQYyKgEYZBgOCVIgxQD56QKMuDzy5WrKIYVpEiK4QQMwh8ORh0N/eGgT6/uUBQjCvIrxYA+1dhjON1Dj3nFj48UQvMRRGc9dCk0mIcm9RDh+LGVQkCLQnd5fCeFiMjPuhSi5COopiJ7QoMHZE5YiaDZcZUiIGtCTwTkTGjM4NgRlyLwQzLRzYBsCZeigFyJ71ZBEH8pBHQlNFVEtsRLSBQEW6Ih0fARlAoUYMenxwlwG2D/j41Joz7uTP4k2Zm0noir0QmipiWq5wUMQzACe2/YcJ4hYrzedD90qe+PXfN36urLiZ/nUDOz/Zz/bw43m/hv1FS/vTUnoxSkTqo0kr1LglEqAYNoc4lTeIQ6DGqz9pI2l1bc5qvb2pe1uXSCAEqVRrB/SXUo8BGUCpiYKogoUY+jqMWVuMXu6ztcKX4YJepSaX6SJBpcGT6CUoGfYSHCoe0eSX8rL+2v/Q/aG9jRlCpKZAdLqrklm0BpQCsFXCe0UqC3laS3Wmlpc7X++u5qZfhBlayM5cdMSzEcn0HqQOuEdpgRPvtJAp2QpntcpMCS734VBSnvUveepEh11X1gh8BaCTbCqGlrfZ86BdWZu8ABci1/m4ictLvPiVCbv4erITawt1HIGcd7lHmo7K6LpoLYir/RQM346utiSS8s0mY0/2ZTUgzDZ1QUw/KvflKH4zNIHZ59PZIyAhtBqojcS4QUUXIJpAa+aykRVrERlAor8CflcWv4D+4kQ+BPkuHYj5Ykgm9PEhHYzz8kgm1PksDO6SSBb08KAb9W1bcrxuPi8lPU5dUvVxfFdrVO23+3HOvh2K2bNvW1U7/8mt/9kbr+krtL7aKrYog5OfpwOv0D44mh6A=="}, + {type = "blueprint", text = "gui.bk_248k_blueprints_2", blueprint ="0eNq9mNtq4zAQht9F13axZB3sPMnCUowTK6nAJ3woDcHvvnJS3GSrqUZZ2Kv4IH/6NZoZ/eRC9vWs+8G0E9ldiDl07Uh2vy9kNKe2rNdn07nXZEfMpBsSkbZs1rvjXOw7U+uhuD5fImLaSn+QHV1eI6LbyUxG30jXm3PRzs1eD3bAxtjr0k5nmX032uH20s5mETJ7ERE5k12sXsRKtjOM67ux17qKm66aax2nZMeWJfrGZ16+Yv/CTzd+b2xgvqun93QHgKMB0g0QG+BNl1MMUFKPDBlGAbQo32KEB5A9AOKpi09DN7eVAyXvURGpzKAPt/fSAc43cKMrMzexru3wwRzivqsdSlXiCRhN0FIVB6UyF5l6oqiETxtDE4B9oPi8FgABn9gcIARmNiQkMLUhNcrR7W5jXMn5yforMSNir03/CHk7V0N30m3RfZzXn88hd51IH48r4t3O5etHNHuQOQ/tTzJz36LzANpXIwVoLEGnJbCXDF8akAaGTssUIOBLgwEEHpaRkJDA+oDUSHRMISEKTYA03PX9uel/iGni/DxHbwl1C0iTsFgmAIaGYSA1DH8MsnuW9xhM08BzUHLfkjleKwe1us7BVKDdBBRHGeAuk2fcn3raVkDhzAIM61OSg52QLwN44iner/Knzu8ptnqBbeYsqOqgZaRBFEgLxyYtJEOE+4z0v9sMLsONeoJpUFw941+AY4Vnz9gXCJaHG/4E0+cE2hYBOSfQrgjIOYE2RUBsBNoTARZChFkiSEaYI4K0oA0RBED7IWgdGTacgMsVaEMEGG0Z5ocgCg33MQLTJWRYxweiJNNw6yIwFS3RhwAUOIHNIAiAzuFrbF5vp8BqOrb//yJSl3td22ej7vVQTt1QsF/F5kre9TDeIpBRrniupKKJFHJZ/gAIn33Q"}, + {type = "blueprint", text = "gui.bk_248k_blueprints_3", blueprint ="0eNqd3cuOHUd2RuF3qTG7kZlx1zt47IHRIEi5bBTAG8ii0YKgdzfJhqiCHSsy1h51S1B9EvfJPPFX3PbvD2/ffX389Pnpw/PDL78/PP368cOXh1/+4/eHL0///eHNu+9/7/m3T48Pvzw8PT++f3j18OHN++9/9ebXX7++//ruzfPHzw9/vHp4+vCfj/98+OX849XtTz6+e/3l47s3n1//+Nt//ez1xz9ePTx+eH56fnr813/Cj7/47fWHr+/fPn7+hk//5a8ePn388u1nPn74/m/85vztbK8efvv2vyP/8f0/5/8o165SVkraVdJKybvKuVLKpjJWSN1ElrVtm8iytH0TWVZ27FZ2hZzHnrJGNh/b5R/n3Hxql4U9Nx/a5Ud8bj6zy4ft3Hxk18/9Wf//d8q//pGJlP7+Z22+/b+p1oRWb7UutHGrbT7O17X85tt8nK+8VDaf56sulc0H+upLZfOJTsdS2Xyk07q6m890Wld383s4rau7+UWc1tXd/CbO6+puPrt5Wd20+ezmZXXT5rObl9VNm89uXlY3bT67ZVndlG0ouqZMsalozlQbi+ZMs7loznQZjObKkMloquRDRqO5cspsNFcuGY7mSnLhaI5kF47mSHHhaI5UF47mSHPhaI50GY7mio0MU6XYyDBXbGSYKzYyzBUbGeaKjQxzxUaGuWIjw1yxkWGu2MgwV2xkmCrVRoa5YiPDXLGRYa7YyDBXdGQ4poyODHNGR4Y5oyPDnLGRYa7YyDBVmo0Mc8VGhrliI8NckZFhjsjIMEdkZJgjMjLMERkZ5oiNDHNlhOZTjvmcRT9C8ymknaH5FNIuGY6m9epJhqO5kmU4mitFhqO5UmU4mitNhqO50mU4mitDhqOpMg4ZjubKKcPRXLlkOJorSYajuZJlOJorRYajuVJlOJorTYaj3qdMl+EImCHD0Zw5j0OmI3JOF4+IuVw+Iia5gERMdgmJmOIiEjFVZSRSmgpJpHSVkkgZKiaBsrsWt37ydhfjbt6DF8txIin1Bqs7LxbmRFRiLkeyEnPFhSWqWXVpiZjm4hIx3eUlYoYLTMDsrsyldYl3l+bSusS7a3NpXeLtxbl1iXdX5/JNiYuLTcRUl5uIaS44EdNdciJmuOgETDpsdqpz57ThCZzLpidwkk1P4Pz1JH/5+vbL85sfP8vhCZQiwxMwVYYnYJoMT8B0GZ6AGS48zZXdtbr1H2l3rW5d3921uvWH/WKtbvXkrR+83bW6m7cg2zgBTN36I/1ME6DYNAGMTRPA2DQxZ4pNE8DYNAGMTRPA2DQBjE0TwJStpy/fVNiGCWBsmADGhglgbJiYM1WHCdgjqMMEODpMgKPDBDhZTsUAY9MEMDZNAGPTBDA2TQAj08RcaTJNgCLTBCgyTYCS3FQMKDZOAFNCUzGZNgHX0FQMci00FYNcl9kJajbkVMyc6YcMT8CcMjwBc8nwBEyS4QmYLMMTMEWGJ2CqDE/ANBmegOlyKgaYIdPTnNld28vrEm8v7q1LvLu6V9YlHmJG+W8vvsdOOn+QjZfuvWJT0DV3qkxBwDSZgoDpMgUBM2QKuuanPQ6ZgoA5XQoC5XIpCJTkUhAo2aUgUIpLQaBUmYKAaaEUBK/ndfRQCkJuhFIQcbtLgT9T0Lxmu2uBP1MQMJdMQcAkmYKAyTIFAVNkCgKmyhQETJMpCJguUxAwQ6agObO75pfXJd5d88vrEl9iRTvfv/GXyB/5/o2/7EHpfswdeVSaGHlYmhh5XJoYeWCaGHlkGpjkzkyT4g5Nk+JOTZPijk2T4s5NkyIPThNT5QgKTJMjKDBdjqDADDmCzpnt1b9jzZxyBAXmkiMoMEmOoMBkOYICU+QICkyVIygwTY6gwPTQr9ytw5iXR+hXbvSK3QPa+tyRe0CJkXtAiZF7QImRe0CJkXtAiXF7QElxe0BJcXtASXF7QEGpbg8oKXIPKDGhPaD4etbQHlDmQntAmZObNqhmcg8oMXLXBjFy1wYxctcGME3u2iBG7togRu7aIEbu2iBG7togRu4BJUZu2yCmRX7lxle09civ3MyNWJwp4JnjgC/jDHqnjTN17lwyzgCTZJwBxqyz5PsiFVP0e84sjt9r5vm/17pLGFD/4RLGXNldUrx5NMcZShhUoXGFEgZyKZQwkMsyYUDNikwYwFSZMIARj/jV72skvuLT/Qs4xFd8un0D0yG+4VO75+Rp2flHkA55XJYYeV6WmBwa87FGJTTmI1ftmAp3tTU5pgLT5ZgKjPzdE26Ok797gmJ/9wRG3l9AjLzAgBh5gwExclaQGDkrSIycFSQmOCt4wSt6BmcFybv0rOD8krzLzgoCY2cFgUmhGI1FyqEYjVyJxGjUaiRGo9bclyXUv7svS1CG/LKcM+kIxWiqUDpDMRq5KxSjkUtyZICaZTkyAFPkyABMDcVorFELxWjkeihGIzdCMZq43eXMn6Pq/CPYXc7M6+dqdzkzr5+rnEIxGmuUQzEauRIa8+sgr4bGfPbsXXntmDvysjxi5G15wJQjMuZjkcoZGfOZuwJjPmspMOaz5vbDUv3dflhS5H5YYkL7YblCof2wzIX2wyJX5X5YqFmV+2GJkfthiUmRMZ9rlCNjPnMlMuYzVyNjPnPynA59BPKcDjHynA4w7YiM+VijdkbGfOYuOabWPneSuiOElOyGVGKKGhhIqebyCUKaGxeIkQcoiRnq8glQ7PlJYuREOTGXutKAFDlPTkyORegKr6dbCE33np0pr/P1gC5nyomRM+XEjFCEpiKNIxShkTsjERq1KxKhUXN7xKH+w+0RJ0XuEScm1F2LKxRqr8VcqL8Wc7Jbxrxm+ZDtMoiR/TKIuUIRGmqUjxSK0MjlUIRGroQiNHJVDqrwETQXoYnpclQFZoQiNNXoPEIRGrkzNuYn8q7YmI+evbmnznt+nvLmHmLkzT3E1NCYj0VqoTEfuR4Z81EbkTGftN2l03X9dxdO1w/D7rrpzaNp1k033hizbrrxQqt103HPyUNwVDN5CI4YeQiOmBEa86lGZu003b+AZu003b+BZu30xZiPXJJj/vwj2F07zevnanftNK+fK7N2mu/fQbN2mu/fwf17X//84oJehEOOqdCN8JBjKjCnGxlAudzIAEqSIwMwcnsuMXJ7LjFyey4xcp6cGDlPToycJwdGrYO+GHWhVVJ2C6Hp3tMz5cfcSfKVB8ZOlQNTQjEai1RDMRq5FonRqPVIjEbNbc+F+sujoaTI7bnEhI6GYoVeLIX+19Przx/ffnz96ePn550ojWToeChz8ngo1U0eDyVGHg8lpoeiNNZohKI0cWY5NN2/hWY59EWURu6SI+v8I9g9PprXz9X28dH1c2Wums3376C5ajbfv4Othcb90sjroXGfvSHH/dLn3bEPN+4Tc7pxn5grMu5jkXqKjPvM5cC4z1oJjPusue6pVH/XPpUU2T+VmFADVazQCHVQZS7UQpU5eQYJajbkGSRi5BkkYkpkzOca1ciYz1yLjPnM9ciYz5y8F3H+EZRD3otIjLwXkZjQvYhUo3KE7kVkzt6LWOrckfciEiPvRSTGnUEixZ1BIkWeQQLGXllLjNyiS4zcokuMnC8nRs6XEyPny4mpsRgNLRuKWxBN956dMS957sgZc2AuOWNOzBmK0VSk6wrFaORSJEajliMxGjW3R5fqX92XJShyky4xPRSjsUIjFKOJU8dJxz13ypFhXrPdq25/jgzAJDkyAJNDMRprVEIxGrkaitHItVCMRq7LURU+giFH1TmzfXx0/VzlMxSjqUb5CsVo5GLdUspJXqxbCnu2W0q55o7slkKM7JZCTA+N+VikERrziTPLqBvaGRnzUXNt3KD+xbVxI0W2cSMm1MaNKxRq48ZcqI0bc/IUEtVMtnEDpspjSMScoTGfamTWUNP9C2iOk6b7N1AdJ233nLz6iD4CefURMfLqI2J6aMzHGo3QmE9csxcflWPunOrAJiny3iNi3DEkUrI5sEmIPIVEjNykS0xTBzZJkXt0ibET5XPmxULozoFNUuw8OTBXKEJnuH64uIXQdO/ZmfI8Xw/ocqacGDlTTkyLRGguUo9EaOZGIEKjZlZD7/+ow23RhfoPt0WXFLlFl5gcidBcoRKJ0MzVSIRmrrlxgWrWXYQmZriBYc5Uc4PuXxGaalSPMxKhmbsiEZq5FInQzMkWAfQRyBYBxMgWAcSEWgRwjUItApiLtQjIcP1wPWMtAtizLQJynTuyRQAxskUAMaEWAVykUIsA5iItAliLtAhgzbUIoPq7FgGgXLJFADGhFgFYoSvUIoC5UIsA5uQZJKqZPINEjDyDREyoRQDXKNQigLlQiwDkUqhFAHPy5iP4CJJsEUCMvPqImFCLAK5RqEUAc/bio5znjrz4iBh58REx7gwSKNmdQSJFnkEiRm7PJUZuzyVGbs8lRs6TEyPnyYmR8+TExFoEZLh+uAYbh6KnG4fma+7IFgHEyKlyYkItArhIoRYBzEVaBLAWaRHAmtueS/V323NJkdtzgamhFgFYoRpqEcBcqEUAc7JFANVMtgggRrYIICbUIoBrFGoRwFyoRQBzoRYByDXZIgA+giZbBBAjWwQQE2oRwDUKtQhgLtYiIA3yYi0C2LMtAvIxd2SLAGJkiwBgto+OljVzumbhxFyuWTgxSTULJyWrZuGkFNUsnBR3MpQUdzKUFHkylJjQyVB8PWMnQ5kLnQxlzv7qOa+ZPRlKjP3VE5jimoUTU12zcGKaaxZOTHfNwokZrln4nGm7Jz9TXzN2VhAYOysIjJ0VBCY0K0ivaIs1DmXOzgqmPnfkrCAxclaQmOHiAjC7Zz//jAvEnC4uEHOpuEBKUnGBlKziAinuBBwp7gQcKfIEHDFygzgxcoM4MJfcIE7M6UZQYi43ghKT3AhKTHYjKDHFjaDEVDeCEiPvRSRG3otIjLwXEZgUuxcxwXXlLcXuRWTP3ouY6tyR9yISI+9FJKbIMRSYKsdQYJocQ4HpbgwFZbgxdK7sLjqu6ytvrCXFbYclRW6HJSa0HRZfzxzaDstcaDssc3I7LNVMboclRm6HBWZ34fFnYADmlIEBmEsGBmCSDAzAZBkYgCkyMAAju6UQI7ulECO7pRAT6paCr2gNdUthbvvXwT+/s/Pc2Y4dZe1sd0dJa8ce1CFHHtQhRh7UIabJGARMlzEImCFj0JzZXTe8UU4Xg0C5XAwCxZ2fJMW1cSNFHqAkJtTGLUHDhtZCbdyYC7VxY062cYOaddnGjRjZxo2YS8YgYJKMQcBkGYOAKTIGAVNlDAKmyRgEjLy6hxh5dQ8wQ17dQ8zucsq6xLuLgnld4t1FwbIu8cg2PV1zp9j0BE616Qkcu2+DnK5uNSBFbtuYM/2Q2zaIkds2iJHbNohx2zZIcds2SHHbNkhx2zZIaebyCULkrg1ibJyYM+ehLp8gxaYJYGyaAMamCWBsmgDGpglgbJoAxqYJYGyaAGaoa0JAuWyYAMaGCWBsmADGhglgdJg45o4OE+DoMAGODhPgyE2gxNg0MWeSTRPA2DQBjE0TwMg0AYpME6DINAGKTBOguE2gpNg4AUxsEyg0/Ok5tgkUudgmUOTkJlComT1/SIzcBEqM3ARKjNwESozcBEqM3ARKjNwECkyRm0CJkZtAiZGbQImRm0CJyTI9AVNkegKmyvQETJPp6epzp8v0RM6Q6Qmcao/NkiOPzRIjj80Sk1x6Iia79ERMcemJmKrSEylNpSdSukpPpLgLDUBp7kIDUuSFBsSEmqpe0Dqpm/OBf6Un5kINVZmTDVWpZrKhKjGyoSox3aUnYoZLT8DsLvKldYl3F/nSusS7i3xpXeLtRb51ibu8TI8YeZkeMfIyPWKaS0/EdJeeiBkuPQEzDpue6tw5bXoC57LpCZxk0xM4WaYnYIpMT8BUmZ6AaTI9AdNlegJmuPQ0Vcb24b+1crr0BIrrr0GK669BiuyvQYwNFMDYQAGMDRTA2EABjA0Uc+a0gQIYGyiAsYECGBsogLGBAhgbKICxgQIYGyiAsYECGBso5sylA0WeOzpQgKMDBTg6UIBjAwUwNlAAYwMFMDZQAGMDBTAyUMyVJAMFKDJQgCIDBSgyUIBiAwUwoYZdF7TgGynUsIu5UMMu5uR5bKqZPI8NTJbnsYmR57GJkeexiZHnsYmR57GJkeexiZHnsYmR57GJkeexiZHnsYHZXejL6xJvL/StS7y70FdelPgfrx6enh/ff/uRt+++Pn76/PTh+dsPvHvz9vHd981WP7508vFv//7tb/7P4+cvP5Crn7nl0Wo7j/q9Bfn/ApOxYa0="}, + + + } + } + }, +} + +--Function for call Booktorio remote interface +function registerThread_248k() + if remote.interfaces["Booktorio"] then + remote.call("Booktorio", "add_thread", thread_248k) + end +end + +--Suggested events where register/add the new thread +--script.on_init(registerThread) +--script.on_configuration_changed(registerThread) +--{type = "blueprint", text = "Waterturbine setup - 40MW", blueprint= ""}, diff --git a/scripts/electronic/el_ki_script.lua b/scripts/electronic/el_ki_script.lua new file mode 100644 index 0000000..a241315 --- /dev/null +++ b/scripts/electronic/el_ki_script.lua @@ -0,0 +1,831 @@ +local util = require("util") +local gui = require('scripts/gui') + +--================================================================================= +--init +--================================================================================= + +function el_ki_init(e) + global.ki = {} + global.ki.dirty = false + global.ki.total = 0 + global.ki.channel = {} + global.ki.core = {} + global.ki.beacon = {} + global.ki.buffer1 = {} + global.ki.buffer2 = {} + global.ki.supported = 100 + global.ki.supported1 = false + global.ki.supported2 = false + global.ki.supported3 = false + global.ki.supported4 = false + + --base channel + global.ki.channel[0] = {} + global.ki.channel[0].beacons = {} + global.ki.channel[0].core = {} + global.ki.channel[0].buffer1 = {} + global.ki.channel[0].buffer2 = {} + + global.ki.standardchannel = 0 + global.ki.selectchannel = 0 + + --gui stuff + global.ki.gui = {} + global.ki.gui.core = {} + global.ki.gui.main = {} + global.ki.gui.buffer1 = {} + global.ki.gui.buffer2 = {} +end + + +--================================================================================= +--on built +--================================================================================= + +function el_ki_on_built(e) + + if e['created_entity'] then + if e['created_entity'].name == 'el_ki_core_entity' then + make_ki_core(e['created_entity']) + end + if e['created_entity'].name == 'el_ki_beacon_entity' then + make_ki_beacon(e['created_entity']) + end + + if e['created_entity'].name == 'fi_ki_core_entity' then + make_ki_buffer1(e['created_entity']) + end + if e['created_entity'].name == 'fi_ki_beacon_entity' then + make_ki_beacon(e['created_entity']) + end + + if e['created_entity'].name == 'fu_ki_core_entity' then + make_ki_buffer2(e['created_entity']) + end + if e['created_entity'].name == 'fu_ki_beacon_entity' then + make_ki_beacon(e['created_entity']) + end + end + + if e['entity'] then + if e['entity'].name == 'el_ki_core_entity' then + make_ki_core(e['entity']) + end + if e['entity'].name == 'el_ki_beacon_entity' then + make_ki_beacon(e['entity']) + end + + if e['entity'].name == 'fi_ki_core_entity' then + make_ki_buffer1(e['entity']) + end + if e['entity'].name == 'fi_ki_beacon_entity' then + make_ki_beacon(e['entity']) + end + + if e['entity'].name == 'fu_ki_core_entity' then + make_ki_buffer2(e['entity']) + end + if e['entity'].name == 'fu_ki_beacon_entity' then + make_ki_beacon(e['entity']) + end + end + + if e['entity'] then + if e['entity'].name == "entity-ghost" then + remove_request_ghost(e['entity']) + end + end + + if e['created_entity'] then + if e['created_entity'].name == "entity-ghost" then + remove_request_ghost(e['created_entity']) + end + end +end + +--================================================================================= +--on remove +--================================================================================= + +function el_ki_on_remove(e) + if e["entity"] then + if e["entity"].name == "el_ki_core_entity" then + if e["player_index"] then + destroy_ki_core(e["entity"],e["player_index"],nil) + elseif e["robot"] then + destroy_ki_core(e["entity"],nil,e["robot"]) + else + destroy_ki_core(e["entity"],nil,nil) + end + end + + if e["entity"].name == "fi_ki_core_entity" then + if e["player_index"] then + destroy_fi_core(e["entity"],e["player_index"],nil) + elseif e["robot"] then + destroy_fi_core(e["entity"],nil,e["robot"]) + else + destroy_fi_core(e["entity"],nil,nil) + end + end + + if e["entity"].name == "fu_ki_core_entity" then + if e["player_index"] then + destroy_fu_core(e["entity"],e["player_index"],nil) + elseif e["robot"] then + destroy_fu_core(e["entity"],nil,e["robot"]) + else + destroy_fu_core(e["entity"],nil,nil) + end + end + + if (e["entity"].name == "el_ki_beacon_entity") or (e["entity"].name == "fi_ki_beacon_entity") or (e["entity"].name == "fu_ki_beacon_entity") then + destroy_ki_beacon(e["entity"]) + end + end +end + +--================================================================================= +--make +--================================================================================= + +function make_ki_core(entity) + register_ki_core(entity) + make_slave_ki_core(entity) + global.ki.dirty = true + --gui.update_main() +end + +function make_ki_buffer1(entity) + register_ki_buffer1(entity) + make_slave_ki_buffer1(entity) + make_container_ki_buffer1(entity) + global.ki.dirty = true + --gui.update_main() +end + +function make_ki_buffer2(entity) + register_ki_buffer2(entity) + make_slave_ki_buffer2(entity) + make_container_ki_buffer2(entity) + global.ki.dirty = true + --gui.update_main() +end + +function make_ki_beacon(entity) + register_ki_beacon(entity) + el_ki_single_beacon_update(entity.unit_number) + gui.update_main() +end + +function destroy_ki_core(entity,player_index,robot) + if not global.ki.core[entity.unit_number] then + return + end + if not global.ki.core[entity.unit_number].slave then + return + end + destroy_slave_ki_core(entity,global.ki.core[entity.unit_number].slave,player_index,robot) + unregister_ki_core(entity) + global.ki.dirty = true + --gui.update_main() +end + +function destroy_fi_core(entity,player_index,robot) + if not global.ki.buffer1[entity.unit_number] then + return + end + if not global.ki.buffer1[entity.unit_number].slave then + return + end + destroy_slave_ki_core(entity,global.ki.buffer1[entity.unit_number].slave,player_index,robot) + destroy_slave_ki_core(entity,global.ki.buffer1[entity.unit_number].container,player_index,robot) + unregister_ki_buffer1(entity) + global.ki.dirty = true + --gui.update_main() +end + +function destroy_fu_core(entity,player_index,robot) + if not global.ki.buffer2[entity.unit_number] then + return + end + if not global.ki.buffer2[entity.unit_number].slave then + return + end + destroy_slave_ki_core(entity,global.ki.buffer2[entity.unit_number].slave,player_index,robot) + destroy_slave_ki_core(entity,global.ki.buffer2[entity.unit_number].container,player_index,robot) + unregister_ki_buffer2(entity) + global.ki.dirty = true + --gui.update_main() +end + +function destroy_ki_beacon(entity) + clear_ki_beacon(entity) + unregister_ki_beacon(entity) + count_supported_beacons() + gui.update_main() +end + +--================================================================================= +--register +--================================================================================= + +function register_ki_core(entity) + local unit = entity.unit_number + local channel = make_channel(unit) + + global.ki.core[unit] = {} + global.ki.core[unit].entity = entity + global.ki.core[unit].channel = channel + global.ki.core[unit].modules = {} + global.ki.core[unit].oldmodules = {} + global.ki.core[unit].active = false + + if global.ki.standardchannel == 0 then + global.ki.standardchannel = channel + end +end + +function register_ki_buffer1(entity) + local unit = entity.unit_number + local standardchannel = global.ki.standardchannel + + global.ki.buffer1[unit] = {} + global.ki.buffer1[unit].entity = entity + global.ki.buffer1[unit].channel = 0 + global.ki.buffer1[unit].modules = {} + global.ki.buffer1[unit].oldmodules = {} + global.ki.buffer1[unit].active = false + + if not (standardchannel == 0) then + if not global.ki.channel[standardchannel].buffer1 then + global.ki.channel[standardchannel].buffer1 = unit + global.ki.buffer1[unit].channel = standardchannel + end + end +end + +function register_ki_buffer2(entity) + local unit = entity.unit_number + local standardchannel = global.ki.standardchannel + + global.ki.buffer2[unit] = {} + global.ki.buffer2[unit].entity = entity + global.ki.buffer2[unit].channel = 0 + global.ki.buffer2[unit].modules = {} + global.ki.buffer2[unit].oldmodules = {} + global.ki.buffer2[unit].totalmodules = {} + global.ki.buffer2[unit].active = false + + if not (standardchannel == 0) then + if not global.ki.channel[standardchannel].buffer2 then + global.ki.channel[standardchannel].buffer2 = unit + global.ki.buffer2[unit].channel = standardchannel + end + end +end + +function register_ki_beacon(entity) + local unit = entity.unit_number + + global.ki.beacon[unit] = {} + global.ki.beacon[unit].entity = entity + global.ki.beacon[unit].channel = global.ki.standardchannel + + add_to_supported(unit) + global.ki.beacon[unit].supported = is_beacon_supported() + + entity.operable = false +end + +--================================================================================= +--unregister +--================================================================================= + +function unregister_ki_core(entity) + local id = entity.unit_number + + if not global.ki then + return + end + if not global.ki.core then + return + end + if not global.ki.core[id] then + return + end + if not global.ki.core[id].channel then + return + end + + local channel = global.ki.core[id].channel + + global.ki.core[id] = nil + global.ki.channel[channel].core = nil +end + +function unregister_ki_buffer1(entity) + local id = entity.unit_number + + if not global.ki then + return + end + if not global.ki.buffer1 then + return + end + if not global.ki.buffer1[id] then + return + end + if not global.ki.buffer1[id].channel then + return + end + + local channel = global.ki.buffer1[id].channel + + global.ki.buffer1[id] = nil + global.ki.channel[channel].buffer1 = nil +end + +function unregister_ki_buffer2(entity) + local id = entity.unit_number + + if not global.ki then + return + end + if not global.ki.buffer2 then + return + end + if not global.ki.buffer2[id] then + return + end + if not global.ki.buffer2[id].channel then + return + end + + local channel = global.ki.buffer2[id].channel + + global.ki.buffer2[id] = nil + global.ki.channel[channel].buffer2 = nil +end + +function unregister_ki_beacon(entity) + local id = entity.unit_number + + if not global.ki then + return + end + if not global.ki.beacon then + return + end + if not global.ki.beacon[id] then + return + end + if not global.ki.beacon[id].channel then + return + end + + local channel = global.ki.beacon[id].channel + + global.ki.beacon[id] = nil + for i,v in pairs(global.ki.channel[channel].beacons) do + if v == id then + table.remove(global.ki.channel[channel].beacons, i) + break + end + end +end + +--================================================================================= +--update +--================================================================================= +function el_ki_core_working() + for i in pairs(global.ki.core) do + if global.ki.core[i].entity.valid then + local oldactive = global.ki.core[i].active + global.ki.core[i].active = global.ki.core[i].entity.is_crafting() + + if not oldactive == global.ki.core[i].active then + global.ki.dirty = true + end + end + end +end + +function el_ki_buffer1_working() + for i in pairs(global.ki.buffer1) do + if global.ki.buffer1[i].entity.valid then + local oldactive = global.ki.buffer1[i].active + global.ki.buffer1[i].active = global.ki.buffer1[i].entity.is_crafting() + + if not oldactive == global.ki.buffer1[i].active then + global.ki.dirty = true + end + + if global.ki.buffer1[i].entity.products_finished >= 3 then + if global.ki.buffer1[i].container then + local container = global.ki.buffer1[i].container + local container_inv = container.get_inventory(defines.inventory.chest) + + if container_inv.can_insert({name='fi_ki_science', count=1}) then + container_inv.insert({name='fi_ki_science', count=1}) + global.ki.buffer1[i].entity.products_finished = 0 + end + end + end + end + end +end + +function el_ki_buffer2_working() + for i in pairs(global.ki.buffer2) do + if global.ki.buffer2[i].entity.valid then + local oldactive = global.ki.buffer2[i].active + global.ki.buffer2[i].active = global.ki.buffer2[i].entity.is_crafting() + + if not oldactive == global.ki.buffer2[i].active then + global.ki.dirty = true + end + + if global.ki.buffer2[i].entity.products_finished >= 3 then + if global.ki.buffer2[i].container then + local container = global.ki.buffer2[i].container + local container_inv = container.get_inventory(defines.inventory.chest) + + if container_inv.can_insert({name='fu_ki_science', count=1}) then + container_inv.insert({name='fu_ki_science', count=1}) + global.ki.buffer2[i].entity.products_finished = 0 + end + end + end + end + end +end + +function el_ki_core_update() + for i in pairs(global.ki.core) do + + global.ki.core[i].oldmodules = util.table.deepcopy(global.ki.core[i].modules) + + if global.ki.core[i].slave then + if global.ki.core[i].slave.valid then + local slaveinv = global.ki.core[i].slave.get_module_inventory() + local slavemodules = slaveinv.get_contents() + global.ki.core[i].modules = {} + + for x,v in pairs(slavemodules) do + for f=1,v,1 do + table.insert(global.ki.core[i].modules,x) + end + end + end + end + + if not (#global.ki.core[i].modules == #global.ki.core[i].oldmodules) then + global.ki.dirty = true + else + for x,v in pairs(global.ki.core[i].modules) do + if not v == global.ki.core[i].oldmodules[x] then + global.ki.dirty = true + break + end + end + end + end +end + +function el_ki_buffer1_update() + for i in pairs(global.ki.buffer1) do + + global.ki.buffer1[i].oldmodules = util.table.deepcopy(global.ki.buffer1[i].modules) + + if global.ki.buffer1[i].slave then + if global.ki.buffer1[i].slave.valid then + local slaveinv = global.ki.buffer1[i].slave.get_module_inventory() + local slavemodules = slaveinv.get_contents() + global.ki.buffer1[i].modules = {} + + for x,v in pairs(slavemodules) do + for f=1,v,1 do + table.insert(global.ki.buffer1[i].modules,x) + end + end + end + end + + if not (#global.ki.buffer1[i].modules == #global.ki.buffer1[i].oldmodules) then + global.ki.dirty = true + else + for x,v in pairs(global.ki.buffer1[i].modules) do + if not v == global.ki.buffer1[i].oldmodules[x] then + global.ki.dirty = true + break + end + end + end + end +end + +function el_ki_buffer2_update() + for i in pairs(global.ki.buffer2) do + + global.ki.buffer2[i].oldmodules = util.table.deepcopy(global.ki.buffer2[i].modules) + + if global.ki.buffer2[i].slave then + if global.ki.buffer2[i].slave.valid then + local slaveinv = global.ki.buffer2[i].slave.get_module_inventory() + local slavemodules = slaveinv.get_contents() + global.ki.buffer2[i].modules = {} + + for x,v in pairs(slavemodules) do + for f=1,v,1 do + table.insert(global.ki.buffer2[i].modules,x) + end + end + end + end + + if not (#global.ki.buffer2[i].modules == #global.ki.buffer2[i].oldmodules) then + global.ki.dirty = true + else + for x,v in pairs(global.ki.buffer2[i].modules) do + if not v == global.ki.buffer2[i].oldmodules[x] then + global.ki.dirty = true + break + end + end + end + end +end + +function el_ki_beacon_update() + el_ki_buffer1_adder() + for i,v in pairs(global.ki.beacon) do + el_ki_single_beacon_update(i) + end +end + +function el_ki_single_beacon_update(id) + if global.ki.beacon[id].supported then + if global.ki.beacon[id].entity.valid then + local beacon_entity = global.ki.beacon[id].entity + local beacon_inv = beacon_entity.get_module_inventory() + local channel = global.ki.beacon[id].channel + + beacon_inv.clear() + + if global.ki.channel[channel].core then + local coreunit = global.ki.channel[channel].core + if global.ki.core[coreunit] then + if global.ki.core[coreunit].active then + for i,v in pairs(global.ki.core[coreunit].totalmodules) do + if beacon_inv.can_insert({name=global.ki.core[coreunit].totalmodules[i], count=1}) then + beacon_inv.insert({name=global.ki.core[coreunit].totalmodules[i], count=1}) + end + end + end + end + end + end + end +end + +--================================================================================= +--util +--================================================================================= +function remove_request_ghost(entity) + if (entity.ghost_name == "el_ki_beacon_entity") or (entity.ghost_name == "fi_ki_beacon_entity") or (entity.ghost_name == "fu_ki_beacon_entity") then + if entity.item_requests then + entity.item_requests = {} + end + end +end + + + +function el_ki_buffer1_adder() + for i,v in pairs(global.ki.channel) do + if not (i == 0) then + if global.ki.channel[i].core then + + local coreid = global.ki.channel[i].core + global.ki.core[coreid].totalmodules = {} + + + for x,f in pairs(global.ki.core[coreid].modules) do + table.insert(global.ki.core[coreid].totalmodules,f) + end + + + if global.ki.channel[i].buffer1 then + local buffer1id = global.ki.channel[i].buffer1 + if global.ki.buffer1[buffer1id].active == true then + for x,f in pairs(global.ki.buffer1[buffer1id].modules) do + table.insert(global.ki.core[coreid].totalmodules,f) + end + end + end + + if global.ki.channel[i].buffer2 then + local buffer2id = global.ki.channel[i].buffer2 + if global.ki.buffer2[buffer2id].active == true then + for x,f in pairs(global.ki.buffer2[buffer2id].modules) do + table.insert(global.ki.core[coreid].totalmodules,f) + end + end + end + + if game.forces[1] then + if game.forces[1].technologies['fu_ki_plus_2_tech'].researched then + local moduletable = {} + for _,v in pairs(global.ki.core[coreid].totalmodules) do + table.insert(moduletable, v) + table.insert(moduletable, v) + table.insert(moduletable, v) + end + + global.ki.core[coreid].totalmodules = moduletable + elseif game.forces[1].technologies['fu_ki_plus_1_tech'].researched then + local moduletable = {} + for _,v in pairs(global.ki.core[coreid].totalmodules) do + table.insert(moduletable, v) + table.insert(moduletable, v) + end + + global.ki.core[coreid].totalmodules = moduletable + end + end + end + end + end + + +end + +function make_channel(unit) + if global.ki.channel then + local max = #global.ki.channel + 1 + + global.ki.channel[max] = {} + global.ki.channel[max].core = unit + global.ki.channel[max].buffer1 = nil + global.ki.channel[max].buffer2 = nil + global.ki.channel[max].beacons = {} + + return max + end +end + +function count_supported_beacons() + local count = 0 + for i,v in pairs(global.ki.channel) do + --if not (i == 0) then + if #global.ki.channel[i].beacons then + count = count + #global.ki.channel[i].beacons + end + --end + end + global.ki.total = count + return count +end + +function is_beacon_supported() + if global.ki.supported >= count_supported_beacons() then + return true + end + return false +end + +function add_to_supported(id) + local channel = global.ki.beacon[id].channel + table.insert(global.ki.channel[channel].beacons, id) +end + +function el_ki_supported_adder() + if global.ki.supported1 == false then + if game.forces[1] then + if game.forces[1].technologies['el_ki_sup_1_tech'].researched then + global.ki.supported1 = true + global.ki.supported = global.ki.supported + 150 + gui.update_main() + end + end + end + + if global.ki.supported2 == false then + if game.forces[1] then + if game.forces[1].technologies['el_ki_sup_2_tech'].researched then + global.ki.supported2 = true + global.ki.supported = global.ki.supported + 250 + gui.update_main() + end + end + end + + if global.ki.supported3 == false then + if game.forces[1] then + if game.forces[1].technologies['el_ki_sup_3_tech'].researched then + global.ki.supported3 = true + global.ki.supported = global.ki.supported + 500 + gui.update_main() + end + end + end + + if global.ki.supported4 == false then + if game.forces[1] then + if game.forces[1].technologies['el_ki_sup_4_tech'].researched then + global.ki.supported4 = true + global.ki.supported = 65535 + gui.update_main() + end + end + end +end + +--================================================================================= +--slaves +--================================================================================= + +function make_slave_ki_core(entity) + local pos = entity.position + local slave = entity.surface.create_entity{ + name = 'el_ki_core_slave_entity', + position = pos, + force = entity.force + } + slave.destructible = false + global.ki.core[entity.unit_number]["slave"] = slave +end + +function make_slave_ki_buffer1(entity) + local pos = entity.position + local slave = entity.surface.create_entity{ + name = 'fi_ki_core_slave_entity', + position = pos, + force = entity.force + } + slave.destructible = false + global.ki.buffer1[entity.unit_number]["slave"] = slave +end + +function make_container_ki_buffer1(entity) + local pos = {entity.position.x, entity.position.y + 2} + local container = entity.surface.create_entity{ + name = 'fi_ki_core_slave_container_entity', + position = pos, + force = entity.force + } + container.destructible = false + global.ki.buffer1[entity.unit_number]["container"] = container +end + +function make_slave_ki_buffer2(entity) + local pos = entity.position + local slave = entity.surface.create_entity{ + name = 'fu_ki_core_slave_entity', + position = pos, + force = entity.force + } + slave.destructible = false + global.ki.buffer2[entity.unit_number]["slave"] = slave +end + +function make_container_ki_buffer2(entity) + local pos = {entity.position.x, entity.position.y + 2} + local container = entity.surface.create_entity{ + name = 'fu_ki_core_slave_container_entity', + position = pos, + force = entity.force + } + container.destructible = false + global.ki.buffer2[entity.unit_number]["container"] = container +end + +function destroy_slave_ki_core(entity,slave,plyer_index,robot) + local id = entity.unit_number + local success = false + + if player_index then + if game.get_player(player_index).character then + if game.get_player(player_index).character.get_main_inventory() then + success = slave.mine({inventory=game.get_player(player_index).character.get_main_inventory()}) + end + end + end + + if robot then + if robot.get_inventory(defines.inventory.robot_cargo) then + success = slave.mine({inventory=robot.get_inventory(defines.inventory.robot_cargo)}) + end + end + + if not success then + slave.get_inventory(defines.inventory.chest).clear() + slave.destroy() + end +end + +function clear_ki_beacon(entity) + entity.get_module_inventory().clear() +end \ No newline at end of file diff --git a/scripts/gravitation/gr_black_hole_script.lua b/scripts/gravitation/gr_black_hole_script.lua new file mode 100644 index 0000000..62004b5 --- /dev/null +++ b/scripts/gravitation/gr_black_hole_script.lua @@ -0,0 +1,364 @@ +--local gr_gui = require('scripts/gravitation/gui') +--=================================================================================================================== +--TODO +--=================================================================================================================== + +--init global +--when builded register +--when destroyed unregister + +--build gui when base opend +--start button + +--spawn, register energy +--check nth tick for stabilizer and other + +--calc output, stable +--write in global + +--output power, clear inv + +--=================================================================================================================== +--init +--=================================================================================================================== + +function gr_black_hole_init() + global.black_hole = {} + global.black_hole.base = {} + global.black_hole.energy = {} + global.black_hole.dirty = false + global.black_hole.counter = 0 + + global.black_hole.gui = {} + global.black_hole.gui.frame = nil + global.black_hole.gui.id = nil +end + +--=================================================================================================================== +--on built +--=================================================================================================================== + +function gr_black_hole_on_built(e) + if e['entity'] then + if e['entity'].name == "gr_black_hole_base_entity" then + make_black_hole(e['entity']) + --game.print("make") + end + end + + if e['created_entity'] then + if e['created_entity'].name == "gr_black_hole_base_entity" then + make_black_hole(e['created_entity']) + end + end +end + +--=================================================================================================================== +--on remove +--=================================================================================================================== + +function gr_black_hole_on_remove(e) + if e["entity"] then + if e["entity"].name == "gr_black_hole_base_entity" then + if e["player_index"] then + destroy_black_hole(e["entity"],e["player_index"],nil) + elseif e["robot"] then + destroy_black_hole(e["entity"],nil,e["robot"]) + else + destroy_black_hole(e["entity"],nil,nil) + end + end + end +end + +--=================================================================================================================== +--make +--=================================================================================================================== + +function make_black_hole(entity) + register_black_hole_base(entity) + + global.black_hole.dirty = true + --gr_gui.update_main() +end + +function make_black_hole_energy(base_entity) + local slave = create_black_hole_energy(base_entity) + register_black_hole_energy(slave) + link_base_energy(base_entity,slave) + --game.print("from make: "..slave.unit_number) + + global.black_hole.dirty = true + --gr_gui.update_main() +end +--=================================================================================================================== +--destoy +--=================================================================================================================== + +function destroy_black_hole(entity,player,robot) + local slave = nil + + if global.black_hole.base then + if global.black_hole.base[entity.unit_number] then + + if global.black_hole.base[entity.unit_number].energy then + if global.black_hole.energy[global.black_hole.base[entity.unit_number].energy] then + if global.black_hole.energy[global.black_hole.base[entity.unit_number].energy].entity then + slave = global.black_hole.energy[global.black_hole.base[entity.unit_number].energy].entity + end + end + end + + unregister_black_hole(entity) + if slave then + destroy_energy(slave) + end + end + end + + + + global.black_hole.dirty = true + --gr_gui.update_main() +end + +--=================================================================================================================== +--register +--=================================================================================================================== + +function register_black_hole_base(entity) + local unit = entity.unit_number + + global.black_hole.base[unit] = {} + global.black_hole.base[unit].entity = entity + global.black_hole.base[unit].energy = nil + + global.black_hole.base[unit].active = false + + --game.print("register base: "..unit) +end + +function register_black_hole_energy(entity) + local unit = entity.unit_number + + global.black_hole.energy[unit] = {} + global.black_hole.energy[unit].entity = entity + global.black_hole.energy[unit].base = nil + global.black_hole.energy[unit].total = 0 + global.black_hole.energy[unit].stabilizers = 100 + global.black_hole.energy[unit].power_gen = 0 + global.black_hole.energy[unit].matter_consumption = 0 + global.black_hole.energy[unit].stable = 0 + + --game.print("from erngy make: "..unit) +end + +function link_base_energy(base_entity,energy) + local unit_base = base_entity.unit_number + local unit_energy = energy.unit_number + if global.black_hole.base[unit_base] then + if global.black_hole.energy[unit_energy] then + global.black_hole.base[unit_base].energy = unit_energy + global.black_hole.energy[unit_energy].base = unit_base + global.black_hole.base[unit_base].active = true + end + end +end +--=================================================================================================================== +--unregister +--=================================================================================================================== + +function unregister_black_hole(entity) + local unit = entity.unit_number + if global.black_hole.base[unit].energy then + --game.print("unregister base.energy: "..global.black_hole.base[unit].energy) + unregister_black_hole_energy(nil,global.black_hole.base[unit].energy) + unregister_black_hole_base(entity,nil) + else + --game.print("2") + unregister_black_hole_base(entity,nil) + end +end + +function unregister_black_hole_base(entity,unitin) + local unit = nil + if entity then + unit = entity.unit_number + else + unit = unitin + end + global.black_hole.base[unit] = nil + + --game.print(unit) + + if global.black_hole.energy then + for i,v in pairs(global.black_hole.energy) do + if global.black_hole.energy[i].base == unit then + global.black_hole.energy[i].base = nil + end + end + end +end + +function unregister_black_hole_energy(entity,unitin) + local unit = nil + if entity then + unit = entity.unit_number + --game.print("entity") + else + unit = unitin + --game.print("unitin") + end + global.black_hole.energy[unit] = nil + + if global.black_hole.base then + for i,v in pairs(global.black_hole.base) do + if global.black_hole.base[i].energy == unit then + global.black_hole.base[i].energy = nil + global.black_hole.base[i].active = false + end + end + end +end + +--=================================================================================================================== +--slaves +--=================================================================================================================== + +function create_black_hole_energy(base_entity) + local pos = base_entity.position + local slave = base_entity.surface.create_entity{ + name = 'gr_black_hole_energy_entity', + position = pos, + force = base_entity.force + } + slave.destructible = false + return slave +end + +function destroy_energy(entity) + entity.destroy() +end + + +--=================================================================================================================== +--update +--=================================================================================================================== + +function black_hole_base_update() + if global.black_hole then + if global.black_hole.base then + for i,v in pairs(global.black_hole.base) do + if global.black_hole.base[i].entity then + if global.black_hole.base[i].entity.valid then + if global.black_hole.base[i].energy then + local energy = global.black_hole.base[i].energy + local entity = global.black_hole.base[i].entity + local inv = entity.get_inventory(defines.inventory.chest) + + local total = global.black_hole.energy[energy].total + local stable = global.black_hole.energy[energy].stable + local power_gen, matter_consumption = calc_black_hole_stats(stable) + + + local new_matter = inv.get_item_count() - inv.get_item_count("gr_materials_stabilizer_item") + local new_stabilizer = inv.get_item_count("gr_materials_stabilizer_item") + + stable = stable - 1 + if total then + if stabilizer then + stable = stable + new_stabilizer + end + end + if stable >= 100 then + stable = 100 + end + + total = total - matter_consumption + new_matter + + global.black_hole.energy[energy].power_gen = power_gen + global.black_hole.energy[energy].matter_consumption = matter_consumption + global.black_hole.energy[energy].stable = stable + global.black_hole.energy[energy].total = total + + --game.print(stable.." "..power_gen.." "..total) + + black_hole_make_energy(energy, power_gen) + + inv.clear() + + if (total <= 0) or (stable <= 0) then + global.black_hole.counter = global.black_hole.counter + 1 + if global.black_hole.counter == 10 then + local energy_entity = global.black_hole.energy[energy].entity + unregister_black_hole_energy(energy_entity) + energy_entity.destroy() + global.black_hole.counter = 0 + end + end + global.black_hole.dirty = true + end + end + end + end + end + end +end + +--=================================================================================================================== +--util +--=================================================================================================================== + +function can_make_black_hole_energy(entity) + if entity.valid then + inv = entity.get_inventory(defines.inventory.chest) + total = inv.get_item_count() - inv.get_item_count("gr_materials_stabilizer_item") + stabilizer = inv.get_item_count("gr_materials_stabilizer_item") + if (stabilizer >= 100) and (total >= 1000) then + return true + else + return false + end + end +end + +function calc_black_hole_stats(stable) + -- power_gen: Power gen/s in MW + -- matter_consumption: matter consumed/s + -- stable: max 100, each stabilizer put in will add 1 stable regardless + -- every 10 ticks - 1 + + local matter_consumption_rate = black_hole_stable_function(stable) + local power_gen = black_hole_energy_function(matter_consumption_rate) + return power_gen, matter_consumption_rate +end + +function black_hole_stable_function(stable) + --stable from 0 to 100 + if stable <= 0 then + return 0 + end + return stable +end + +function black_hole_energy_function(matter_consumption_rate) + if matter_consumption_rate <= 0 then + return 0 + end + return (matter_consumption_rate * matter_consumption_rate * matter_consumption_rate) * 64 * 1000 * 0.3 +end + +function black_hole_make_energy(energy, power_gen) + if global.black_hole.energy[energy].entity then + if global.black_hole.energy[energy].entity.valid then + --game.print("spawn energy: "..power_gen.."W") + local entity = global.black_hole.energy[energy].entity + entity.power_production = power_gen + end + end +end + +--TODO + +--k2 fix +--KI tech description \ No newline at end of file diff --git a/scripts/gravitation/gr_make_white_hole_recipes.lua b/scripts/gravitation/gr_make_white_hole_recipes.lua new file mode 100644 index 0000000..64d61c9 --- /dev/null +++ b/scripts/gravitation/gr_make_white_hole_recipes.lua @@ -0,0 +1,36 @@ +function gr_make_white_hole_recipe(item) + local blank = { + name = 'blank', + type = 'recipe', + enabled = 'true', + hidden = 'true', + allow_as_intermediate = 'false', + category = 'gr_white_hole_category', + ingredients = { + {'blank',1} + }, + result = 'blank', + result_count = 2, + energy_required = 10, + } + blank["name"] = "gr_white_hole_cycle_"..item.."_recipe" + blank["ingredients"] = { + {item,1} + } + blank["result"] = item + + --table.insert(data.raw.recipe, base) + data:extend({blank}) +end + +function gr_white_hole_recipe_generator() + local items = data.raw.item + for i,v in pairs(items) do + if data.raw.item[i].stack_size > 1 then + gr_make_white_hole_recipe(data.raw.item[i].name) + end + end +end + + +gr_white_hole_recipe_generator() \ No newline at end of file diff --git a/scripts/gravitation/gui.lua b/scripts/gravitation/gui.lua new file mode 100644 index 0000000..35ab73f --- /dev/null +++ b/scripts/gravitation/gui.lua @@ -0,0 +1,305 @@ +require('scripts/gravitation/gr_black_hole_script') +local mod_gui = require("mod-gui") +local gr_gui = {} + +function gr_gui.add_black_hole_gui(e,update) + local player = nil + local id = nil + local active = true + local total = nil + local stabilizer = nil + + local power_gen = 0 + local matter_consumption = 0 + local stable = 0 + local totalmatter = 0 + + if update then + player = e + id = global.black_hole.gui.id + if global.black_hole.base[id] then + active = global.black_hole.base[id].active + local entity = global.black_hole.base[id].entity + local inv = entity.get_inventory(defines.inventory.chest) + total = inv.get_item_count() - inv.get_item_count("gr_materials_stabilizer_item") + stabilizer = inv.get_item_count("gr_materials_stabilizer_item") + + if global.black_hole.base[id].energy then + local energy = global.black_hole.base[id].energy + power_gen = global.black_hole.energy[energy].power_gen + matter_consumption = global.black_hole.energy[energy].matter_consumption + stable = global.black_hole.energy[energy].stable + totalmatter = global.black_hole.energy[energy].total + end + end + else + player = game.get_player(e["player_index"]) + id = e["entity"].unit_number + if global.black_hole.base[id] then + active = global.black_hole.base[id].active + local entity = global.black_hole.base[id].entity + local inv = entity.get_inventory(defines.inventory.chest) + total = inv.get_item_count() - inv.get_item_count("gr_materials_stabilizer_item") + stabilizer = inv.get_item_count("gr_materials_stabilizer_item") + + if global.black_hole.base[id].energy then + local energy = global.black_hole.base[id].energy + power_gen = global.black_hole.energy[energy].power_gen + matter_consumption = global.black_hole.energy[energy].matter_consumption + stable = global.black_hole.energy[energy].stable + totalmatter = global.black_hole.energy[energy].total + end + end + end + + --==================================== + --destroy and clear + --==================================== + + if player.gui.left["main248kblackholeframe"] then + player.gui.left["main248kblackholeframe"].destroy() + global.black_hole.gui = {} + return + end + + if global.black_hole then + if global.black_hole.base then + if not global.black_hole.base[id] then + if player.gui.left["main248kblackholeframe"] then + player.gui.left["main248kblackholeframe"].destroy() + global.black_hole.gui = {} + return + else + return + end + end + end + end + + local main248kblackholeframe = player.gui.left.add({ + type = "frame", + name = "main248kblackholeframe", + caption = "Black hole generator: " + }) + main248kblackholeframe.style.minimal_height = 10 + main248kblackholeframe.style.minimal_width = 10 + main248kblackholeframe.style.maximal_width = 320 + + local main248kblackholecontentframe = main248kblackholeframe.add({ + type = "frame", + name = "main248kblackholecontentframe", + direction = "vertical", + style = "inside_shallow_frame_with_padding" + }) + + local main248kblackholeonframe = main248kblackholecontentframe.add({ + type = "frame", + name = "main248kblackholeonframe", + caption = "Status ", + direction = "horizontal", + style = "bordered_frame" + }) + + + --local main248kblackholeontextfield = main248kblackholeonframe.add({ + -- type = "textfield", + -- name = "main248kblackholeontextfield", + -- numeric = "true", + -- text = channel + --}) + --main248kblackholeontextfield.style.maximal_width = 30 + + local main248kblackholeonbutton = nil + if active == false then + main248kblackholeonbutton = main248kblackholeonframe.add({ + type = "button", + name = "main248kblackholeonbutton", + caption = "Start", + style = "confirm_button" + }) + else + main248kblackholeonbutton = main248kblackholeonframe.add({ + type = "button", + name = "main248kblackholeonbutton", + caption = "Stop", + style = "red_confirm_button" + }) + end + + local main248kblackholestabilizerframe = main248kblackholecontentframe.add({ + type = "frame", + name = "main248kblackholestabilizerframe", + caption = "Core stabilizers: ", + direction = "horizontal", + style = "bordered_frame" + }) + + local main248kblackholestabilizerbar = main248kblackholestabilizerframe.add({ + type = "progressbar", + name = "main248kblackholestatstabilizerbar", + --caption = "Core stabilizers: ", + value = stabilizer/100, + direction = "horizontal", + style = "electric_satisfaction_in_description_progressbar" + }) + + local main248kblackholetotalframe = main248kblackholecontentframe.add({ + type = "frame", + name = "main248kblackholetotalframe", + caption = "Consumable matter: ", + direction = "horizontal", + style = "bordered_frame" + }) + local main248kblackholetotalbar = nil + if active == false then + main248kblackholetotalbar = main248kblackholetotalframe.add({ + type = "progressbar", + name = "main248kblackholetotalbar", + --caption = "Consumable matter: ", + value = total/1000, + direction = "horizontal", + style = "electric_satisfaction_in_description_progressbar" + }) + else + main248kblackholetotalbar = main248kblackholetotalframe.add({ + type = "progressbar", + name = "main248kblackholetotalbar", + --caption = "Consumable matter: ", + value = totalmatter/10000, + direction = "horizontal", + style = "electric_satisfaction_in_description_progressbar" + }) + end + + local main248kblackholestableframe = main248kblackholecontentframe.add({ + type = "frame", + name = "main248kblackholestableframe", + caption = "Reactor stability: ", + direction = "horizontal", + style = "bordered_frame" + }) + + local main248kblackholestablebar = main248kblackholestableframe.add({ + type = "progressbar", + name = "main248kblackholestablebar", + --caption = "Consumable matter: ", + value = stable/100, + direction = "horizontal", + style = "electric_satisfaction_statistics_progressbar" + }) + + local main248kblackholeconsumptionframe = main248kblackholecontentframe.add({ + type = "frame", + name = "main248kblackholeconsumptionframe", + caption = "Matter consumption: ", + direction = "horizontal", + style = "bordered_frame" + }) + + local main248kblackholeconsumptionbar = main248kblackholeconsumptionframe.add({ + type = "progressbar", + name = "main248kblackholeconsumptionbar", + --caption = "Consumable matter: ", + value = matter_consumption/100, + direction = "horizontal", + style = "production_progressbar" + }) + + local main248kblackholepowerframe = main248kblackholecontentframe.add({ + type = "frame", + name = "main248kblackholepowerframe", + caption = "Power gen. rate: ", + direction = "horizontal", + style = "bordered_frame" + }) + + local main248kblackholepowerbar = main248kblackholepowerframe.add({ + type = "progressbar", + name = "main248kblackholepowerbar", + --caption = "Consumable matter: ", + value = power_gen/19000000000, + direction = "horizontal", + style = "production_progressbar" + }) + + global.black_hole.gui.frame = main248kblackholeframe + global.black_hole.gui.id = id + global.black_hole.gui.active = active +end + +--================================================================================= +--on click +--================================================================================= + +function gr_gui.on_change(e) + local player = game.get_player(e["player_index"]) + if e["element"] then + if e["element"].valid then + local element = e["element"].name + + if element == "main248kblackholeonbutton" then + if global.black_hole then + if global.black_hole.gui then + if not global.black_hole.gui.active then + if global.black_hole.gui.id then + local id = global.black_hole.gui.id + + if global.black_hole.base then + if global.black_hole.base[id] then + if global.black_hole.base[id].entity then + if can_make_black_hole_energy(global.black_hole.base[id].entity) then + make_black_hole_energy(global.black_hole.base[id].entity) + gr_gui.update_main() + return + end + end + end + end + end + end + + if global.black_hole.gui.active then + if global.black_hole.gui.id then + local id = global.black_hole.gui.id + + if global.black_hole.base then + if global.black_hole.base[id] then + if global.black_hole.base[id].entity then + if global.black_hole.base[id].active then + if global.black_hole.base[id].energy then + local energy_unit = global.black_hole.base[id].energy + local energy_entity = global.black_hole.energy[energy_unit].entity + unregister_black_hole_energy(energy_entity) + energy_entity.destroy() + global.black_hole.counter = 0 + gr_gui.update_main() + return + end + end + end + end + end + end + end + end + end + end + end + end +end + +--================================================================================= +--update +--================================================================================= + +function gr_gui.update_main() + for i,v in pairs(game.players) do + if game.players[i].gui.left["main248kblackholeframe"] then + game.players[i].gui.left["main248kblackholeframe"].destroy() + gr_gui.add_black_hole_gui(game.players[i],true) + end + end +end + + +return gr_gui \ No newline at end of file diff --git a/scripts/gui.lua b/scripts/gui.lua new file mode 100644 index 0000000..808e0a1 --- /dev/null +++ b/scripts/gui.lua @@ -0,0 +1,726 @@ +local mod_gui = require("mod-gui") +local gui = {} + + +--================================================================================= +--add +--================================================================================= + +function gui.add_top_gui(player) + local button_flow = mod_gui.get_button_flow(player) + if not button_flow.top248kbutton then + local button = button_flow.add({ + type = "sprite-button", + name = "top248kbutton", + sprite = "sprite_248kmainbutton", + style = mod_gui.button_style + }) + end +end + +function gui.add_core_gui(e,update) + local player = nil + local id = nil + + if update then + player = e + id = global.ki.gui.core.id + else + player = game.get_player(e["player_index"]) + id = e["entity"].unit_number + end + + --==================================== + --destroy and clear + --==================================== + + if player.gui.left["main248kcoreframe"] then + player.gui.left["main248kcoreframe"].destroy() + global.ki.gui.core = {} + return + end + + if global.ki then + if global.ki.core then + if not global.ki.core[id] then + if player.gui.left["main248kcoreframe"] then + player.gui.left["main248kcoreframe"].destroy() + global.ki.gui.core = {} + return + else + return + end + end + end + end + + + local channel = global.ki.core[id].channel + local linked = #global.ki.channel[channel].beacons + + local main248kcoreframe = player.gui.left.add({ + type = "frame", + name = "main248kcoreframe", + caption = "KI1 core: " + }) + main248kcoreframe.style.minimal_height = 10 + main248kcoreframe.style.minimal_width = 10 + main248kcoreframe.style.maximal_width = 320 + + local main248kcorecontentframe = main248kcoreframe.add({ + type = "frame", + name = "main248kcorecontentframe", + direction = "vertical", + style = "inside_shallow_frame_with_padding" + }) + + local main248kcorechannelframe = main248kcorecontentframe.add({ + type = "frame", + name = "main248kcorechannelframe", + caption = "core channel", + direction = "horizontal", + style = "bordered_frame" + }) + + local main248kcorechannelslider = main248kcorechannelframe.add({ + type = "slider", + name = "main248kcorechannelslider", + value = channel, + minimun_value = 1, + maximum_value = #global.ki.channel + 1, + style = "notched_slider" + }) + + local main248kcorechanneltextfield = main248kcorechannelframe.add({ + type = "textfield", + name = "main248kcorechanneltextfield", + numeric = "true", + text = channel + }) + main248kcorechanneltextfield.style.maximal_width = 30 + + local main248kcorechannelbutton = main248kcorechannelframe.add({ + type = "button", + name = "main248kcorechannelbutton", + caption = "Apply", + style = mod_gui.button_style + }) + + local main248klinkedframe = main248kcorecontentframe.add({ + type = "frame", + name = "main248kkinkedframe", + caption = "linked beacons", + direction = "horizontal", + style = "bordered_frame" + }) + + local main248klinkedlabel = main248klinkedframe.add({ + type = "label", + name = "main248klinkedlabel", + caption = linked + }) + + global.ki.gui.core.frame = main248kcoreframe + global.ki.gui.core.id = id +end + +function gui.add_main_gui(player) + if player.gui.left["main248kframe"] then + player.gui.left["main248kframe"].destroy() + global.ki.gui.main = {} + end + + local main248kframe = player.gui.left.add({ + type = "frame", + name = "main248kframe", + caption = "248k KI overview: " + }) + main248kframe.style.minimal_height = 10 + main248kframe.style.minimal_width = 10 + main248kframe.style.maximal_width = 320 + + local main248kcontentframe = main248kframe.add({ + type = "frame", + name = "main248kcontentframe", + direction = "vertical", + style = "inside_shallow_frame_with_padding" + }) + + local main248kprefchannelframe = main248kcontentframe.add({ + type = "frame", + name = "main248kprefchannelframe", + caption = "standard channel", + direction = "horizontal", + style = "bordered_frame" + }) + + local main248kprefchannelslider = main248kprefchannelframe.add({ + type = "slider", + name = "main248kprefchannelslider", + value = global.ki.standardchannel, + minimun_value = 0, + maximum_value = #global.ki.channel + 1, + style = "notched_slider" + }) + + local main248kprefchanneltextfield = main248kprefchannelframe.add({ + type = "textfield", + name = "main248kprefchanneltextfield", + numeric = "true", + text = global.ki.standardchannel + }) + main248kprefchanneltextfield.style.maximal_width = 30 + + local main248kprefchannelbutton = main248kprefchannelframe.add({ + type = "button", + name = "main248kprefchannelbutton", + caption = "Apply", + style = mod_gui.button_style + }) + + local main248ksupportedframe = main248kcontentframe.add({ + type = "frame", + name = "main248ksupportedframe", + caption = "max. supported beacons", + direction = "horizontal", + style = "bordered_frame" + }) + + local main248ksupportedlabel = main248ksupportedframe.add({ + type = "label", + name = "main248ksupportedlabel", + caption = global.ki.supported + }) + + local main248ktotalframe = main248kcontentframe.add({ + type = "frame", + name = "main248ktotalframe", + caption = "total beacons", + direction = "horizontal", + style = "bordered_frame" + }) + + local main248ktotallabel = main248ktotalframe.add({ + type = "label", + name = "main248ktotallabel", + caption = global.ki.total + }) + + local main248kselectchannelframe = main248kcontentframe.add({ + type = "frame", + name = "main248kselectchannelframe", + caption = "change beacon channel:", + direction = "horizontal", + style = "bordered_frame" + }) + + local main248kselectchannelslider = main248kselectchannelframe.add({ + type = "slider", + name = "main248kselectchannelslider", + value = global.ki.selectchannel, + minimun_value = 0, + maximum_value = #global.ki.channel + 1, + style = "notched_slider" + }) + + local main248kselectchanneltextfield = main248kselectchannelframe.add({ + type = "textfield", + name = "main248kselectchanneltextfield", + numeric = "true", + text = global.ki.selectchannel + }) + main248kselectchanneltextfield.style.maximal_width = 30 + + local main248kselectchannelbutton = main248kselectchannelframe.add({ + type = "button", + name = "main248kselectchannelbutton", + caption = "Apply", + style = mod_gui.button_style + }) + + global.ki.gui.main.frame = main248kframe +end + +function gui.add_buffer1_gui(e,update) + local player = nil + local id = nil + + if update then + player = e + id = global.ki.gui.buffer1.id + else + player = game.get_player(e["player_index"]) + id = e["entity"].unit_number + end + + --==================================== + --destroy and clear + --==================================== + + if player.gui.left["main248kbuffer1frame"] then + player.gui.left["main248kbuffer1frame"].destroy() + global.ki.gui.buffer1 = {} + return + end + + if global.ki then + if global.ki.buffer1 then + if not global.ki.buffer1[id] then + if player.gui.left["main248kbuffer1frame"] then + player.gui.left["main248kbuffer1frame"].destroy() + global.ki.gui.buffer1 = {} + return + else + return + end + end + end + end + + local channel = global.ki.buffer1[id].channel + + local main248kbuffer1frame = player.gui.left.add({ + type = "frame", + name = "main248kbuffer1frame", + caption = "KI2 amplifier: " + }) + main248kbuffer1frame.style.minimal_height = 10 + main248kbuffer1frame.style.minimal_width = 10 + main248kbuffer1frame.style.maximal_width = 320 + + local main248kbuffer1contentframe = main248kbuffer1frame.add({ + type = "frame", + name = "main248kbuffer1contentframe", + direction = "vertical", + style = "inside_shallow_frame_with_padding" + }) + + local main248kbuffer1channelframe = main248kbuffer1contentframe.add({ + type = "frame", + name = "main248kbuffer1channelframe", + caption = "amplifier channel", + direction = "horizontal", + style = "bordered_frame" + }) + + local main248kbuffer1channelslider = main248kbuffer1channelframe.add({ + type = "slider", + name = "main248kbuffer1channelslider", + value = channel, + minimun_value = 1, + maximum_value = #global.ki.channel + 1, + style = "notched_slider" + }) + + local main248kbuffer1channeltextfield = main248kbuffer1channelframe.add({ + type = "textfield", + name = "main248kbuffer1channeltextfield", + numeric = "true", + text = channel + }) + main248kbuffer1channeltextfield.style.maximal_width = 30 + + local main248kbuffer1channelbutton = main248kbuffer1channelframe.add({ + type = "button", + name = "main248kbuffer1channelbutton", + caption = "Apply", + style = mod_gui.button_style + }) + + global.ki.gui.buffer1.frame = main248kbuffer1frame + global.ki.gui.buffer1.id = id +end + +function gui.add_buffer2_gui(e,update) + local player = nil + local id = nil + + if update then + player = e + id = global.ki.gui.buffer2.id + else + player = game.get_player(e["player_index"]) + id = e["entity"].unit_number + end + + --==================================== + --destroy and clear + --==================================== + + if player.gui.left["main248kbuffer2frame"] then + player.gui.left["main248kbuffer2frame"].destroy() + global.ki.gui.buffer2 = {} + return + end + + if global.ki then + if global.ki.buffer2 then + if not global.ki.buffer2[id] then + if player.gui.left["main248kbuffer2frame"] then + player.gui.left["main248kbuffer2frame"].destroy() + global.ki.gui.buffer2 = {} + return + else + return + end + end + end + end + + local channel = global.ki.buffer2[id].channel + + local main248kbuffer2frame = player.gui.left.add({ + type = "frame", + name = "main248kbuffer2frame", + caption = "KI3 amplifier: " + }) + main248kbuffer2frame.style.minimal_height = 10 + main248kbuffer2frame.style.minimal_width = 10 + main248kbuffer2frame.style.maximal_width = 320 + + local main248kbuffer2contentframe = main248kbuffer2frame.add({ + type = "frame", + name = "main248kbuffer2contentframe", + direction = "vertical", + style = "inside_shallow_frame_with_padding" + }) + + local main248kbuffer2channelframe = main248kbuffer2contentframe.add({ + type = "frame", + name = "main248kbuffer2channelframe", + caption = "amplifier channel", + direction = "horizontal", + style = "bordered_frame" + }) + + local main248kbuffer2channelslider = main248kbuffer2channelframe.add({ + type = "slider", + name = "main248kbuffer2channelslider", + value = channel, + minimun_value = 1, + maximum_value = #global.ki.channel + 1, + style = "notched_slider" + }) + + local main248kbuffer2channeltextfield = main248kbuffer2channelframe.add({ + type = "textfield", + name = "main248kbuffer2channeltextfield", + numeric = "true", + text = channel + }) + main248kbuffer2channeltextfield.style.maximal_width = 30 + + local main248kbuffer2channelbutton = main248kbuffer2channelframe.add({ + type = "button", + name = "main248kbuffer2channelbutton", + caption = "Apply", + style = mod_gui.button_style + }) + + global.ki.gui.buffer2.frame = main248kbuffer2frame + global.ki.gui.buffer2.id = id +end + +--================================================================================= +--on click +--================================================================================= + +function gui.on_change(e) + local player = game.get_player(e["player_index"]) + + if e["element"] then + if e["element"].valid then + local element = e["element"].name + + if element == "top248kbutton" then + if player.gui.left["main248kframe"] then + player.gui.left["main248kframe"].destroy() + else + gui.add_main_gui(player) + end + end + + if element == "main248kselectchannelbutton" then + if player.cursor_stack.can_set_stack({name = "el_ki_selection_tool"}) then + player.cursor_stack.set_stack({name = "el_ki_selection_tool"}) + + if global.ki.gui.main then + if global.ki.gui.main.frame then + local main248kframe = global.ki.gui.main.frame + local slider_channel = main248kframe.main248kcontentframe.main248kselectchannelframe.main248kselectchannelslider.slider_value + local text_channel = tonumber(main248kframe.main248kcontentframe.main248kselectchannelframe.main248kselectchanneltextfield.text) + + change_valid_selectchannel(slider_channel,text_channel) + end + end + + end + end + + if element == "main248kcorechannelbutton" then + if global.ki.gui.core then + if (global.ki.gui.core.frame and global.ki.gui.core.id) then + + local main248kcoreframe = global.ki.gui.core.frame + local id = global.ki.gui.core.id + local slider_channel = main248kcoreframe.main248kcorecontentframe.main248kcorechannelframe.main248kcorechannelslider.slider_value + local text_channel = tonumber(main248kcoreframe.main248kcorecontentframe.main248kcorechannelframe.main248kcorechanneltextfield.text) + + change_valid_channel(slider_channel,text_channel,id) + end + end + end + + if element == "main248kbuffer1channelbutton" then + if global.ki.gui.buffer1 then + if (global.ki.gui.buffer1.frame and global.ki.gui.buffer1.id) then + + local main248kbuffer1frame = global.ki.gui.buffer1.frame + local id = global.ki.gui.buffer1.id + local slider_channel = main248kbuffer1frame.main248kbuffer1contentframe.main248kbuffer1channelframe.main248kbuffer1channelslider.slider_value + local text_channel = tonumber(main248kbuffer1frame.main248kbuffer1contentframe.main248kbuffer1channelframe.main248kbuffer1channeltextfield.text) + + change_valid_bufferchannel(slider_channel,text_channel,id,"buffer1") + end + end + end + + if element == "main248kbuffer2channelbutton" then + if global.ki.gui.buffer2 then + if (global.ki.gui.buffer2.frame and global.ki.gui.buffer2.id) then + + local main248kbuffer2frame = global.ki.gui.buffer2.frame + local id = global.ki.gui.buffer2.id + local slider_channel = main248kbuffer2frame.main248kbuffer2contentframe.main248kbuffer2channelframe.main248kbuffer2channelslider.slider_value + local text_channel = tonumber(main248kbuffer2frame.main248kbuffer2contentframe.main248kbuffer2channelframe.main248kbuffer2channeltextfield.text) + + change_valid_bufferchannel(slider_channel,text_channel,id,"buffer2") + end + end + end + + if element == "main248kprefchannelbutton" then + if global.ki.gui.main then + if global.ki.gui.main.frame then + local main248kframe = global.ki.gui.main.frame + local slider_channel = main248kframe.main248kcontentframe.main248kprefchannelframe.main248kprefchannelslider.slider_value + local text_channel = tonumber(main248kframe.main248kcontentframe.main248kprefchannelframe.main248kprefchanneltextfield.text) + + change_valid_standardchannel(slider_channel,text_channel) + end + end + end + + if element == "main248kcorechannelslider" then + gui.update_main() + end + + if element == "main248kcorechanneltextfield" then + gui.update_main() + end + end + end +end + +function gui.on_selected(e) + if e["item"] then + if e["player_index"] then + local player = game.get_player(e["player_index"]) + if player.cursor_stack then + if player.cursor_stack.valid_for_read then + if player.cursor_stack.name == "el_ki_selection_tool" then + + for i,v in pairs(e["entities"]) do + if (v.name == 'el_ki_beacon_entity') or (v.name == 'fi_ki_beacon_entity') or (v.name == 'fu_ki_beacon_entity') then + local id = v.unit_number + local oldchannel = global.ki.beacon[id].channel + + for x,f in pairs(global.ki.channel[oldchannel].beacons) do + if f == id then + table.remove(global.ki.channel[oldchannel].beacons, x) + break + end + end + + global.ki.beacon[id].channel = global.ki.selectchannel + table.insert(global.ki.channel[global.ki.selectchannel].beacons, id) + end + end + + global.ki.dirty = true + gui.update_main() + end + end + end + end + end +end +--================================================================================= +--update +--================================================================================= + +function gui.update_main() + for i,v in pairs(game.players) do + if game.players[i].gui.left["main248kframe"] then + game.players[i].gui.left["main248kframe"].destroy() + gui.add_main_gui(game.players[i]) + end + + if game.players[i].gui.left["main248kcoreframe"] then + game.players[i].gui.left["main248kcoreframe"].destroy() + gui.add_core_gui(game.players[i],true) + end + + if game.players[i].gui.left["main248kbuffer1frame"] then + game.players[i].gui.left["main248kbuffer1frame"].destroy() + gui.add_buffer1_gui(game.players[i],true) + end + + if game.players[i].gui.left["main248kbuffer2frame"] then + game.players[i].gui.left["main248kbuffer2frame"].destroy() + gui.add_buffer2_gui(game.players[i],true) + end + end +end + +--================================================================================= +--util +--================================================================================= + +function change_valid_channel(slider_channel,text_channel,id) + + if slider_channel == text_channel then + if is_valid_channel(slider_channel,"core") then + change_channel(id,slider_channel,"core") + end + gui.update_main() + return + end + + if not (slider_channel == global.ki.core[id].channel) then + if is_valid_channel(slider_channel,"core") then + change_channel(id,slider_channel,"core") + end + gui.update_main() + return + end + + if not (text_channel == global.ki.core[id].channel) then + if is_valid_channel(text_channel,"core") then + change_channel(id,text_channel,"core") + end + gui.update_main() + return + end +end + +function change_valid_bufferchannel(slider_channel,text_channel,id,object) + + if slider_channel == text_channel then + if is_valid_channel(slider_channel,object) then + change_channel(id,slider_channel,object) + end + gui.update_main() + return + end + + if not (slider_channel == global.ki[object][id].channel) then + if is_valid_channel(slider_channel,object) then + change_channel(id,slider_channel,object) + end + gui.update_main() + return + end + + if not (text_channel == global.ki[object][id].channel) then + if is_valid_channel(text_channel,object) then + change_channel(id,slider_channel,object) + end + gui.update_main() + return + end +end + +function change_valid_standardchannel(slider_channel,text_channel) + if slider_channel == text_channel then + if is_valid_standardchannel(slider_channel) then + global.ki.standardchannel = slider_channel + end + gui.update_main() + return + end + + if not (slider_channel == global.ki.standardchannel) then + if is_valid_standardchannel(slider_channel) then + global.ki.standardchannel = slider_channel + end + gui.update_main() + return + end + + if not (text_channel == global.ki.standardchannel) then + if is_valid_standardchannel(text_channel) then + global.ki.standardchannel = text_channel + end + gui.update_main() + return + end +end + +function change_valid_selectchannel(slider_channel,text_channel) + if slider_channel == text_channel then + if is_valid_standardchannel(slider_channel) then + global.ki.selectchannel = slider_channel + end + gui.update_main() + return + end + + if not (slider_channel == global.ki.selectchannel) then + if is_valid_standardchannel(slider_channel) then + global.ki.selectchannel = slider_channel + end + gui.update_main() + return + end + + if not (text_channel == global.ki.selectchannel) then + if is_valid_standardchannel(text_channel) then + global.ki.selectchannel = text_channel + end + gui.update_main() + return + end +end + +function is_valid_channel(channel,object) + if #global.ki.channel >= channel then + if not global.ki.channel[channel][object] then + return true + end + end + return false +end + +function is_valid_standardchannel(channel) + if #global.ki.channel >= channel then + return true + end + return false +end + +function change_channel(id,new_channel,type) + global.ki.channel[global.ki[type][id].channel][type] = nil + global.ki[type][id].channel = new_channel + global.ki.channel[new_channel][type] = id + global.ki.dirty = true +end + +return gui + + + + + + + diff --git a/scripts/ind2/data-final-fixes.lua b/scripts/ind2/data-final-fixes.lua new file mode 100644 index 0000000..f3b65b9 --- /dev/null +++ b/scripts/ind2/data-final-fixes.lua @@ -0,0 +1,166 @@ +local function sprite(name) + return '__248k__/ressources/techs/'..name +end + +data.raw["assembling-machine"]["oil-refinery"].fixed_recipe = nil +data.raw["recipe"]["fi_materials_steel_recipe"].result = "steel-ingot" +data.raw["recipe"]["fi_materials_steel_recipe"].result_count = 16 +data.raw["recipe"]["fu_robo_logistic_recipe"].ingredients = { + {type="item", name="logistic-robot", amount=2}, + {type="item", name="fu_tech_sign_item", amount=2}, + {type="item", name="fi_energy_crystal_item", amount=3}, + {type="item", name="low-density-structure", amount=20}, + {type="item", name="el_lithium_battery", amount=10}, + {type="item", name="gyroscope", amount=8}, +} +data.raw["recipe"]["fu_robo_construction_recipe"].ingredients = { + {type="item", name="logistic-robot", amount=2}, + {type="item", name="fu_tech_sign_item", amount=2}, + {type="item", name="fi_energy_crystal_item", amount=3}, + {type="item", name="low-density-structure", amount=20}, + {type="item", name="el_lithium_battery", amount=10}, + {type="item", name="gyroscope", amount=8}, +} +data.raw["recipe"]["fu_star_engine_caster_1_recipe"].results = {{type="item", name="iron-ingot", amount=500}} +data.raw["recipe"]["fu_star_engine_caster_2_recipe"].results = {{type="item", name="copper-ingot", amount=500}} +data.raw["recipe"]["gr_steel_recipe"].results = {{type="item", name="steel-ingot", amount=500}} +data:extend({ + { + name = 'gr_stainless_steel_recipe', + type = 'recipe', + category = 'crafting-with-fluid', + enabled = 'false', + subgroup = 'fu_star_engine_subgroup_e', + ingredients = { + {type="fluid", name="fu_iron", amount=500}, + }, + results = { + {type="item", name="stainless-ingot", amount=500}, + }, + result_count = 1, + energy_required = 6, + }, + { + name = 'gr_invar_recipe', + type = 'recipe', + category = 'crafting-with-fluid', + enabled = 'false', + subgroup = 'fu_star_engine_subgroup_e', + ingredients = { + {type="fluid", name="fu_iron", amount=500}, + }, + results = { + {type="item", name="invar-ingot", amount=500}, + }, + result_count = 1, + energy_required = 6, + }, + { + name = 'gr_nickel_recipe', + type = 'recipe', + category = 'crafting-with-fluid', + enabled = 'false', + subgroup = 'fu_star_engine_subgroup_e', + ingredients = { + {type="fluid", name="fu_iron", amount=500}, + }, + results = { + {type="item", name="cupronickel-ingot", amount=500}, + }, + result_count = 1, + energy_required = 6, + }, + { + name = 'gr_chrome_recipe', + type = 'recipe', + category = 'crafting-with-fluid', + enabled = 'false', + subgroup = 'fu_star_engine_subgroup_e', + ingredients = { + {type="fluid", name="fu_iron", amount=500}, + }, + results = { + {type="item", name="chromium-ingot", amount=500}, + }, + result_count = 1, + energy_required = 6, + }, + { + name = 'gr_gold_recipe', + type = 'recipe', + category = 'crafting-with-fluid', + enabled = 'false', + subgroup = 'fu_star_engine_subgroup_e', + ingredients = { + {type="fluid", name="fu_iron", amount=500}, + }, + results = { + {type="item", name="gold-ingot", amount=500}, + }, + result_count = 1, + energy_required = 6, + }, + { + name = 'gr_tellerium_recipe', + type = 'recipe', + category = 'crafting-with-fluid', + enabled = 'false', + subgroup = 'fu_star_engine_subgroup_e', + ingredients = { + {type="fluid", name="fu_iron", amount=500}, + }, + results = { + {type="item", name="tellurium-ingot", amount=500}, + }, + result_count = 1, + energy_required = 6, + }, + { + name = 'gr_ind2_tech', + type = 'technology', + icon = sprite('fu_star_engine_tech.png'), + icon_size = 128, + prerequisites = { + 'gr_star_engine_2_tech' + }, + effects = { + { + type = 'unlock-recipe', + recipe = 'gr_stainless_steel_recipe', + }, + { + type = 'unlock-recipe', + recipe = 'gr_invar_recipe', + }, + { + type = 'unlock-recipe', + recipe = 'gr_nickel_recipe', + }, + { + type = 'unlock-recipe', + recipe = 'gr_chrome_recipe', + }, + { + type = 'unlock-recipe', + recipe = 'gr_gold_recipe', + }, + { + type = 'unlock-recipe', + recipe = 'gr_tellerium_recipe', + } + }, + unit = { + count = '8000', + ingredients = { + {'chemical-science-pack',1}, + {'automation-science-pack',1}, + {'logistic-science-pack',1}, + {'production-science-pack',1}, + {'utility-science-pack',1}, + {'space-science-pack',1}, + {'fu_space_probe_science_item',1} + }, + time = 100, + }, + }, +}) \ No newline at end of file diff --git a/scripts/ind2/data.lua b/scripts/ind2/data.lua new file mode 100644 index 0000000..e69de29 diff --git a/scripts/informatron/inf_main.lua b/scripts/informatron/inf_main.lua new file mode 100644 index 0000000..80a0e6c --- /dev/null +++ b/scripts/informatron/inf_main.lua @@ -0,0 +1,81 @@ +remote.add_interface("inf_248k", { + informatron_menu = function(data) + return inf_248k_menu(data.player_index) + end, + informatron_page_content = function(data) + return inf_248k_page_content(data.page_name, data.player_index, data.element) + end + }) + + function inf_248k_menu(player_index) + return { + ki1core=1, + diesel=1, + fusion=1, + starengine=1, + exoticscience=1, + blackhole=1 + } + end + + function inf_248k_page_content(page_name, player_index, element) + -- main page + if page_name == "inf_248k" then + element.add{type="label", name="text_1", caption={"gui.bk_248k_about"}, style="heading_1_label"} + element.add{type="label", name="text_2", caption={"gui.bk_248k_about_text"}} + element.add{type="button", name="image_1", style="inf_248k_image_1"} + + element.add{type="label", name="text_3", caption={"gui.bk_248k_first_steps"}, style="heading_1_label"} + element.add{type="label", name="text_4", caption={"gui.bk_248k_first_steps_text"}} + end + + if page_name == "ki1core" then + element.add{type="label", name="text_1", caption={"gui.bk_248k_ki1_core"}, style="heading_1_label"} + element.add{type="label", name="text_2", caption={"gui.bk_248k_ki1_core_text"}} + element.add{type="button", name="image_1", style="inf_248k_image_3"} + + element.add{type="label", name="text_4", caption={"gui.bk_248k_ki2_core"}, style="heading_1_label"} + element.add{type="label", name="text_3", caption={"gui.bk_248k_ki2_core_text"}} + element.add{type="button", name="image_2", style="inf_248k_image_7"} + end + + if page_name == "diesel" then + element.add{type="label", name="text_1", caption={"gui.bk_248k_diesel_train"}, style="heading_1_label"} + element.add{type="label", name="text_2", caption={"gui.bk_248k_diesel_train_text"}} + element.add{type="button", name="image_1", style="inf_248k_image_8"} + end + + if page_name == "fusion" then + element.add{type="label", name="text_1", caption={"gui.bk_248k_fusion"}, style="heading_1_label"} + element.add{type="label", name="text_2", caption={"gui.bk_248k_fusion_text"}} + element.add{type="button", name="image_1", style="inf_248k_image_4"} + + element.add{type="label", name="text_3", caption={"gui.bk_248k_fusion_1_text"}} + element.add{type="button", name="image_2", style="inf_248k_image_5"} + + element.add{type="label", name="text_4", caption={"gui.bk_248k_fusion_2_text"}} + end + + if page_name == "starengine" then + element.add{type="label", name="text_1", caption={"gui.bk_248k_star_engine"}, style="heading_1_label"} + element.add{type="label", name="text_2", caption={"gui.bk_248k_star_engine_text"}} + element.add{type="button", name="image_1", style="inf_248k_image_6"} + + element.add{type="label", name="text_3", caption={"gui.bk_248k_star_engine_1_text"}} + element.add{type="button", name="image_2", style="inf_248k_image_9"} + end + + if page_name == "exoticscience" then + element.add{type="label", name="text_1", caption={"gui.bk_248k_exotic_science"}, style="heading_1_label"} + element.add{type="label", name="text_2", caption={"gui.bk_248k_exotic_science_text"}} + end + + if page_name == "blackhole" then + element.add{type="label", name="text_1", caption={"gui.bk_248k_black_hole"}, style="heading_1_label"} + element.add{type="label", name="text_2", caption={"gui.bk_248k_black_hole_text"}} + element.add{type="button", name="image_1", style="inf_248k_image_10"} + end + + + end + \ No newline at end of file diff --git a/scripts/informatron/inf_sprites.lua b/scripts/informatron/inf_sprites.lua new file mode 100644 index 0000000..de5647f --- /dev/null +++ b/scripts/informatron/inf_sprites.lua @@ -0,0 +1,16 @@ +local function sprite(name) + return '__248k__/ressources/booktorio/bk_sprite_'..name +end +-- style_name, filename, width, height -- style_name MUST be a completely unique name +informatron_make_image("inf_248k_image_1", sprite('1.png'), 1117, 948) +informatron_make_image("inf_248k_image_2", sprite('2.png'), 1044, 826) +informatron_make_image("inf_248k_image_3", sprite('3.png'), 988, 696) +informatron_make_image("inf_248k_image_4", '__248k__/ressources/fusion/fu_fusor/fu_fusor_entity_animation.png', 512*2, 512*2) +informatron_make_image("inf_248k_image_5", '__248k__/ressources/fusion/fu_boiler/fu_boiler_entity_animation.png', 512, 512) +informatron_make_image("inf_248k_image_6", sprite('6.png'), 1190, 1020) +informatron_make_image("inf_248k_image_7", sprite('7.png'), 1292, 627) + +informatron_make_image("inf_248k_image_8", sprite('8.PNG'), 493, 124) +informatron_make_image("inf_248k_image_9", sprite('9.PNG'), 279, 317) +informatron_make_image("inf_248k_image_10", sprite('10.PNG'), 994, 630) + diff --git a/scripts/krastorio2/data-final-fixes.lua b/scripts/krastorio2/data-final-fixes.lua new file mode 100644 index 0000000..6f3e75f --- /dev/null +++ b/scripts/krastorio2/data-final-fixes.lua @@ -0,0 +1,263 @@ +local function config(name) + return settings.startup['override_'..name].value +end + +data:extend({ + { + type = "recipe", + name = "fi_lithium_to_k2", + energy_required = 30, + enabled = false, + always_show_made_in = true, + ingredients = + { + {"fi_crushed_lithium_item", 10}, + {type="fluid", name="mineral-water", amount=100} + }, + result = "lithium-chloride", + result_count = 10, + category = "chemistry" + }, + { + name = 'fu_boiler_hydrogen_oxygen_3_recipe', + type = 'recipe', + category = 'fu_boiler_crafting_category', + main_product = 'hydrogen', + enabled = false, + ingredients = { + {type="fluid", name="water", amount=1100}, + }, + results = { + {type="fluid", name="hydrogen", amount=1000, temperature=40}, + }, + result_count = 1, + energy_required = 1, + subgroup = 'fu_item_subgroup_e', + order = 'a-a', + }, + { + name = 'fu_boiler_hydrogen_oxygen_recipe', + type = 'recipe', + category = 'fu_boiler_crafting_category', + main_product = 'hydrogen', + enabled = false, + ingredients = { + {type="fluid", name="water", amount=150}, + }, + results = { + {type="fluid", name="hydrogen", amount=100, temperature=40}, + {type="fluid", name="oxygen", amount=50, temperature=40} + }, + result_count = 1, + energy_required = 1, + subgroup = 'fu_item_subgroup_e', + order = 'a-a', + }, + { + name = 'fu_boiler_hydrogen_oxygen_1_recipe', + type = 'recipe', + category = 'fu_boiler_crafting_category', + main_product = 'hydrogen', + enabled = false, + ingredients = { + {type="fluid", name="water", amount=300}, + }, + results = { + {type="fluid", name="hydrogen", amount=200, temperature=40}, + {type="fluid", name="oxygen", amount=100, temperature=40} + }, + result_count = 1, + energy_required = 1, + subgroup = 'fu_item_subgroup_e', + order = 'a-a', + }, + { + name = 'fu_boiler_hydrogen_oxygen_2_recipe', + type = 'recipe', + category = 'fu_boiler_crafting_category', + main_product = 'hydrogen', + enabled = false, + ingredients = { + {type="fluid", name="water", amount=650}, + }, + results = { + {type="fluid", name="hydrogen", amount=500, temperature=40}, + {type="fluid", name="oxygen", amount=150, temperature=40}, + }, + result_count = 1, + energy_required = 1, + subgroup = 'fu_item_subgroup_e', + order = 'a-a', + }, + { + name = 'fu_hydrogen_recipe', + type = 'recipe', + category = 'oil-processing', + main_product = 'fu_protium', + enabled = false, + ingredients = { + {type="fluid", name="hydrogen", amount=100000}, + }, + results = { + {type="fluid", name="fu_protium", amount=99998}, + {type="fluid", name="fu_deuterium", amount=10}, + {type="fluid", name="fu_tritium", amount=1} + }, + result_count = '0.5', + energy_required = 100, + }, + { + name = 'fu_exchanger_1_recipe', + type = 'recipe', + category = 'fu_exchanger_crafting_category', + main_product = 'steam', + enabled = 'false', + ingredients = { + {type="fluid", name="fu_lead_fluid", amount=50, temperature=1500}, + {type="fluid", name="water", amount=1000/2}, + }, + results = { + {type="fluid", name="fu_lead_fluid", amount=50, temperature=500}, + {type="fluid", name="steam", amount=1000/2, temperature=425}, + }, + result_count = 1, + energy_required = 1, + subgroup = 'fu_item_subgroup_e', + order = 'b-a', + always_show_made_in = true, + }, + { + name = 'fu_exchanger_2_recipe', + type = 'recipe', + category = 'fu_exchanger_crafting_category', + main_product = 'steam', + enabled = 'false', + ingredients = { + {type="fluid", name="fu_lead_fluid", amount=100, temperature=1500}, + {type="fluid", name="water", amount=1000/4}, + }, + results = { + {type="fluid", name="fu_lead_fluid", amount=100, temperature=500}, + {type="fluid", name="steam", amount=1000/4, temperature=975}, + }, + result_count = 1, + energy_required = 1, + subgroup = 'fu_item_subgroup_e', + order = 'b-a', + always_show_made_in = true, + }, + { + name = 'fu_star_engine_cooler_7_recipe', + type = 'recipe', + category = 'fu_star_engine_cooler_crafting_category', + enabled = 'false', + subgroup = 'fu_star_engine_subgroup_c', + ingredients = { + {type="fluid", name="fu_iron_heated", amount=500}, + }, + results = { + {type="fluid", name="matter", amount=500}, + }, + result_count = 1, + energy_required = 1, + }, + { + name = 'fu_activator_3_recipe', + type = 'recipe', + category = 'chemistry', + main_product = 'fu_deuterium', + enabled = 'false', + ingredients = { + {type="fluid", name="heavy-water", amount=10}, + }, + results = { + {type="fluid", name="fu_deuterium", amount=4}, + }, + result_count = 1, + energy_required = 10, + always_show_made_in = true, + }, + { + name = 'fu_activator_4_recipe', + type = 'recipe', + category = 'chemistry', + main_product = 'fu_tritium', + enabled = 'false', + ingredients = { + {type="item", name="tritium", amount=1}, + }, + results = { + {type="fluid", name="fu_tritium", amount=10}, + }, + result_count = 1, + energy_required = 10, + always_show_made_in = true, + }, + { + name = 'fu_ki_core_recipe', + type = 'recipe', + enabled = 'false', + category = 'crafting', + ingredients = { + {type="item", name="steel-plate", amount=100}, + {type="item", name="concrete", amount=500}, + {type="item", name="electronic-circuit", amount=100}, + {type="item", name="advanced-circuit", amount=100}, + {type="item", name="processing-unit", amount=100}, + {type="item", name="fu_space_probe_down_matter_item", amount=10}, + {type="item", name="fu_space_probe_up_matter_item", amount=10}, + {type="item", name="fu_exchanger_item", amount=10}, + {type="item", name="fu_tech_sign_item", amount=100}, + {type="item", name="fu_boiler_item", amount=10}, + --{type="item", name="fu_burner_item", amount=10}, + }, + results = { + {type="item", name="fu_ki_core_item", amount=1}, + }, + result_count = 1, + energy_required = 60, + }, +}) + +--techs +table.insert(data.raw.technology["kr-lithium-processing"].effects, {type ="unlock-recipe", recipe ="fi_lithium_to_k2"}) +table.insert(data.raw.technology["kr-matter-processing"].effects, {type ="unlock-recipe", recipe ="fu_star_engine_cooler_7_recipe"}) +if (not mods["RealisticFusionPower"]) then + table.insert(data.raw.technology["kr-fusion-energy"].effects, {type ="unlock-recipe", recipe ="fu_activator_4_recipe"}) + table.insert(data.raw.technology["kr-fusion-energy"].effects, {type ="unlock-recipe", recipe ="fu_activator_3_recipe"}) +end +data.raw.recipe["fu_burner_recipe"].hidden = true + +table.insert(data.raw.technology["gr_stage_tech"].unit.ingredients, {"fu_space_probe_science_item", 1}) +table.insert(data.raw.technology["gr_train_tech"].unit.ingredients, {"fu_space_probe_science_item", 1}) +table.insert(data.raw.technology["gr_train_plus_tech"].unit.ingredients, {"fu_space_probe_science_item", 1}) +table.insert(data.raw.technology["gr_star_engine_1_tech"].unit.ingredients, {"fu_space_probe_science_item", 1}) +table.insert(data.raw.technology["gr_star_engine_2_tech"].unit.ingredients, {"fu_space_probe_science_item", 1}) +table.insert(data.raw.technology["gr_crafter_tech"].unit.ingredients, {"fu_space_probe_science_item", 1}) +table.insert(data.raw.technology["gr_materials_tech"].unit.ingredients, {"fu_space_probe_science_item", 1}) +table.insert(data.raw.technology["gr_compact_fusion_tech"].unit.ingredients, {"fu_space_probe_science_item", 1}) +table.insert(data.raw.technology["gr_charger_tech"].unit.ingredients, {"fu_space_probe_science_item", 1}) +table.insert(data.raw.technology["gr_kovarex_tech"].unit.ingredients, {"fu_space_probe_science_item", 1}) +table.insert(data.raw.technology["gr_black_hole_tech"].unit.ingredients, {"fu_space_probe_science_item", 1}) +table.insert(data.raw.technology["fi_modules_4_tech"].unit.ingredients, {"fu_space_probe_science_item", 1}) +table.insert(data.raw.technology["fi_modules_5_tech"].unit.ingredients, {"fu_space_probe_science_item", 1}) +table.insert(data.raw.technology["fi_modules_6_tech"].unit.ingredients, {"fu_space_probe_science_item", 1}) + +table.insert(data.raw.technology["fu_ki_plus_1_tech"].unit.ingredients, {"fi_ki_science", 1}) +table.insert(data.raw.technology["fu_ki_plus_1_tech"].unit.ingredients, {"fu_ki_science", 1}) +table.insert(data.raw.technology["fu_ki_plus_2_tech"].unit.ingredients, {"fi_ki_science", 1}) +table.insert(data.raw.technology["fu_ki_plus_2_tech"].unit.ingredients, {"fu_ki_science", 1}) + +table.insert(data.raw["generator-equipment"]["fi_train_equipment_generator_item"].categories,"vehicle-equipment") + +if (config("krastorio_endgame")) then + table.insert(data.raw.recipe["kr-intergalactic-transceiver"].ingredients ,{type="item", name="gr_materials_stack_down_item", amount=100}) + table.insert(data.raw.recipe["kr-intergalactic-transceiver"].ingredients ,{type="item", name="gr_materials_stack_up_item", amount=100}) + table.insert(data.raw.recipe["kr-antimatter-reactor"].ingredients ,{type="item", name="gr_materials_stack_down_item", amount=40}) + table.insert(data.raw.recipe["kr-antimatter-reactor"].ingredients ,{type="item", name="gr_materials_stack_up_item", amount=40}) +end +table.insert(data.raw.lab['kr-singularity-lab'].inputs, 'fu_space_probe_science_item') +table.insert(data.raw.lab['kr-singularity-lab'].inputs, 'fi_ki_science') +table.insert(data.raw.lab['kr-singularity-lab'].inputs, 'fu_ki_science') + +data.raw.tool["fu_space_probe_science_item"].icon = "__248k__/ressources/fusion/fu_space_probe/fu_space_probe_science_item_krastorio.png" \ No newline at end of file diff --git a/scripts/krastorio2/data.lua b/scripts/krastorio2/data.lua new file mode 100644 index 0000000..e69de29 diff --git a/settings.lua b/settings.lua new file mode 100644 index 0000000..30c5604 --- /dev/null +++ b/settings.lua @@ -0,0 +1,188 @@ +--el_solar +data:extend({ + --Power Output in W + { + name = 'el_solar_power_output', + type = 'int-setting', + setting_type = 'startup', + default_value = 200000, + minimum_value = 1, + maximum_value = 10^10, + order = 'a', + }, + { + name = 'el_burner_power_output', + type = 'int-setting', + setting_type = 'startup', + default_value = 2400000, + minimum_value = 1, + maximum_value = 10^10, + order = 'a', + }, + { + name = 'el_water_generator_power_output', + type = 'int-setting', + setting_type = 'startup', + default_value = 4000000, + minimum_value = 1, + maximum_value = 10^10, + order = 'a', + }, + { + name = 'el_burner_kerosene_power_output', + type = 'int-setting', + setting_type = 'startup', + default_value = 2400000, + minimum_value = 1, + maximum_value = 10^10, + order = 'a', + }, + { + name = 'fu_burner_power_output', + type = 'int-setting', + setting_type = 'startup', + default_value = 3500000, + minimum_value = 1, + maximum_value = 10^10, + order = 'a', + }, + --el KI1 + { + name = 'el_ki_beacon_effectivity', + type = 'double-setting', + setting_type = 'startup', + default_value = 0.5, + minimum_value = 0.1, + maximum_value = 10, + order = 'a', + }, + { + name = 'el_ki_beacon_effectivity_2', + type = 'double-setting', + setting_type = 'startup', + default_value = 0.5, + minimum_value = 0.1, + maximum_value = 10, + order = 'a', + }, + { + name = 'el_ki_beacon_effectivity_3', + type = 'double-setting', + setting_type = 'startup', + default_value = 0.5, + minimum_value = 0.1, + maximum_value = 10, + order = 'a', + }, + { + name = 'el_ki_beacon_supply_area', + type = 'int-setting', + setting_type = 'startup', + default_value = 3, + minimum_value = 1, + maximum_value = 10, + order = 'a', + }, + { + name = 'el_ki_beacon_supply_area_2', + type = 'int-setting', + setting_type = 'startup', + default_value = 4, + minimum_value = 1, + maximum_value = 10, + order = 'a', + }, + { + name = 'el_ki_beacon_supply_area_3', + type = 'int-setting', + setting_type = 'startup', + default_value = 5, + minimum_value = 1, + maximum_value = 10, + order = 'a', + }, + { + name = 'el_ki_beacon_blueprintable', + type = 'bool-setting', + setting_type = 'startup', + default_value = true, + order = 'a', + }, + { + name = 'el_ki_core_productivity', + type = 'bool-setting', + setting_type = 'startup', + default_value = true, + order = 'a', + }, + { + name = 'el_ki_core_energy_usage', + type = 'int-setting', + setting_type = 'startup', + default_value = 20*10^6, + minimum_value = 1, + maximum_value = 100000000, + order = 'a', + }, + { + name = 'el_ki_core_energy_usage_2', + type = 'int-setting', + setting_type = 'startup', + default_value = 20*10^7, + minimum_value = 1, + maximum_value = 10^10, + order = 'a', + }, + { + name = 'el_ki_core_energy_usage_3', + type = 'int-setting', + setting_type = 'startup', + default_value = 20*10^8, + minimum_value = 1, + maximum_value = 10^11, + order = 'a', + }, + { + name = 'el_ki_core_energy_usage_input', + type = 'int-setting', + setting_type = 'startup', + default_value = 30*10^6, + minimum_value = 1, + maximum_value = 100000000, + order = 'a', + }, + { + name = 'el_ki_core_energy_usage_input_2', + type = 'int-setting', + setting_type = 'startup', + default_value = 30*10^7, + minimum_value = 1, + maximum_value = 10^10, + order = 'a', + }, + { + name = 'el_ki_core_energy_usage_input_3', + type = 'int-setting', + setting_type = 'startup', + default_value = 30*10^8, + minimum_value = 1, + maximum_value = 10^11, + order = 'a', + }, + --Recipe enabled + { + name = 'el_solar_recipe_enabled', + type = 'bool-setting', + setting_type = 'startup', + default_value = true, + order = 'b', + }, + --final fixes + { + name = 'override_krastorio_endgame', + type = 'bool-setting', + setting_type = 'startup', + default_value = true, + order = 'b', + }, +}) \ No newline at end of file diff --git a/thumbnail.png b/thumbnail.png new file mode 100644 index 0000000..38d1801 Binary files /dev/null and b/thumbnail.png differ