package NET.worlds.console; import NET.worlds.scape.Drone; import NET.worlds.scape.HoloPilot; import NET.worlds.scape.Pilot; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.IOException; public class BBDroneDeltaPosCommand extends BlackBoxCommand { private byte dx; private byte dy; private byte dyaw; private String droneID; public BBDroneDeltaPosCommand() { this.commandType = 8; } public BBDroneDeltaPosCommand(String pdroneID, byte pdx, byte pdy, byte pdyaw) { this(); this.droneID = pdroneID; this.dx = pdx; this.dy = pdy; this.dyaw = pdyaw; } @Override public boolean execute() { Drone id = null; if (this.droneID.equals("@Pilot")) { Pilot p = Pilot.getActive(); if (p != null && p instanceof HoloPilot) { HoloPilot hp = (HoloPilot)p; Drone d = hp.getInternalDrone(); if (d != null && d instanceof Drone) { id = d; } } } else { id = ArmyOfZombies.instance().get(this.droneID); } if (id != null) { id.shortLoc(this.dx, this.dy, this.dyaw); this.doCallback(true); return true; } else { this.doCallback(true); return true; } } @Override public void save(DataOutputStream dos) throws IOException { super.save(dos); dos.writeUTF(this.droneID); dos.writeByte(this.dx); dos.writeByte(this.dy); dos.writeByte(this.dyaw); } @Override public void load(DataInputStream dis) throws IOException { super.load(dis); this.droneID = dis.readUTF(); this.dx = dis.readByte(); this.dy = dis.readByte(); this.dyaw = dis.readByte(); } }