]> git.lizzy.rs Git - xdecor.git/commitdiff
Enchant Table / Item Frame : don't spawn entities if node get destructed shortly...
authorkilbith <jeanpatrick.guerrero@gmail.com>
Sat, 2 Apr 2016 15:53:28 +0000 (17:53 +0200)
committerkilbith <jeanpatrick.guerrero@gmail.com>
Sat, 2 Apr 2016 15:56:40 +0000 (17:56 +0200)
enchanting.lua
itemframe.lua

index 416a6f59e0b0e184cd96fec634d15b485ef60b56..b26cbf34fcd5da62753ef7b76ee73d8114e66c55 100644 (file)
@@ -180,7 +180,15 @@ minetest.register_entity("xdecor:book_open", {
        visual_size = {x=0.75, y=0.75},
        collisionbox = {0},
        physical = false,
-       textures = {"xdecor_book_open.png"}
+       textures = {"xdecor_book_open.png"},
+       on_activate = function(self)
+               local pos = self.object:getpos()
+               local pos_under = {x=pos.x, y=pos.y-1, z=pos.z}
+
+               if minetest.get_node(pos_under).name ~= "xdecor:enchantment_table" then
+                       self.object:remove()
+               end
+       end
 })
 
 local function cap(S) return S:gsub("^%l", string.upper) end
index f17f1b9f3beab0a99e9eb915c10472308e7f2398..1cbbf24894e2b30082e1c8aae5bd0230fe4b8bc1 100644 (file)
@@ -125,6 +125,11 @@ minetest.register_entity("xdecor:f_item", {
        physical = false,
        textures = {"air"},
        on_activate = function(self, staticdata)
+               local pos = self.object:getpos()
+               if minetest.get_node(pos).name ~= "xdecor:itemframe" then
+                       self.object:remove()
+               end
+
                if tmp.nodename and tmp.texture then
                        self.nodename = tmp.nodename
                        tmp.nodename = nil