nodebox_trees/init.lua

392 lines
12 KiB
Lua
Raw Normal View History

2016-12-26 12:20:01 -08:00
2016-12-26 17:23:40 -08:00
-- waterlily Originally by Ironzorg (MIT) and VanessaE (MIT)
minetest.register_node("nodebox_trees:waterlily", {
description = "Waterlily (no flower)",
drawtype = "mesh",
mesh = "waterlily.b3d",
paramtype = "light",
paramtype2 = "facedir",
visual_scale = 0.5,
tiles = {"waterlily_noflower.png",},
inventory_image = "flowers_waterlily.png",
wield_image = "flowers_waterlily.png",
liquids_pointable = true,
walkable = false,
buildable_to = true,
sunlight_propagates = true,
floodable = true,
groups = {snappy = 3, flower = 1, flammable = 1},
sounds = default.node_sound_leaves_defaults(),
node_placement_prediction = "",
selection_box = {
type = "fixed",
fixed = {-7 / 16, -0.5, -7 / 16, 7 / 16, -15 / 32, 7 / 16}
},
on_place = function(itemstack, placer, pointed_thing)
local pos = pointed_thing.above
local node = minetest.get_node(pointed_thing.under).name
local def = minetest.registered_nodes[node]
local player_name = placer:get_player_name()
if def and def.liquidtype == "source" and
minetest.get_item_group(node, "water") > 0 then
if not minetest.is_protected(pos, player_name) then
minetest.set_node(pos, {name = "nodebox_trees:waterlily",
param2 = math.random(0, 3)})
if not minetest.setting_getbool("creative_mode") then
itemstack:take_item()
end
else
minetest.chat_send_player(player_name, "Node is protected")
minetest.record_protection_violation(pos, player_name)
end
end
return itemstack
end
})
2016-12-26 17:54:28 -08:00
--overrides
2016-12-26 14:04:30 -08:00
2016-12-26 17:23:40 -08:00
minetest.override_item("default:papyrus", {
})
2016-12-26 16:02:15 -08:00
minetest.override_item("default:cactus", {
drawtype = "mesh",
mesh = "cactus.b3d",
tiles = {"cactus.png"},
paramtype = "light",
visual_scale = 0.5,
2016-12-26 17:23:40 -08:00
selection_box = {
type = "fixed",
fixed = {-0.4, -0.5, -0.4, 0.4, 0.5, 0.4},
},
collision_box = {
type = "fixed",
fixed = {-0.4, -0.5, -0.4, 0.4, 0.5, 0.4},
},
})
minetest.override_item("flowers:waterlily", {
drawtype = "mesh",
tiles = {"waterlily.png"},
mesh = "waterlily.b3d",
paramtype = "light",
visual_scale = 0.5,
})
minetest.override_item("default:bush_leaves", {
drawtype = "mesh",
mesh = "leaf.b3d",
paramtype = "light",
visual_scale = 0.5,
})
minetest.override_item("default:acacia_bush_leaves", {
drawtype = "mesh",
mesh = "leaf.b3d",
paramtype = "light",
visual_scale = 0.5,
2016-12-26 16:02:15 -08:00
})
2016-12-26 14:04:30 -08:00
minetest.override_item("default:leaves", {
drawtype = "mesh",
mesh = "leaf.b3d",
paramtype = "light",
visual_scale = 0.5,
})
2016-12-26 14:55:56 -08:00
minetest.override_item("default:acacia_leaves", {
drawtype = "mesh",
mesh = "leaf.b3d",
paramtype = "light",
visual_scale = 0.5,
})
2016-12-26 14:54:28 -08:00
minetest.override_item("default:jungleleaves", {
drawtype = "mesh",
mesh = "leaf.b3d",
paramtype = "light",
visual_scale = 0.5,
})
minetest.override_item("default:pine_needles", {
drawtype = "mesh",
mesh = "leaf.b3d",
paramtype = "light",
visual_scale = 0.5,
})
minetest.override_item("default:aspen_leaves", {
drawtype = "mesh",
mesh = "leaf.b3d",
paramtype = "light",
visual_scale = 0.5,
})
minetest.register_abm({
nodenames = "default:leaves",
interval = 5,
chance = 1,
action = function(pos, node)
if minetest.get_node({x=pos.x, y=pos.y+1, z=pos.z}).name == "default:snow" then
minetest.env:set_node(pos, {name="nodebox_trees:leaves_with_snow"})
end
end,
})
minetest.register_abm({
nodenames = "default:pine_needles",
interval = 5,
chance = 1,
action = function(pos, node)
if minetest.get_node({x=pos.x, y=pos.y+1, z=pos.z}).name == "default:snow" then
minetest.env:set_node(pos, {name="nodebox_trees:pine_needles_with_snow"})
end
end,
})
--leaves
minetest.register_node("nodebox_trees:leaves_with_snow", {
description = "Leaves With Snow",
drawtype = "mesh",
mesh = "leaf.b3d",
tiles = {"default_leaves_snow.png", "default_snow.png", "default_snow.png",},
paramtype = "light",
visual_scale = 0.5,
groups = {snappy=1, oddly_breakable_by_hand=1, leaves=1}
})
minetest.register_node("nodebox_trees:pine_needles_with_snow", {
description = "Pine Needles With Snow",
drawtype = "mesh",
mesh = "leaf.b3d",
tiles = {"default_pine_needles_snow.png",},
paramtype = "light",
visual_scale = 0.5,
groups = {snappy=1, oddly_breakable_by_hand=1, leaves=1}
})
2016-12-26 14:04:30 -08:00
--trunk overrides
2016-12-26 12:20:01 -08:00
minetest.override_item("default:acacia_tree", {
drawtype = "nodebox",
paramtype = "light",
node_box = {
type = "connected",
fixed = {
{-0.375, -0.5, -0.4375, 0.375, 0.5, 0.375}, -- NodeBox1
{-0.4375, -0.5, -0.375, 0.4375, 0.5, 0.375}, -- NodeBox2
{-0.375, -0.5, -0.4375, 0.375, 0.5, 0.4375}, -- NodeBox3
{-0.3125, -0.5, -0.5, -0.25, 0.5, 0.5}, -- NodeBox4
{-0.125, -0.5, -0.5, -0.0625, 0.5, 0.5}, -- NodeBox5
{0.0625, -0.5, -0.5, 0.125, 0.5, 0.5}, -- NodeBox6
{0.25, -0.5, -0.5, 0.3125, 0.5, 0.5}, -- NodeBox7
{-0.5, -0.5, 0.25, 0.5, 0.5, 0.3125}, -- NodeBox8
{-0.5, -0.5, 0.0625, 0.5, 0.5, 0.125}, -- NodeBox9
{-0.5, -0.5, -0.125, 0.5, 0.5, -0.0625}, -- NodeBox10
{-0.5, -0.5, -0.3125, 0.5, 0.5, -0.25}, -- NodeBox11
},
connect_front = {{-0.5, -0.5, -0.5, 0.5, 0.5, 0.5}},
connect_back = {{-0.5, -0.5, -0.5, 0.5, 0.5, 0.5}},
connect_left = {{-0.5, -0.5, -0.5, 0.5, 0.5, 0.5}},
connect_right = {{-0.5, -0.5, -0.5, 0.5, 0.5, 0.5}},
},
connects_to = {"default:acacia_tree"}
})
minetest.override_item("default:tree", {
drawtype = "nodebox",
paramtype = "light",
node_box = {
type = "connected",
fixed = {
{-0.375, -0.5, -0.4375, 0.375, 0.5, 0.4375}, -- NodeBox1
{-0.4375, -0.5, -0.375, 0.4375, 0.5, 0.375}, -- NodeBox2
},
connect_front = {{-0.5, -0.5, -0.5, 0.5, 0.5, 0.5}},
connect_back = {{-0.5, -0.5, -0.5, 0.5, 0.5, 0.5}},
connect_left = {{-0.5, -0.5, -0.5, 0.5, 0.5, 0.5}},
connect_right = {{-0.5, -0.5, -0.5, 0.5, 0.5, 0.5}},
},
connects_to = {"default:tree"}
})
minetest.override_item("default:aspen_tree", {
drawtype = "nodebox",
paramtype = "light",
node_box = {
type = "connected",
fixed = {
{-0.1875, -0.5, -0.25, 0.1875, 0.5, 0.25}, -- NodeBox1
{-0.25, -0.5, -0.1875, 0.25, 0.5, 0.1875}, -- NodeBox2
},
connect_front = {{-0.5, -0.5, -0.5, 0.5, 0.5, 0.5}},
connect_back = {{-0.5, -0.5, -0.5, 0.5, 0.5, 0.5}},
connect_left = {{-0.5, -0.5, -0.5, 0.5, 0.5, 0.5}},
connect_right = {{-0.5, -0.5, -0.5, 0.5, 0.5, 0.5}},
},
connects_to = {"default:aspen_tree"}
})
minetest.override_item("default:pine_tree", {
drawtype = "nodebox",
paramtype = "light",
node_box = {
type = "connected",
fixed = {
{-0.3125, -0.5, -0.375, 0.3125, 0.5, 0.375}, -- NodeBox12
{-0.375, -0.5, -0.3125, 0.375, 0.5, 0.3125}, -- NodeBox13
},
connect_front = {{-0.5, -0.5, -0.5, 0.5, 0.5, 0.5}},
connect_back = {{-0.5, -0.5, -0.5, 0.5, 0.5, 0.5}},
connect_left = {{-0.5, -0.5, -0.5, 0.5, 0.5, 0.5}},
connect_right = {{-0.5, -0.5, -0.5, 0.5, 0.5, 0.5}},
},
connects_to = {"default:pine_tree"}
})
minetest.override_item("default:jungletree", {
drawtype = "nodebox",
paramtype = "light",
node_box = {
type = "connected",
fixed = {
{-0.3125, -0.5, -0.3125, 0.3125, 0.5, 0.3125}, -- NodeBox3
{-0.375, -0.5, -0.0625, 0.375, 0.5, 0.25}, -- NodeBox4
{-0.4375, -0.5, 0.0625, 0.4375, 0.5, 0.1875}, -- NodeBox5
{-0.375, -0.5, -0.25, 0.375, 0.5, -0.125}, -- NodeBox6
{-0.25, -0.5, -0.375, 0.1875, 0.5, 0}, -- NodeBox7
{-0.125, -0.5, -0.4375, 0.125, 0.5, -0.1875}, -- NodeBox8
{0, -0.5, 0.3125, 0.25, 0.5, 0.375}, -- NodeBox9
{0.0625, -0.5, 0.3125, 0.1875, 0.5, 0.4375}, -- NodeBox10
{-0.25, -0.5, 0.0625, -0.0625, 0.5, 0.375}, -- NodeBox11
},
connect_front = {{-0.5, -0.5, -0.5, 0.5, 0.5, 0.5}},
connect_back = {{-0.5, -0.5, -0.5, 0.5, 0.5, 0.5}},
connect_left = {{-0.5, -0.5, -0.5, 0.5, 0.5, 0.5}},
connect_right = {{-0.5, -0.5, -0.5, 0.5, 0.5, 0.5}},
},
connects_to = {"default:jungletree"}
})
minetest.register_node("nodebox_trees:trunk_base", {
description = "Tree (base)",
tiles = {"default_tree_top.png", "default_tree_top.png", "default_tree.png"},
drawtype = "nodebox",
paramtype = "light",
node_box = {
type = "fixed",
fixed = {
{-0.375, -0.5, -0.4375, 0.375, 0.5, 0.4375}, -- NodeBox1
{-0.4375, -0.5, -0.375, 0.4375, 0.5, 0.375}, -- NodeBox2
{0.4375, -0.5, -0.1875, 0.5, 0.375, 0.125}, -- NodeBox3
{0.4375, -0.5, -0.3125, 0.5, 0.125, -0.1875}, -- NodeBox4
{-0.1875, -0.5, -0.5, 0.1875, 0.1875, -0.4375}, -- NodeBox5
{-0.5, -0.5, 0, -0.4375, -0.125, 0.25}, -- NodeBox6
{-0.5, -0.5, -0.25, -0.4375, 0.125, 0}, -- NodeBox7
{-0.25, -0.5, 0.4375, 0.1875, 0.0625, 0.5}, -- NodeBox8
}
},
paramtype2 = "facedir",
is_ground_content = false,
groups = {tree = 1, choppy = 2, oddly_breakable_by_hand = 1, flammable = 2},
sounds = default.node_sound_wood_defaults(),
on_place = minetest.rotate_node
})
minetest.register_node("nodebox_trees:pine_trunk_base", {
description = "Tree (base)",
tiles = {"default_pine_tree_top.png", "default_pine_tree_top.png", "default_pine_tree.png"},
drawtype = "nodebox",
paramtype = "light",
node_box = {
type = "fixed",
fixed = {
{-0.3125, -0.5, -0.375, 0.3125, 0.5, 0.375}, -- NodeBox12
{-0.375, -0.5, -0.3125, 0.375, 0.5, 0.3125}, -- NodeBox13
{-0.4375, -0.5, -0.1875, 0.4375, -0.0625, 0.125}, -- NodeBox14
{-0.125, -0.5, -0.4375, 0.1875, -0.0625, 0.4375}, -- NodeBox15
}
},
paramtype2 = "facedir",
is_ground_content = false,
groups = {tree = 1, choppy = 2, oddly_breakable_by_hand = 1, flammable = 2},
sounds = default.node_sound_wood_defaults(),
on_place = minetest.rotate_node
})
--change trunk to trunk base
minetest.register_abm({
nodenames = {"default:tree"},
interval = 5,
chance = 1,
action = function(pos, node)
if minetest.get_node({x=pos.x, y=pos.y-1, z=pos.z}).name == "default:grass" then
minetest.set_node(pos, {name="nodebox_trees:trunk_base", param2=node.param2})
end
end
})
--original trunks
minetest.register_node("nodebox_trees:tree", {
description = "Tree (default)",
tiles = {"default_tree_top.png", "default_tree_top.png", "default_tree.png"},
paramtype2 = "facedir",
is_ground_content = false,
groups = {tree = 1, choppy = 2, oddly_breakable_by_hand = 1, flammable = 2},
sounds = default.node_sound_wood_defaults(),
on_place = minetest.rotate_node
})
minetest.register_node("nodebox_trees:pine_tree", {
description = "Pine Tree (default)",
tiles = {"default_pine_tree_top.png", "default_pine_tree_top.png", "default_pine_tree.png"},
paramtype2 = "facedir",
is_ground_content = false,
groups = {tree = 1, choppy = 2, oddly_breakable_by_hand = 1, flammable = 2},
sounds = default.node_sound_wood_defaults(),
on_place = minetest.rotate_node,
})
minetest.register_node("nodebox_trees:aspen_tree", {
description = "Aspen Tree (default)",
tiles = {"default_aspen_tree_top.png", "default_aspen_tree_top.png", "default_aspen_tree.png"},
paramtype2 = "facedir",
is_ground_content = false,
groups = {tree = 1, choppy = 2, oddly_breakable_by_hand = 1, flammable = 2},
sounds = default.node_sound_wood_defaults(),
on_place = minetest.rotate_node,
})
minetest.register_node("nodebox_trees:jungletree", {
description = "Jungle Tree (default)",
tiles = {"default_jungletree_top.png", "default_jungletree_top.png", "default_jungletree.png"},
paramtype2 = "facedir",
is_ground_content = false,
groups = {tree = 1, choppy = 2, oddly_breakable_by_hand = 1, flammable = 2},
sounds = default.node_sound_wood_defaults(),
on_place = minetest.rotate_node,
})
minetest.register_node("nodebox_trees:acacia_tree", {
description = "Acacia Tree (default)",
tiles = {"default_acacia_tree_top.png", "default_acacia_tree_top.png", "default_acacia_tree.png"},
paramtype2 = "facedir",
is_ground_content = false,
groups = {tree = 1, choppy = 2, oddly_breakable_by_hand = 1, flammable = 2},
sounds = default.node_sound_wood_defaults(),
on_place = minetest.rotate_node,
2016-12-27 20:45:21 -08:00
})
local mapgen = true
if mapgen and minetest.get_mapgen_setting("mg_name") ~= "v6" then
dofile(minetest.get_modpath("nodebox_trees").."/mapgen.lua")
end