// Path: core/src/org/jrenner/fps/net/packages/CommandPackage.java
// public class CommandPackage implements Pool.Poolable {
// 	public static final int FORWARD      = 0x01;
// 	public static final int BACK         = 0x02;
// 	public static final int STRAFE_LEFT  = 0x04;
// 	public static final int STRAFE_RIGHT = 0x08;
// 	public static final int UP           = 0x10;
// 	public static final int DOWN         = 0x20;
// 	public static final int JUMP         = 0x40;
// 	public static final int SHOOT        = 0x80;
// 
// 	public int commandBits;
// 	public float yaw;
// 	public float pitch;
// 	public float roll;
// 
// 	public void setTranslation(Direction.Translation trans) {
// 		switch (trans) {
// 			case Forward:
// 				set(FORWARD, true);
// 				break;
// 			case Back:
// 				set(BACK, true);
// 				break;
// 			case Up:
// 				set(UP, true);
// 				break;
// 			case Down:
// 				set(DOWN, true);
// 				break;
// 			case Left:
// 				set(STRAFE_LEFT, true);
// 				break;
// 			case Right:
// 				set(STRAFE_RIGHT, true);
// 				break;
// 			default:
// 				throw new GdxRuntimeException("unhandled");
// 		}
// 	}
// 
// 	public void setRotation(Quaternion q) {
// 		yaw = q.getYaw();
// 		pitch = q.getPitch();
// 		roll = q.getRoll();
// 	}
// 
// 	/*public void setRotation(Direction.Rotation rot) {
// 		switch (rot) {
// 			case YawLeft:
// 				set(YAW_LEFT, true);
// 				break;
// 			case YawRight:
// 				set(YAW_RIGHT, true);
// 				break;
// 			case PitchUp:
// 				set(PITCH_UP, true);
// 				break;
// 			case PitchDown:
// 				set(PITCH_DOWN, true);
// 				break;
// 			case RollLeft:
// 				set(ROLL_LEFT, true);
// 				break;
// 			case RollRight:
// 				set(ROLL_RIGHT, true);
// 				break;
// 		}
// 	}*/
// 
// 	public void set(int value, boolean status) {
// 		if (status) {
// 			commandBits |= value; // on
// 		} else {
// 			commandBits &= ~(value); // off
// 		}
// 	}
// 
// 	public boolean get(int value) {
// 		return (value & commandBits) != 0;
// 	}
// 
// 	public void set(CommandPackage other) {
// 		commandBits = other.commandBits;
// 	}
// 
// 	@Override
// 	public void reset() {
// 		commandBits = 0;
// 	}
// }


import com.badlogic.gdx.utils.Pool;
import org.jrenner.fps.net.packages.CommandPackage;
package org.jrenner.fps.net.client;


public class ClientUpdate implements Pool.Poolable {
	private static Pool<ClientUpdate> clientUpdatePool = new Pool<ClientUpdate>() {
		@Override
		protected ClientUpdate newObject() {
			return new ClientUpdate();
		}
	};

	/** tick number this input was sent at, used for client-side prediction, not related to main server timing tick */
	public int inputTick;
	public int entityId;
// Path: core/src/org/jrenner/fps/net/packages/CommandPackage.java
// public class CommandPackage implements Pool.Poolable {
// 	public static final int FORWARD      = 0x01;
// 	public static final int BACK         = 0x02;
// 	public static final int STRAFE_LEFT  = 0x04;
// 	public static final int STRAFE_RIGHT = 0x08;
// 	public static final int UP           = 0x10;
// 	public static final int DOWN         = 0x20;
// 	public static final int JUMP         = 0x40;
// 	public static final int SHOOT        = 0x80;
// 
// 	public int commandBits;
// 	public float yaw;
// 	public float pitch;
// 	public float roll;
// 
// 	public void setTranslation(Direction.Translation trans) {
// 		switch (trans) {
// 			case Forward:
// 				set(FORWARD, true);
// 				break;
// 			case Back:
// 				set(BACK, true);
// 				break;
// 			case Up:
// 				set(UP, true);
// 				break;
// 			case Down:
// 				set(DOWN, true);
// 				break;
// 			case Left:
// 				set(STRAFE_LEFT, true);
// 				break;
// 			case Right:
// 				set(STRAFE_RIGHT, true);
// 				break;
// 			default:
// 				throw new GdxRuntimeException("unhandled");
// 		}
// 	}
// 
// 	public void setRotation(Quaternion q) {
// 		yaw = q.getYaw();
// 		pitch = q.getPitch();
// 		roll = q.getRoll();
// 	}
// 
// 	/*public void setRotation(Direction.Rotation rot) {
// 		switch (rot) {
// 			case YawLeft:
// 				set(YAW_LEFT, true);
// 				break;
// 			case YawRight:
// 				set(YAW_RIGHT, true);
// 				break;
// 			case PitchUp:
// 				set(PITCH_UP, true);
// 				break;
// 			case PitchDown:
// 				set(PITCH_DOWN, true);
// 				break;
// 			case RollLeft:
// 				set(ROLL_LEFT, true);
// 				break;
// 			case RollRight:
// 				set(ROLL_RIGHT, true);
// 				break;
// 		}
// 	}*/
// 
// 	public void set(int value, boolean status) {
// 		if (status) {
// 			commandBits |= value; // on
// 		} else {
// 			commandBits &= ~(value); // off
// 		}
// 	}
// 
// 	public boolean get(int value) {
// 		return (value & commandBits) != 0;
// 	}
// 
// 	public void set(CommandPackage other) {
// 		commandBits = other.commandBits;
// 	}
// 
// 	@Override
// 	public void reset() {
// 		commandBits = 0;
// 	}
// }


// Path: core/src/org/jrenner/fps/net/client/ClientUpdate.java
import com.badlogic.gdx.utils.Pool;
import org.jrenner.fps.net.packages.CommandPackage;

package org.jrenner.fps.net.client;


public class ClientUpdate implements Pool.Poolable {
	private static Pool<ClientUpdate> clientUpdatePool = new Pool<ClientUpdate>() {
		@Override
		protected ClientUpdate newObject() {
			return new ClientUpdate();
		}
	};

	/** tick number this input was sent at, used for client-side prediction, not related to main server timing tick */
	public int inputTick;
	public int entityId;
	public CommandPackage cmdPack = new CommandPackage();