Differences From
Artifact [7fd77150af]:
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