//https://b...content-available-to-author-only...g.com/browse/MC-52274
public class Main {
public static void main
(String[] args
) { System.
out.
println("Coord\tOffset\tVanilla\tFixed");
offsetText(2, 1);
offsetText(1.5, 1);
offsetText(1, 1);
offsetText(0.5, 1);
offsetText(0, 1);
offsetText(-.5, 1);
offsetText(-1, 1);
offsetText(-1.5, 1);
offsetText(-2, 1);
offsetText(2, 0);
offsetText(1.5, 0);
offsetText(1, 0);
offsetText(0.5, 0);
offsetText(0, 0);
offsetText(-.5, 0);
offsetText(-1, 0);
offsetText(-1.5, 0);
offsetText(-2, 0);
offsetText(2, -1);
offsetText(1.5, -1);
offsetText(1, -1);
offsetText(0.5, -1);
offsetText(0, -1);
offsetText(-.5, -1);
offsetText(-1, -1);
offsetText(-1.5, -1);
offsetText(-2, -1);
}
/**
* Prints info about the given offset attempt.
*/
public static void offsetText(double coord, int offset) {
System.
out.
println(coord
+ "\t" + offset
+ "\t" + getOffsetPosVanilla(coord, offset) + "\t" +
getOffsetPosFixed(coord, offset));
}
/**
* Current implementation
*/
public static int getOffsetPosVanilla(double coord, int offset) {
return (int)(coord + (double)offset);
}
/**
* Fixed implementation
*/
public static int getOffsetPosFixed(double coord, int offset) {
return floorDouble(coord + offset);
}
/**
* net.minecraft.util.MathHelper's floor_double method, for utility purposes
*/
public static int floorDouble(double p_76128_0_) {
int var2 = (int)p_76128_0_;
return p_76128_0_ < (double)var2 ? var2 - 1 : var2;
}
}
Ly9odHRwczovL2IuLi5jb250ZW50LWF2YWlsYWJsZS10by1hdXRob3Itb25seS4uLmcuY29tL2Jyb3dzZS9NQy01MjI3NAoKcHVibGljIGNsYXNzIE1haW4gewoJcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgewoJCVN5c3RlbS5vdXQucHJpbnRsbigiQ29vcmRcdE9mZnNldFx0VmFuaWxsYVx0Rml4ZWQiKTsKCQkKCQlvZmZzZXRUZXh0KDIsIDEpOwoJCW9mZnNldFRleHQoMS41LCAxKTsKCQlvZmZzZXRUZXh0KDEsIDEpOwoJCW9mZnNldFRleHQoMC41LCAxKTsKCQlvZmZzZXRUZXh0KDAsIDEpOwoJCW9mZnNldFRleHQoLS41LCAxKTsKCQlvZmZzZXRUZXh0KC0xLCAxKTsKCQlvZmZzZXRUZXh0KC0xLjUsIDEpOwoJCW9mZnNldFRleHQoLTIsIDEpOwoJCW9mZnNldFRleHQoMiwgMCk7CgkJb2Zmc2V0VGV4dCgxLjUsIDApOwoJCW9mZnNldFRleHQoMSwgMCk7CgkJb2Zmc2V0VGV4dCgwLjUsIDApOwoJCW9mZnNldFRleHQoMCwgMCk7CgkJb2Zmc2V0VGV4dCgtLjUsIDApOwoJCW9mZnNldFRleHQoLTEsIDApOwoJCW9mZnNldFRleHQoLTEuNSwgMCk7CgkJb2Zmc2V0VGV4dCgtMiwgMCk7CgkJb2Zmc2V0VGV4dCgyLCAtMSk7CgkJb2Zmc2V0VGV4dCgxLjUsIC0xKTsKCQlvZmZzZXRUZXh0KDEsIC0xKTsKCQlvZmZzZXRUZXh0KDAuNSwgLTEpOwoJCW9mZnNldFRleHQoMCwgLTEpOwoJCW9mZnNldFRleHQoLS41LCAtMSk7CgkJb2Zmc2V0VGV4dCgtMSwgLTEpOwoJCW9mZnNldFRleHQoLTEuNSwgLTEpOwoJCW9mZnNldFRleHQoLTIsIC0xKTsKCX0KCQoJLyoqCgkgKiBQcmludHMgaW5mbyBhYm91dCB0aGUgZ2l2ZW4gb2Zmc2V0IGF0dGVtcHQuCgkgKi8KCXB1YmxpYyBzdGF0aWMgdm9pZCBvZmZzZXRUZXh0KGRvdWJsZSBjb29yZCwgaW50IG9mZnNldCkgewoJCVN5c3RlbS5vdXQucHJpbnRsbihjb29yZCArICJcdCIgKyBvZmZzZXQgKyAiXHQiICsgCgkJCQlnZXRPZmZzZXRQb3NWYW5pbGxhKGNvb3JkLCBvZmZzZXQpICsgIlx0IiArIAoJCQkJZ2V0T2Zmc2V0UG9zRml4ZWQoY29vcmQsIG9mZnNldCkpOwoJfQoJCgkvKioKCSAqIEN1cnJlbnQgaW1wbGVtZW50YXRpb24KCSAqLwoJcHVibGljIHN0YXRpYyBpbnQgZ2V0T2Zmc2V0UG9zVmFuaWxsYShkb3VibGUgY29vcmQsIGludCBvZmZzZXQpIHsKCQlyZXR1cm4gKGludCkoY29vcmQgKyAoZG91YmxlKW9mZnNldCk7Cgl9CgkKCS8qKgoJICogRml4ZWQgaW1wbGVtZW50YXRpb24KCSAqLwoJcHVibGljIHN0YXRpYyBpbnQgZ2V0T2Zmc2V0UG9zRml4ZWQoZG91YmxlIGNvb3JkLCBpbnQgb2Zmc2V0KSB7CgkJcmV0dXJuIGZsb29yRG91YmxlKGNvb3JkICsgb2Zmc2V0KTsKCX0KCQoJLyoqCgkgKiBuZXQubWluZWNyYWZ0LnV0aWwuTWF0aEhlbHBlcidzIGZsb29yX2RvdWJsZSBtZXRob2QsIGZvciB1dGlsaXR5IHB1cnBvc2VzCgkgKi8KCXB1YmxpYyBzdGF0aWMgaW50IGZsb29yRG91YmxlKGRvdWJsZSBwXzc2MTI4XzBfKSB7CgkJaW50IHZhcjIgPSAoaW50KXBfNzYxMjhfMF87CgkJcmV0dXJuIHBfNzYxMjhfMF8gPCAoZG91YmxlKXZhcjIgPyB2YXIyIC0gMSA6IHZhcjI7Cgl9Cn0=