Ignore:
Timestamp:
10/27/15 12:11:12 (9 years ago)
Author:
bln4
Message:

Ok, now when following a daisy chain it properly looks for loops. If it sees a loop it won't walk into it twice.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/expeditee/items/MagneticConstraint/Actions/RepelTextAction.java

    r966 r970  
    33import java.awt.Point;
    44
     5import org.expeditee.gui.Browser;
    56import org.expeditee.gui.FrameUtils;
    67import org.expeditee.items.Item;
     8import org.expeditee.items.Text;
    79import org.expeditee.items.MagneticConstraint.MagneticConstraintActionWithArguments;
    810import org.expeditee.items.MagneticConstraint.MagneticConstraints;
     
    4244                        return false;
    4345                } else {
     46                        final int charDistance = Browser._theBrowser.getFontMetrics(((Text)item).getFont()).stringWidth("X");
    4447                        final Line tokensToMove = Line.getLineFromToken(item);
    45                         System.err.println("#Repeling tokens: " + tokensToMove);
    4648                        tokensToMove.removeFirst();
     49                        boolean afterGap = false;
     50                        for(int i = 1; i < tokensToMove.size();) {
     51                                if(afterGap) tokensToMove.remove(i);
     52                                else if((tokensToMove.get(i).getX() - charDistance) > (tokensToMove.get(i - 1).getX() + tokensToMove.get(i - 1).getBoundsWidth())) {
     53                                        afterGap = true;
     54                                        tokensToMove.remove(i);
     55                                } else i++;
     56                        }
    4757                        tokensToMove.deltaX(args[0].intValue());
    4858                        for(final Item token : tokensToMove) {
Note: See TracChangeset for help on using the changeset viewer.