starlit  Diff

Differences From Artifact [7fd77150af]:

To Artifact [42f785b164]:


     2      2   -- from the game API
     3      3   
     4      4   local fn = {}
     5      5   local lib = ...
     6      6   
     7      7   -- WARNING: INEFFICIENT AS FUCK
     8      8   fn.identify = function(objref) --> objectid
     9         -	for _, o in pairs(minetest.get_connected_players()) do
            9  +	for _, o in pairs(core.get_connected_players()) do
    10     10   		if objref == o then return o:get_player_name(), 'player' end
    11     11   	end
    12         -	for id, le in pairs(minetest.luaentities) do
           12  +	for id, le in pairs(core.luaentities) do
    13     13   		if le.object == objref then return id, 'entity' end
    14     14   	end
    15     15   end
    16     16   
    17     17   fn.handle = lib.class {
    18     18   	__newindex = function(self,key,newval)
    19     19   		local hnd if self.player
    20         -			then hnd = minetest.get_player_by_name(self._id)
    21         -			else hnd = minetest.luaentities[self._id]
           20  +			then hnd = core.get_player_by_name(self._id)
           21  +			else hnd = core.luaentities[self._id]
    22     22   		end
    23     23   		if key == 'id' then
    24     24   			if type(newval) == 'string' then
    25         -				local p = minetest.get_player_by_name(newval)
           25  +				local p = core.get_player_by_name(newval)
    26     26   				if p then
    27     27   					self._id = newval
    28     28   					self.player = true
    29     29   					return
    30     30   				end
    31     31   			end
    32         -			if minetest.luaentities[newval] then
           32  +			if core.luaentities[newval] then
    33     33   				self._id = newval
    34     34   				self.player = false
    35     35   			else error('attempted to assign invalid ID to entity handle') end
    36     36   		elseif key == 'obj' then
    37     37   			local no, kind = fn.identify(newval)
    38     38   			if no then
    39     39   				self._id = no
................................................................................
    44     44   			else error('attempted to assign invalid ObjectRef to entity handle') end
    45     45   		elseif key == 'stack' and self.kind == 'item' then
    46     46   			hnd:set_item(newval)
    47     47   		end
    48     48   	end;
    49     49   	__index = function(self,key)
    50     50   		local hnd if self.player then
    51         -			hnd = minetest.get_player_by_name(self._id)
           51  +			hnd = core.get_player_by_name(self._id)
    52     52   		else
    53         -			hnd = minetest.luaentities[self._id]
           53  +			hnd = core.luaentities[self._id]
    54     54   		end
    55     55   		if key == 'online' then
    56     56   			return hnd ~= nil
    57     57   		elseif key == 'id' then
    58     58   			if self.player then return nil
    59     59   			else return self._id end
    60     60   		elseif key == 'obj' then
................................................................................
    85     85   					return maxy-miny, miny
    86     86   				else return 0 end
    87     87   			end
    88     88   		end
    89     89   	end;
    90     90   	construct = function(h)
    91     91   		local kind, id
    92         -		if type(h) == 'string' and minetest.get_player_by_name(h) ~= nil then
           92  +		if type(h) == 'string' and core.get_player_by_name(h) ~= nil then
    93     93   			kind = 'player';
    94     94   			id = h
    95         -		elseif minetest.luaentities[h] then
           95  +		elseif core.luaentities[h] then
    96     96   			kind = 'entity';
    97     97   			id = h
    98     98   		else id, kind = fn.identify(h) end
    99     99   
   100    100   		if not id then
   101    101   			error('attempted to construct object handle from invalid value')
   102    102   		end