z translation offset

master
Thomas Rudin 2018-12-18 12:04:21 +01:00
parent 27d2dbddad
commit 574e58e40b
3 changed files with 22 additions and 22 deletions

View File

@ -126,7 +126,7 @@ public class TileServer {
ScheduledExecutorService executor = injector.getInstance(ScheduledExecutorService.class);
executor.scheduleAtFixedRate(injector.getInstance(UpdateChangedTilesJob.class), 0, cfg.tilerendererUpdateInterval(), TimeUnit.SECONDS);
//executor.scheduleAtFixedRate(injector.getInstance(UpdateChangedTilesJob.class), 0, cfg.tilerendererUpdateInterval(), TimeUnit.SECONDS);
executor.scheduleAtFixedRate(injector.getInstance(UpdatePlayerJob.class), 0, cfg.playerUpdateInterval(), TimeUnit.SECONDS);
if (cfg.tilerendererEnableInitialRendering()){

View File

@ -13,8 +13,8 @@ public class CoordinateFactory {
* @return
*/
public static TileCoordinate getTileCoordinateFromMapBlock(MapBlockCoordinate mapBlock){
//Inverted z-axis
return new TileCoordinate(mapBlock.x, mapBlock.z * -1, MAX_ZOOM);
//Inverted and offsetet z-axis
return new TileCoordinate(mapBlock.x, (mapBlock.z * -1) + 1, MAX_ZOOM);
}
/**
@ -27,10 +27,10 @@ public class CoordinateFactory {
int scale = (int) Math.pow(2, scaleDiff); //1,4,8,16,32...4096
int mapBlockX1 = tile.x * scale;
int mapBlockZ1 = tile.y * scale * -1;
int mapBlockZ1 = (tile.y * scale * -1) - 1;
int mapBlockX2 = mapBlockX1 + scale-1;
int mapBlockZ2 = mapBlockZ1 + ((scale-1) * -1);
int mapBlockZ2 = (mapBlockZ1 + ((scale-1) * -1));
return new Range<>(
new MapBlockCoordinate(mapBlockX1, mapBlockZ1),

View File

@ -12,19 +12,19 @@ public class CoordinateFactoryTest {
MapBlockCoordinate mapBlock = new MapBlockCoordinate(0,0);
TileCoordinate tileCoordinate = CoordinateFactory.getTileCoordinateFromMapBlock(mapBlock);
Assert.assertEquals(0, tileCoordinate.x);
Assert.assertEquals(0, tileCoordinate.y);
Assert.assertEquals(1, tileCoordinate.y);
Assert.assertEquals(13, tileCoordinate.zoom);
mapBlock = new MapBlockCoordinate(1,1);
tileCoordinate = CoordinateFactory.getTileCoordinateFromMapBlock(mapBlock);
Assert.assertEquals(1, tileCoordinate.x);
Assert.assertEquals(-1, tileCoordinate.y);
Assert.assertEquals(0, tileCoordinate.y);
Assert.assertEquals(13, tileCoordinate.zoom);
mapBlock = new MapBlockCoordinate(-1,-1);
tileCoordinate = CoordinateFactory.getTileCoordinateFromMapBlock(mapBlock);
Assert.assertEquals(-1, tileCoordinate.x);
Assert.assertEquals(1, tileCoordinate.y);
Assert.assertEquals(2, tileCoordinate.y);
Assert.assertEquals(13, tileCoordinate.zoom);
}
@ -34,45 +34,45 @@ public class CoordinateFactoryTest {
Range<MapBlockCoordinate> range = CoordinateFactory.getMapBlocksInTile(new TileCoordinate(0, 0, 13));
Assert.assertEquals(0, range.pos1.x);
Assert.assertEquals(0, range.pos1.z);
Assert.assertEquals(-1, range.pos1.z);
Assert.assertEquals(0, range.pos2.x);
Assert.assertEquals(0, range.pos2.z);
Assert.assertEquals(-1, range.pos2.z);
range = CoordinateFactory.getMapBlocksInTile(new TileCoordinate(-1, -1, 13));
Assert.assertEquals(-1, range.pos1.x);
Assert.assertEquals(1, range.pos1.z);
Assert.assertEquals(0, range.pos1.z);
Assert.assertEquals(-1, range.pos2.x);
Assert.assertEquals(1, range.pos2.z);
Assert.assertEquals(0, range.pos2.z);
range = CoordinateFactory.getMapBlocksInTile(new TileCoordinate(0, 0, 12));
Assert.assertEquals(0, range.pos1.x);
Assert.assertEquals(0, range.pos1.z);
Assert.assertEquals(-1, range.pos1.z);
Assert.assertEquals(1, range.pos2.x);
Assert.assertEquals(-1, range.pos2.z);
Assert.assertEquals(-2, range.pos2.z);
range = CoordinateFactory.getMapBlocksInTile(new TileCoordinate(1, 1, 12));
Assert.assertEquals(2, range.pos1.x);
Assert.assertEquals(-2, range.pos1.z);
Assert.assertEquals(-3, range.pos1.z);
Assert.assertEquals(3, range.pos2.x);
Assert.assertEquals(-3, range.pos2.z);
Assert.assertEquals(-4, range.pos2.z);
range = CoordinateFactory.getMapBlocksInTile(new TileCoordinate(2, 2, 12));
Assert.assertEquals(4, range.pos1.x);
Assert.assertEquals(-4, range.pos1.z);
Assert.assertEquals(-5, range.pos1.z);
Assert.assertEquals(5, range.pos2.x);
Assert.assertEquals(-5, range.pos2.z);
Assert.assertEquals(-6, range.pos2.z);
range = CoordinateFactory.getMapBlocksInTile(new TileCoordinate(0, 0, 11));
Assert.assertEquals(0, range.pos1.x);
Assert.assertEquals(0, range.pos1.z);
Assert.assertEquals(-1, range.pos1.z);
Assert.assertEquals(3, range.pos2.x);
Assert.assertEquals(-3, range.pos2.z);
Assert.assertEquals(-4, range.pos2.z);
range = CoordinateFactory.getMapBlocksInTile(new TileCoordinate(1, 1, 11));
Assert.assertEquals(4, range.pos1.x);
Assert.assertEquals(-4, range.pos1.z);
Assert.assertEquals(-5, range.pos1.z);
Assert.assertEquals(7, range.pos2.x);
Assert.assertEquals(-7, range.pos2.z);
Assert.assertEquals(-8, range.pos2.z);
}