Merge pull request #20 from 12Me21/master

Improved on_place
This commit is contained in:
Pierre-Yves Rollo 2018-09-21 17:07:11 +02:00 committed by GitHub
commit 30af909da5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 39 additions and 41 deletions

View File

@ -191,26 +191,24 @@ function display_api.on_place(itemstack, placer, pointed_thing)
local above = pointed_thing.above
local under = pointed_thing.under
local dir = {x = under.x - above.x,
y = under.y - above.y,
y = 0,
z = under.z - above.z}
if ndef then
if ndef.paramtype2 == "wallmounted" then
local wdir = minetest.dir_to_wallmounted(dir)
if wdir == 0 or wdir == 1 then
-- If item is not placed on a wall, use the player's view direction instead
if dir.x == 0 and dir.z == 0 then
dir = placer:get_look_dir()
dir.y = 0
wdir = minetest.dir_to_wallmounted(dir)
end
return minetest.item_place(itemstack, placer, pointed_thing, wdir)
else
return minetest.item_place(itemstack, placer, pointed_thing, minetest.dir_to_facedir(dir))
local param2
if ndef then
if ndef.paramtype2 == "wallmounted" then
param2 = minetest.dir_to_wallmounted(dir)
elseif ndef.paramtype2 == "facedir" then
param2 = minetest.dir_to_facedir(dir)
end
end
return minetest.item_place(itemstack, placer, pointed_thing, param2)
end
--- On_construct callback for display_api items. Creates entities and update them.