mirror of
http://repo.or.cz/minetest_pyramids/tsm_pyramids.git
synced 2024-12-22 23:40:18 +01:00
Add pyramid size variable
This commit is contained in:
parent
fe41da8bd0
commit
10cf7524b5
37
init.lua
37
init.lua
@ -1,5 +1,12 @@
|
|||||||
local S = minetest.get_translator("tsm_pyramids")
|
local S = minetest.get_translator("tsm_pyramids")
|
||||||
|
|
||||||
|
-- Pyramid width (must be an odd number)
|
||||||
|
local PYRA_W = 23
|
||||||
|
-- Pyramid width minus 1
|
||||||
|
local PYRA_Wm = PYRA_W - 1
|
||||||
|
-- Half of (Pyramid width minus 1)
|
||||||
|
local PYRA_Wh = PYRA_Wm / 2
|
||||||
|
|
||||||
tsm_pyramids = {}
|
tsm_pyramids = {}
|
||||||
|
|
||||||
dofile(minetest.get_modpath("tsm_pyramids").."/mummy.lua")
|
dofile(minetest.get_modpath("tsm_pyramids").."/mummy.lua")
|
||||||
@ -109,13 +116,13 @@ local function make_entrance(pos, rot, brick, sand, flood_sand)
|
|||||||
local roffset = roffset_arr[rot + 1]
|
local roffset = roffset_arr[rot + 1]
|
||||||
local way
|
local way
|
||||||
if rot == 0 then
|
if rot == 0 then
|
||||||
way = vector.add(pos, {x=11, y=0, z=0})
|
way = vector.add(pos, {x=PYRA_Wh, y=0, z=0})
|
||||||
elseif rot == 1 then
|
elseif rot == 1 then
|
||||||
way = vector.add(pos, {x=22, y=0, z=11})
|
way = vector.add(pos, {x=PYRA_Wm, y=0, z=PYRA_Wh})
|
||||||
elseif rot == 2 then
|
elseif rot == 2 then
|
||||||
way = vector.add(pos, {x=11, y=0, z=22})
|
way = vector.add(pos, {x=PYRA_Wh, y=0, z=PYRA_Wm})
|
||||||
else
|
else
|
||||||
way = vector.add(pos, {x=0, y=0, z=11})
|
way = vector.add(pos, {x=0, y=0, z=PYRA_Wh})
|
||||||
end
|
end
|
||||||
local max_sand_height = math.random(1,3)
|
local max_sand_height = math.random(1,3)
|
||||||
for ie=0,6,1 do
|
for ie=0,6,1 do
|
||||||
@ -149,9 +156,9 @@ local function make_pyramid(pos, brick, sandstone, stone, sand)
|
|||||||
local set_to_sand = {}
|
local set_to_sand = {}
|
||||||
local set_to_stone = {}
|
local set_to_stone = {}
|
||||||
-- Build pyramid
|
-- Build pyramid
|
||||||
for iy=0,math.random(10,11),1 do
|
for iy=0,math.random(10,PYRA_Wh),1 do
|
||||||
for ix=iy,22-iy,1 do
|
for ix=iy,PYRA_W-1-iy,1 do
|
||||||
for iz=iy,22-iy,1 do
|
for iz=iy,PYRA_W-1-iy,1 do
|
||||||
if iy < 1 then
|
if iy < 1 then
|
||||||
make_foundation_part({x=pos.x+ix,y=pos.y,z=pos.z+iz}, set_to_stone)
|
make_foundation_part({x=pos.x+ix,y=pos.y,z=pos.z+iz}, set_to_stone)
|
||||||
end
|
end
|
||||||
@ -186,13 +193,13 @@ local function make(pos, brick, sandstone, stone, sand, ptype, room_id)
|
|||||||
-- 4 possible spawner positions
|
-- 4 possible spawner positions
|
||||||
local spawner_posses = {
|
local spawner_posses = {
|
||||||
-- front
|
-- front
|
||||||
{{x=pos.x+11,y=pos.y+2, z=pos.z+5}, {x=0, y=0, z=2}},
|
{{x=pos.x+PYRA_Wh,y=pos.y+2, z=pos.z+5}, {x=0, y=0, z=2}},
|
||||||
-- left
|
-- left
|
||||||
{{x=pos.x+17,y=pos.y+2, z=pos.z+11}, {x=-2, y=0, z=0}},
|
{{x=pos.x+PYRA_Wm-5,y=pos.y+2, z=pos.z+PYRA_Wh}, {x=-2, y=0, z=0}},
|
||||||
-- back
|
-- back
|
||||||
{{x=pos.x+11,y=pos.y+2, z=pos.z+17}, {x=0, y=0, z=-2}},
|
{{x=pos.x+PYRA_Wh,y=pos.y+2, z=pos.z+PYRA_W-5}, {x=0, y=0, z=-2}},
|
||||||
-- right
|
-- right
|
||||||
{{x=pos.x+5,y=pos.y+2, z=pos.z+11}, {x=2, y=0, z=0}},
|
{{x=pos.x+5,y=pos.y+2, z=pos.z+PYRA_Wh}, {x=2, y=0, z=0}},
|
||||||
}
|
}
|
||||||
-- Delete the spawner position in which the entrance will be placed
|
-- Delete the spawner position in which the entrance will be placed
|
||||||
table.remove(spawner_posses, (rot % 4) + 1)
|
table.remove(spawner_posses, (rot % 4) + 1)
|
||||||
@ -266,9 +273,9 @@ minetest.register_on_generated(function(minp, maxp, seed)
|
|||||||
if p2.y < 0 then return end
|
if p2.y < 0 then return end
|
||||||
|
|
||||||
local off = 0
|
local off = 0
|
||||||
local opos1 = {x=p2.x+22,y=p2.y-1,z=p2.z+22}
|
local opos1 = {x=p2.x+PYRA_Wm,y=p2.y-1,z=p2.z+PYRA_Wm}
|
||||||
local opos2 = {x=p2.x+22,y=p2.y-1,z=p2.z}
|
local opos2 = {x=p2.x+PYRA_Wm,y=p2.y-1,z=p2.z}
|
||||||
local opos3 = {x=p2.x,y=p2.y-1,z=p2.z+22}
|
local opos3 = {x=p2.x,y=p2.y-1,z=p2.z+PYRA_Wm}
|
||||||
local opos1_n = minetest.get_node_or_nil(opos1)
|
local opos1_n = minetest.get_node_or_nil(opos1)
|
||||||
local opos2_n = minetest.get_node_or_nil(opos2)
|
local opos2_n = minetest.get_node_or_nil(opos2)
|
||||||
local opos3_n = minetest.get_node_or_nil(opos3)
|
local opos3_n = minetest.get_node_or_nil(opos3)
|
||||||
@ -339,7 +346,7 @@ minetest.register_chatcommand("spawnpyramid", {
|
|||||||
room_id = r
|
room_id = r
|
||||||
end
|
end
|
||||||
local ok, msg
|
local ok, msg
|
||||||
pos = vector.add(pos, {x=-11, y=-1, z=0})
|
pos = vector.add(pos, {x=-PYRA_Wh, y=-1, z=0})
|
||||||
if s == 1 then
|
if s == 1 then
|
||||||
-- Sandstone
|
-- Sandstone
|
||||||
ok, msg = make(pos, "default:sandstonebrick", "default:sandstone", "default:sandstone", "default:sand", "sandstone", room_id)
|
ok, msg = make(pos, "default:sandstonebrick", "default:sandstone", "default:sandstone", "default:sand", "sandstone", room_id)
|
||||||
|
Loading…
Reference in New Issue
Block a user