209 lines
7.5 KiB
Lua
209 lines
7.5 KiB
Lua
--- Pipes
|
|
-- @module Pipes
|
|
|
|
local Pipes = {}
|
|
setmetatable(Pipes, {__index = require('stdlib/data/modules/sprites')})
|
|
|
|
--Define pipe connection pipe pictures, not all entities use these. This function needs some work though.
|
|
function Pipes.pictures(pictures, shift_north, shift_south, shift_west, shift_east, replacements)
|
|
local new_pictures = {
|
|
north = shift_north and
|
|
{
|
|
filename = '__base__/graphics/entity/' .. pictures .. '/' .. pictures .. '-pipe-N.png',
|
|
priority = 'extra-high',
|
|
width = 35,
|
|
height = 18,
|
|
shift = shift_north
|
|
} or
|
|
Pipes.empty_picture(),
|
|
south = shift_south and
|
|
{
|
|
filename = '__base__/graphics/entity/' .. pictures .. '/' .. pictures .. '-pipe-S.png',
|
|
priority = 'extra-high',
|
|
width = 44,
|
|
height = 31,
|
|
shift = shift_south
|
|
} or
|
|
Pipes.empty_picture(),
|
|
west = shift_west and
|
|
{
|
|
filename = '__base__/graphics/entity/' .. pictures .. '/' .. pictures .. '-pipe-W.png',
|
|
priority = 'extra-high',
|
|
width = 19,
|
|
height = 37,
|
|
shift = shift_west
|
|
} or
|
|
Pipes.empty_picture(),
|
|
east = shift_east and
|
|
{
|
|
filename = '__base__/graphics/entity/' .. pictures .. '/' .. pictures .. '-pipe-E.png',
|
|
priority = 'extra-high',
|
|
width = 20,
|
|
height = 38,
|
|
shift = shift_east
|
|
} or
|
|
Pipes.empty_picture()
|
|
}
|
|
for direction, image in pairs(replacements or {}) do
|
|
if not (new_pictures[direction].filename == '__core__/graphics/empty.png') then
|
|
new_pictures[direction].filename = image.filename
|
|
new_pictures[direction].width = image.width
|
|
new_pictures[direction].height = image.height
|
|
new_pictures[direction].priority = image.priority or new_pictures[direction].priority
|
|
end
|
|
end
|
|
return new_pictures
|
|
end
|
|
|
|
--return pipe covers for true directions.
|
|
function Pipes.covers(n, s, w, e)
|
|
if (n == nil and s == nil and w == nil and e == nil) then
|
|
n, s, e, w = true, true, true, true
|
|
end
|
|
|
|
n =
|
|
n and
|
|
{
|
|
layers = {
|
|
{
|
|
filename = '__base__/graphics/entity/pipe-covers/pipe-cover-north.png',
|
|
priority = 'extra-high',
|
|
width = 64,
|
|
height = 64,
|
|
hr_version = {
|
|
filename = '__base__/graphics/entity/pipe-covers/hr-pipe-cover-north.png',
|
|
priority = 'extra-high',
|
|
width = 128,
|
|
height = 128,
|
|
scale = 0.5
|
|
}
|
|
},
|
|
{
|
|
filename = '__base__/graphics/entity/pipe-covers/pipe-cover-north-shadow.png',
|
|
priority = 'extra-high',
|
|
width = 64,
|
|
height = 64,
|
|
draw_as_shadow = true,
|
|
hr_version = {
|
|
filename = '__base__/graphics/entity/pipe-covers/hr-pipe-cover-north-shadow.png',
|
|
priority = 'extra-high',
|
|
width = 128,
|
|
height = 128,
|
|
scale = 0.5,
|
|
draw_as_shadow = true
|
|
}
|
|
}
|
|
}
|
|
} or
|
|
Pipes.empty_picture()
|
|
e =
|
|
e and
|
|
{
|
|
layers = {
|
|
{
|
|
filename = '__base__/graphics/entity/pipe-covers/pipe-cover-east.png',
|
|
priority = 'extra-high',
|
|
width = 64,
|
|
height = 64,
|
|
hr_version = {
|
|
filename = '__base__/graphics/entity/pipe-covers/hr-pipe-cover-east.png',
|
|
priority = 'extra-high',
|
|
width = 128,
|
|
height = 128,
|
|
scale = 0.5
|
|
}
|
|
},
|
|
{
|
|
filename = '__base__/graphics/entity/pipe-covers/pipe-cover-east-shadow.png',
|
|
priority = 'extra-high',
|
|
width = 64,
|
|
height = 64,
|
|
draw_as_shadow = true,
|
|
hr_version = {
|
|
filename = '__base__/graphics/entity/pipe-covers/hr-pipe-cover-east-shadow.png',
|
|
priority = 'extra-high',
|
|
width = 128,
|
|
height = 128,
|
|
scale = 0.5,
|
|
draw_as_shadow = true
|
|
}
|
|
}
|
|
}
|
|
} or
|
|
Pipes.empty_picture()
|
|
s =
|
|
s and
|
|
{
|
|
layers = {
|
|
{
|
|
filename = '__base__/graphics/entity/pipe-covers/pipe-cover-south.png',
|
|
priority = 'extra-high',
|
|
width = 64,
|
|
height = 64,
|
|
hr_version = {
|
|
filename = '__base__/graphics/entity/pipe-covers/hr-pipe-cover-south.png',
|
|
priority = 'extra-high',
|
|
width = 128,
|
|
height = 128,
|
|
scale = 0.5
|
|
}
|
|
},
|
|
{
|
|
filename = '__base__/graphics/entity/pipe-covers/pipe-cover-south-shadow.png',
|
|
priority = 'extra-high',
|
|
width = 64,
|
|
height = 64,
|
|
draw_as_shadow = true,
|
|
hr_version = {
|
|
filename = '__base__/graphics/entity/pipe-covers/hr-pipe-cover-south-shadow.png',
|
|
priority = 'extra-high',
|
|
width = 128,
|
|
height = 128,
|
|
scale = 0.5,
|
|
draw_as_shadow = true
|
|
}
|
|
}
|
|
}
|
|
} or
|
|
Pipes.empty_picture()
|
|
w =
|
|
w and
|
|
{
|
|
layers = {
|
|
{
|
|
filename = '__base__/graphics/entity/pipe-covers/pipe-cover-west.png',
|
|
priority = 'extra-high',
|
|
width = 64,
|
|
height = 64,
|
|
hr_version = {
|
|
filename = '__base__/graphics/entity/pipe-covers/hr-pipe-cover-west.png',
|
|
priority = 'extra-high',
|
|
width = 128,
|
|
height = 128,
|
|
scale = 0.5
|
|
}
|
|
},
|
|
{
|
|
filename = '__base__/graphics/entity/pipe-covers/pipe-cover-west-shadow.png',
|
|
priority = 'extra-high',
|
|
width = 64,
|
|
height = 64,
|
|
draw_as_shadow = true,
|
|
hr_version = {
|
|
filename = '__base__/graphics/entity/pipe-covers/hr-pipe-cover-west-shadow.png',
|
|
priority = 'extra-high',
|
|
width = 128,
|
|
height = 128,
|
|
scale = 0.5,
|
|
draw_as_shadow = true
|
|
}
|
|
}
|
|
}
|
|
} or
|
|
Pipes.empty_picture()
|
|
|
|
return {north = n, south = s, east = e, west = w}
|
|
end
|
|
|
|
return Pipes
|