Advertisement
Guest User

AbyssAPI reworked

a guest
Nov 18th, 2019
122
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. var Necronomicons = {    
  2. //CONTAINERS
  3. Books:[],
  4. connections: [{x: 3, z: 0}, {x: -3, z: 0}, {x: 0, z: 3}, {x: 0, z: -3},{x: 2, z: 2}, {x: -2, z: 2}, {x: 2, z: -2}, {x: -2, z: -2}],
  5.  
  6. //REGISTRATION
  7. setUpAsNecronomicon:function(params){
  8. if(!params.id)  
  9. return Logger.LogError("{setUpAsNecronomicon} params.id должен быть строкой", "Necronomicons");
  10. if(!params.name)  
  11. return Logger.LogError("{setUpAsNecronomicon} params.name должен быть строкой", "Necronomicons");
  12. if(!params.texture)  
  13. return Logger.LogError("{setUpAsNecronomicon} params.name должен быть строкой", "Necronomicons");            
  14. if(!params.maxPE)  
  15. return Logger.LogError("{setUpAsNecronomicon} params.maxPE должен быть числом", "Necronomicons");
  16. if(!params.PEvalue)  
  17. return Logger.LogError("{setUpAsNecronomicon} params.maxPE должен быть числом", "Necronomicons");
  18. if(!params.tier)  
  19. return Logger.LogError("{setUpAsNecronomicon} params.tier должен быть числом", "Necronomicons");
  20. if(!params.isChragable)  
  21. return Logger.LogError("{setUpAsNecronomicon} params.isChragable должен присутсвовать", "Necronomicons");
  22. Books.push(params);
  23. },      
  24. setUpNecronomicons:function(){
  25.    var Books = this.Books;
  26.      for(var i in Books){
  27.        var Book = Book[i];  
  28.          IDRegistry.genItemID(Book.id);
  29.            Item.createItem(Book.id, Book.name, Book.texture,{isTech:false,stack:1});
  30.              Item.setMaxDamage(Book.id, Book.maxPE + 1);  
  31.         }
  32. },
  33.      
  34. //NRG
  35. addPEToStorage:function(ni,value){
  36. this.decreasePEFromItem(ni, value);
  37.  
  38.  
  39.    
  40. },
  41. getBookData:function(idb){    
  42.    for(var t in this.Books){
  43.      if(this.Books[t].id == idb){  
  44.        return this.Books[t];
  45.         }
  46.    }
  47. },
  48. getPEFromItem:function(item){
  49.    var data = this.getBookData(item);
  50.      if(!data){
  51.        return 0;
  52.         }
  53.        return Math.min(data.maxPE - item.data, data.PEvalue);
  54. },
  55. decreasePEFromItem: function(item, count){    
  56.    if(this.getPEFromItem(item) != 0 && this.getPEFromItem(item) >= count){
  57.        return this.getItemData(item.id).PEvalue - count;
  58.         }
  59. },  
  60. //STRUCTURE
  61. getStructure:function(altar, block, coords){
  62.    var connections = this.connections;
  63.      for(var i in connections){
  64.        var connect = connections[i];
  65.          if(World.getBlock(coords.x + connect.x, coords.y, coords.z + connect.z).id == block){
  66.           World.destroyBlock(coords.x + connect.x, coords.y, coords.z + connect.z, false);    
  67.            World.setBlock(coords.x + connect.x, coords.y, coords.z + connect.z, altar, 0);
  68.       }else{
  69.            Game.message("Structure or check code is invalid please rebuild structure");
  70.             }
  71.         }
  72. },
  73. connectToAltar:function(altar,ni){
  74.    Item.registerUseFunction(ni, function(coords, item, block){
  75.       var coords = coords.relative;
  76.      if(World.getBlockID(coords.x,coords.y,coords.z) == altar){
  77.           //addPEToStorage(altar,pe);    
  78.         }
  79.    });    
  80. }
  81. }
  82.  
  83. Callback.addCallback("PostLoaded", function(){
  84. Necronomicons.setUpNecronomicons();  
  85. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement