Advertisement
Guest User

Untitled

a guest
Jan 19th, 2015
206
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. importPackage(Packages.com.sk89q.worldedit);
  2. importPackage(Packages.com.sk89q.worldedit.blocks);
  3. importPackage(Packages.com.sk89q.worldedit.patterns);
  4. importPackage(Packages.com.sk89q.worldedit.regions);
  5. importPackage(Packages.com.sk89q.worldedit.masks);
  6. importPackage(Packages.com.sk89q.worldedit.vector);
  7.  
  8. /*
  9. Author: Nividica
  10. Last Updated: 10/13/2012
  11. */
  12.  
  13. context.checkArgs(3, 4, "<block ID> <radius> <height> [raised?]");
  14. var sess = null;
  15. var block = null;
  16. var blockPattern = null;
  17. var radius = 0;
  18. var origin = null;
  19. var raised = false;
  20. var maxBlockHeight = 1;
  21. var pDiameter = 0;
  22. var nDiameter = 0;
  23. var regionCorner1 = null;
  24. var regionCorner2 = null;
  25. var drawingRegion = null;
  26. var regionMask = null;
  27.  
  28. function domeInit() {
  29.     sess = context.remember();
  30.     block = context.getBlock(argv[1]);
  31.     radius = parseFloat(argv[2]);
  32.     if (radius <= 0) {
  33.         player.print("Dome: Radius must be > 0 ");
  34.         return false;
  35.     }
  36.     maxBlockHeight = parseInt(argv[3]);
  37.     if (maxBlockHeight <= 0) {
  38.         player.print("Dome: Height must be > 0");
  39.         return false;
  40.     }
  41.     raised = argv.length > 4 ? (argv[4] == 'y') : false;
  42.     return true;
  43. }
  44.  
  45. function domeCalculate() {
  46.     origin = player.getBlockOn();
  47.     blockPattern = new SingleBlockPattern(block);
  48.     if (raised) {
  49.         origin = origin.add(0, ((0 - radius) + maxBlockHeight) - 1, 0);
  50.     }
  51.     maxBlockHeight += (radius - 1);
  52.     pDiameter = radius * 2.0;
  53.     nDiameter = (radius - pDiameter);
  54.     regionCorner1 = origin.add(pDiameter - radius, (maxBlockHeight + 1) - radius, pDiameter - radius);
  55.     regionCorner2 = origin.add(nDiameter, (pDiameter - maxBlockHeight) - 1, nDiameter);
  56.     drawingRegion = new CuboidRegion(regionCorner1, regionCorner2);
  57.     regionMask = new RegionMask(drawingRegion);
  58.     domeDraw();
  59. }
  60.  
  61. function domeDraw() {
  62.     sess.setMask(regionMask);
  63.     var wut = regionMask.matches(sess, drawingRegion.getCenter());
  64.     player.print("in mask: " + wut);
  65.     sess.setBlock(regionCorner1, new BaseBlock(BlockID.STONE, 1));
  66.     sess.setBlock(regionCorner2, new BaseBlock(BlockID.STONE, 2));
  67.     var sphere = sess.makeSphere(origin, blockPattern, radius, false);
  68.     if (sphere > 0) {
  69.         player.print("Hemisphere created");
  70.     } else {
  71.         player.print("Could not create hemisphere.");
  72.     }
  73. }
  74.  
  75. if (domeInit()) {
  76.     domeCalculate();
  77. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement