Package com.sk89q.worldedit.regions

Examples of com.sk89q.worldedit.regions.RegionSelector


    public boolean actSecondary(Platform server, LocalConfiguration config, Player player, LocalSession session) {
        if (session.isToolControlEnabled() && player.hasPermission("worldedit.selection.pos")) {
            WorldVector target = getTarget(player);
            if (target == null) return true;

            RegionSelector selector = session.getRegionSelector(player.getWorld());
            if (selector.selectPrimary(target, ActorSelectorLimits.forActor(player))) {
                selector.explainPrimarySelection(player, session, target);
            }
            return true;

        }
        return false;
View Full Code Here


    public boolean actPrimary(Platform server, LocalConfiguration config, Player player, LocalSession session) {
        if (session.isToolControlEnabled() && player.hasPermission("worldedit.selection.pos")) {
            WorldVector target = getTarget(player);
            if (target == null) return true;

            RegionSelector selector = session.getRegionSelector(player.getWorld());
            if (selector.selectSecondary(target, ActorSelectorLimits.forActor(player))) {
                selector.explainSecondarySelection(player, session, target);
            }
            return true;

        }
        return false;
View Full Code Here

                .build();
        Operations.completeLegacy(operation);

        if (selectPasted) {
            Vector max = to.add(region.getMaximumPoint().subtract(region.getMinimumPoint()));
            RegionSelector selector = new CuboidRegionSelector(player.getWorld(), to, max);
            session.setRegionSelector(player.getWorld(), selector);
            selector.learnChanges();
            selector.explainRegionAdjust(player, session);
        }

        player.print("The clipboard has been pasted at " + to);
    }
View Full Code Here

            player.print("Selection cleared.");
            return;
        }

        final String typeName = args.getString(0);
        final RegionSelector oldSelector = session.getRegionSelector(world);

        final RegionSelector selector;
        if (typeName.equalsIgnoreCase("cuboid")) {
            selector = new CuboidRegionSelector(oldSelector);
            player.print("Cuboid: left click for point 1, right click for point 2");
        } else if (typeName.equalsIgnoreCase("extend")) {
            selector = new ExtendingCuboidRegionSelector(oldSelector);
            player.print("Cuboid: left click for a starting point, right click to extend");
        } else if (typeName.equalsIgnoreCase("poly")) {
            selector = new Polygonal2DRegionSelector(oldSelector);
            player.print("2D polygon selector: Left/right click to add a point.");
            Optional<Integer> limit = ActorSelectorLimits.forActor(player).getPolygonVertexLimit();
            if (limit.isPresent()) {
                player.print(limit.get() + " points maximum.");
            }
        } else if (typeName.equalsIgnoreCase("ellipsoid")) {
            selector = new EllipsoidRegionSelector(oldSelector);
            player.print("Ellipsoid selector: left click=center, right click to extend");
        } else if (typeName.equalsIgnoreCase("sphere")) {
            selector = new SphereRegionSelector(oldSelector);
            player.print("Sphere selector: left click=center, right click to set radius");
        } else if (typeName.equalsIgnoreCase("cyl")) {
            selector = new CylinderRegionSelector(oldSelector);
            player.print("Cylindrical selector: Left click=center, right click to extend.");
        } else if (typeName.equalsIgnoreCase("convex") || typeName.equalsIgnoreCase("hull") || typeName.equalsIgnoreCase("polyhedron")) {
            selector = new ConvexPolyhedralRegionSelector(oldSelector);
            player.print("Convex polyhedral selector: Left click=First vertex, right click to add more.");
            Optional<Integer> limit = ActorSelectorLimits.forActor(player).getPolyhedronVertexLimit();
            if (limit.isPresent()) {
                player.print(limit.get() + " points maximum.");
            }
        } else {
            CommandListBox box = new CommandListBox("Selection modes");
            StyledFragment contents = box.getContents();
            StyledFragment tip = contents.createFragment(Style.RED);
            tip.append("Select one of the modes below:").newLine();

            box.appendCommand("cuboid", "Select two corners of a cuboid");
            box.appendCommand("extend", "Fast cuboid selection mode");
            box.appendCommand("poly", "Select a 2D polygon with height");
            box.appendCommand("ellipsoid", "Select an ellipsoid");
            box.appendCommand("sphere", "Select a sphere");
            box.appendCommand("cyl", "Select a cylinder");
            box.appendCommand("convex", "Select a convex polyhedral");

            player.printRaw(ColorCodeBuilder.asColorCodes(box));
            return;
        }

        if (args.hasFlag('d')) {
            RegionSelectorType found = null;
            for (RegionSelectorType type : RegionSelectorType.values()) {
                if (type.getSelectorClass() == selector.getClass()) {
                    found = type;
                    break;
                }
            }
View Full Code Here

                    if (!actor.hasPermission("worldedit.selection.pos")) {
                        return;
                    }

                    RegionSelector selector = session.getRegionSelector(player.getWorld());

                    if (selector.selectPrimary(location.toVector(), ActorSelectorLimits.forActor(player))) {
                        selector.explainPrimarySelection(actor, session, vector);
                    }

                    event.setCancelled(true);
                    return;
                }

                if (player.isHoldingPickAxe() && session.hasSuperPickAxe()) {
                    final BlockTool superPickaxe = session.getSuperPickaxe();
                    if (superPickaxe != null && superPickaxe.canUse(player)) {
                        event.setCancelled(superPickaxe.actPrimary(queryCapability(Capability.WORLD_EDITING), getConfiguration(), player, session, location));
                        return;
                    }
                }

                Tool tool = session.getTool(player.getItemInHand());
                if (tool != null && tool instanceof DoubleActionBlockTool) {
                    if (tool.canUse(player)) {
                        ((DoubleActionBlockTool) tool).actSecondary(queryCapability(Capability.WORLD_EDITING), getConfiguration(), player, session, location);
                        event.setCancelled(true);
                    }
                }

            } else if (event.getType() == Interaction.OPEN) {
                if (player.getItemInHand() == getConfiguration().wandItem) {
                    if (!session.isToolControlEnabled()) {
                        return;
                    }

                    if (!actor.hasPermission("worldedit.selection.pos")) {
                        return;
                    }

                    RegionSelector selector = session.getRegionSelector(player.getWorld());
                    if (selector.selectSecondary(vector, ActorSelectorLimits.forActor(player))) {
                        selector.explainSecondarySelection(actor, session, vector);
                    }

                    event.setCancelled(true);
                    return;
                }
View Full Code Here

        if (!player.isOnline()) {
            throw new IllegalArgumentException("Offline player not allowed");
        }

        LocalSession session = WorldEdit.getInstance().getSession(wrapPlayer(player));
        RegionSelector selector = session.getRegionSelector(BukkitUtil.getLocalWorld(player.getWorld()));

        try {
            Region region = selector.getRegion();
            World world = BukkitAdapter.asBukkitWorld(session.getSelectionWorld()).getWorld();

            if (region instanceof CuboidRegion) {
                return new CuboidSelection(world, selector, (CuboidRegion) region);
            } else if (region instanceof Polygonal2DRegion) {
View Full Code Here

        if (selection == null) {
            throw new IllegalArgumentException("Null selection not allowed");
        }

        LocalSession session = WorldEdit.getInstance().getSession(wrapPlayer(player));
        RegionSelector sel = selection.getRegionSelector();
        session.setRegionSelector(BukkitUtil.getLocalWorld(player.getWorld()), sel);
        session.dispatchCUISelection(wrapPlayer(player));
    }
View Full Code Here

                    sign.setLine(i, StringUtils.replace(sign.getLine(i), "[off]", ""));
                    player.printError("worldedit.ic.notfound");
                } else {
                    if(CraftBookPlugin.plugins.getWorldEdit().getSelection(((BukkitPlayer) player).getPlayer()) != null && CraftBookPlugin.plugins.getWorldEdit().getSelection(((BukkitPlayer) player).getPlayer()).getRegionSelector() != null) {

                        RegionSelector selector = CraftBookPlugin.plugins.getWorldEdit().getSelection(((BukkitPlayer) player).getPlayer()).getRegionSelector();

                        try {
                            if(selector instanceof CuboidRegionSelector) {

                                Vector centre = selector.getRegion().getMaximumPoint().add(selector.getRegion().getMinimumPoint());

                                centre = centre.divide(2);

                                Vector offset = centre.subtract(sign.getBlockVector());

                                String x,y,z;

                                x = Double.toString(offset.getX());
                                if (x.endsWith(".0"))
                                    x = StringUtils.replace(x, ".0", "");

                                y = Double.toString(offset.getY());
                                if (y.endsWith(".0"))
                                    y = StringUtils.replace(y, ".0", "");

                                z = Double.toString(offset.getZ());
                                if (z.endsWith(".0"))
                                    z = StringUtils.replace(z, ".0", "");

                                sign.setLine(i, StringUtils.replace(sign.getLine(i), "[off]", "&" + x + ":" + y + ":" + z));
                            } else if (selector instanceof SphereRegionSelector) {

                                Vector centre = ((SphereRegionSelector)selector).getRegion().getCenter();

                                Vector offset = centre.subtract(sign.getBlockVector());

                                String x,y,z;

                                x = Double.toString(offset.getX());
                                if (x.endsWith(".0"))
                                    x = StringUtils.replace(x, ".0", "");

                                y = Double.toString(offset.getY());
                                if (y.endsWith(".0"))
                                    y = StringUtils.replace(y, ".0", "");

                                z = Double.toString(offset.getZ());
                                if (z.endsWith(".0"))
                                    z = StringUtils.replace(z, ".0", "");

                                sign.setLine(i, StringUtils.replace(sign.getLine(i), "[off]", "&" + x + ":" + y + ":" + z));
                            } else { // Unsupported.
                                sign.setLine(i, StringUtils.replace(sign.getLine(i), "[off]", ""));
                                player.printError("worldedit.ic.unsupported");
                            }
                        }
                        catch(IncompleteRegionException e) {
                            player.printError("worldedit.ic.noselection");
                        }
                    } else {
                        player.printError("worldedit.ic.noselection");
                    }
                }
            }

            if(sign.getLine(i).contains("[rad]")) {

                if(CraftBookPlugin.plugins.getWorldEdit() == null) {
                    sign.setLine(i, StringUtils.replace(sign.getLine(i), "[rad]", ""));
                    player.printError("worldedit.ic.notfound");
                } else {

                    if(CraftBookPlugin.plugins.getWorldEdit().getSelection(((BukkitPlayer) player).getPlayer()) != null && CraftBookPlugin.plugins.getWorldEdit().getSelection(((BukkitPlayer) player).getPlayer()).getRegionSelector() != null) {

                        RegionSelector selector = CraftBookPlugin.plugins.getWorldEdit().getSelection(((BukkitPlayer) player).getPlayer()).getRegionSelector();

                        try {
                            if(selector instanceof CuboidRegionSelector) {

                                String x,y,z;

                                x = Double.toString(Math.abs(selector.getRegion().getMaximumPoint().getX() - selector.getRegion().getMinimumPoint().getX())/2);
                                if (x.endsWith(".0"))
                                    x = StringUtils.replace(x, ".0", "");

                                y = Double.toString(Math.abs(selector.getRegion().getMaximumPoint().getY() - selector.getRegion().getMinimumPoint().getY())/2);
                                if (y.endsWith(".0"))
                                    y = StringUtils.replace(y, ".0", "");

                                z = Double.toString(Math.abs(selector.getRegion().getMaximumPoint().getZ() - selector.getRegion().getMinimumPoint().getZ())/2);
                                if (z.endsWith(".0"))
                                    z = StringUtils.replace(z, ".0", "");

                                sign.setLine(i, StringUtils.replace(sign.getLine(i), "[rad]", x + "," + y + "," + z));
                            } else if (selector instanceof SphereRegionSelector) {

                                String x;

                                double amounts = ((EllipsoidRegion) selector.getRegion()).getRadius().getX();

                                x = Double.toString(amounts);
                                if (x.endsWith(".0"))
                                    x = StringUtils.replace(x, ".0", "");
View Full Code Here

    {
        Point[] points = new Point[2];

        // the following code is a modified version of WorldEdit Bukkit's selection sharing API.
        LocalSession session = ForgeWorldEdit.inst.getSession(player);
        RegionSelector selector = session.getRegionSelector(ForgeWorldEdit.inst.getWorld(player.worldObj));

        try
        {
            Region region = selector.getRegion();
           
            //World world = session.getSelectionWorld();
           
            if (region instanceof CuboidRegion)
            {
View Full Code Here

TOP

Related Classes of com.sk89q.worldedit.regions.RegionSelector

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.