You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
199 lines
5.8 KiB
199 lines
5.8 KiB
-------------------------------------------------------------------------------
|
|
--[[Helper Proto Functions]]--
|
|
local Proto = {}
|
|
|
|
--Quickly duplicate an existing prototype into a new one.
|
|
function Proto.dupli_proto( type, name1, name2, adaptMiningResult )
|
|
if data.raw[type][name1] then
|
|
local proto = table.deepcopy(data.raw[type][name1])
|
|
proto.name = name2
|
|
if adaptMiningResult then
|
|
if proto.minable and proto.minable.result then proto.minable.result = name2 end
|
|
end
|
|
if proto.place_result then proto.place_result = name2 end
|
|
if proto.result then proto.result = name2 end
|
|
return(proto)
|
|
else
|
|
error("prototype unknown " .. name1 )
|
|
return(nil)
|
|
end
|
|
end
|
|
|
|
--------------------------------------------------------------------------------------
|
|
--Prettier monolith extracting
|
|
function Proto.extract_monolith(filename, x, y, w, h)
|
|
return {
|
|
type = "monolith",
|
|
|
|
top_monolith_border = 0,
|
|
right_monolith_border = 0,
|
|
bottom_monolith_border = 0,
|
|
left_monolith_border = 0,
|
|
|
|
monolith_image = {
|
|
filename = filename,
|
|
priority = "extra-high-no-scale",
|
|
width = w,
|
|
height = h,
|
|
x = x,
|
|
y = y,
|
|
},
|
|
}
|
|
end
|
|
|
|
--Define pipe connection pipe pictures, not all entities use these. This function needs some work though.
|
|
Proto.pipes = function (pictures, shift_north, shift_south, shift_west, shift_east)
|
|
if pictures == "turret" then
|
|
shift_north = shift_north or {0, 0}
|
|
shift_south = shift_south or {0, 0}
|
|
shift_west = shift_west or {0, 0}
|
|
shift_east = shift_east or {0, 0}
|
|
|
|
return {
|
|
north =
|
|
{
|
|
filename = "__base__/graphics/entity/pipe/pipe-straight-vertical.png",
|
|
priority = "extra-high",
|
|
width = 44,
|
|
height = 42,
|
|
shift = shift_north
|
|
},
|
|
south =
|
|
{
|
|
filename = "__base__/graphics/entity/pipe/pipe-straight-vertical.png",
|
|
priority = "extra-high",
|
|
width = 44,
|
|
height = 42,
|
|
shift = shift_south
|
|
},
|
|
west =
|
|
{
|
|
filename = "__base__/graphics/entity/pipe/pipe-straight-horizontal.png",
|
|
priority = "extra-high",
|
|
width = 32,
|
|
height = 42,
|
|
shift = shift_west
|
|
},
|
|
east =
|
|
{
|
|
filename = "__base__/graphics/entity/pipe/pipe-straight-horizontal.png",
|
|
priority = "extra-high",
|
|
width = 32,
|
|
height = 42,
|
|
shift = shift_east
|
|
},
|
|
}
|
|
else
|
|
shift_north = shift_north or {0, 0}
|
|
shift_south = shift_south or {0, 0}
|
|
shift_west = shift_west or {0, 0}
|
|
shift_east = shift_east or {0, 0}
|
|
return
|
|
{
|
|
north =
|
|
{
|
|
filename = "__base__/graphics/entity/assembling-machine-2/pipe-north.png",
|
|
priority = "extra-high",
|
|
width = 40,
|
|
height = 45,
|
|
shift = shift_north
|
|
},
|
|
south =
|
|
{
|
|
filename = "__base__/graphics/entity/assembling-machine-2/pipe-south.png",
|
|
priority = "extra-high",
|
|
width = 40,
|
|
height = 45,
|
|
shift = shift_south
|
|
},
|
|
west =
|
|
{
|
|
filename = "__base__/graphics/entity/assembling-machine-2/pipe-west.png",
|
|
priority = "extra-high",
|
|
width = 40,
|
|
height = 45,
|
|
shift = shift_west
|
|
},
|
|
east =
|
|
{
|
|
filename = "__base__/graphics/entity/assembling-machine-2/pipe-east.png",
|
|
priority = "extra-high",
|
|
width = 40,
|
|
height = 45,
|
|
shift = shift_east
|
|
},
|
|
}
|
|
end
|
|
end
|
|
|
|
--Quick to use empty sprite
|
|
Proto.empty_sprite ={
|
|
filename = "__core__/graphics/empty.png",
|
|
priority = "extra-high",
|
|
width = 1,
|
|
height = 1
|
|
}
|
|
|
|
--Quick to use empty animation
|
|
Proto.empty_animation = {
|
|
filename = Proto.empty_sprite.filename,
|
|
width = Proto.empty_sprite.width,
|
|
height = Proto.empty_sprite.height,
|
|
line_length = 1,
|
|
frame_count = 1,
|
|
shift = { 0, 0},
|
|
animation_speed = 1,
|
|
direction_count=1
|
|
}
|
|
|
|
--return pipe covers for true directions.
|
|
Proto.pipe_covers = function(n, s, e, w)
|
|
if (n == nil and s == nil and e == nil and w == nil) then
|
|
n, s, e, w = true, true, true, true
|
|
end
|
|
if n == true then n = {
|
|
filename = "__base__/graphics/entity/pipe-covers/pipe-cover-north.png",
|
|
priority = "extra-high",
|
|
width = 44,
|
|
height = 32
|
|
}
|
|
else
|
|
n = Proto.empty_sprite
|
|
end
|
|
if e == true then
|
|
e = {
|
|
filename = "__base__/graphics/entity/pipe-covers/pipe-cover-east.png",
|
|
priority = "extra-high",
|
|
width = 32,
|
|
height = 32
|
|
}
|
|
else
|
|
e = Proto.empty_sprite
|
|
end
|
|
if s == true then
|
|
s =
|
|
{
|
|
filename = "__base__/graphics/entity/pipe-covers/pipe-cover-south.png",
|
|
priority = "extra-high",
|
|
width = 46,
|
|
height = 52
|
|
}
|
|
else
|
|
s = Proto.empty_sprite
|
|
end
|
|
if w == true then
|
|
w =
|
|
{
|
|
filename = "__base__/graphics/entity/pipe-covers/pipe-cover-west.png",
|
|
priority = "extra-high",
|
|
width = 32,
|
|
height = 32
|
|
}
|
|
else
|
|
w = Proto.empty_sprite
|
|
end
|
|
|
|
return {north = n, south = s, east = e, west = w}
|
|
end
|
|
|
|
return Proto
|
|
|