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")
|
||||
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 = {
|
||||
"default:axe_bronze",
|
||||
"default:axe_diamond",
|
||||
|
@ -56,6 +77,7 @@ moretrees.cutting_tools = {
|
|||
"titanium:axe",
|
||||
}
|
||||
|
||||
dofile(modpath.."/ownership.lua")
|
||||
dofile(modpath.."/tree_models.lua")
|
||||
dofile(modpath.."/node_defs.lua")
|
||||
dofile(modpath.."/biome_defs.lua")
|
||||
|
|
|
@ -40,6 +40,14 @@ for i in ipairs(moretrees.treelist) do
|
|||
is_ground_content = true,
|
||||
groups = {tree=1,snappy=1,choppy=2,oddly_breakable_by_hand=1,flammable=2},
|
||||
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", {
|
||||
|
@ -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},
|
||||
sounds = default.node_sound_wood_defaults(),
|
||||
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({
|
||||
|
|
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