starlit  Diff

Differences From Artifact [75e0d781d2]:

To Artifact [aa93f93a5c]:


    64     64   			z = pos.z + r(0 - range, range);
    65     65   		}
    66     66   	end
    67     67   	for name, inv in pairs(meta.inventory) do
    68     68   		if only and not lib.tbl.has(only,name) then goto skip end
    69     69   		for _, item in pairs(inv) do
    70     70   			if not item:is_empty() then
    71         -				minetest.add_item(offset(pos,0.4), item)
           71  +				core.add_item(offset(pos,0.4), item)
    72     72   			end
    73     73   		end
    74     74   	::skip::end
    75     75   end;
    76     76   
    77     77   local force = function(pos,preload_for)
    78         -	local n = minetest.get_node_or_nil(pos)
           78  +	local n = core.get_node_or_nil(pos)
    79     79   	if preload_for then lib.node.preload(pos,preload_for) end
    80     80   	if n then return n end
    81     81   
    82         -	minetest.load_area(pos)
    83         -	return minetest.get_node(pos)
           82  +	core.load_area(pos)
           83  +	return core.get_node(pos)
    84     84   end;
    85     85   
    86     86   local amass = function(startpoint,names,directions)
    87     87   	if not directions then directions = ofs.neighbors end
    88     88   	local check = function(n)
    89     89   		return lib.tbl.has(names, n.name, function(check,against)
    90     90   			return lib.item.groupmatch(against,check)
................................................................................
   123    123   	until i > #stack
   124    124   	return nodes, positions
   125    125   end;
   126    126   
   127    127   local is_air = function(pos)
   128    128   	local n = force(pos)
   129    129   	if n.name == 'air' then return true end
   130         -	local d = minetest.registered_nodes[n.name]
          130  +	local d = core.registered_nodes[n.name]
   131    131   	if not d then return false end
   132    132   	return (d.walkable == false) and (d.drawtype == 'airlike' or d.buildable_to == true)
   133    133   end;
   134    134   
   135    135   local is_clear = function(pos)
   136    136   	if not lib.node.is_air(pos) then return false end
   137         -	local ents = minetest.get_objects_inside_radius(pos,0.5)
          137  +	local ents = core.get_objects_inside_radius(pos,0.5)
   138    138   	if #ents > 0 then return false end
   139    139   	return true
   140    140   end;
   141    141   
   142    142   local function boxwarp(nb, mogrifier, par)
   143    143   	if nb == nil then
   144    144   		return
................................................................................
   184    184   		end
   185    185   	end; 
   186    186   
   187    187   	is_air = is_air;
   188    188   	is_clear = is_clear;
   189    189   
   190    190   	insert = function(item, slot, npos, user, inv)
   191         -		inv = inv or minetest.get_meta(npos):get_inventory()
          191  +		inv = inv or core.get_meta(npos):get_inventory()
   192    192   		if inv:room_for_item(slot,item) then
   193    193   			inv:add_item(slot,item)
   194    194   		else repeat
   195    195   			if user then
   196    196   				local ui = user:get_inventory()
   197    197   				if ui:room_for_item('main', item) then
   198    198   					ui:add_item('main', item)
   199    199   					break
   200    200   				end
   201    201   			end
   202         -			minetest.add_item(npos, item)
          202  +			core.add_item(npos, item)
   203    203   		until true end
   204    204   	end;
   205    205   
   206    206   	install_bed = function(bed, where, dir)
   207    207   		local bottom = bed .. '_bottom'
   208    208   		local top = bed .. '_top'
   209    209   		local d
   210    210   		if type(dir) == 'number' then
   211    211   			d = dir
   212         -			dir = minetest.facedir_to_dir(d)
          212  +			dir = core.facedir_to_dir(d)
   213    213   		else
   214         -			d = minetest.dir_to_facedir(dir)
          214  +			d = core.dir_to_facedir(dir)
   215    215   		end
   216    216   		if not is_clear(where) and is_clear(where - dir) then return false end
   217         -		minetest.set_node(where,       {name = top, param2 = d})
   218         -		minetest.set_node(where - dir, {name = bottom, param2 = d})
          217  +		core.set_node(where,       {name = top, param2 = d})
          218  +		core.set_node(where - dir, {name = bottom, param2 = d})
   219    219   		return true
   220    220   	end;
   221    221   
   222    222   	get_arrival_point = function(pos)
   223    223   		local try = function(p)
   224    224   			local air = lib.node.is_clear
   225    225   			if air(p) then
................................................................................
   236    236   		end
   237    237   	end;
   238    238   
   239    239   
   240    240   	forneighbor = function(pos, n, fn)
   241    241   		for _,p in pairs(n) do
   242    242   			local sum = vector.add(pos, p)
   243         -			local n = minetest.get_node(sum)
          243  +			local n = core.get_node(sum)
   244    244   			if n.name == 'ignore' then
   245         -				minetest.load_area(sum)
   246         -				n = minetest.get_node(sum)
          245  +				core.load_area(sum)
          246  +				n = core.get_node(sum)
   247    247   			end
   248    248   			if fn(sum, n) == false then break end
   249    249   		end
   250    250   	end;
   251    251   
   252    252   	amass = amass;
   253    253   	
................................................................................
   258    258   			x = math.floor(pos.x / 16);
   259    259   			y = math.floor(pos.y / 16);
   260    260   			z = math.floor(pos.z / 16);
   261    261   		}
   262    262   	end;
   263    263   
   264    264   	preload = function(pos, user)
   265         -		minetest.load_area(pos)
          265  +		core.load_area(pos)
   266    266   		user:send_mapblock(lib.node.blockpos(pos))
   267    267   	end;
   268    268   
   269    269   	discharger = function(pos)
   270    270   		local below = force(vector.subtract(pos,{x=0,y=1,z=0}))
   271    271   		if below.name == 'hopper:hopper'
   272    272   		or below.name == 'hopper:hopper_side' then
   273         -			local hopper = minetest.get_meta(below):get_inventory()
          273  +			local hopper = core.get_meta(below):get_inventory()
   274    274   			return function(i)
   275    275   				if hopper:room_for_item('main',i) then
   276    276   					return hopper:add_item('main',i), true
   277    277   				end
   278    278   				return i, false
   279    279   			end
   280    280   		else
................................................................................
   287    287   			max_items = 1;
   288    288   			items = {
   289    289   				{ items = {id} };
   290    290   			};
   291    291   		}
   292    292   		local next_apn = tbl.after_place_node
   293    293   		tbl.after_place_node = function(...) local pos, who, stack = ...
   294         -			minetest.get_meta(pos):from_table(stack:get_meta():to_table())
          294  +			core.get_meta(pos):from_table(stack:get_meta():to_table())
   295    295   			if next_apn then return next_apn(...) end
   296    296   		end
   297    297   		local next_pm = tbl.preserve_metadata
   298    298   		tbl.preserve_metadata = function(...) local pos, node, meta, drops = ...
   299    299   			drops[1]:get_meta():from_table({fields = meta})
   300    300   			if next_pm then return next_pm(...) end
   301    301   		end
   302    302   		return tbl
   303    303   	end;
   304    304   	reg_autopreserve = function(id, tbl)
   305         -		minetest.register_node(id, lib.node.autopreserve(id, tbl))
          305  +		core.register_node(id, lib.node.autopreserve(id, tbl))
   306    306   	end;
   307    307   
   308    308   	boxwarp = boxwarp;
   309    309   	boxwarped = boxwarped;
   310    310   }