Added all cherry things from Jordach's BFD
- Added cherry trees' biomes - Added cherry wooden plank stairs - Added cherry nodes : sapling, log, wood, etc - Added cherry trees' generation system - Added cherry items' crafts
@ -711,6 +711,15 @@ minetest.register_craft({ -- Tool repair (combine 2 tools of the same type in th
|
||||
type = "toolrepair", additional_wear = -0.15,
|
||||
})
|
||||
|
||||
-- From BFD:
|
||||
|
||||
minetest.register_craft({
|
||||
output = 'default:cherry_plank 6',
|
||||
recipe = {
|
||||
{'default:cherry_log'},
|
||||
}
|
||||
})
|
||||
|
||||
-- Cooking recipes:
|
||||
|
||||
minetest.register_craft({
|
||||
|
@ -1760,6 +1760,95 @@ minetest.register_node("default:pinewood", {
|
||||
sounds = default.node_sound_wood_defaults(),
|
||||
})
|
||||
|
||||
-- From BFD: Cherry tree
|
||||
|
||||
minetest.register_node("default:cherry_tree", {
|
||||
description = "Cherry Log",
|
||||
tiles = {"default_cherry_top.png", "default_cherry_top.png", "default_cherry_tree.png"},
|
||||
is_ground_content = false,
|
||||
groups = {tree=1,choppy=2,oddly_breakable_by_hand=1,flammable=2},
|
||||
sounds = default.node_sound_wood_defaults(),
|
||||
drop = "default:cherry_log"
|
||||
})
|
||||
|
||||
minetest.register_node("default:cherry_log", {
|
||||
description = "Cherry Log",
|
||||
tiles = {"default_cherry_top.png", "default_cherry_top.png", "default_cherry_tree.png"},
|
||||
paramtype2 = "facedir",
|
||||
is_ground_content = false,
|
||||
groups = {choppy=2,oddly_breakable_by_hand=1,flammable=2},
|
||||
sounds = default.node_sound_wood_defaults(),
|
||||
on_place = minetest.rotate_node,
|
||||
})
|
||||
|
||||
minetest.register_node("default:cherry_sapling", {
|
||||
description = "Cherry Sapling",
|
||||
waving = 1,
|
||||
visual_scale = 1.0,
|
||||
inventory_image = "default_cherry_sapling.png",
|
||||
wield_image = "default_cherry_sapling.png",
|
||||
drawtype = "plantlike",
|
||||
paramtype = "light",
|
||||
tiles = {"default_cherry_sapling.png"},
|
||||
walkable = false,
|
||||
selection_box = {
|
||||
type = "fixed",
|
||||
fixed = {-0.3, -0.5, -0.3, 0.3, 0.35, 0.3}
|
||||
},
|
||||
groups = {snappy=2,dig_immediate=3,flammable=2,attached_node=1},
|
||||
sounds = default.node_sound_leaves_defaults(),
|
||||
})
|
||||
|
||||
minetest.register_node("default:cherry_blossom_leaves", {
|
||||
description = "Cherry Blossom Leaves",
|
||||
drawtype = "allfaces_optional",
|
||||
visual_scale = 1.3,
|
||||
tiles = {"default_cherry_blossom_leaves.png"},
|
||||
paramtype = "light",
|
||||
waving = 1,
|
||||
is_ground_content = false,
|
||||
groups = {snappy=3, leafdecay=3, flammable=2, leaves=1},
|
||||
drop = {
|
||||
max_items = 1,
|
||||
items = {
|
||||
{
|
||||
items = {'default:cherry_sapling'},
|
||||
rarity = 32,
|
||||
},
|
||||
{
|
||||
items = {'default:cherry_blossom_leaves'},
|
||||
}
|
||||
}
|
||||
},
|
||||
sounds = default.node_sound_leaves_defaults(),
|
||||
on_place = function(itemstack, placer, pointed_thing)
|
||||
-- place a random grass node
|
||||
local stack = ItemStack("default:cherry_leaves_deco")
|
||||
local ret = minetest.item_place(stack, placer, pointed_thing)
|
||||
return ItemStack("default:cherry_blossom_leaves".." "..itemstack:get_count()-(1-ret:get_count()))
|
||||
end,
|
||||
})
|
||||
|
||||
minetest.register_node("default:cherry_leaves_deco", {
|
||||
description = "Cherry Leaves",
|
||||
drawtype = "allfaces_optional",
|
||||
visual_scale = 1.3,
|
||||
tiles = {"default_cherry_blossom_leaves.png"},
|
||||
paramtype = "light",
|
||||
waving=1,
|
||||
is_ground_content = false,
|
||||
groups = {snappy=3, flammable=2, leaves=1},
|
||||
sounds = default.node_sound_leaves_defaults(),
|
||||
drop = {'default:cherry_blossom_leaves'},
|
||||
})
|
||||
|
||||
minetest.register_node("default:cherry_plank", {
|
||||
description = "Cherry Planks",
|
||||
tiles = {"default_wood_cherry_planks.png"},
|
||||
sounds = default.node_sound_wood_defaults(),
|
||||
groups = {oddly_breakable_by_hand=1, flammable=1, choppy=3, wood=1},
|
||||
})
|
||||
|
||||
if minetest.setting_getbool("xray") then
|
||||
-- Nodes to make partially see-through:
|
||||
minetest.override_item("default:stone_with_coal", {tiles = {"default_mineral_coal.png"}})
|
||||
|
After Width: | Height: | Size: 876 B |
After Width: | Height: | Size: 405 B |
BIN
minetestforfun_game/mods/default/textures/default_cherry_top.png
Normal file
After Width: | Height: | Size: 849 B |
After Width: | Height: | Size: 902 B |
After Width: | Height: | Size: 810 B |
@ -220,7 +220,7 @@ local function add_snow(data, vi, c_air, c_ignore, c_snow)
|
||||
end
|
||||
end
|
||||
|
||||
function default.grow_pinet_ree(pos)
|
||||
function default.grow_pine_tree(pos)
|
||||
local x, y, z = pos.x, pos.y, pos.z
|
||||
local maxy = y + random(9, 13) -- Trunk top
|
||||
|
||||
@ -341,3 +341,130 @@ function default.grow_pinet_ree(pos)
|
||||
vm:write_to_map()
|
||||
vm:update_map()
|
||||
end
|
||||
|
||||
-- From BFD:
|
||||
|
||||
minetest.register_node("default:mg_cherry_sapling", {
|
||||
description = "Impossible to get node.",
|
||||
drawtype = "airlike",
|
||||
paramtype = "light",
|
||||
tiles = {"xfences_space.png"},
|
||||
groups = {not_in_creative_inventory=1},
|
||||
})
|
||||
|
||||
local c_mg_cherry_sapling = minetest.get_content_id("default:mg_cherry_sapling")
|
||||
|
||||
minetest.register_on_generated(function(minp, maxp, seed)
|
||||
local timer = os.clock()
|
||||
local vm, emin, emax = minetest.get_mapgen_object("voxelmanip")
|
||||
local data = vm:get_data()
|
||||
local area = VoxelArea:new{MinEdge=emin, MaxEdge=emax}
|
||||
local trees_grown = 0
|
||||
for z=minp.z, maxp.z, 1 do
|
||||
for y=minp.y, maxp.y, 1 do
|
||||
for x=minp.x, maxp.x, 1 do
|
||||
local p_pos = area:index(x,y,z)
|
||||
local content_id = data[p_pos]
|
||||
if content_id == c_mg_cherry_sapling then
|
||||
mapgen.grow_tree({x=x, y=y, z=z}, false, "default:cherry_tree", "default:cherry_blossom_leaves")
|
||||
trees_grown = trees_grown + 1
|
||||
else
|
||||
-- nope
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
local geninfo = string.format(" trees grown after: %.2fs", os.clock() - timer)
|
||||
print (trees_grown..geninfo)
|
||||
end)
|
||||
|
||||
function default.grow_cherry_tree(pos, is_apple_tree, trunk_node, leaves_node)
|
||||
--[[
|
||||
NOTE: Tree-placing code is currently duplicated in the engine
|
||||
and in games that have saplings; both are deprecated but not
|
||||
replaced yet
|
||||
--]]
|
||||
|
||||
local x, y, z = pos.x, pos.y, pos.z
|
||||
local height = random(4, 5)
|
||||
local c_tree = minetest.get_content_id(trunk_node)
|
||||
local c_leaves = minetest.get_content_id(leaves_node)
|
||||
|
||||
local vm = minetest.get_voxel_manip()
|
||||
local minp, maxp = vm:read_from_map(
|
||||
{x = pos.x - 2, y = pos.y, z = pos.z - 2},
|
||||
{x = pos.x + 2, y = pos.y + height + 1, z = pos.z + 2}
|
||||
)
|
||||
local a = VoxelArea:new({MinEdge = minp, MaxEdge = maxp})
|
||||
local data = vm:get_data()
|
||||
|
||||
add_trunk_and_leaves(data, a, pos, c_tree, c_leaves, height, 2, 8, is_apple_tree)
|
||||
|
||||
vm:set_data(data)
|
||||
vm:write_to_map()
|
||||
vm:update_map()
|
||||
end
|
||||
|
||||
minetest.register_abm({
|
||||
nodenames = {"default:cherry_sapling"},
|
||||
interval = 80,
|
||||
chance = 3,
|
||||
action = function(pos, node)
|
||||
|
||||
local nu = minetest.get_node({x=pos.x, y=pos.y-1, z=pos.z}).name
|
||||
local is_soil = minetest.get_item_group(nu, "soil")
|
||||
|
||||
if is_soil == 0 then
|
||||
return
|
||||
end
|
||||
|
||||
|
||||
minetest.remove_node({x=pos.x, y=pos.y, z=pos.z})
|
||||
default.grow_cherry_tree(pos, false, "default:cherry_tree", "default:cherry_blossom_leaves")
|
||||
end,
|
||||
})
|
||||
|
||||
minetest.register_biome({
|
||||
name = "cherry_blossom_forest",
|
||||
node_shore_filler = "default:sand",
|
||||
node_top = "default:grass",
|
||||
depth_top = 1,
|
||||
node_filler = "default:dirt",
|
||||
depth_filler = 3,
|
||||
node_dust = "air",
|
||||
node_underwater = "default:gravel",
|
||||
y_min = 1,
|
||||
y_max = 40,
|
||||
heat_point = 50,
|
||||
humidity_point = 55,
|
||||
})
|
||||
|
||||
minetest.register_biome({
|
||||
name = "cherry_blossom_forest_floral",
|
||||
node_shore_filler = "default:sand",
|
||||
node_top = "default:grass",
|
||||
depth_top = 1,
|
||||
node_filler = "default:dirt",
|
||||
depth_filler = 3,
|
||||
node_dust = "air",
|
||||
node_underwater = "default:gravel",
|
||||
y_min = 1,
|
||||
y_max = 40,
|
||||
heat_point = 47,
|
||||
humidity_point = 50,
|
||||
})
|
||||
|
||||
minetest.register_biome({
|
||||
name = "cherry_blossom_forest_grassy",
|
||||
node_shore_filler = "default:sand",
|
||||
node_top = "default:grass",
|
||||
depth_top = 1,
|
||||
node_filler = "default:dirt",
|
||||
depth_filler = 3,
|
||||
node_dust = "air",
|
||||
node_underwater = "default:gravel",
|
||||
y_min = 1,
|
||||
y_max = 42,
|
||||
heat_point = 55,
|
||||
humidity_point = 55,
|
||||
})
|
||||
|
@ -350,6 +350,26 @@ minetest.register_craft({
|
||||
}
|
||||
})
|
||||
|
||||
-- From BFD: Cherry planks doors
|
||||
|
||||
doors.register_door("doors:door_cherry", {
|
||||
description = "Cherry Door",
|
||||
inventory_image = "door_wood_cherry.png",
|
||||
groups = {choppy=2,oddly_breakable_by_hand=2,flammable=2,door=1},
|
||||
tiles_bottom = {"door_wood_cherry_b.png", "default_wood_cherry_planks.png"},
|
||||
tiles_top = {"door_wood_cherry_a.png", "default_wood_cherry_planks.png"},
|
||||
sounds = default.node_sound_wood_defaults(),
|
||||
sunlight = false,
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = "doors:door_cherry",
|
||||
recipe = {
|
||||
{"default:cherry_plank", "default:cherry_plank"},
|
||||
{"default:cherry_plank", "default:cherry_plank"},
|
||||
{"default:cherry_plank", "default:cherry_plank"}
|
||||
}
|
||||
})
|
||||
|
||||
----trapdoor----
|
||||
|
||||
|
BIN
minetestforfun_game/mods/doors/textures/door_trapdoor_cherry.png
Normal file
After Width: | Height: | Size: 724 B |
BIN
minetestforfun_game/mods/doors/textures/door_wood_cherry.png
Normal file
After Width: | Height: | Size: 477 B |
BIN
minetestforfun_game/mods/doors/textures/door_wood_cherry_a.png
Normal file
After Width: | Height: | Size: 448 B |
BIN
minetestforfun_game/mods/doors/textures/door_wood_cherry_b.png
Normal file
After Width: | Height: | Size: 548 B |
@ -309,3 +309,13 @@ stairs.register_stair_and_slab("obsidianbrick", "default:obsidianbrick",
|
||||
"Obsidian Brick Stair",
|
||||
"Obsidian Brick Slab",
|
||||
default.node_sound_stone_defaults())
|
||||
|
||||
-- From BFD:
|
||||
|
||||
stairs.register_stair_and_slab("cherry_wood", "default:cherry_plank",
|
||||
{snappy=2,choppy=2,oddly_breakable_by_hand=2,flammable=3},
|
||||
{"default_wood_cherry_planks.png"},
|
||||
"Cherry Plank Stair",
|
||||
"Cherry Plank Slab",
|
||||
"Cherry Plank Corner Stair",
|
||||
default.node_sound_wood_defaults())
|
||||
|