Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- importPackage(Packages.com.sk89q.worldedit);
- importPackage(Packages.com.sk89q.worldedit.blocks);
- importPackage(Packages.com.sk89q.worldedit.patterns);
- importPackage(Packages.com.sk89q.worldedit.regions);
- importPackage(Packages.com.sk89q.worldedit.masks);
- importPackage(Packages.com.sk89q.worldedit.vector);
- /*
- Author: Nividica
- Last Updated: 10/13/2012
- */
- context.checkArgs(3, 4, "<block ID> <radius> <height> [raised?]");
- var sess = null;
- var block = null;
- var blockPattern = null;
- var radius = 0;
- var origin = null;
- var raised = false;
- var maxBlockHeight = 1;
- var pDiameter = 0;
- var nDiameter = 0;
- var regionCorner1 = null;
- var regionCorner2 = null;
- var drawingRegion = null;
- var regionMask = null;
- function domeInit() {
- sess = context.remember();
- block = context.getBlock(argv[1]);
- radius = parseFloat(argv[2]);
- if (radius <= 0) {
- player.print("Dome: Radius must be > 0 ");
- return false;
- }
- maxBlockHeight = parseInt(argv[3]);
- if (maxBlockHeight <= 0) {
- player.print("Dome: Height must be > 0");
- return false;
- }
- raised = argv.length > 4 ? (argv[4] == 'y') : false;
- return true;
- }
- function domeCalculate() {
- origin = player.getBlockOn();
- blockPattern = new SingleBlockPattern(block);
- if (raised) {
- origin = origin.add(0, ((0 - radius) + maxBlockHeight) - 1, 0);
- }
- maxBlockHeight += (radius - 1);
- pDiameter = radius * 2.0;
- nDiameter = (radius - pDiameter);
- regionCorner1 = origin.add(pDiameter - radius, (maxBlockHeight + 1) - radius, pDiameter - radius);
- regionCorner2 = origin.add(nDiameter, (pDiameter - maxBlockHeight) - 1, nDiameter);
- drawingRegion = new CuboidRegion(regionCorner1, regionCorner2);
- regionMask = new RegionMask(drawingRegion);
- domeDraw();
- }
- function domeDraw() {
- sess.setMask(regionMask);
- var wut = regionMask.matches(sess, drawingRegion.getCenter());
- player.print("in mask: " + wut);
- sess.setBlock(regionCorner1, new BaseBlock(BlockID.STONE, 1));
- sess.setBlock(regionCorner2, new BaseBlock(BlockID.STONE, 2));
- var sphere = sess.makeSphere(origin, blockPattern, radius, false);
- if (sphere > 0) {
- player.print("Hemisphere created");
- } else {
- player.print("Could not create hemisphere.");
- }
- }
- if (domeInit()) {
- domeCalculate();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement