示例#1
0
        public override void OnAttackStart(WorldEdit worldEdit, BlockSelection blockSelection)
        {
            if (blockSelection == null)
            {
                return;
            }

            if (!MagicSelect)
            {
                BlockPos startPos = blockSelection.Position;

                if (workspace.EndMarker != null)
                {
                    if (workspace.EndMarker.X <= startPos.X)
                    {
                        startPos.X++;
                    }
                    if (workspace.EndMarker.Y <= startPos.Y)
                    {
                        startPos.Y++;
                    }
                    if (workspace.EndMarker.Z <= startPos.Z)
                    {
                        startPos.Z++;
                    }
                }

                worldEdit.SetStartPos(startPos);
            }
        }
示例#2
0
        public override void OnInteractStart(WorldEdit worldEdit, BlockSelection blockSelection)
        {
            if (blockSelection == null)
            {
                return;
            }

            blockAccess = worldEdit.sapi.World.BlockAccessor;

            if (MagicSelect)
            {
                Cuboidi sele = MagiSelect(blockSelection);
                worldEdit.SetStartPos(sele.Start.AsBlockPos);
                worldEdit.SetEndPos(sele.End.AsBlockPos);

                workspace.revertableBlockAccess.StoreHistoryState(new List <BlockUpdate>());
            }
            else
            {
                BlockPos endpos = blockSelection.Position.AddCopy(blockSelection.Face);
                if (workspace.StartMarker != null)
                {
                    if (workspace.StartMarker.X <= endpos.X)
                    {
                        endpos.X++;
                    }
                    if (workspace.StartMarker.Y <= endpos.Y)
                    {
                        endpos.Y++;
                    }
                    if (workspace.StartMarker.Z <= endpos.Z)
                    {
                        endpos.Z++;
                    }
                }
                worldEdit.SetEndPos(endpos);

                workspace.revertableBlockAccess.StoreHistoryState(new List <BlockUpdate>());
            }

            base.OnInteractStart(worldEdit, blockSelection);
        }