forked from mtcontrib/riesenpilz
add mushroom meal and bit red45 mushroom
This commit is contained in:
parent
86e3dfb5d0
commit
367a93f8a8
97
init.lua
97
init.lua
|
@ -280,7 +280,7 @@ function riesenpilz.parasol(pos, nodes, area, w, h)
|
|||
nodes[i] = c.stem
|
||||
end
|
||||
|
||||
local w = w or math.random(MAX_SIZE+1,MAX_SIZE+2)
|
||||
local w = w or MAX_SIZE+math.random(2)
|
||||
local bhead1 = w-1
|
||||
local bhead2 = math.random(1,w-2)
|
||||
|
||||
|
@ -313,7 +313,7 @@ end
|
|||
local function riesenpilz_parasol(pos)
|
||||
local t1 = os.clock()
|
||||
|
||||
local w = math.random(MAX_SIZE+1,MAX_SIZE+2)
|
||||
local w = MAX_SIZE+math.random(2)
|
||||
local h = 6+math.random(MAX_SIZE)
|
||||
|
||||
local manip = minetest.get_voxel_manip()
|
||||
|
@ -326,6 +326,74 @@ local function riesenpilz_parasol(pos)
|
|||
end
|
||||
|
||||
|
||||
function riesenpilz.red45(pos, nodes, area, h1, h2)
|
||||
local walkspace = h1 or math.random(MAX_SIZE)
|
||||
local toph = h2 or 1+math.random(MAX_SIZE)
|
||||
local h = walkspace+toph+3
|
||||
|
||||
-- stem
|
||||
for i in area:iterp(pos, {x=pos.x, y=pos.y+h, z=pos.z}) do
|
||||
nodes[i] = c.stem_red
|
||||
end
|
||||
|
||||
for i = -1,1,2 do
|
||||
for l = 0, 1 do
|
||||
nodes[area:index(pos.x+i, pos.y+walkspace+2, pos.z-l*i)] = c.head_red
|
||||
nodes[area:index(pos.x+l*i, pos.y+walkspace+2, pos.z+i)] = c.head_red
|
||||
end
|
||||
nodes[area:index(pos.x, pos.y+walkspace+3, pos.z+i)] = c.head_red
|
||||
nodes[area:index(pos.x+i, pos.y+walkspace+3, pos.z)] = c.head_red
|
||||
for j = -1,1,2 do
|
||||
nodes[area:index(pos.x+j, pos.y+walkspace+1, pos.z+i)] = c.head_red
|
||||
nodes[area:index(pos.x+j*3, pos.y+walkspace+1, pos.z+i*3)] = c.head_red
|
||||
for z = 1,2 do
|
||||
for x = 1,2 do
|
||||
for y = h-toph, h-1 do
|
||||
nodes[area:index(pos.x+x*j, pos.y+y, pos.z+z*i)] = c.head_red
|
||||
end
|
||||
if z ~= 2
|
||||
or x ~= 2
|
||||
or math.random(4) ~= 2 then
|
||||
nodes[area:index(pos.x+x*j, pos.y+h, pos.z+z*i)] = c.head_red
|
||||
end
|
||||
local z = z+1
|
||||
x = x+1
|
||||
nodes[area:index(pos.x+x*j, pos.y+walkspace+2, pos.z+z*i)] = c.head_red
|
||||
if z ~= 3
|
||||
or x ~= 3
|
||||
or math.random(2) == 1 then
|
||||
nodes[area:index(pos.x+x*j, pos.y+walkspace+3, pos.z+z*i)] = c.head_red
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
-- top
|
||||
for z = -1,1 do
|
||||
for x = -1,1 do
|
||||
nodes[area:index(pos.x+x, pos.y+h+1, pos.z+z)] = c.head_red
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
local function riesenpilz_red45(pos)
|
||||
local t1 = os.clock()
|
||||
|
||||
local h1 = math.random(MAX_SIZE)
|
||||
local h2 = 1+math.random(MAX_SIZE)
|
||||
local h = h1+h2+4
|
||||
|
||||
local manip = minetest.get_voxel_manip()
|
||||
local area = r_area(manip, 3, h, pos)
|
||||
local nodes = manip:get_data()
|
||||
|
||||
riesenpilz.red45(pos, nodes, area, h1, h2)
|
||||
|
||||
set_vm_data(manip, nodes, pos, t1, "red45")
|
||||
end
|
||||
|
||||
|
||||
function riesenpilz.apple(pos, nodes, area)
|
||||
local size = 5
|
||||
local a = size*2
|
||||
|
@ -735,9 +803,23 @@ minetest.register_globalstep(function(dtime)
|
|||
end
|
||||
end)
|
||||
|
||||
minetest.register_craftitem("riesenpilz:mush45_meal", {
|
||||
description = "Mushroom Meal",
|
||||
inventory_image = "riesenpilz_mush45_meal.png",
|
||||
on_use = minetest.item_eat(6),
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = "riesenpilz:mush45_meal 4",
|
||||
recipe = {
|
||||
{"riesenpilz:brown45", "riesenpilz:red45"},
|
||||
{"riesenpilz:red45", "riesenpilz:brown45"},
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
--Mushroom Nodes
|
||||
|
||||
--Big Mushroom Nodes
|
||||
|
||||
|
||||
local pilznode_list = {
|
||||
|
@ -756,6 +838,11 @@ local pilznode_list = {
|
|||
name = "blue",
|
||||
textures = {"stem_top.png","stem_top.png","stem_blue.png"},
|
||||
},
|
||||
{
|
||||
typ = "stem",
|
||||
name = "red",
|
||||
textures = {"stem_red45_top.png","stem_red45_top.png","stem_red45.png"},
|
||||
},
|
||||
{
|
||||
name = "lamellas",
|
||||
description = "giant mushroom lamella",
|
||||
|
@ -925,6 +1012,8 @@ c = {
|
|||
head_binge = minetest.get_content_id("riesenpilz:head_binge"),
|
||||
head_brown_bright = minetest.get_content_id("riesenpilz:head_brown_bright"),
|
||||
|
||||
stem_red = minetest.get_content_id("riesenpilz:stem_red"),
|
||||
|
||||
red = minetest.get_content_id("default:copperblock"),
|
||||
brown = minetest.get_content_id("default:desert_stone"),
|
||||
tree = minetest.get_content_id("default:tree"),
|
||||
|
@ -955,6 +1044,8 @@ minetest.register_on_punchnode(function(pos, node, puncher)
|
|||
riesenpilz_glowshroom(pos)
|
||||
elseif name == "riesenpilz:parasol" then
|
||||
riesenpilz_parasol(pos)
|
||||
elseif name == "riesenpilz:red45" then
|
||||
riesenpilz_red45(pos)
|
||||
elseif name == "default:apple" then
|
||||
riesenpilz_apple(pos)
|
||||
end
|
||||
|
|
Before Width: | Height: | Size: 208 B After Width: | Height: | Size: 208 B |
Before Width: | Height: | Size: 248 B After Width: | Height: | Size: 248 B |
Loading…
Reference in New Issue
Block a user