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