Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public float[] mySilentStrafe(final float strafe, final float forward, final float yaw, final boolean advanced) {
- final Minecraft mc = Minecraft.getMinecraft();
- final float diff = MathHelper.wrapAngleTo180_float(yaw - PlayerHandler.yaw);
- float newForward = 0.0f;
- float newStrafe = 0.0f;
- if (!advanced) {
- if (diff >= 22.5 && diff < 67.5) {
- newStrafe += strafe;
- newForward += forward;
- newStrafe -= forward;
- newForward += strafe;
- }
- else if (diff >= 67.5 && diff < 112.5) {
- newStrafe -= forward;
- newForward += strafe;
- }
- else if (diff >= 112.5 && diff < 157.5) {
- newStrafe -= strafe;
- newForward -= forward;
- newStrafe -= forward;
- newForward += strafe;
- }
- else if (diff >= 157.5 || diff <= -157.5) {
- newStrafe -= strafe;
- newForward -= forward;
- }
- else if (diff > -157.5 && diff <= -112.5) {
- newStrafe -= strafe;
- newForward -= forward;
- newStrafe += forward;
- newForward -= strafe;
- }
- else if (diff > -112.5 && diff <= -67.5) {
- newStrafe += forward;
- newForward -= strafe;
- }
- else if (diff > -67.5 && diff <= -22.5) {
- newStrafe += strafe;
- newForward += forward;
- newStrafe += forward;
- newForward -= strafe;
- }
- else {
- newStrafe += strafe;
- newForward += forward;
- }
- return new float[] { newStrafe, newForward };
- }
- final double[] realMotion = MoveUtil.getMotion(0.22, strafe, forward, mc.thePlayer.rotationYaw);
- final double[] array;
- final double[] realPos = array = new double[] { mc.thePlayer.posX, mc.thePlayer.posZ };
- final int n = 0;
- array[n] += realMotion[0];
- final double[] array2 = realPos;
- final int n2 = 1;
- array2[n2] += realMotion[1];
- final ArrayList<float[]> possibleForwardStrafe = new ArrayList<float[]>();
- int i = 0;
- boolean b = false;
- while (!b) {
- newForward = 0.0f;
- newStrafe = 0.0f;
- if (i == 0) {
- newStrafe += strafe;
- newForward += forward;
- newStrafe -= forward;
- newForward += strafe;
- possibleForwardStrafe.add(new float[] { newForward, newStrafe });
- }
- else if (i == 1) {
- newStrafe -= forward;
- newForward += strafe;
- possibleForwardStrafe.add(new float[] { newForward, newStrafe });
- }
- else if (i == 2) {
- newStrafe -= strafe;
- newForward -= forward;
- newStrafe -= forward;
- newForward += strafe;
- possibleForwardStrafe.add(new float[] { newForward, newStrafe });
- }
- else if (i == 3) {
- newStrafe -= strafe;
- newForward -= forward;
- possibleForwardStrafe.add(new float[] { newForward, newStrafe });
- }
- else if (i == 4) {
- newStrafe -= strafe;
- newForward -= forward;
- newStrafe += forward;
- newForward -= strafe;
- possibleForwardStrafe.add(new float[] { newForward, newStrafe });
- }
- else if (i == 5) {
- newStrafe += forward;
- newForward -= strafe;
- possibleForwardStrafe.add(new float[] { newForward, newStrafe });
- }
- else if (i == 6) {
- newStrafe += strafe;
- newForward += forward;
- newStrafe += forward;
- newForward -= strafe;
- possibleForwardStrafe.add(new float[] { newForward, newStrafe });
- }
- else {
- newStrafe += strafe;
- newForward += forward;
- possibleForwardStrafe.add(new float[] { newForward, newStrafe });
- b = true;
- }
- ++i;
- }
- double distance = 5000.0;
- float[] floats = new float[2];
- for (final float[] flo : possibleForwardStrafe) {
- if (flo[0] > 1.0f) {
- flo[0] = 1.0f;
- }
- else if (flo[0] < -1.0f) {
- flo[0] = -1.0f;
- }
- if (flo[1] > 1.0f) {
- flo[1] = 1.0f;
- }
- else if (flo[1] < -1.0f) {
- flo[1] = -1.0f;
- }
- final double[] motion2;
- final double[] motion = motion2 = MoveUtil.getMotion(0.22, flo[1], flo[0], PlayerHandler.yaw);
- final int n3 = 0;
- motion2[n3] += mc.thePlayer.posX;
- final double[] array3 = motion;
- final int n4 = 1;
- array3[n4] += mc.thePlayer.posZ;
- final double diffX = Math.abs(realPos[0] - motion[0]);
- final double diffZ = Math.abs(realPos[1] - motion[1]);
- final double d0 = diffX * diffX + diffZ * diffZ;
- if (d0 < distance) {
- distance = d0;
- floats = flo;
- }
- }
- return new float[] { floats[1], floats[0] };
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement