@ -1,25 +1,21 @@ 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					local  ipairs ,  ItemStack ,  minetest ,  vector ,  include ,  nodecore  
					 
					 
					 
					local  ipairs ,  ItemStack ,  vector ,  include ,  nodecore  
				
			 
			
				
				
			
		
	
		
		
			
				
					
					 
					 
					 
					    =  ipairs ,  ItemStack ,  minetest ,  vector ,  include ,  nodecore   
					 
					 
					 
					    =  ipairs ,  ItemStack ,  vector ,  include ,  nodecore   
				
			 
			
				
				
			
		
	
		
		
	
		
		
	
		
		
			
				
					
					 
					 
					 
					
 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					rawset ( _G ,  " nc_extended_rotating " ,  { } )  
					 
					 
					 
					rawset ( _G ,  " nc_extended_rotating " ,  { } )  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					nc_extended_rotating.hud       =  include ( " hud " )  
					 
					 
					 
					nc_extended_rotating.hud       =  include ( " hud " )  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					nc_extended_rotating.registry  =  include ( " registry " )  
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					nc_extended_rotating.rotate    =  include ( " rotate " )  
					 
					 
					 
					nc_extended_rotating.rotate    =  include ( " rotate " )  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					nc_extended_rotating.utility   =  include ( " utility " )  -- Depends on `rotate`.  
					 
					 
					 
					nc_extended_rotating.utility   =  include ( " utility " )   -- Depends on `rotate`.  
				
			 
			
				
				
			
		
	
		
		
			
				
					
					 
					 
					 
					nc_extended_rotating.entity    =  include ( " entity " )   -- Depends on `utility`.  
					 
					 
					 
					nc_extended_rotating.entity    =  include ( " entity " )    -- Depends on `utility`.  
				
			 
			
				
				
			
		
	
		
		
			
				
					
					 
					 
					 
					nc_extended_rotating.state     =  include ( " state " )    -- Depends on `registry`, `rotate` and `utility`.  
					 
					 
					 
					nc_extended_rotating.registry  =  include ( " registry " )  -- Depends on `rotate` and `state` (late).  
				
			 
			
				
				
			
		
	
		
		
	
		
		
	
		
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					nc_extended_rotating.state     =  include ( " state " )     -- Depends on `registry`, `rotate` and `utility`.  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					
 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					local  update_entity_hint     =  nc_extended_rotating.entity . update_entity_hint  
					 
					 
					 
					-------------------------------------  
				
			 
			
				
				
			
		
	
		
		
			
				
					
					 
					 
					 
					local  update_player_hud      =  nc_extended_rotating.hud . update_player_hud  
					 
					 
					 
					-- Register Player Update Function --  
				
			 
			
				
				
			
		
	
		
		
			
				
					
					 
					 
					 
					local  is_rotatable           =  nc_extended_rotating.registry . is_rotatable  
					 
					 
					 
					-------------------------------------  
				
			 
			
				
				
			
		
	
		
		
			
				
					
					 
					 
					 
					local  register_rotatable     =  nc_extended_rotating.registry . register_rotatable ;  
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					local  rotate_node            =  nc_extended_rotating.rotate . rotate_node  
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					local  update_rotating_state  =  nc_extended_rotating.state . update_rotating_state  
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					local  get_rotating_state     =  nc_extended_rotating.state . get_rotating_state  
					 
					 
					 
					 
				
			 
			
		
	
		
		
	
		
		
	
		
		
	
		
		
			
				
					
					 
					 
					 
					
 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					-- TODO: Fix HUD showing rotation hint when we wouldn't / can't rotate.  
					 
					 
					 
					local  update_rotating_state  =  nc_extended_rotating.state . update_rotating_state  
				
			 
			
				
				
			
		
	
		
		
			
				
					
					 
					 
					 
					-- TODO: Simplify registration and `on_rightclick` replacement into one call.  
					 
					 
					 
					local  update_player_hud      =  nc_extended_rotating.hud . update_player_hud  
				
			 
			
				
				
			
		
	
		
		
			
				
					
					 
					 
					 
					-- TODO: Add some more comments.  
					 
					 
					 
					local  update_entity_hint     =  nc_extended_rotating.entity . update_entity_hint  
				
			 
			
				
				
			
		
	
		
		
	
		
		
	
		
		
	
		
		
			
				
					
					 
					 
					 
					
 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					nodecore.register_playerstep ( {  
					 
					 
					 
					nodecore.register_playerstep ( {  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    label  =  " nc_extended_rotating:update " ,   
					 
					 
					 
					    label  =  " nc_extended_rotating:update " ,   
				
			 
			
		
	
	
		
		
			
				
					
						
						
						
							
								 
							 
						
					 
					 
					@ -30,106 +26,39 @@ nodecore.register_playerstep({ 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    end ,   
					 
					 
					 
					    end ,   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					} )  
					 
					 
					 
					} )  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					
 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					-- Register rotatable nodes from NodeCore.  
					 
					 
					 
					---------------------------------------  
				
			 
			
				
				
			
		
	
		
		
			
				
					
					 
					 
					 
					do  
					 
					 
					 
					-- Register Rotatable NodeCore Nodes --  
				
			 
			
				
				
			
		
	
		
		
			
				
					
					 
					 
					 
					    local  function  nodecore_filtered_lookup ( eq_func )   
					 
					 
					 
					---------------------------------------  
				
			 
			
				
				
			
		
	
		
		
			
				
					
					 
					 
					 
					        local  lookup  =  { }   
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					        for  i  =  0 ,  23  do   
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					            local  facedir  =  nodecore.facedirs [ i ]   
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					            for  j  =  0 ,  # lookup  -  1  do   
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					                local  other  =  nodecore.facedirs [ lookup [ j ] ]   
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					                if  eq_func ( facedir ,  other )  then  lookup [ i ]  =  j ;  break  end   
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					            end   
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					            lookup [ i ]  =  lookup [ i ]  or  i   
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					        end   
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					        return  lookup   
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    end   
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					
 
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    local  LENS_FILTERED_LOOKUP  =  nodecore_filtered_lookup (   
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					        function ( a ,  b )  return  vector.equals ( a.f ,  b.f )  end )   
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    local  PRISM_FILTERED_LOOKUP  =  nodecore_filtered_lookup (   
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					        function ( a ,  b )  return  vector.equals ( a.f ,  b.r )  and  vector.equals ( a.r ,  b.f )  end )   
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    local  PANEL_FILTERED_LOOKUP  =  nodecore_filtered_lookup (   
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					        function ( a ,  b )  return  vector.equals ( a.f ,  b.r )  and  vector.equals ( a.r ,  b.f )  end )   
					 
					 
					 
					 
				
			 
			
		
	
		
		
	
		
		
	
		
		
	
		
		
			
				
					
					 
					 
					 
					
 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    for  _ ,  lens_state  in  ipairs ( {  " " ,  " _on " ,  " _glow " ,  " _glow_start "  } )  do   
					 
					 
					 
					local  nodecore_filtered_lookup  =  nc_extended_rotating.utility . nodecore_filtered_lookup  
				
			 
			
				
				
			
		
	
		
		
			
				
					
					 
					 
					 
					        register_rotatable ( " nc_optics:lens "  ..  lens_state ,  nil ,  LENS_FILTERED_LOOKUP )  end   
					 
					 
					 
					local  register_rotatable        =  nc_extended_rotating.registry . register_rotatable ;  
				
			 
			
				
				
			
		
	
		
		
			
				
					
					 
					 
					 
					    for  _ ,  prism_state  in  ipairs ( {  " " ,  " _on " ,  " _gated "  } )  do   
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					        register_rotatable ( " nc_optics:prism "  ..  prism_state ,  nil ,  PRISM_FILTERED_LOOKUP )  end   
					 
					 
					 
					 
				
			 
			
		
	
		
		
	
		
		
	
		
		
			
				
					
					 
					 
					 
					
 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    -- Register all existing door panels.   
					 
					 
					 
					-- Register lenses.  
				
			 
			
				
				
			
		
	
		
		
			
				
					
					 
					 
					 
					    nodecore.register_on_register_item ( {   
					 
					 
					 
					local  LENS_FILTERED_LOOKUP  =  nodecore_filtered_lookup ( function ( a ,  b )  
				
			 
			
				
				
			
		
	
		
		
			
				
					
					 
					 
					 
					        retroactive  =  true ,   
					 
					 
					 
					    return  vector.equals ( a.f ,  b.f )  end )   
				
			 
			
				
				
			
		
	
		
		
			
				
					
					 
					 
					 
					        func  =  function ( name ,  def )   
					 
					 
					 
					for  _ ,  lens_state  in  ipairs ( {  " " ,  " _on " ,  " _glow " ,  " _glow_start "  } )  do  
				
			 
			
				
				
			
		
	
		
		
			
				
					
					 
					 
					 
					            -- NOTE: This function is actually called BEFORE the item is registered with Minetest.   
					 
					 
					 
					    register_rotatable ( " nc_optics:lens "  ..  lens_state ,  nil ,  LENS_FILTERED_LOOKUP )  end   
				
			 
			
				
				
			
		
	
		
		
			
				
					
					 
					 
					 
					            --       Because of this, looking up the node definition by name does not work.   
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					            name  =  name : gsub ( " ^: " ,  " " )  -- Fix for older versions of NodeCore.   
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					            if  def.groups  and  def.groups . door_panel  and  ( not  def.groups . door )   
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					                then  register_rotatable ( name ,  def ,  PANEL_FILTERED_LOOKUP )  end   
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					        end ,   
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    } )   
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					end  
					 
					 
					 
					 
				
			 
			
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
			
				
					
					 
					 
					 
					
 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					local  function  handle_rightclick ( pos ,  node ,  clicker )  
					 
					 
					 
					-- Register prisms.  
				
			 
			
				
				
			
		
	
		
		
			
				
					
					 
					 
					 
					    local  state  =  get_rotating_state ( clicker ,  pos ,  node  )  
					 
					 
					 
					local  PRISM_FILTERED_LOOKUP  =  nodecore_filtered_lookup ( function ( a ,  b )  
				
			 
			
				
				
			
		
	
		
		
			
				
					
					 
					 
					 
					    if  ( not  state )  or  ( not  state.success )  then  return  end   
					 
					 
					 
					    return  vector.equals ( a.f ,  b.r )  and  vector.equals ( a.r ,  b.f )  end )   
				
			 
			
				
				
			
		
	
		
		
			
				
					
					 
					 
					 
					    rotate_node ( pos ,  node ,  state.facedir )   
					 
					 
					 
					for  _ ,  prism_state  in  ipairs ( {  " " ,  " _on " ,  " _gated "  } )  do  
				
			 
			
				
				
			
		
	
		
		
			
				
					
					 
					 
					 
					end  
					 
					 
					 
					    register_rotatable ( " nc_optics:prism "  ..  prism_state ,  nil ,  PRISM_FILTERED_LOOKUP )  end   
				
			 
			
				
				
			
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
			
				
					
					 
					 
					 
					
 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					-- Replace `on_rightclick` of rotatable nodes from NodeCore.  
					 
					 
					 
					-- Register all existing and to-be-registered door panels.  
				
			 
			
				
				
			
		
	
		
		
			
				
					
					 
					 
					 
					do  
					 
					 
					 
					local  PANEL_FILTERED_LOOKUP  =  nodecore_filtered_lookup ( function ( a ,  b )  
				
			 
			
				
				
			
		
	
		
		
			
				
					
					 
					 
					 
					    local  function  replace_optics_on_rightclick ( name )   
					 
					 
					 
					    return  vector.equals ( a.f ,  b.r )  and  vector.equals ( a.r ,  b.f )  end )   
				
			 
			
				
				
			
		
	
		
		
			
				
					
					 
					 
					 
					        local  def  =  minetest.registered_nodes [ name ]   
					 
					 
					 
					nodecore.register_on_register_item ( {  
				
			 
			
				
				
			
		
	
		
		
			
				
					
					 
					 
					 
					        def.on_rightclick  =  handle_rightclick   
					 
					 
					 
					    retroactive  =  true ,   
				
			 
			
				
				
			
		
	
		
		
			
				
					
					 
					 
					 
					    end   
					 
					 
					 
					    func  =  function ( name ,  def )   
				
			 
			
				
				
			
		
	
		
		
			
				
					
					 
					 
					 
					
 
					 
					 
					 
					        -- This function is actually called BEFORE the item is registered with Minetest.   
				
			 
			
				
				
			
		
	
		
		
			
				
					
					 
					 
					 
					    -- Panels can't have their `on_rightclick` overridden completely.   
					 
					 
					 
					        -- Because of this, looking up the node definition by name does not work.   
				
			 
			
				
				
			
		
	
		
		
			
				
					
					 
					 
					 
					    -- We need to call the default implementation when holding a "pin".   
					 
					 
					 
					        -- Thankfully, the panel is registered before the door, and as such it already exists.   
				
			 
			
				
				
			
		
	
		
		
			
				
					
					 
					 
					 
					    local  function  replace_panel_on_rightclick ( name ,  pin )   
					 
					 
					 
					        if  def.groups  and  def.groups . door  then   
				
			 
			
				
				
			
		
	
		
		
			
				
					
					 
					 
					 
					        local  def  =  minetest.registered_nodes [ name ]   
					 
					 
					 
					            local  panel  =  def.drop_in_place . name              -- The panel version of the door.   
				
			 
			
				
				
			
		
	
		
		
			
				
					
					 
					 
					 
					        local  default_rightclick  =  def.on_rightclick   
					 
					 
					 
					            local  pin    =  def.drop_non_silktouch  or  def.drop  -- Dropped item is the door's pin.   
				
			 
			
				
				
			
		
	
		
		
			
				
					
					 
					 
					 
					        def.on_rightclick  =  function ( pos ,  node ,  clicker ,  item_stack ,  ... )   
					 
					 
					 
					            register_rotatable ( panel ,  nil ,  PANEL_FILTERED_LOOKUP ,   
				
			 
			
				
				
			
		
	
		
		
			
				
					
					 
					 
					 
					            if  nodecore.protection_test ( pos ,  clicker )  or  ItemStack ( item_stack ) : get_name ( )  ==  pin   
					 
					 
					 
					                function ( _ ,  _ ,  _ ,  item_stack )  return  ItemStack ( item_stack ) : get_name ( )  ==  pin  end )   
				
			 
			
				
				
			
		
	
		
		
			
				
					
					 
					 
					 
					                then  return  default_rightclick ( pos ,  node ,  clicker ,  item_stack ,  ... )   
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					                else  return  handle_rightclick ( pos ,  node ,  clicker )   
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					            end   
					 
					 
					 
					 
				
			 
			
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
			
				
					
					 
					 
					 
					        end   
					 
					 
					 
					        end   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    end   
					 
					 
					 
					    end ,   
				
			 
			
				
				
			
		
	
		
		
			
				
					
					 
					 
					 
					
 
					 
					 
					 
					} )  
				
			 
			
				
				
			
		
	
		
		
			
				
					
					 
					 
					 
					    for  _ ,  lens_state  in  ipairs ( {  " " ,  " _on " ,  " _glow " ,  " _glow_start "  } )  do   
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					        replace_optics_on_rightclick ( " nc_optics:lens "  ..  lens_state )  end   
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    for  _ ,  lens_state  in  ipairs ( {  " " ,  " _on " ,  " _gated "  } )  do   
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					        replace_optics_on_rightclick ( " nc_optics:prism "  ..  lens_state )  end   
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					
 
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    -- Replace `on_rightclick` for all existing doors' panels.   
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    nodecore.register_on_register_item ( {   
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					        retroactive  =  true ,   
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					        func  =  function ( name ,  def )   
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					            if  def.groups  and  def.groups . door  then   
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					                local  panel  =  def.drop_in_place . name              -- The panel version of the door.   
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					                local  pin    =  def.drop_non_silktouch  or  def.drop  -- Dropped item is the door's pin.   
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					                replace_panel_on_rightclick ( panel ,  pin )   
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					            end   
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					        end ,   
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    } )   
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					end  
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					
 
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					-- Override `nc_scaling`'s default empty hand right-click behavior so we can use it  
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					-- to rotate things when holding sneak, which doesn't trigger a node's `on_rightclick`.  
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					local  default_on_place  =  minetest.registered_items [ " " ] . on_place  
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					minetest.registered_items [ " " ] . on_place  =  function ( item_stack ,  placer ,  pointed_thing ,  ... )  
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    if  pointed_thing.type  ==  " node "  then   
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					        -- Player must sneak in order for this to run.   
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					        -- Non-sneak is handled by node's `on_rightclick`.   
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					        if  minetest.is_player ( placer )  and  placer : get_player_control ( ) . sneak  then   
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					            local  pos   =  pointed_thing.under   
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					            local  node  =  minetest.get_node ( pos )   
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					            if  is_rotatable ( node )  then   
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					                handle_rightclick ( pos ,  node ,  placer )   
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					                return  -- Skip default behavior.   
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					            end   
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					        end   
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    end   
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    -- Call the default function, so we can still get the "scaling" functionality.   
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    default_on_place ( item_stack ,  placer ,  pointed_thing ,  ... )   
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					end