Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Scratch {
- //lazy bed pearl finder
- public static void main(String[] args) {
- Vec3 startPos = new Vec3(99.90119418961288, 50.939999990165234, -0.2676971472132734);
- Vec3 explosionPos = new Vec3(97.5, 51.5, -0.5);
- Plane[] coll = new Plane[]{
- new Plane(99, 49 - 1.0E-7, -1 - 1.0E-7, 99, 51 + 1.0E-7, 0 + 1.0E-7),
- new Plane(98, 51.1875 - 1.0E-7, -1 - 1.0E-7, 98, 51.5625 + 1.0E-7, 0 + 1.0E-7),
- new Plane(47, 102 - 1.0E-7, -3 - 1.0E-7, 47, 103 + 1.0E-7, -1 + 1.0E-7)
- };
- int bb = Integer.MAX_VALUE;
- for (float syaw = 90f; syaw < 105f; syaw += 0.1f) {
- for (float yaw = 80f; yaw < 100f; yaw += 0.1f) {
- L:
- for (float pitch = -45f; pitch < 45f; pitch += 0.1f) {
- Vec3 pPos = new Vec3(startPos.x, startPos.y, startPos.z);
- float p = MathHelp.MCcos(pitch * MathHelp.RAD());
- Vec3 pVel = new Vec3(
- -MathHelp.MCsin(yaw * MathHelp.RAD()) * p,
- -MathHelp.MCsin(pitch * MathHelp.RAD()),
- MathHelp.MCcos(yaw * MathHelp.RAD()) * p
- ).normalize().multiply(1.5f);
- double juX = (double) (-MathHelp.MCsin(syaw * MathHelp.RAD()) * 0.2f) * .91f;
- double juZ = (double) (MathHelp.MCcos(syaw * MathHelp.RAD()) * 0.2f) * .91f;
- juX = Math.abs(juX) < .003 ? 0 : juX;
- juZ = Math.abs(juZ) < .003 ? 0 : juZ;
- pVel = pVel.add(juX, 0.33319999363422365, juZ);
- for (int i = 0; i < 2; i++) {
- for (Plane plane : coll) {
- double hitP = (plane.negX - pPos.x) / pVel.x;
- double hitY = pPos.y + hitP * pVel.y;
- double hitZ = pPos.z + hitP * pVel.z;
- if (0.0 < hitP && hitP < 1.0 && plane.negY < hitY && hitY < plane.posY && plane.negZ < hitZ && hitZ < plane.posZ) {
- break L;
- }
- }
- pPos.x = (pPos.x + pVel.x);
- pPos.y = (pPos.y + pVel.y);
- pPos.z = (pPos.z + pVel.z);
- pVel.x *= .99f;
- pVel.y = (pVel.y * .99f) - .03f;
- pVel.z *= .99f;
- }
- Vec3 footDist = pPos.subtract(explosionPos);
- double exStrength = ((float) Math.sqrt(footDist.x * footDist.x + footDist.y * footDist.y + footDist.z * footDist.z)) / 10.0f;
- if (exStrength <= 1.0) {
- exStrength = 1.0 - exStrength;
- double eyeDist = pPos.y + 0.2125f - explosionPos.y;
- double dirStrength = (float) Math.sqrt(footDist.x * footDist.x + eyeDist * eyeDist + footDist.z * footDist.z);
- pVel.x += ((footDist.x / dirStrength) * exStrength * 2);
- pVel.y += ((eyeDist / dirStrength) * exStrength * 2);
- pVel.z += ((footDist.z / dirStrength) * exStrength * 2);
- }
- int ticks = 0;
- tra:
- {
- for (int i = 0; i < 100; i++) {
- ticks++;
- for (Plane plane : coll) {
- double hitP = (plane.negX - pPos.x) / pVel.x;
- double hitY = pPos.y + hitP * pVel.y;
- double hitZ = pPos.z + hitP * pVel.z;
- if (0.0 < hitP && hitP < 1.0 && plane.negY < hitY && hitY < plane.posY && plane.negZ < hitZ && hitZ < plane.posZ) {
- break tra;
- }
- }
- pPos.x = (pPos.x + pVel.x);
- pPos.y = (pPos.y + pVel.y);
- pPos.z = (pPos.z + pVel.z);
- pVel.x *= .99f;
- pVel.y = (pVel.y * .99f) - .03f;
- pVel.z *= .99f;
- }
- continue;
- }
- if (pPos.y > 102.58 && pPos.y < 102.73 && pPos.x < 48.3
- && ticks <= bb) {
- bb = ticks;
- System.out.println(String.format("ticks: %d, yaw: %f, pitch: %f, syaw: %f", ticks, yaw, pitch, syaw));
- }
- }
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement