Advertisement
TTFTCUTS

Computercraft sorter API

Feb 3rd, 2013
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 0.98 KB | None | 0 0
  1. -- Sorter ID API, by TTFTCUTS.
  2.  
  3. local sortDir = { [0]=0,[1]=1,[2]=2,[3]=3,[4]=4,[5]=5,["down"] = 0, ["up"] = 1, ["-Z"] = 2, ["+Z"] = 3, ["-X"] = 4, ["+X"] = 5, ["+Y"] = 1, ["-Y"] = 0};
  4. sortDir.south = sortDir["+Z"];
  5. sortDir.east = sortDir["+X"];
  6. sortDir.north = sortDir["-Z"];
  7. sortDir.west = sortDir["-X"];
  8.  
  9. function dir(d)
  10.     return sortDir[d];
  11. end
  12.  
  13. function magic()
  14.     return 7683961; -- WORLD DEPENDANT
  15. end
  16.  
  17. function item2sid( id, damage )
  18.     local m = magic();
  19.    
  20.     local sid = bit.blshift(id, 15);
  21.     sid = bit.bxor( m, sid );
  22.     sid = bit.bxor( sid, damage );
  23.    
  24.     return sid;
  25. end
  26.  
  27. function sid2item( sid )
  28.     local m = magic();
  29.     local h = bit.bxor(sid, m);
  30.    
  31.     local id = bit.brshift( h, 15 );
  32.     id = math.floor(id);
  33.    
  34.     local damage = bit.bxor( h, bit.blshift(id, 15) );
  35.    
  36.     local item = { ["id"]=id, ["damage"]=damage };
  37.     return item;
  38. end
  39.  
  40. function calibrate( id, damage, sid )
  41.     local m = bit.bxor(sid, damage);
  42.     m = bit.bxor( m, bit.blshift( id, 15 ) );
  43.    
  44.     return m;
  45. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement