init
This commit is contained in:
commit
43086ea1eb
553 changed files with 20250 additions and 0 deletions
77
prototypes/gravitation/gr_black_hole.lua
Normal file
77
prototypes/gravitation/gr_black_hole.lua
Normal 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
|
||||
}
|
||||
})
|
||||
|
||||
|
99
prototypes/gravitation/gr_charger.lua
Normal file
99
prototypes/gravitation/gr_charger.lua
Normal 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,
|
||||
},
|
||||
},
|
||||
})
|
145
prototypes/gravitation/gr_cooker.lua
Normal file
145
prototypes/gravitation/gr_cooker.lua
Normal 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,
|
||||
},
|
||||
},
|
||||
})
|
103
prototypes/gravitation/gr_crafter.lua
Normal file
103
prototypes/gravitation/gr_crafter.lua
Normal 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,
|
||||
},
|
||||
},
|
||||
})
|
84
prototypes/gravitation/gr_lab.lua
Normal file
84
prototypes/gravitation/gr_lab.lua
Normal 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,
|
||||
},
|
||||
},
|
||||
})
|
406
prototypes/gravitation/gr_materials.lua
Normal file
406
prototypes/gravitation/gr_materials.lua
Normal 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
|
||||
},
|
||||
|
||||
})
|
675
prototypes/gravitation/gr_train.lua
Normal file
675
prototypes/gravitation/gr_train.lua
Normal 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
|
||||
},
|
||||
},
|
||||
})
|
57
prototypes/gravitation/gr_white_hole.lua
Normal file
57
prototypes/gravitation/gr_white_hole.lua
Normal 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
|
||||
},
|
||||
}
|
||||
})
|
||||
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue