Ejemplo n.º 1
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);
        }