forked from mtcontrib/moretrees
Moretrees' trunks can now be turned sideways when placing,
using minetest.rotate_and_place() Requires Minetest git commit 1d856b73 or later.
This commit is contained in:
parent
c3e3f7ae38
commit
620a799fb4
22
init.lua
22
init.lua
|
@ -44,6 +44,27 @@ else
|
||||||
dofile(worldpath.."/moretrees_settings.txt")
|
dofile(worldpath.."/moretrees_settings.txt")
|
||||||
end
|
end
|
||||||
|
|
||||||
|
-- Boilerplate to support localized strings if intllib mod is installed.
|
||||||
|
|
||||||
|
local S
|
||||||
|
if moretrees.intllib_modpath then
|
||||||
|
dofile(moretrees.intllib_modpath.."/intllib.lua")
|
||||||
|
S = intllib.Getter(minetest.get_current_modname())
|
||||||
|
else
|
||||||
|
S = function ( s ) return s end
|
||||||
|
end
|
||||||
|
moretrees.gettext = S
|
||||||
|
|
||||||
|
-- infinite stacks checking
|
||||||
|
|
||||||
|
if minetest.get_modpath("unified_inventory") or not minetest.setting_getbool("creative_mode") then
|
||||||
|
moretrees.expect_infinite_stacks = false
|
||||||
|
else
|
||||||
|
moretrees.expect_infinite_stacks = true
|
||||||
|
end
|
||||||
|
|
||||||
|
-- tables, load other files
|
||||||
|
|
||||||
moretrees.cutting_tools = {
|
moretrees.cutting_tools = {
|
||||||
"default:axe_bronze",
|
"default:axe_bronze",
|
||||||
"default:axe_diamond",
|
"default:axe_diamond",
|
||||||
|
@ -56,6 +77,7 @@ moretrees.cutting_tools = {
|
||||||
"titanium:axe",
|
"titanium:axe",
|
||||||
}
|
}
|
||||||
|
|
||||||
|
dofile(modpath.."/ownership.lua")
|
||||||
dofile(modpath.."/tree_models.lua")
|
dofile(modpath.."/tree_models.lua")
|
||||||
dofile(modpath.."/node_defs.lua")
|
dofile(modpath.."/node_defs.lua")
|
||||||
dofile(modpath.."/biome_defs.lua")
|
dofile(modpath.."/biome_defs.lua")
|
||||||
|
|
|
@ -40,6 +40,14 @@ for i in ipairs(moretrees.treelist) do
|
||||||
is_ground_content = true,
|
is_ground_content = true,
|
||||||
groups = {tree=1,snappy=1,choppy=2,oddly_breakable_by_hand=1,flammable=2},
|
groups = {tree=1,snappy=1,choppy=2,oddly_breakable_by_hand=1,flammable=2},
|
||||||
sounds = default.node_sound_wood_defaults(),
|
sounds = default.node_sound_wood_defaults(),
|
||||||
|
on_place = function(itemstack, placer, pointed_thing)
|
||||||
|
local keys=placer:get_player_control()
|
||||||
|
local pos = pointed_thing.under
|
||||||
|
if not moretrees:node_is_owned(pos, placer) then
|
||||||
|
minetest.rotate_and_place(itemstack, placer, pointed_thing,
|
||||||
|
moretrees.expect_infinite_stacks, { invert_wall = keys.sneak })
|
||||||
|
end
|
||||||
|
end
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_node("moretrees:"..treename.."_planks", {
|
minetest.register_node("moretrees:"..treename.."_planks", {
|
||||||
|
@ -378,6 +386,14 @@ minetest.register_node("moretrees:rubber_tree_trunk_empty", {
|
||||||
groups = {tree=1,snappy=1,choppy=2,oddly_breakable_by_hand=1,flammable=2},
|
groups = {tree=1,snappy=1,choppy=2,oddly_breakable_by_hand=1,flammable=2},
|
||||||
sounds = default.node_sound_wood_defaults(),
|
sounds = default.node_sound_wood_defaults(),
|
||||||
paramtype2 = "facedir",
|
paramtype2 = "facedir",
|
||||||
|
on_place = function(itemstack, placer, pointed_thing)
|
||||||
|
local keys=placer:get_player_control()
|
||||||
|
local pos = pointed_thing.under
|
||||||
|
if not moretrees:node_is_owned(pos, placer) then
|
||||||
|
minetest.rotate_and_place(itemstack, placer, pointed_thing,
|
||||||
|
moretrees.expect_infinite_stacks, { invert_wall = keys.sneak })
|
||||||
|
end
|
||||||
|
end
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_abm({
|
minetest.register_abm({
|
||||||
|
|
35
ownership.lua
Normal file
35
ownership.lua
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
|
||||||
|
local S = moretrees.gettext
|
||||||
|
|
||||||
|
function moretrees:node_is_owned(pos, placer)
|
||||||
|
local ownername = false
|
||||||
|
if type(IsPlayerNodeOwner) == "function" then -- node_ownership mod
|
||||||
|
if HasOwner(pos, placer) then -- returns true if the node is owned
|
||||||
|
if not IsPlayerNodeOwner(pos, placer:get_player_name()) then
|
||||||
|
if type(getLastOwner) == "function" then -- ...is an old version
|
||||||
|
ownername = getLastOwner(pos)
|
||||||
|
elseif type(GetNodeOwnerName) == "function" then -- ...is a recent version
|
||||||
|
ownername = GetNodeOwnerName(pos)
|
||||||
|
else
|
||||||
|
ownername = S("someone")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
elseif type(isprotect)=="function" then -- glomie's protection mod
|
||||||
|
if not isprotect(5, pos, placer) then
|
||||||
|
ownername = S("someone")
|
||||||
|
end
|
||||||
|
elseif type(protector)=="table" and type(protector.can_dig)=="function" then -- Zeg9's protection mod
|
||||||
|
if not protector.can_dig(5, pos, placer) then
|
||||||
|
ownername = S("someone")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
if ownername ~= false then
|
||||||
|
minetest.chat_send_player( placer:get_player_name(), S("Sorry, %s owns that spot."):format(ownername) )
|
||||||
|
return true
|
||||||
|
else
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
end
|
Loading…
Reference in New Issue
Block a user