Changed return command to extend rotateTo command

This commit is contained in:
Robert 2013-12-26 13:55:51 -05:00
parent 54d39e7901
commit 8bceaab70b
3 changed files with 16 additions and 31 deletions

View file

@ -21,7 +21,9 @@ import com.builtbroken.assemblyline.ALRecipeLoader;
import com.builtbroken.assemblyline.api.IArmbot;
import com.builtbroken.assemblyline.api.coding.IProgram;
import com.builtbroken.assemblyline.api.coding.ProgramHelper;
import com.builtbroken.assemblyline.armbot.command.TaskDrop;
import com.builtbroken.assemblyline.armbot.command.TaskGOTO;
import com.builtbroken.assemblyline.armbot.command.TaskGrabItem;
import com.builtbroken.assemblyline.armbot.command.TaskReturn;
import com.builtbroken.assemblyline.armbot.command.TaskRotateBy;
import com.builtbroken.assemblyline.armbot.command.TaskRotateTo;
@ -69,9 +71,11 @@ public class TileEntityArmbot extends TileEntityAssembly implements IMultiBlock,
super(20);
programHelper = new ProgramHelper(this).setMemoryLimit(20);
Program program = new Program();
program.setTaskAt(0, 0, new TaskRotateTo(90, 0));
program.setTaskAt(0, 1, new TaskReturn());
program.setTaskAt(0, 2, new TaskGOTO(0, 0));
program.setTaskAt(0, 0, new TaskDrop());
program.setTaskAt(0, 1, new TaskRotateTo(180, 0));
program.setTaskAt(0, 2, new TaskGrabItem());
program.setTaskAt(0, 3, new TaskReturn());
program.setTaskAt(0, 4, new TaskGOTO(0, 0));
programHelper.setProgram(program);
}

View file

@ -1,36 +1,12 @@
package com.builtbroken.assemblyline.armbot.command;
import com.builtbroken.assemblyline.armbot.TaskBaseArmbot;
import com.builtbroken.assemblyline.armbot.TaskBaseProcess;
public class TaskReturn extends TaskBaseArmbot
public class TaskReturn extends TaskRotateTo
{
public static final float IDLE_ROTATION_PITCH = 0;
public static final float IDLE_ROTATION_YAW = 0;
private TaskRotateTo rotateToCommand;
public TaskReturn()
{
super("Return");
}
@Override
public ProcessReturn onUpdate()
{
if (this.rotateToCommand == null)
{
this.rotateToCommand = new TaskRotateTo(0, 0);
this.rotateToCommand.setProgram(this.program);
this.rotateToCommand.onMethodCalled();
}
return this.rotateToCommand.onUpdate();
}
@Override
public void terminated()
{
this.rotateToCommand.terminated();
super("Return", 0, 0);
}
@Override

View file

@ -26,7 +26,12 @@ public class TaskRotateTo extends TaskBaseArmbot
public TaskRotateTo(int yaw, int pitch)
{
super("RotateTo");
this("RotateTo", yaw, pitch);
}
public TaskRotateTo(String string, int yaw, int pitch)
{
super(string);
this.args.add(new ArgumentIntData("yaw", yaw, 360, 0));
this.args.add(new ArgumentIntData("pitch", pitch, 360, 0));
this.UV = new Vector2(100, 80);
@ -52,7 +57,7 @@ public class TaskRotateTo extends TaskBaseArmbot
((IArmbot) this.program.getMachine()).moveArmTo(this.targetRotationYaw, this.targetRotationPitch);
int deltaYaw = Math.abs(((IArmbot) this.program.getMachine()).getRotation().intY() - this.targetRotationPitch);
int deltaPitch = Math.abs(((IArmbot) this.program.getMachine()).getRotation().intX() - this.targetRotationYaw);
return deltaYaw > 0 && deltaPitch > 0 ? ProcessReturn.CONTINUE : ProcessReturn.DONE;
return deltaYaw != 0 && deltaPitch != 0 ? ProcessReturn.CONTINUE : ProcessReturn.DONE;
}
return ProcessReturn.GENERAL_ERROR;
}