This commit is contained in:
Paul 2021-07-25 17:33:55 +02:00
commit 43086ea1eb
553 changed files with 20250 additions and 0 deletions

View file

@ -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',
},
})

161
prototypes/248k_fluids.lua Normal file
View file

@ -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',
},
})

View file

@ -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',
},
},
})

2798
prototypes/248k_techs.lua Normal file

File diff suppressed because it is too large Load diff

888
prototypes/el_recipes.lua Normal file
View file

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

View file

@ -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',
},
})

View file

@ -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',
},
})

View file

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

View file

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

View file

@ -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',
},
})

View file

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

View file

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

View file

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

View file

@ -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"}
}
})

View file

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

View file

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

View file

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

View file

@ -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',
},
})

View file

@ -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

View file

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

View file

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

View file

@ -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',
},
},
})

View file

@ -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',
},
})

View file

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

640
prototypes/fi_recipes.lua Normal file
View file

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

View file

@ -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',
},
})

View file

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

View file

@ -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',
},
})

View file

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

View file

@ -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',
},
})

View file

@ -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",
},
},
})

View file

@ -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',
},
})

View file

@ -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',
},
})

View file

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

View file

@ -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',
},
})

View file

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

View file

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

1088
prototypes/fu_recipes.lua Normal file

File diff suppressed because it is too large Load diff

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -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',
},
})

View file

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

View file

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

View file

@ -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',
},
})

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

752
prototypes/gr_recipes.lua Normal file
View file

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

View file

@ -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
}
})

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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