public override bool OnWorldEditCommand(WorldEdit worldEdit, CmdArgs args)
        {
            switch (args.PopWord())
            {
            case "tr":
            {
                int rad = (int)args.PopInt(32);
                SearchRadius = rad;

                worldEdit.Good(workspace.ToolName + " search radius " + SearchRadius + " set.");
                return(true);
            }

            case "tce":
            {
                CheckEnclosure = (bool)args.PopBool(true);
                worldEdit.Good(workspace.ToolName + " check enclosure set to " + CheckEnclosure);
                return(true);
            }

            case "tm":
            {
                Mode = (int)args.PopInt(2);
                worldEdit.Good(workspace.ToolName + " mode set to " + Mode + "D");
                return(true);
            }
            }

            return(false);
        }
示例#2
0
        public override bool OnWorldEditCommand(WorldEdit worldEdit, CmdArgs args)
        {
            switch (args[0])
            {
            case "tremove":
                PlaceMode = args.Length > 1 && (args[1] == "1" || args[1] == "on");
                worldEdit.Good(workspace.ToolName + " remove mode now " + (PlaceMode ? "on" : "off"));
                return(true);

            case "tm":
                EnumLineStartPoint startpoint = EnumLineStartPoint.LineStrip;

                if (args.Length > 1)
                {
                    int index;
                    int.TryParse(args[1], out index);
                    if (Enum.IsDefined(typeof(EnumLineStartPoint), index))
                    {
                        startpoint = (EnumLineStartPoint)index;
                    }
                }

                LineMode = startpoint;
                worldEdit.Good(workspace.ToolName + " mode " + startpoint + " set.");
                workspace.ResendBlockHighlights(worldEdit);

                return(true);
            }

            return(false);
        }
        public override bool OnWorldEditCommand(WorldEdit worldEdit, CmdArgs args)
        {
            switch (args[0])
            {
            case "tm":
                EnumGrowShrinkMode mode = EnumGrowShrinkMode.Any;

                if (args.Length > 1)
                {
                    int index;
                    int.TryParse(args[1], out index);
                    if (Enum.IsDefined(typeof(EnumGrowShrinkMode), index))
                    {
                        mode = (EnumGrowShrinkMode)index;
                    }
                }

                GrowShrinkMode = mode;
                worldEdit.Good(workspace.ToolName + " mode " + mode + " set.");

                return(true);

            case "tr":
                BrushRadius = 0;

                if (args.Length > 1)
                {
                    float size;
                    float.TryParse(args[1], out size);
                    BrushRadius = size;
                }

                worldEdit.Good("Grow/Shrink radius " + BrushRadius + " set");

                return(true);

            case "tgr":
                BrushRadius++;
                worldEdit.Good("Grow/Shrink radius " + BrushRadius + " set");
                return(true);


            case "tsr":
                BrushRadius = Math.Max(0, BrushRadius - 1);
                worldEdit.Good("Grow/Shrink radius " + BrushRadius + " set");
                return(true);
            }

            return(false);
        }
示例#4
0
        public override bool OnWorldEditCommand(WorldEdit worldEdit, CmdArgs args)
        {
            string cmd = args.PopWord();

            switch (cmd)
            {
            case "tm":
            {
                EnumMoveToolMode mode = EnumMoveToolMode.MoveBlocks;

                if (args.Length > 0)
                {
                    int index;
                    int.TryParse(args[0], out index);
                    if (Enum.IsDefined(typeof(EnumMoveToolMode), index))
                    {
                        mode = (EnumMoveToolMode)index;
                    }
                }

                MoveRepeatMode = mode;
                worldEdit.Good(Lang.Get("Tool mode now set to {0}", mode));
                return(true);
            }

            case "am":
            {
                Amount = (int)args.PopInt(1);
                worldEdit.Good(Lang.Get("Amount set to {0}", Amount));
                return(true);
            }

            case "north":
            case "east":
            case "west":
            case "south":
            case "up":
            case "down":
            {
                BlockFacing facing = BlockFacing.FromCode(cmd);
                Handle(worldEdit, facing.Normali);
                return(true);
            }
            }

            return(false);
        }
示例#5
0
        public override void OnBreak(WorldEdit worldEdit, BlockSelection blockSel, ref EnumHandling handling)
        {
            handling = EnumHandling.PreventDefault;
            startPos = blockSel.Position.Copy();
            worldEdit.Good("Line Tool start position set");

            //int blockId = blockAccessRev.GetBlockId(blockSel.Position);
            //worldEdit.sapi.World.BlockAccessor.SetBlock(oldBlockId, blockSel.Position);
            //blockAccessRev.SetHistoryStateBlock(blockSel.Position.X, blockSel.Position.Y, blockSel.Position.Z, oldBlockId, oldBlockId);
            //blockAccessRev.Commit();
        }
示例#6
0
        public override bool OnWorldEditCommand(WorldEdit worldEdit, CmdArgs args)
        {
            switch (args[0])
            {
            case "tr":
                Radius = 0;

                if (args.Length > 1)
                {
                    float size;
                    float.TryParse(args[1], NumberStyles.Any, GlobalConstants.DefaultCultureInfo, out size);
                    Radius = size;
                }

                worldEdit.Good("Air Brush Radius " + Radius + " set.");

                return(true);


            case "tgr":
                Radius++;
                worldEdit.Good("Air Brush Radius " + Radius + " set");
                return(true);

            case "tsr":
                Radius = Math.Max(0, Radius - 1);
                worldEdit.Good("Air Brush Radius " + Radius + " set");
                return(true);

            case "tq":
                Quantity = 0;

                if (args.Length > 1)
                {
                    float quant;
                    float.TryParse(args[1], NumberStyles.Any, GlobalConstants.DefaultCultureInfo, out quant);
                    Quantity = quant;
                }

                worldEdit.Good("Quantity " + Quantity + " set.");

                return(true);


            case "tm":
                EnumAirBrushMode mode = EnumAirBrushMode.Add;

                if (args.Length > 1)
                {
                    int index;
                    int.TryParse(args[1], out index);
                    if (Enum.IsDefined(typeof(EnumAirBrushMode), index))
                    {
                        mode = (EnumAirBrushMode)index;
                    }
                }

                Mode = mode;
                worldEdit.Good(workspace.ToolName + " mode " + mode + " set.");
                worldEdit.ResendBlockHighlights();
                return(true);



            case "ta":
                EnumAirBrushApply apply = EnumAirBrushApply.AnyFace;

                if (args.Length > 1)
                {
                    int index;
                    int.TryParse(args[1], out index);
                    if (Enum.IsDefined(typeof(EnumAirBrushApply), index))
                    {
                        apply = (EnumAirBrushApply)index;
                    }
                }

                Apply = apply;
                worldEdit.Good(workspace.ToolName + " apply " + apply + " set.");
                worldEdit.ResendBlockHighlights();
                return(true);
            }

            return(false);
        }
示例#7
0
        public override bool OnWorldEditCommand(WorldEdit worldEdit, CmdArgs args)
        {
            switch (args.PopWord())
            {
            case "magic":
            {
                MagicSelect = (bool)args.PopBool(false);

                worldEdit.Good("Magic select now " + (MagicSelect ? "on" : "off"));
                return(true);
            }

            case "edgeblocks":
            {
                string arg = args.PopWord("list");

                switch (arg)
                {
                case "list":
                    worldEdit.Good("Edge blocks: " + string.Join(", ", EdgeBlocks));
                    break;

                case "add":
                    string blockcode = args.PopAll();

                    if (matchesAnyBlock(worldEdit.sapi, blockcode))
                    {
                        EdgeBlocks = EdgeBlocks.Append(args.PopAll());
                        worldEdit.Good("Ok, edge block '" + blockcode + "' added.");
                        SetEdgeBlocks(worldEdit.sapi.World, EdgeBlocks);
                    }
                    else
                    {
                        worldEdit.Good("Error, block code/wildcard '" + blockcode + "' does not match any known blocks.");
                    }


                    break;

                case "remove":

                    List <string> elems = new List <string>(EdgeBlocks);
                    if (elems.Remove(args.PopAll()))
                    {
                        worldEdit.Good("Ok, edge block removed.");
                        SetEdgeBlocks(worldEdit.sapi.World, elems.ToArray());
                    }
                    else
                    {
                        worldEdit.Good("No such edge block in list.");
                    }

                    break;

                default:
                    worldEdit.Bad("Invalid arg. Syntax: /we edgeblocks or /we edgeblocks [list|add|remove] [blockcode]");
                    break;
                }
            }
                return(true);
            }

            return(false);
        }
示例#8
0
        public override bool OnWorldEditCommand(WorldEdit worldEdit, CmdArgs args)
        {
            switch (args[0])
            {
            case "tr":
                Radius = 0;

                if (args.Length > 1)
                {
                    float size;
                    float.TryParse(args[1], out size);
                    Radius = size;
                }

                worldEdit.Good("Raise/Lower radius " + Radius + " set.");
                return(true);


            case "tgr":
                Radius++;
                worldEdit.Good("Raise/Lower radius " + Radius + " set");
                return(true);

            case "tsr":
                Radius = Math.Max(0, Radius - 1);
                worldEdit.Good("Raise/Lower radius " + Radius + " set");
                return(true);


            case "tdepth":
                Depth = 0;

                if (args.Length > 1)
                {
                    float size;
                    float.TryParse(args[1], out size);
                    Depth = size;
                }

                worldEdit.Good("Raise/Lower depth " + Depth + " set.");

                return(true);

            case "tm":
                Mode = EnumHeightToolMode.Uniform;

                if (args.Length > 1)
                {
                    int mode;
                    int.TryParse(args[1], out mode);
                    try
                    {
                        Mode = (EnumHeightToolMode)mode;
                    } catch (Exception) { }
                }

                worldEdit.Good("Raise/Lower mode " + Mode + " set.");

                return(true);
            }

            return(false);
        }
示例#9
0
        public override bool OnWorldEditCommand(WorldEdit worldEdit, CmdArgs args)
        {
            switch (args[0])
            {
            case "imc":
                if (workspace.clipboardBlockData != null)
                {
                    this.blockDatas = new BlockSchematic[] { workspace.clipboardBlockData };
                    worldEdit.Good("Ok, using copied blockdata");
                    nextRnd = 0;
                    workspace.ResendBlockHighlights(worldEdit);
                }
                else
                {
                    worldEdit.Good("No copied block data available");
                }
                return(true);

            case "ims":
                string        exportFolderPath = worldEdit.sapi.GetOrCreateDataPath("WorldEdit");
                List <string> filenames        = new List <string>();

                for (int i = 1; i < args.Length; i++)
                {
                    string filename = Path.GetFileName(args[i]);
                    string filepath = Path.Combine(exportFolderPath, args[i]);

                    if (!filename.EndsWith("*") && !filename.EndsWith("/") && !filename.EndsWith(".json"))
                    {
                        filename += ".json";
                    }

                    try
                    {
                        string[] foundFilePaths = Directory.GetFiles(Path.GetDirectoryName(filepath), filename);

                        for (int j = 0; j < foundFilePaths.Length; j++)
                        {
                            filenames.Add(foundFilePaths[j].Substring(exportFolderPath.Length + 1));
                        }
                    } catch (Exception)
                    {
                        worldEdit.Bad("Unable to read files from this source");
                        return(true);
                    }
                }



                if (filenames.Count > 0)
                {
                    BlockDataFilenames = string.Join(",", filenames);
                    LoadBlockdatas(worldEdit.sapi, worldEdit);
                    worldEdit.Good("Ok, found " + filenames.Count + " block data source files");
                }
                else
                {
                    BlockDataFilenames = null;
                    this.blockDatas    = new BlockSchematic[0];

                    worldEdit.Good("No source files under this name/wildcard found");
                }

                nextRnd = rand.Next(blockDatas.Length);

                workspace.ResendBlockHighlights(worldEdit);

                return(true);

            case "imo":
                Origin = EnumOrigin.BottomCenter;

                if (args.Length > 1)
                {
                    int origin;
                    int.TryParse(args[1], out origin);
                    if (Enum.IsDefined(typeof(EnumOrigin), origin))
                    {
                        Origin = (EnumOrigin)origin;
                    }
                }

                worldEdit.Good("Paste origin " + Origin + " set.");

                workspace.ResendBlockHighlights(worldEdit);

                return(true);

            case "tm":
                ReplaceMode = EnumReplaceMode.Replaceable;

                if (args.Length > 1)
                {
                    int replaceable = 0;
                    int.TryParse(args[1], out replaceable);
                    if (Enum.IsDefined(typeof(EnumReplaceMode), replaceable))
                    {
                        ReplaceMode = (EnumReplaceMode)replaceable;
                    }
                }

                worldEdit.Good("Replace mode " + ReplaceMode + " set.");
                workspace.ResendBlockHighlights(worldEdit);

                return(true);

            case "imrrand":
                RandomRotate = args.Length > 1 && (args[1] == "1" || args[1] == "true" || args[1] == "on");

                worldEdit.Good("Random rotation now " + (RandomRotate ? "on" : "off"));

                SetRandomAngle(worldEdit.sapi.World);

                workspace.ResendBlockHighlights(worldEdit);

                return(true);

            case "imn":
                nextRnd = rand.Next(blockDatas.Length);
                workspace.ResendBlockHighlights(worldEdit);
                break;


            case "imr":
                if (blockDatas == null || blockDatas.Length == 0)
                {
                    worldEdit.Bad("Please define a block data source first.");
                    return(true);
                }

                int angle = 90;

                if (args.Length > 1)
                {
                    if (!int.TryParse(args[1], out angle))
                    {
                        worldEdit.Bad("Invalid Angle (not a number)");
                        return(true);
                    }
                }
                if (angle < 0)
                {
                    angle += 360;
                }

                if (angle != 0 && angle != 90 && angle != 180 && angle != 270)
                {
                    worldEdit.Bad("Invalid Angle, allowed values are -270, -180, -90, 0, 90, 180 and 270");
                    return(true);
                }

                for (int i = 0; i < blockDatas.Length; i++)
                {
                    blockDatas[i].TransformWhilePacked(worldEdit.sapi.World, EnumOrigin.BottomCenter, angle, null);
                }

                workspace.ResendBlockHighlights(worldEdit);

                worldEdit.Good("Ok, all schematics rotated by " + angle + " degrees");

                return(true);


            case "imflip":
                if (blockDatas == null || blockDatas.Length == 0)
                {
                    worldEdit.Bad("Please define a block data source first.");
                    return(true);
                }

                for (int i = 0; i < blockDatas.Length; i++)
                {
                    blockDatas[i].TransformWhilePacked(worldEdit.sapi.World, EnumOrigin.BottomCenter, 0, EnumAxis.Y);
                }

                workspace.ResendBlockHighlights(worldEdit);

                worldEdit.Good("Ok, imported sources flipped");


                return(true);


            case "immirror":
                if (blockDatas == null || blockDatas.Length == 0)
                {
                    worldEdit.Bad("Please define a block data source first.");
                    return(true);
                }

                EnumAxis axis = EnumAxis.X;
                if (args.PopWord().ToLowerInvariant() == "z")
                {
                    axis = EnumAxis.Z;
                }

                for (int i = 0; i < blockDatas.Length; i++)
                {
                    blockDatas[i].TransformWhilePacked(worldEdit.sapi.World, EnumOrigin.BottomCenter, 0, axis);
                }

                workspace.ResendBlockHighlights(worldEdit);

                worldEdit.Good("Ok, imported sources mirrored around " + axis + " axis");


                return(true);
            }

            return(false);
        }
        public override bool OnWorldEditCommand(WorldEdit worldEdit, CmdArgs args)
        {
            switch (args[0])
            {
            case "tm":
                EnumBrushMode brushMode = EnumBrushMode.Fill;

                if (args.Length > 1)
                {
                    int index;
                    int.TryParse(args[1], out index);
                    if (Enum.IsDefined(typeof(EnumBrushMode), index))
                    {
                        brushMode = (EnumBrushMode)index;
                    }
                }

                BrushMode = brushMode;
                worldEdit.Good(workspace.ToolName + " mode " + brushMode + " set.");
                workspace.ResendBlockHighlights(worldEdit);

                return(true);

            case "tdl":
                EnumDepthLimit depthLimit = EnumDepthLimit.NoLimit;

                if (args.Length > 1)
                {
                    int index;
                    int.TryParse(args[1], out index);
                    if (Enum.IsDefined(typeof(EnumDepthLimit), index))
                    {
                        depthLimit = (EnumDepthLimit)index;
                    }
                }

                DepthLimit = depthLimit;
                worldEdit.Good(workspace.ToolName + " depth limit set to " + depthLimit);
                workspace.ResendBlockHighlights(worldEdit);
                return(true);

            case "ts":
                EnumBrushShape shape = EnumBrushShape.Ball;

                if (args.Length > 1)
                {
                    int index;
                    int.TryParse(args[1], out index);
                    if (Enum.IsDefined(typeof(EnumBrushShape), index))
                    {
                        shape = (EnumBrushShape)index;
                    }
                }

                BrushShape = shape;

                worldEdit.Good(workspace.ToolName + " shape " + BrushShape + " set.");
                GenBrush();
                workspace.ResendBlockHighlights(worldEdit);
                return(true);

            case "tsx":
            case "tsy":
            case "tsz":
            {
                float size = 0;
                if (args.Length > 1)
                {
                    float.TryParse(args[1], out size);
                }

                if (args[0] == "tsx")
                {
                    BrushDim1 = size;
                }
                if (args[0] == "tsy")
                {
                    BrushDim2 = size;
                }
                if (args[0] == "tsz")
                {
                    BrushDim3 = size;
                }

                string text = dimensionNames[(int)BrushShape][0] + "=" + BrushDim1;
                text += ", " + dimensionNames[(int)BrushShape][1] + "=" + BrushDim2;
                text += ", " + dimensionNames[(int)BrushShape][2] + "=" + BrushDim3;

                worldEdit.Good(workspace.ToolName + " dimensions " + text + " set.");

                GenBrush();
                workspace.ResendBlockHighlights(worldEdit);

                return(true);
            }


            case "tr":
            {
                BrushDim1 = 0;
                float size;

                if (args.Length > 1 && float.TryParse(args[1], out size))
                {
                    BrushDim1 = size;
                }

                if (args.Length > 2 && float.TryParse(args[2], out size))
                {
                    BrushDim2 = size;
                }
                else
                {
                    BrushDim2 = BrushDim1;
                }

                if (args.Length > 3 && float.TryParse(args[3], out size))
                {
                    BrushDim3 = size;
                }
                else
                {
                    BrushDim3 = BrushDim2;
                }

                string text = dimensionNames[(int)BrushShape][0] + "=" + BrushDim1;
                text += ", " + dimensionNames[(int)BrushShape][1] + "=" + BrushDim2;
                text += ", " + dimensionNames[(int)BrushShape][2] + "=" + BrushDim3;

                worldEdit.Good(workspace.ToolName + " dimensions " + text + " set.");

                GenBrush();
                workspace.ResendBlockHighlights(worldEdit);
            }
                return(true);



            case "tcx":
            case "tcy":
            case "tcz":
            {
                float size = 0;
                if (args.Length > 1)
                {
                    float.TryParse(args[1], out size);
                }

                if (args[0] == "tcx")
                {
                    CutoutDim1 = size;
                }
                if (args[0] == "tcy")
                {
                    CutoutDim2 = size;
                }
                if (args[0] == "tcz")
                {
                    CutoutDim3 = size;
                }

                string text = dimensionNames[(int)BrushShape][0] + "=" + CutoutDim1;
                text += ", " + dimensionNames[(int)BrushShape][1] + "=" + CutoutDim2;
                text += ", " + dimensionNames[(int)BrushShape][2] + "=" + CutoutDim3;

                worldEdit.Good(workspace.ToolName + " cutout dimensions " + text + " set.");

                GenBrush();
                workspace.ResendBlockHighlights(worldEdit);

                return(true);
            }


            case "tcr":
            {
                CutoutDim1 = 0;
                float size;

                if (args.Length > 1 && float.TryParse(args[1], out size))
                {
                    CutoutDim1 = size;
                }

                if (args.Length > 2 && float.TryParse(args[2], out size))
                {
                    CutoutDim2 = size;
                }
                else
                {
                    CutoutDim2 = CutoutDim1;
                }

                if (args.Length > 3 && float.TryParse(args[3], out size))
                {
                    CutoutDim3 = size;
                }
                else
                {
                    CutoutDim3 = CutoutDim2;
                }

                string text = dimensionNames[(int)BrushShape][0] + "=" + CutoutDim1;
                text += ", " + dimensionNames[(int)BrushShape][1] + "=" + CutoutDim2;
                text += ", " + dimensionNames[(int)BrushShape][2] + "=" + CutoutDim3;

                worldEdit.Good("Cutout " + workspace.ToolName + " dimensions " + text + " set.");

                GenBrush();
                workspace.ResendBlockHighlights(worldEdit);
            }
                return(true);

            case "tgr":
            {
                BrushDim1++;
                BrushDim2++;
                BrushDim3++;

                string text = dimensionNames[(int)BrushShape][0] + "=" + BrushDim1;
                text += ", " + dimensionNames[(int)BrushShape][1] + "=" + BrushDim2;
                text += ", " + dimensionNames[(int)BrushShape][2] + "=" + BrushDim3;
                worldEdit.Good(workspace.ToolName + " dimensions " + text + " set.");
                GenBrush();
                workspace.ResendBlockHighlights(worldEdit);
            }
                return(true);

            case "tsr":
            {
                BrushDim1 = Math.Max(0, BrushDim1 - 1);
                BrushDim2 = Math.Max(0, BrushDim2 - 1);
                BrushDim3 = Math.Max(0, BrushDim3 - 1);

                string text = dimensionNames[(int)BrushShape][0] + "=" + BrushDim1;
                text += ", " + dimensionNames[(int)BrushShape][1] + "=" + BrushDim2;
                text += ", " + dimensionNames[(int)BrushShape][2] + "=" + BrushDim3;
                worldEdit.Good(workspace.ToolName + " dimensions " + text + " set.");
                GenBrush();
                workspace.ResendBlockHighlights(worldEdit);
            }
                return(true);
            }

            return(false);
        }
示例#11
0
        public override bool OnWorldEditCommand(WorldEdit.WorldEdit worldEdit, CmdArgs args)
        {
            if (treeGenerators == null)
            {
                treeGenerators = new TreeGeneratorsUtil(worldEdit.sapi);
            }

            string cmd = args.PopWord();

            switch (cmd)
            {
            case "tsizemin":
            {
                float size = 0.7f;
                if (args.Length > 0)
                {
                    float.TryParse(args[0], NumberStyles.Any, GlobalConstants.DefaultCultureInfo, out size);
                }
                MinTreeSize = size;

                worldEdit.Good("Tree Min Size=" + size + " set.");

                return(true);
            }

            case "tsizemax":
            {
                float size = 0.7f;
                if (args.Length > 0)
                {
                    float.TryParse(args[0], NumberStyles.Any, GlobalConstants.DefaultCultureInfo, out size);
                }
                MaxTreeSize = size;

                worldEdit.Good("Tree Max Size=" + size + " set.");

                return(true);
            }

            case "tsize":
            {
                float min = 0.7f;
                if (args.Length > 0)
                {
                    float.TryParse(args[0], NumberStyles.Any, GlobalConstants.DefaultCultureInfo, out min);
                }
                MinTreeSize = min;

                float max = 1.3f;
                if (args.Length > 1)
                {
                    float.TryParse(args[1], NumberStyles.Any, GlobalConstants.DefaultCultureInfo, out max);
                }
                MaxTreeSize = max;

                worldEdit.Good("Tree Min Size=" + min + ", max size =" + MaxTreeSize + " set.");

                return(true);
            }

            case "trnd":
                return(true);

            case "tv":
                int index = 0;

                string variant = args.PopWord();

                bool numeric = int.TryParse(variant, NumberStyles.Any, GlobalConstants.DefaultCultureInfo, out index);

                treeGenerators.ReloadTreeGenerators();

                if (numeric)
                {
                    var val = treeGenerators.GetGenerator(index);
                    if (val.Key == null)
                    {
                        worldEdit.Bad("No such tree variant found.");
                        return(true);
                    }

                    TreeVariant = val.Key.ToShortString();
                    worldEdit.Good("Tree variant " + val.Key + " set.");
                }
                else
                {
                    if (variant != null && treeGenerators.GetGenerator(new AssetLocation(variant)) != null)
                    {
                        TreeVariant = variant;
                        worldEdit.Good("Tree variant " + variant + " set.");
                    }
                    else
                    {
                        worldEdit.Bad("No such tree variant found.");
                    }
                }

                return(true);
            }

            return(false);
        }
示例#12
0
        public override bool OnWorldEditCommand(WorldEdit worldEdit, CmdArgs args)
        {
            switch (args[0])
            {
            case "tusb":
                bool val = (bool)args.PopBool(false);

                if (val)
                {
                    worldEdit.Good("Will use only selected block for placement");
                }
                else
                {
                    worldEdit.Good("Will use erode away placed blocks");
                }

                UseSelectedBlock = val;

                return(true);

            case "tr":
                BrushRadius = 0;

                if (args.Length > 1)
                {
                    float size;
                    float.TryParse(args[1], NumberStyles.Any, GlobalConstants.DefaultCultureInfo, out size);
                    BrushRadius = size;
                }

                worldEdit.Good("Erode radius " + BrushRadius + " set");
                return(true);

            case "tgr":
                BrushRadius++;
                worldEdit.Good("Erode radius " + BrushRadius + " set");
                return(true);

            case "tsr":
                BrushRadius = Math.Max(0, BrushRadius - 1);
                worldEdit.Good("Erode radius " + BrushRadius + " set");
                return(true);

            case "tkr":
                KernelRadius = 0;

                if (args.Length > 1)
                {
                    int size;
                    int.TryParse(args[1], NumberStyles.Any, GlobalConstants.DefaultCultureInfo, out size);
                    KernelRadius = size;
                }

                if (KernelRadius > 10)
                {
                    KernelRadius = 10;
                    worldEdit.SendPlayerWorkSpace(workspace.PlayerUID);
                    worldEdit.Good("Erode kernel radius " + KernelRadius + " set (limited to 10)");
                }
                else
                {
                    worldEdit.Good("Erode kernel radius " + KernelRadius + " set");
                }

                PrecalcKernel();

                return(true);

            case "ti":
                Iterations = 1;

                if (args.Length > 1)
                {
                    int iters;
                    int.TryParse(args[1], NumberStyles.Any, GlobalConstants.DefaultCultureInfo, out iters);
                    Iterations = iters;
                }

                if (Iterations > 10)
                {
                    Iterations = 10;
                    worldEdit.SendPlayerWorkSpace(workspace.PlayerUID);
                    worldEdit.Good("Iterations " + Iterations + " set (limited to 10)");
                }
                else
                {
                    worldEdit.Good("Iterations " + Iterations + " set");
                }



                return(true);
            }

            return(false);
        }