Optimize physics

This commit is contained in:
Sotr
2019-03-29 01:36:39 +08:00
parent 8210d0edd8
commit b83eb29260
4 changed files with 23 additions and 7 deletions

View File

@@ -2,6 +2,8 @@ package io.akarin.server.core;
import java.util.List;
import javax.swing.text.html.parser.Entity;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;

View File

@@ -20,6 +20,20 @@ public class BlockPosition extends BaseBlockPosition {
private static final long i = (1L << BlockPosition.c) - 1L;
private static final long j = (1L << BlockPosition.f) - 1L;
private static final long k = (1L << BlockPosition.d) - 1L;
// Akarin start
protected BlockPosition shiftX(int x) {
this.x = this.x + x;
return this;
}
protected BlockPosition shiftY(int y) {
this.y = this.y + y;
return this;
}
protected BlockPosition shiftZ(int z) {
this.z = this.z + z;
return this;
}
// Akarin end
public BlockPosition(int i, int j, int k) {
super(i, j, k);

View File

@@ -641,12 +641,12 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
public void applyPhysics(BlockPosition blockposition, Block block) {
if (captureBlockStates) { return; } // Paper - Cancel all physics during placement
this.a(blockposition.west(), block, blockposition);
this.a(blockposition.east(), block, blockposition);
this.a(blockposition.down(), block, blockposition);
this.a(blockposition.up(), block, blockposition);
this.a(blockposition.north(), block, blockposition);
this.a(blockposition.south(), block, blockposition);
this.a(blockposition.shiftX(-1), block, blockposition); // Akarin - west
this.a(blockposition.shiftX(2), block, blockposition); // Akarin - east
this.a(blockposition.shiftX(-1).shiftY(-1), block, blockposition); // Akarin - down
this.a(blockposition.shiftY(2), block, blockposition); // Akarin - up
this.a(blockposition.shiftY(-1).shiftZ(-1), block, blockposition); // Akarin - north
this.a(blockposition.shiftZ(2), block, blockposition); // Akarin - south
}
public void a(BlockPosition blockposition, Block block, EnumDirection enumdirection) {