Saplings, mine lanterns, weather changes
|
@ -0,0 +1,264 @@
|
|||
|
||||
function default.grow_new_baobab_tree(pos)
|
||||
local path = minetest.get_modpath("mapgen") ..
|
||||
"/schematics/baobab.mts"
|
||||
minetest.place_schematic({x = pos.x - 8, y = pos.y - 1, z = pos.z - 8},
|
||||
path, "random", nil, false)
|
||||
minetest.set_node(pos, {name="mapgen:baobab_tree"})
|
||||
end
|
||||
|
||||
function default.grow_new_bamboo_tree(pos)
|
||||
local path = minetest.get_modpath("mapgen") ..
|
||||
"/schematics/bamboo1.mts"
|
||||
minetest.place_schematic({x = pos.x - 2, y = pos.y - 1, z = pos.z - 2},
|
||||
path, "random", nil, false)
|
||||
minetest.set_node(pos, {name="mapgen:bamboo"})
|
||||
end
|
||||
|
||||
function default.grow_new_ipe_tree(pos)
|
||||
local path = minetest.get_modpath("mapgen") ..
|
||||
"/schematics/ipe.mts"
|
||||
minetest.place_schematic({x = pos.x - 7, y = pos.y - 1, z = pos.z - 6},
|
||||
path, "random", nil, false)
|
||||
minetest.set_node(pos, {name="mapgen:yellow_ipe_tree"})
|
||||
end
|
||||
|
||||
function default.grow_new_palm_tree(pos)
|
||||
local path = minetest.get_modpath("mapgen") ..
|
||||
"/schematics/palmtree.mts"
|
||||
minetest.place_schematic({x = pos.x - 3, y = pos.y - 1, z = pos.z - 3},
|
||||
path, "random", nil, false)
|
||||
minetest.set_node(pos, {name="mapgen:palm_tree"})
|
||||
end
|
||||
|
||||
function default.grow_new_big_pine_tree(pos)
|
||||
local path = minetest.get_modpath("mapgen") ..
|
||||
"/schematics/pine.mts"
|
||||
minetest.place_schematic({x = pos.x - 2, y = pos.y - 1, z = pos.z - 3},
|
||||
path, "random", nil, false)
|
||||
minetest.set_node(pos, {name="default:pine_tree"})
|
||||
end
|
||||
|
||||
function default.grow_new_willow_tree(pos)
|
||||
local path = minetest.get_modpath("mapgen") ..
|
||||
"/schematics/willow.mts"
|
||||
minetest.place_schematic({x = pos.x - 2, y = pos.y - 1, z = pos.z - 2},
|
||||
path, "random", nil, false)
|
||||
minetest.set_node(pos, {name="mapgen:willow_tree"})
|
||||
end
|
||||
|
||||
minetest.register_node("default:bamboo_sapling", {
|
||||
description = "Bamboo Sapling",
|
||||
drawtype = "plantlike",
|
||||
tiles = {"mapgen_bamboo_sapling.png"},
|
||||
inventory_image = "mapgen_bamboo_sapling.png",
|
||||
wield_image = "mapgen_bamboo_sapling.png",
|
||||
paramtype = "light",
|
||||
sunlight_propagates = true,
|
||||
walkable = false,
|
||||
on_timer = default.grow_sapling,
|
||||
selection_box = {
|
||||
type = "fixed",
|
||||
fixed = {-4 / 16, -0.5, -4 / 16, 4 / 16, 7 / 16, 4 / 16}
|
||||
},
|
||||
groups = {snappy = 2, dig_immediate = 3, flammable = 2,
|
||||
attached_node = 1, sapling = 1},
|
||||
sounds = default.node_sound_leaves_defaults(),
|
||||
|
||||
on_construct = function(pos)
|
||||
minetest.get_node_timer(pos):start(math.random(2400,4800))
|
||||
end,
|
||||
|
||||
on_place = function(itemstack, placer, pointed_thing)
|
||||
itemstack = default.sapling_on_place(itemstack, placer, pointed_thing,
|
||||
"default:bamboo_sapling",
|
||||
-- minp, maxp to be checked, relative to sapling pos
|
||||
-- minp_relative.y = 1 because sapling pos has been checked
|
||||
{x = -2, y = 1, z = -2},
|
||||
{x = 2, y = 15, z = 2},
|
||||
-- maximum interval of interior volume check
|
||||
4)
|
||||
|
||||
return itemstack
|
||||
end,
|
||||
})
|
||||
|
||||
minetest.register_node("default:baobab_sapling", {
|
||||
description = "Baobab Sapling",
|
||||
drawtype = "plantlike",
|
||||
tiles = {"mapgen_baobab_sapling.png"},
|
||||
inventory_image = "mapgen_baobab_sapling.png",
|
||||
wield_image = "mapgen_baobab_sapling.png",
|
||||
paramtype = "light",
|
||||
sunlight_propagates = true,
|
||||
walkable = false,
|
||||
on_timer = default.grow_sapling,
|
||||
selection_box = {
|
||||
type = "fixed",
|
||||
fixed = {-4 / 16, -0.5, -4 / 16, 4 / 16, 7 / 16, 4 / 16}
|
||||
},
|
||||
groups = {snappy = 2, dig_immediate = 3, flammable = 2,
|
||||
attached_node = 1, sapling = 1},
|
||||
sounds = default.node_sound_leaves_defaults(),
|
||||
|
||||
on_construct = function(pos)
|
||||
minetest.get_node_timer(pos):start(math.random(2400,4800))
|
||||
end,
|
||||
|
||||
on_place = function(itemstack, placer, pointed_thing)
|
||||
itemstack = default.sapling_on_place(itemstack, placer, pointed_thing,
|
||||
"default:baobab_sapling",
|
||||
-- minp, maxp to be checked, relative to sapling pos
|
||||
-- minp_relative.y = 1 because sapling pos has been checked
|
||||
{x = -2, y = 1, z = -2},
|
||||
{x = 2, y = 15, z = 2},
|
||||
-- maximum interval of interior volume check
|
||||
4)
|
||||
|
||||
return itemstack
|
||||
end,
|
||||
})
|
||||
|
||||
minetest.register_node("default:ipe_sapling", {
|
||||
description = "Yellow Ipe Sapling",
|
||||
drawtype = "plantlike",
|
||||
tiles = {"mapgen_yellow_ipe_sapling.png"},
|
||||
inventory_image = "mapgen_yellow_ipe_sapling.png",
|
||||
wield_image = "mapgen_yellow_ipe_sapling.png",
|
||||
paramtype = "light",
|
||||
sunlight_propagates = true,
|
||||
walkable = false,
|
||||
on_timer = default.grow_sapling,
|
||||
selection_box = {
|
||||
type = "fixed",
|
||||
fixed = {-4 / 16, -0.5, -4 / 16, 4 / 16, 7 / 16, 4 / 16}
|
||||
},
|
||||
groups = {snappy = 2, dig_immediate = 3, flammable = 2,
|
||||
attached_node = 1, sapling = 1},
|
||||
sounds = default.node_sound_leaves_defaults(),
|
||||
|
||||
on_construct = function(pos)
|
||||
minetest.get_node_timer(pos):start(math.random(2400,4800))
|
||||
end,
|
||||
|
||||
on_place = function(itemstack, placer, pointed_thing)
|
||||
itemstack = default.sapling_on_place(itemstack, placer, pointed_thing,
|
||||
"default:ipe_sapling",
|
||||
-- minp, maxp to be checked, relative to sapling pos
|
||||
-- minp_relative.y = 1 because sapling pos has been checked
|
||||
{x = -2, y = 1, z = -2},
|
||||
{x = 2, y = 15, z = 2},
|
||||
-- maximum interval of interior volume check
|
||||
4)
|
||||
|
||||
return itemstack
|
||||
end,
|
||||
})
|
||||
|
||||
minetest.register_node("default:palmtree_sapling", {
|
||||
description = "Palm Tree Sapling",
|
||||
drawtype = "plantlike",
|
||||
tiles = {"mapgen_palmtree_sapling.png"},
|
||||
inventory_image = "mapgen_palmtree_sapling.png",
|
||||
wield_image = "mapgen_palmtree_sapling.png",
|
||||
paramtype = "light",
|
||||
sunlight_propagates = true,
|
||||
walkable = false,
|
||||
on_timer = default.grow_sapling,
|
||||
selection_box = {
|
||||
type = "fixed",
|
||||
fixed = {-4 / 16, -0.5, -4 / 16, 4 / 16, 7 / 16, 4 / 16}
|
||||
},
|
||||
groups = {snappy = 2, dig_immediate = 3, flammable = 2,
|
||||
attached_node = 1, sapling = 1},
|
||||
sounds = default.node_sound_leaves_defaults(),
|
||||
|
||||
on_construct = function(pos)
|
||||
minetest.get_node_timer(pos):start(math.random(2400,4800))
|
||||
end,
|
||||
|
||||
on_place = function(itemstack, placer, pointed_thing)
|
||||
itemstack = default.sapling_on_place(itemstack, placer, pointed_thing,
|
||||
"default:palmtree_sapling",
|
||||
-- minp, maxp to be checked, relative to sapling pos
|
||||
-- minp_relative.y = 1 because sapling pos has been checked
|
||||
{x = -2, y = 1, z = -2},
|
||||
{x = 2, y = 15, z = 2},
|
||||
-- maximum interval of interior volume check
|
||||
4)
|
||||
|
||||
return itemstack
|
||||
end,
|
||||
})
|
||||
|
||||
minetest.register_node("default:willow_sapling", {
|
||||
description = "Willow Tree Sapling",
|
||||
drawtype = "plantlike",
|
||||
tiles = {"mapgen_willow_sapling.png"},
|
||||
inventory_image = "mapgen_willow_sapling.png",
|
||||
wield_image = "mapgen_willow_sapling.png",
|
||||
paramtype = "light",
|
||||
sunlight_propagates = true,
|
||||
walkable = false,
|
||||
on_timer = default.grow_sapling,
|
||||
selection_box = {
|
||||
type = "fixed",
|
||||
fixed = {-4 / 16, -0.5, -4 / 16, 4 / 16, 7 / 16, 4 / 16}
|
||||
},
|
||||
groups = {snappy = 2, dig_immediate = 3, flammable = 2,
|
||||
attached_node = 1, sapling = 1},
|
||||
sounds = default.node_sound_leaves_defaults(),
|
||||
|
||||
on_construct = function(pos)
|
||||
minetest.get_node_timer(pos):start(math.random(2400,4800))
|
||||
end,
|
||||
|
||||
on_place = function(itemstack, placer, pointed_thing)
|
||||
itemstack = default.sapling_on_place(itemstack, placer, pointed_thing,
|
||||
"default:willow_sapling",
|
||||
-- minp, maxp to be checked, relative to sapling pos
|
||||
-- minp_relative.y = 1 because sapling pos has been checked
|
||||
{x = -2, y = 1, z = -2},
|
||||
{x = 2, y = 15, z = 2},
|
||||
-- maximum interval of interior volume check
|
||||
4)
|
||||
|
||||
return itemstack
|
||||
end,
|
||||
})
|
||||
|
||||
minetest.register_node("default:big_pine_sapling", {
|
||||
description = "Big Pine Sapling",
|
||||
drawtype = "plantlike",
|
||||
tiles = {"mapgen_big_pine_sapling.png"},
|
||||
inventory_image = "mapgen_big_pine_sapling.png",
|
||||
wield_image = "mapgen_big_pine_sapling.png",
|
||||
paramtype = "light",
|
||||
sunlight_propagates = true,
|
||||
walkable = false,
|
||||
on_timer = default.grow_sapling,
|
||||
selection_box = {
|
||||
type = "fixed",
|
||||
fixed = {-4 / 16, -0.5, -4 / 16, 4 / 16, 7 / 16, 4 / 16}
|
||||
},
|
||||
groups = {snappy = 2, dig_immediate = 3, flammable = 2,
|
||||
attached_node = 1, sapling = 1},
|
||||
sounds = default.node_sound_leaves_defaults(),
|
||||
|
||||
on_construct = function(pos)
|
||||
minetest.get_node_timer(pos):start(math.random(2400,4800))
|
||||
end,
|
||||
|
||||
on_place = function(itemstack, placer, pointed_thing)
|
||||
itemstack = default.sapling_on_place(itemstack, placer, pointed_thing,
|
||||
"default:big_pine_sapling",
|
||||
-- minp, maxp to be checked, relative to sapling pos
|
||||
-- minp_relative.y = 1 because sapling pos has been checked
|
||||
{x = -2, y = 1, z = -2},
|
||||
{x = 2, y = 15, z = 2},
|
||||
-- maximum interval of interior volume check
|
||||
4)
|
||||
|
||||
return itemstack
|
||||
end,
|
||||
})
|
|
@ -50,3 +50,4 @@ dofile(default_path.."/mapgen.lua")
|
|||
dofile(default_path.."/player.lua")
|
||||
dofile(default_path.."/aliases.lua")
|
||||
dofile(default_path.."/legacy.lua")
|
||||
dofile(default_path.."/default_farlands.lua")
|
||||
|
|
Before Width: | Height: | Size: 355 B After Width: | Height: | Size: 367 B |
|
@ -27,8 +27,7 @@ end
|
|||
-- 'is snow nearby' function
|
||||
|
||||
local function is_snow_nearby(pos)
|
||||
return minetest.find_node_near(pos, 1,
|
||||
{"default:snow", "default:snowblock", "default:dirt_with_snow"})
|
||||
return minetest.find_node_near(pos, 1, {"group:snowy"})
|
||||
end
|
||||
|
||||
|
||||
|
@ -78,6 +77,38 @@ function default.grow_sapling(pos)
|
|||
minetest.log("action", "An aspen sapling grows into a tree at "..
|
||||
minetest.pos_to_string(pos))
|
||||
default.grow_new_aspen_tree(pos)
|
||||
elseif node.name == "default:bush_sapling" then
|
||||
minetest.log("action", "A bush sapling grows into a bush at "..
|
||||
minetest.pos_to_string(pos))
|
||||
default.grow_bush(pos)
|
||||
elseif node.name == "default:acacia_bush_sapling" then
|
||||
minetest.log("action", "An acacia bush sapling grows into a bush at "..
|
||||
minetest.pos_to_string(pos))
|
||||
default.grow_acacia_bush(pos)
|
||||
elseif node.name == "default:palmtree_sapling" then
|
||||
minetest.log("action", "A palm tree sapling grows into a tree at "..
|
||||
minetest.pos_to_string(pos))
|
||||
default.grow_new_palm_tree(pos)
|
||||
elseif node.name == "default:baobab_sapling" then
|
||||
minetest.log("action", "A baobab tree sapling grows into a tree at "..
|
||||
minetest.pos_to_string(pos))
|
||||
default.grow_new_baobab_tree(pos)
|
||||
elseif node.name == "default:ipe_sapling" then
|
||||
minetest.log("action", "A yellow ipe tree sapling grows into a tree at "..
|
||||
minetest.pos_to_string(pos))
|
||||
default.grow_new_ipe_tree(pos)
|
||||
elseif node.name == "default:big_pine_sapling" then
|
||||
minetest.log("action", "A big pine tree sapling grows into a tree at "..
|
||||
minetest.pos_to_string(pos))
|
||||
default.grow_new_big_pine_tree(pos)
|
||||
elseif node.name == "default:willow_sapling" then
|
||||
minetest.log("action", "A willow tree sapling grows into a tree at "..
|
||||
minetest.pos_to_string(pos))
|
||||
default.grow_new_willow_tree(pos)
|
||||
elseif node.name == "default:bamboo_sapling" then
|
||||
minetest.log("action", "A bamboo sapling grows into a tree at "..
|
||||
minetest.pos_to_string(pos))
|
||||
default.grow_new_bamboo_tree(pos)
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -85,7 +116,9 @@ minetest.register_lbm({
|
|||
name = "default:convert_saplings_to_node_timer",
|
||||
nodenames = {"default:sapling", "default:junglesapling",
|
||||
"default:pine_sapling", "default:acacia_sapling",
|
||||
"default:aspen_sapling"},
|
||||
"default:aspen_sapling", "default:ipe_sapling",
|
||||
"default:baobab_sapling", "default:palmtree_sapling",
|
||||
"default:big_pine_sapling", "default:willow_sapling", "default:bamboo_sapling"},
|
||||
action = function(pos)
|
||||
minetest.get_node_timer(pos):start(math.random(1200, 2400))
|
||||
end
|
||||
|
@ -373,7 +406,7 @@ function default.grow_new_apple_tree(pos)
|
|||
local path = minetest.get_modpath("default") ..
|
||||
"/schematics/apple_tree_from_sapling.mts"
|
||||
minetest.place_schematic({x = pos.x - 2, y = pos.y - 1, z = pos.z - 2},
|
||||
path, "0", nil, false)
|
||||
path, "random", nil, false)
|
||||
end
|
||||
|
||||
|
||||
|
@ -427,6 +460,29 @@ function default.grow_new_aspen_tree(pos)
|
|||
end
|
||||
|
||||
|
||||
-- Bushes do not need 'from sapling' schematic variants because
|
||||
-- only the stem node is force-placed in the schematic.
|
||||
|
||||
-- Bush
|
||||
|
||||
function default.grow_bush(pos)
|
||||
local path = minetest.get_modpath("default") ..
|
||||
"/schematics/bush.mts"
|
||||
minetest.place_schematic({x = pos.x - 1, y = pos.y - 1, z = pos.z - 1},
|
||||
path, "0", nil, false)
|
||||
end
|
||||
|
||||
|
||||
-- Acacia bush
|
||||
|
||||
function default.grow_acacia_bush(pos)
|
||||
local path = minetest.get_modpath("default") ..
|
||||
"/schematics/acacia_bush.mts"
|
||||
minetest.place_schematic({x = pos.x - 1, y = pos.y - 1, z = pos.z - 1},
|
||||
path, "0", nil, false)
|
||||
end
|
||||
|
||||
|
||||
--
|
||||
-- Sapling 'on place' function to check protection of node and resulting tree volume
|
||||
--
|
||||
|
@ -458,19 +514,47 @@ function default.sapling_on_place(itemstack, placer, pointed_thing,
|
|||
return itemstack
|
||||
end
|
||||
-- Check tree volume for protection
|
||||
if not default.intersects_protection(
|
||||
if default.intersects_protection(
|
||||
vector.add(pos, minp_relative),
|
||||
vector.add(pos, maxp_relative),
|
||||
player_name,
|
||||
interval) then
|
||||
minetest.set_node(pos, {name = sapling_name})
|
||||
if not minetest.setting_getbool("creative_mode") then
|
||||
itemstack:take_item()
|
||||
end
|
||||
else
|
||||
minetest.record_protection_violation(pos, player_name)
|
||||
-- Print extra information to explain
|
||||
minetest.chat_send_player(player_name, "Tree will intersect protection")
|
||||
return itemstack
|
||||
end
|
||||
|
||||
minetest.log("action", player_name .. " places node "
|
||||
.. sapling_name .. " at " .. minetest.pos_to_string(pos))
|
||||
|
||||
local take_item = not (creative and creative.is_enabled_for
|
||||
and creative.is_enabled_for(player_name))
|
||||
local newnode = {name = sapling_name}
|
||||
local ndef = minetest.registered_nodes[sapling_name]
|
||||
minetest.set_node(pos, newnode)
|
||||
|
||||
-- Run callback
|
||||
if ndef and ndef.after_place_node then
|
||||
-- Deepcopy place_to and pointed_thing because callback can modify it
|
||||
if ndef.after_place_node(table.copy(pos), placer,
|
||||
itemstack, table.copy(pointed_thing)) then
|
||||
take_item = false
|
||||
end
|
||||
end
|
||||
|
||||
-- Run script hook
|
||||
for _, callback in ipairs(minetest.registered_on_placenodes) do
|
||||
-- Deepcopy pos, node and pointed_thing because callback can modify them
|
||||
if callback(table.copy(pos), table.copy(newnode),
|
||||
placer, table.copy(node or {}),
|
||||
itemstack, table.copy(pointed_thing)) then
|
||||
take_item = false
|
||||
end
|
||||
end
|
||||
|
||||
if take_item then
|
||||
itemstack:take_item()
|
||||
end
|
||||
|
||||
return itemstack
|
||||
|
|
|
@ -58,6 +58,22 @@ mapgen.register_shrub("shrub2", "Deciduous Forest Shrub", "2")
|
|||
|
||||
--nodes
|
||||
|
||||
minetest.register_node("mapgen:dungeon_spawner", {
|
||||
description = "Dungeon Spawner",
|
||||
tiles = {"mapgen_dungeon_spawner.png"},
|
||||
groups = {cracky=1,},
|
||||
sounds = default.node_sound_stone_defaults(),
|
||||
on_rightclick = function(pos, node, clicker)
|
||||
local check_pos = pos
|
||||
check_pos.y = check_pos.y-1
|
||||
local node_below = minetest.get_node(check_pos)
|
||||
if node_below == "default:dirt_with_junglegrass" then
|
||||
elseif node_below == "default:desert_sand" then
|
||||
end
|
||||
minetest.chat_send_player(clicker:get_player_name(), "This node is unfinished")
|
||||
end,
|
||||
})
|
||||
|
||||
--plants (PLNT01)
|
||||
|
||||
minetest.register_node("mapgen:red_ground_flower", {
|
||||
|
@ -166,6 +182,14 @@ minetest.register_node("mapgen:willow_leaves", {
|
|||
tiles = {
|
||||
"mapgen_willow_leaves.png",
|
||||
},
|
||||
drop = {
|
||||
max_items = 1,
|
||||
items = {
|
||||
{items = {"default:willow_sapling",},
|
||||
rarity = 20,},
|
||||
{items = {"mapgen:willow_leaves",}},
|
||||
},
|
||||
},
|
||||
groups = {snappy = 1, oddly_breakable_by_hand = 1, flammable = 1, dig_immediate = 1, leaves = 1, leafdecay = 3},
|
||||
sounds = default.node_sound_leaves_defaults()
|
||||
})
|
||||
|
@ -199,6 +223,14 @@ minetest.register_node("mapgen:baobab_leaves", {
|
|||
tiles = {
|
||||
"mapgen_baobab_leaves.png",
|
||||
},
|
||||
drop = {
|
||||
max_items = 1,
|
||||
items = {
|
||||
{items = {"default:baobab_sapling",},
|
||||
rarity = 20,},
|
||||
{items = {"mapgen:baobab_leaves",}},
|
||||
},
|
||||
},
|
||||
groups = {snappy = 1, oddly_breakable_by_hand = 1, flammable = 1, dig_immediate = 1, leaves = 1, leafdecay = 3},
|
||||
sounds = default.node_sound_leaves_defaults()
|
||||
})
|
||||
|
@ -242,6 +274,14 @@ minetest.register_node("mapgen:yellow_ipe_leaves", {
|
|||
tiles = {
|
||||
"mapgen_yellow_ipe_leaves.png",
|
||||
},
|
||||
drop = {
|
||||
max_items = 1,
|
||||
items = {
|
||||
{items = {"default:ipe_sapling",},
|
||||
rarity = 20,},
|
||||
{items = {"mapgen:yellow_ipe_leaves",}},
|
||||
},
|
||||
},
|
||||
groups = {snappy = 1, oddly_breakable_by_hand = 1, flammable = 1, dig_immediate = 1, leaves = 1, leafdecay = 3},
|
||||
sounds = default.node_sound_leaves_defaults()
|
||||
})
|
||||
|
@ -424,6 +464,14 @@ minetest.register_node("mapgen:palm_leaves", {
|
|||
tiles = {
|
||||
"mapgen_palmleaves.png",
|
||||
},
|
||||
drop = {
|
||||
max_items = 1,
|
||||
items = {
|
||||
{items = {"default:palmtree_sapling",},
|
||||
rarity = 20,},
|
||||
{items = {"mapgen:palm_leaves",}},
|
||||
},
|
||||
},
|
||||
groups = {snappy = 1, oddly_breakable_by_hand = 1, flammable = 1, dig_immediate = 1, leaves = 1, leafdecay = 3},
|
||||
sounds = default.node_sound_leaves_defaults()
|
||||
})
|
||||
|
@ -727,6 +775,14 @@ minetest.register_node("mapgen:bamboo_leaves", {
|
|||
type = "fixed",
|
||||
fixed = {-0.4, -0.4, -0.4, 0.4, 0.4, 0.4}
|
||||
},
|
||||
drop = {
|
||||
max_items = 1,
|
||||
items = {
|
||||
{items = {"default:bamboo_sapling",},
|
||||
rarity = 20,},
|
||||
{items = {"mapgen:bamboo_leaves",}},
|
||||
},
|
||||
},
|
||||
})
|
||||
|
||||
minetest.register_node("mapgen:bush", {
|
||||
|
@ -1904,7 +1960,7 @@ minetest.register_abm({
|
|||
interval = 5,
|
||||
chance = 1,
|
||||
action = function(pos, node)
|
||||
if minetest.get_timeofday() <= 0.6 and minetest.get_timeofday() >= 0.2 then
|
||||
if minetest.get_timeofday() <= 0.6 and minetest.get_timeofday() >= 0.2 and pos.y >= -20 then
|
||||
return
|
||||
end
|
||||
minetest.add_particle({
|
||||
|
@ -1928,7 +1984,7 @@ minetest.register_abm({
|
|||
interval = 5,
|
||||
chance = 1,
|
||||
action = function(pos, node)
|
||||
if minetest.get_timeofday() <= 0.6 and minetest.get_timeofday() >= 0.2 then
|
||||
if minetest.get_timeofday() <= 0.6 and minetest.get_timeofday() >= 0.2 and pos.y >= -20 then
|
||||
return
|
||||
end
|
||||
local dir = minetest.facedir_to_dir(node.param2)
|
||||
|
|
After Width: | Height: | Size: 368 B |
After Width: | Height: | Size: 355 B |
After Width: | Height: | Size: 844 B |
After Width: | Height: | Size: 610 B |
|
@ -43,7 +43,7 @@ local function rotate_torch(pos)
|
|||
local n = minetest.get_node(pos)
|
||||
if n ~= nil then
|
||||
if n.name == "mines:dummy" then
|
||||
minetest.set_node(pos, {name="default:torch",param2=1})
|
||||
minetest.set_node(pos, {name="decoblocks:lantern_wall",param2=1})
|
||||
end
|
||||
end
|
||||
end)
|
||||
|
|
|
@ -1,4 +1,124 @@
|
|||
|
||||
minetest.register_globalstep(function()
|
||||
for _, player in ipairs(minetest.get_connected_players()) do
|
||||
if player:get_player_name() ~= "singleplayer" then return end
|
||||
local item = player:get_wielded_item():get_name()
|
||||
if item == "default:torch" or item == "decoblocks:lantern" then
|
||||
local pos = player:getpos()
|
||||
local item = player:get_wielded_item()
|
||||
item:add_wear(2000)
|
||||
pos.y = pos.y+1.2
|
||||
if minetest.get_node(pos).name == "air" then
|
||||
minetest.set_node(pos, {name="tools:light"})
|
||||
end
|
||||
for i=1,2 do
|
||||
local remove_node = minetest.find_node_near(pos, 1, {"tools:light"}, false)
|
||||
if remove_node then
|
||||
minetest.remove_node(remove_node)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
return item
|
||||
end)
|
||||
|
||||
minetest.register_node("tools:light", {
|
||||
drawtype = "airlike",
|
||||
groups = {not_in_creative_inventory=1},
|
||||
walkable = false,
|
||||
pointable = false,
|
||||
light_source = 10,
|
||||
})
|
||||
|
||||
minetest.register_abm({
|
||||
nodenames = {"tools:light"},
|
||||
interval = 1,
|
||||
chance = 1,
|
||||
action = function(pos, node)
|
||||
minetest.remove_node(pos)
|
||||
end,
|
||||
})
|
||||
|
||||
minetest.register_craftitem("tools:watering_can", {
|
||||
description = "Watering Can",
|
||||
inventory_image = "tools_watering_can.png",
|
||||
liquids_pointable = true,
|
||||
on_use = function(item, placer, pointed_thing)
|
||||
local pos = pointed_thing.under
|
||||
pos.y = pos.y+1
|
||||
local mg_name = minetest.get_mapgen_setting("mg_name")
|
||||
local node = minetest.get_node(pos)
|
||||
if node.name == "default:sapling" then
|
||||
minetest.log("action", "A sapling grows into a tree at "..
|
||||
minetest.pos_to_string(pos))
|
||||
if mg_name == "v6" then
|
||||
default.grow_tree(pos, random(1, 4) == 1)
|
||||
else
|
||||
default.grow_new_apple_tree(pos)
|
||||
end
|
||||
elseif node.name == "default:junglesapling" then
|
||||
minetest.log("action", "A jungle sapling grows into a tree at "..
|
||||
minetest.pos_to_string(pos))
|
||||
if mg_name == "v6" then
|
||||
default.grow_jungle_tree(pos)
|
||||
else
|
||||
default.grow_new_jungle_tree(pos)
|
||||
end
|
||||
elseif node.name == "default:pine_sapling" then
|
||||
minetest.log("action", "A pine sapling grows into a tree at "..
|
||||
minetest.pos_to_string(pos))
|
||||
local snow = minetest.find_node_near(pos, 1, {"group:snowy"})
|
||||
if mg_name == "v6" then
|
||||
default.grow_pine_tree(pos, snow)
|
||||
elseif snow then
|
||||
default.grow_new_snowy_pine_tree(pos)
|
||||
else
|
||||
default.grow_new_pine_tree(pos)
|
||||
end
|
||||
elseif node.name == "default:acacia_sapling" then
|
||||
minetest.log("action", "An acacia sapling grows into a tree at "..
|
||||
minetest.pos_to_string(pos))
|
||||
default.grow_new_acacia_tree(pos)
|
||||
elseif node.name == "default:aspen_sapling" then
|
||||
minetest.log("action", "An aspen sapling grows into a tree at "..
|
||||
minetest.pos_to_string(pos))
|
||||
default.grow_new_aspen_tree(pos)
|
||||
elseif node.name == "default:bush_sapling" then
|
||||
minetest.log("action", "A bush sapling grows into a bush at "..
|
||||
minetest.pos_to_string(pos))
|
||||
default.grow_bush(pos)
|
||||
elseif node.name == "default:acacia_bush_sapling" then
|
||||
minetest.log("action", "An acacia bush sapling grows into a bush at "..
|
||||
minetest.pos_to_string(pos))
|
||||
default.grow_acacia_bush(pos)
|
||||
elseif node.name == "default:palmtree_sapling" then
|
||||
minetest.log("action", "A palm tree sapling grows into a tree at "..
|
||||
minetest.pos_to_string(pos))
|
||||
default.grow_new_palm_tree(pos)
|
||||
elseif node.name == "default:baobab_sapling" then
|
||||
minetest.log("action", "A baobab tree sapling grows into a tree at "..
|
||||
minetest.pos_to_string(pos))
|
||||
default.grow_new_baobab_tree(pos)
|
||||
elseif node.name == "default:ipe_sapling" then
|
||||
minetest.log("action", "A yellow ipe tree sapling grows into a tree at "..
|
||||
minetest.pos_to_string(pos))
|
||||
default.grow_new_ipe_tree(pos)
|
||||
elseif node.name == "default:big_pine_sapling" then
|
||||
minetest.log("action", "A big pine tree sapling grows into a tree at "..
|
||||
minetest.pos_to_string(pos))
|
||||
default.grow_new_big_pine_tree(pos)
|
||||
elseif node.name == "default:willow_sapling" then
|
||||
minetest.log("action", "A willow tree sapling grows into a tree at "..
|
||||
minetest.pos_to_string(pos))
|
||||
default.grow_new_willow_tree(pos)
|
||||
elseif node.name == "default:bamboo_sapling" then
|
||||
minetest.log("action", "A bamboo sapling grows into a tree at "..
|
||||
minetest.pos_to_string(pos))
|
||||
default.grow_new_bamboo_tree(pos)
|
||||
end
|
||||
end,
|
||||
})
|
||||
|
||||
minetest.register_craftitem("tools:superpick", {
|
||||
description = "Super Pickaxe",
|
||||
inventory_image = "default_tool_diamondpick.png^[colorize:red:100",
|
||||
|
|
After Width: | Height: | Size: 442 B |
After Width: | Height: | Size: 290 B |
|
@ -154,6 +154,7 @@ minetest.register_globalstep(function(dtime)
|
|||
display_weather = false
|
||||
end
|
||||
end
|
||||
if pos.y <= -20 then display_weather = false end
|
||||
--apply weather effect
|
||||
if display_weather then
|
||||
apply_weather(player, pos, weather.weather)
|
||||
|
|