Infinite stacks fix
authorNovatux <nathanael.courant@laposte.net>
Sun, 12 Jan 2014 15:52:42 +0000 (16:52 +0100)
committerNovatux <nathanael.courant@laposte.net>
Sat, 18 Jan 2014 12:29:06 +0000 (13:29 +0100)
technic/machines/other/frames.lua

index b3a179b900cd52510cbc19e0055938714e034fc7..fed9d85798eee77031c4b08d803536eda74b1d16 100644 (file)
@@ -3,6 +3,8 @@ local S = technic.getter
 
 frames = {}
 
+local infinite_stacks = minetest.setting_getbool("creative_mode") and minetest.get_modpath("unified_inventory") == nil
+
 local frames_pos = {}
 
 -- Helpers
@@ -220,6 +222,7 @@ local nodeboxes= {
                paramtype = "light",
                frame=1,
                drop="technic:frame_111111",
+               sunlight_propagates = true,
                frame_connect_all=function(nodename)
                        l2={}
                        l1={{x=-1,y=0,z=0},{x=1,y=0,z=0},{x=0,y=-1,z=0},{x=0,y=1,z=0},{x=0,y=0,z=-1},{x=0,y=0,z=1}}
@@ -265,10 +268,12 @@ local nodeboxes= {
                        else
                                minetest.set_node(pos, {name = itemstack:get_name()})
                        end
-                       itemstack:take_item()
+                       if not infinite_stacks then
+                               itemstack:take_item()
+                       end
                        return itemstack
                end,
-               on_rightclick = function(pos, node, placer, itemstack)
+               on_rightclick = function(pos, node, placer, itemstack, pointed_thing)
                        if is_supported_node(itemstack:get_name()) then
                                if minetest.is_protected(pos, placer:get_player_name()) then
                                        minetest.log("action", placer:get_player_name()
@@ -312,6 +317,11 @@ local nodeboxes= {
                                obj:get_luaentity():set_node({name=node.name})
                                
                                return itemstack
+                       else
+                               --local pointed_thing = {type = "node", under = pos}
+                               if pointed_thing then
+                                       minetest.item_place_node(itemstack, placer, pointed_thing)
+                               end
                        end
                end,
        })