implemented ProposingWorld#setLinearVelocity(..)
1 files changed, 26 insertions(+), 4 deletions(-)

M src/main/net/dermetfan/kryonet/box2d/multiplayer/proposing/ProposingBody.java
M src/main/net/dermetfan/kryonet/box2d/multiplayer/proposing/ProposingBody.java +26 -4
@@ 157,6 157,32 @@ public class ProposingBody implements Po
 		return accepted;
 	}
 
+	public boolean setLinearVelocity(Vector2 v) {
+		BodyChange change = Pools.obtain(BodyChange.class);
+		change.newLinearVelocity = v;
+
+		@SuppressWarnings("unchecked")
+		Change<Body> update = Pools.obtain(Change.class);
+		update.setObjectHash(objectHash);
+		update.setChange(change);
+
+		boolean accepted = world.proposeBlocking(update, world.getConnection());
+
+		Pools.free(change);
+		Pools.free(update);
+
+		if(accepted)
+			body.setLinearVelocity(v);
+		return accepted;
+	}
+
+	public boolean setLinearVelocity(float vX, float vY) {
+		Vector2 v = Pools.obtain(Vector2.class).set(vX, vY);
+		boolean accepted = setLinearVelocity(v);
+		Pools.free(v);
+		return accepted;
+	}
+
 	// local delegates
 
 	public void applyTorque(float torque, boolean wake) {body.applyTorque(torque, wake);}

          
@@ 173,8 199,6 @@ public class ProposingBody implements Po
 
 	public Vector2 getLinearVelocity() {return body.getLinearVelocity();}
 
-	public void setLinearVelocity(Vector2 v) {body.setLinearVelocity(v);}
-
 	public Vector2 getLocalVector(Vector2 worldVector) {return body.getLocalVector(worldVector);}
 
 	public float getAngularVelocity() {return body.getAngularVelocity();}

          
@@ 189,8 213,6 @@ public class ProposingBody implements Po
 
 	public void setLinearDamping(float linearDamping) {body.setLinearDamping(linearDamping);}
 
-	public void setLinearVelocity(float vX, float vY) {body.setLinearVelocity(vX, vY);}
-
 	public boolean isSleepingAllowed() {return body.isSleepingAllowed();}
 
 	public void setSleepingAllowed(boolean flag) {body.setSleepingAllowed(flag);}