initial commit

This commit is contained in:
Brevven 2021-07-18 17:54:09 -07:00
commit 0731c231c7
46 changed files with 1314 additions and 0 deletions

47
prototypes/coke.lua Normal file
View file

@ -0,0 +1,47 @@
local util = require("data-util")
if util.carbon() == "coke" and not data.raw.item["coke"] then
data:extend({
{
type = "item",
name = "coke",
icon = "__bzfoundry__/graphics/icons/coke-icon.png",
icon_size = 128,
pictures = {
{size = 128, filename = "__bzfoundry__/graphics/icons/coke.png", scale = 0.125},
{size = 128, filename = "__bzfoundry__/graphics/icons/coke-1.png", scale = 0.125},
{size = 128, filename = "__bzfoundry__/graphics/icons/coke-2.png", scale = 0.125},
{size = 128, filename = "__bzfoundry__/graphics/icons/coke-3.png", scale = 0.125},
},
fuel_category = "chemical",
fuel_value = "10MJ",
fuel_acceleration_multiplier = 1.2,
fuel_top_speed_multiplier = 1,
subgroup = "raw-material",
order = "c[coke]",
stack_size = 50
},
{
type = "recipe",
name = "coke",
result = "coke",
category = "founding",
ingredients = {{"coal", 2}},
energy_required = 3.2,
enabled=false,
},
})
elseif util.carbon() == "solid-fuel" then
data:extend({
{
type = "recipe",
name = "solid-fuel-from-coal",
result = "solid-fuel",
category = "founding",
ingredients = {{"coal", 4}},
energy_required = 3.2,
enabled=false,
},
})
end

View file

@ -0,0 +1,159 @@
require("util")
local futil = require("data-util")
data:extend({
{
type = "assembling-machine",
name = "electric-foundry",
fast_replaceable_group = "foundry",
icon = "__bzfoundry__/graphics/icons/foundry.png",
icon_size = 64,
flags = {"placeable-neutral", "placeable-player", "player-creation"},
minable = {mining_time = 0.2, result = "electric-foundry"},
max_health = 300,
corpse = "medium-small-remnants",
vehicle_impact_sound = { filename = "__base__/sound/car-metal-impact.ogg", volume = 0.65 },
working_sound =
{
sound = { filename = "__base__/sound/electric-furnace.ogg" }
},
resistances =
{
{
type = "fire",
percent = 100
}
},
collision_box = {{-1.7, -1.7}, {1.7, 1.7}},
selection_box = {{-2, -2}, {2, 2}},
crafting_categories = {"founding", futil.smelt() and "smelting" or nil},
energy_usage = "90kW",
crafting_speed = 4,
energy_source =
{
type = "electric",
fuel_category = "chemical",
effectivity = 1,
emissions_per_minute = 2,
usage_priority = "secondary-input",
},
module_specification =
{
module_slots = 3,
module_info_icon_shift = {0, 0.8}
},
allowed_effects = {"consumption", "speed", "productivity", "pollution"},
animation =
{
layers =
{
{
-- TODO make a non-hr version
filename = "__bzfoundry__/graphics/entity/hr-electric-foundry.png",
priority = "high",
width = 280,
height = 239,
frame_count = 1,
shift = util.by_pixel(8, 4),
scale = 0.5,
hr_version =
{
filename = "__bzfoundry__/graphics/entity/hr-electric-foundry.png",
priority = "high",
width = 280,
height = 239,
frame_count = 1,
shift = util.by_pixel(8, 4),
scale = 0.5,
}
},
}
},
working_visualisations =
{
{
north_position = {0.0, 0.0},
east_position = {0.0, 0.0},
south_position = {0.0, 0.0},
west_position = {0.0, 0.0},
animation =
{
filename = "__bzfoundry__/graphics/entity/hr-electric-foundry-animation.png",
priority = "extra-high",
animation_speed = 0.05,
line_length = 4,
width = 280,
height = 239,
frame_count = 4,
axially_symmetrical = false,
direction_count = 1,
shift = util.by_pixel(8, 4),
scale = 0.5,
hr_version =
{
filename = "__bzfoundry__/graphics/entity/hr-electric-foundry-animation.png",
priority = "extra-high",
animation_speed = 0.05,
line_length = 4,
width = 280,
height = 239,
frame_count = 4,
axially_symmetrical = false,
direction_count = 1,
shift = util.by_pixel(8, 4),
scale = 0.5,
}
},
},
{
fadeout = true,
draw_as_light = true,
effect = "flicker",
animation =
{
filename = "__bzfoundry__/graphics/entity/electric-foundry-glow.png",
priority = "extra-high",
width = 25,
height = 29,
frame_count = 1,
shift = util.by_pixel(0, 36),
}
},
{
draw_as_light = true,
draw_as_sprite = false,
fadeout = true,
effect = "flicker",
animation =
{
filename = "__base__/graphics/entity/steel-furnace/steel-furnace-ground-light.png",
priority = "high",
line_length = 1,
draw_as_sprite = false,
width = 78,
height = 64,
frame_count = 1,
direction_count = 1,
shift = util.by_pixel(0, 72),
blend_mode = "additive",
hr_version =
{
filename = "__base__/graphics/entity/steel-furnace/hr-steel-furnace-ground-light.png",
priority = "high",
line_length = 1,
draw_as_sprite = false,
width = 152,
height = 126,
frame_count = 1,
direction_count = 1,
shift = util.by_pixel(1, 72),
blend_mode = "additive",
scale = 0.5,
}
},
},
},
},
})

View file

@ -0,0 +1,112 @@
require("util")
local futil = require("data-util")
data:extend({
{
type = "assembling-machine",
name = "foundry",
fast_replaceable_group = "foundry",
icon = "__bzfoundry__/graphics/icons/foundry.png",
icon_size = 64,
flags = {"placeable-neutral", "placeable-player", "player-creation"},
minable = {mining_time = 0.2, result = "foundry"},
max_health = 300,
corpse = "medium-small-remnants",
vehicle_impact_sound = { filename = "__base__/sound/car-metal-impact.ogg", volume = 0.65 },
working_sound =
{
sound = { filename = "__base__/sound/furnace.ogg" }
},
resistances =
{
{
type = "fire",
percent = 100
}
},
collision_box = {{-1.7, -1.7}, {1.7, 1.7}},
selection_box = {{-2, -2}, {2, 2}},
crafting_categories = {"founding", futil.smelt() and "smelting" or nil},
energy_usage = "90kW",
crafting_speed = 4,
energy_source =
{
type = "burner",
fuel_category = "chemical",
effectivity = 1,
emissions_per_minute = 8,
fuel_inventory_size = 1,
smoke =
{
{
name = "smoke",
frequency = 20,
position = {1, -1.7},
starting_vertical_speed = 0.1,
starting_frame_deviation = 60
}
}
},
animation =
{
layers =
{
{
filename = "__bzfoundry__/graphics/entity/foundry.png",
priority = "high",
width = 140,
height = 120,
frame_count = 1,
shift = util.by_pixel(8, 4),
hr_version =
{
filename = "__bzfoundry__/graphics/entity/hr-foundry.png",
priority = "high",
width = 280,
height = 239,
frame_count = 1,
shift = util.by_pixel(8, 4),
scale = 0.5
}
},
}
},
working_visualisations =
{
{
north_position = {0.0, 0.0},
east_position = {0.0, 0.0},
south_position = {0.0, 0.0},
west_position = {0.0, 0.0},
animation =
{
filename = "__base__/graphics/entity/stone-furnace/hr-stone-furnace-fire.png",
priority = "extra-high",
line_length = 8,
width = 41,
height = 100,
frame_count = 48,
axially_symmetrical = false,
direction_count = 1,
shift = util.by_pixel(-1, 9),
scale=1.1,
hr_version =
{
filename = "__base__/graphics/entity/stone-furnace/hr-stone-furnace-fire.png",
priority = "extra-high",
line_length = 8,
width = 41,
height = 100,
frame_count = 48,
axially_symmetrical = false,
direction_count = 1,
shift = util.by_pixel(-1, 9),
scale=1.1,
}
},
}
},
},
})

97
prototypes/foundry.lua Normal file
View file

@ -0,0 +1,97 @@
local util = require("data-util")
data:extend({
{ type = "recipe-category", name = "founding"},
{ type = "item-subgroup", name = "founding-machines", group = "production"},
{ type = "item-subgroup", name = "foundry-intermediate", group = "intermediate-products"},
})
data:extend({
{
type = "item",
name = "foundry",
icon = "__bzfoundry__/graphics/icons/foundry.png",
icon_size = 64,
subgroup = "founding-machines",
order = "z[foundry]",
place_result = "foundry",
stack_size = 50
},
{
type = "recipe",
name = "foundry",
result = "foundry",
enabled = false,
ingredients = {
{"stone-brick", 10},
{"iron-plate", 10},
{"copper-plate", 5},
(data.raw.item["silica"] and data.raw.technology["silica-processing"] and {"silica", 20} or nil),
},
},
{
type = "technology",
name = "foundry",
icon_size = 256,
icon = "__bzfoundry__/graphics/icons/technology/foundry.png",
prerequisites = {"automation"},
effects = {
{type = "unlock-recipe", recipe = "foundry"},
util.carbonrecipe() and {type = "unlock-recipe", recipe = util.carbonrecipe()},
},
unit = {
count = 25,
ingredients = {{"automation-science-pack", 1}},
time = 10,
},
order = "foundry",
},
})
util.add_prerequisite("foundry", "silica-processing")
data:extend({
{
type = "item",
name = "electric-foundry",
icon = "__bzfoundry__/graphics/icons/electric-foundry.png",
icon_size = 128,
subgroup = "founding-machines",
order = "z[foundryelectric]",
place_result = "electric-foundry",
stack_size = 50
},
{
type = "recipe",
name = "electric-foundry",
result = "electric-foundry",
enabled = false,
ingredients = {
{"foundry", 1},
{"steel-plate", 10},
{"advanced-circuit", 4},
(data.raw.item["zirconia"] and {"zirconia", 10} or {"stone-brick", 10}),
(data.raw.item["tungsten-plate"] and {"tungsten-plate", 5} or nil),
},
},
{
type = "technology",
name = "electric-foundry",
icon_size = 256,
icon = "__bzfoundry__/graphics/icons/technology/electric-foundry.png",
prerequisites = {"automation-3"},
effects = {
{type = "unlock-recipe", recipe = "electric-foundry"},
},
unit = {
count = 200,
ingredients = {{"automation-science-pack", 1},
{"logistic-science-pack", 1},
{"chemical-science-pack", 1},
{"production-science-pack", 1}},
time = 45,
},
order = "foundry",
},
})