mines_with_shafts/mines_vertical_shafts.lua
2015-06-05 06:23:04 +02:00

74 lines
2.7 KiB
Lua

mines_with_shafts.place_mineshaft_vertical = function(minp, maxp, data, param2_data, a, cid, pos, length, extra_calls )
for i=pos.y,math.max( minp.y, pos.y-length),-1 do
-- the central place always gets a rope
if( pos.x>=minp.x and pos.x<=maxp.x and pos.z>=minp.z and pos.z<=maxp.z) then
data[ a:index( pos.x, i, pos.z ) ] = cid.c_rope;
end
if( pos.x >minp.x and pos.x<=maxp.x) then
-- ..sourrounded by mineladders
if( pos.z> minp.z and pos.z<=maxp.z) then
data[ a:index( pos.x-1, i, pos.z-1 ) ] = cid.c_mineladder;
param2_data[ a:index( pos.x-1, i, pos.z-1 ) ] = 5;
end
if( pos.z>=minp.z and pos.z<=maxp.z) then
data[ a:index( pos.x-1, i, pos.z ) ] = cid.c_mineladder;
param2_data[ a:index( pos.x-1, i, pos.z ) ] = 3;
end
if( pos.z>=minp.z and pos.z< maxp.z) then
data[ a:index( pos.x-1, i, pos.z+1 ) ] = cid.c_mineladder;
param2_data[ a:index( pos.x-1, i, pos.z+1 ) ] = 3;
end
end
if( pos.x>=minp.x and pos.x< maxp.x ) then
if( pos.z> minp.z and pos.z<=maxp.z) then
data[ a:index( pos.x+1, i, pos.z-1 ) ] = cid.c_mineladder;
param2_data[ a:index( pos.x+1, i, pos.z-1 ) ] = 2;
end
if( pos.z>=minp.z and pos.z<=maxp.z) then
data[ a:index( pos.x+1, i, pos.z ) ] = cid.c_mineladder;
param2_data[ a:index( pos.x+1, i, pos.z ) ] = 2;
end
if( pos.z>=minp.z and pos.z< maxp.z) then
data[ a:index( pos.x+1, i, pos.z+1 ) ] = cid.c_mineladder;
param2_data[ a:index( pos.x+1, i, pos.z+1 ) ] = 4;
end
end
if( pos.x>=minp.x and pos.x<=maxp.x ) then
if( pos.z> minp.z and pos.z<=maxp.z) then
data[ a:index( pos.x, i, pos.z-1 ) ] = cid.c_mineladder;
param2_data[ a:index( pos.x, i, pos.z-1 ) ] = 5;
end
if( pos.z>=minp.z and pos.z< maxp.z) then
data[ a:index( pos.x, i, pos.z+1 ) ] = cid.c_mineladder;
param2_data[ a:index( pos.x, i, pos.z+1 ) ] = 4;
end
end
-- we do need a bit of light from time to time!
if( mines_with_shafts.place_meselamps==true and i%20==5 ) then
if( pos.x-1>minp.x ) then
data[ a:index( pos.x-2, i, pos.z-1 ) ] = cid.c_meselamp;
data[ a:index( pos.x-2, i, pos.z+1 ) ] = cid.c_meselamp;
end
if( pos.x+1<maxp.x ) then
data[ a:index( pos.x+2, i, pos.z-1 ) ] = cid.c_meselamp;
data[ a:index( pos.x+2, i, pos.z+1 ) ] = cid.c_meselamp;
end
if( pos.z-1>minp.z ) then
data[ a:index( pos.x-1, i, pos.z-2 ) ] = cid.c_meselamp;
data[ a:index( pos.x+1, i, pos.z-2 ) ] = cid.c_meselamp;
end
if( pos.z+1<maxp.z ) then
data[ a:index( pos.x-1, i, pos.z+2 ) ] = cid.c_meselamp;
data[ a:index( pos.x+1, i, pos.z+2 ) ] = cid.c_meselamp;
end
end
end
end