LegendofMinetest/mods/masks/init.lua

80 lines
2.4 KiB
Lua

minetest.register_on_leaveplayer(function(player)
local pos = player:getpos()
local objs = minetest.env:get_objects_inside_radius(pos, 1)
for _,obj in ipairs(objs) do
local name = obj:get_luaentity().name
if obj:get_luaentity() ~= nil then return end
if name == "masks:deku" or name == "masks:scent" then
obj:remove()
end
end
end)
minetest.register_entity("masks:deku", {
visual = "mesh",
physical = false,
hp_max = 1,
mesh = "dekumask.b3d",
textures = {"masks_deku.png"},
collisionbox = {0,0,0,0,0,0},
})
minetest.register_craftitem("masks:deku_item", {
description = "Deku Mask",
inventory_image = "masks_deku_inv.png",
on_use = function(itemstack, placer, pointed_thing)
local pos = placer:getpos()
-- local objs = minetest.env:get_objects_inside_radius(pos, 1)
-- for _,obj in ipairs(objs) do
-- if obj:get_luaentity() ~= nil and obj:get_luaentity().name == "masks:deku" then
-- obj:remove()
-- end
-- end
local ent = minetest.env:add_entity(pos, "masks:deku")
ent:set_attach(placer, "", {x=0, y=0, z=0}, {x=0, y=0, z=0})
end,
on_place = function(itemstack, placer, pointed_thing)
local pos = placer:getpos()
local objs = minetest.env:get_objects_inside_radius(pos, 1)
for _,obj in ipairs(objs) do
if obj:get_luaentity() ~= nil and obj:get_luaentity().name == "masks:deku" then
obj:remove()
end
end
end
})
minetest.register_entity("masks:scent", {
visual = "mesh",
physical = false,
hp_max = 1,
mesh = "dekumask.b3d",
textures = {"masks_scent.png"},
collisionbox = {0,0,0,0,0,0},
})
minetest.register_craftitem("masks:scent_item", {
description = "Mask of Scents",
inventory_image = "masks_scent_inv.png",
on_use = function(itemstack, placer, pointed_thing)
local pos = placer:getpos()
-- local objs = minetest.env:get_objects_inside_radius(pos, 1)
-- for _,obj in ipairs(objs) do
-- if obj:get_luaentity() ~= nil and obj:get_luaentity().name == "masks:deku" then
-- obj:remove()
-- end
-- end
local ent = minetest.env:add_entity(pos, "masks:scent")
ent:set_attach(placer, "", {x=0, y=0, z=0}, {x=0, y=0, z=0})
end,
on_place = function(itemstack, placer, pointed_thing)
local pos = placer:getpos()
local objs = minetest.env:get_objects_inside_radius(pos, 1)
for _,obj in ipairs(objs) do
if obj:get_luaentity() ~= nil and obj:get_luaentity().name == "masks:scent" then
obj:remove()
end
end
end
})