Snap backwards (#923)
* snap to multiple of 5 * normalize negative values
This commit is contained in:
		@@ -76,9 +76,12 @@ export class FieldSpeed extends Blockly.FieldSlider implements Blockly.FieldCust
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    setReadout_(readout: Element, value: string) {
 | 
			
		||||
        this.updateSpeed(parseFloat(value));
 | 
			
		||||
        let x = parseFloat(value) || 0;
 | 
			
		||||
        // snap on multiple of 5
 | 
			
		||||
        x = Math.round(x / 5) * 5;
 | 
			
		||||
        this.updateSpeed(x);
 | 
			
		||||
        // Update reporter
 | 
			
		||||
        this.reporter.textContent = `${value}%`;
 | 
			
		||||
        this.reporter.textContent = `${x}%`;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private updateSpeed(speed: number) {
 | 
			
		||||
 
 | 
			
		||||
@@ -301,9 +301,17 @@ namespace motors {
 | 
			
		||||
                case MoveUnit.Rotations:
 | 
			
		||||
                    scale = 360;
 | 
			
		||||
                    r.useSteps = true;
 | 
			
		||||
                    if (r.steps[1] < 0) {
 | 
			
		||||
                        r.speed = -r.speed;
 | 
			
		||||
                        r.steps[1] = -r.steps[1];
 | 
			
		||||
                    }
 | 
			
		||||
                    break;
 | 
			
		||||
                case MoveUnit.Degrees:
 | 
			
		||||
                    r.useSteps = true;
 | 
			
		||||
                    if (r.steps[1] < 0) {
 | 
			
		||||
                        r.speed = -r.speed;
 | 
			
		||||
                        r.steps[1] = -r.steps[1];
 | 
			
		||||
                    }
 | 
			
		||||
                    break;
 | 
			
		||||
                case MoveUnit.Seconds:
 | 
			
		||||
                    scale = 1000;
 | 
			
		||||
@@ -741,10 +749,18 @@ namespace motors {
 | 
			
		||||
            let stepsOrTime: number;
 | 
			
		||||
            switch (unit) {
 | 
			
		||||
                case MoveUnit.Rotations:
 | 
			
		||||
                    if (value < 0) {
 | 
			
		||||
                        value = -value;
 | 
			
		||||
                        speed = -speed;
 | 
			
		||||
                    }
 | 
			
		||||
                    stepsOrTime = (value * 360) >> 0;
 | 
			
		||||
                    useSteps = true;
 | 
			
		||||
                    break;
 | 
			
		||||
                case MoveUnit.Degrees:
 | 
			
		||||
                    if (value < 0) {
 | 
			
		||||
                        value = -value;
 | 
			
		||||
                        speed = -speed;
 | 
			
		||||
                    }
 | 
			
		||||
                    stepsOrTime = value >> 0;
 | 
			
		||||
                    useSteps = true;
 | 
			
		||||
                    break;
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user