dynmap-neoforge/src/main/java/org/dynmap/kzedmap/KzedZoomedMapTile.java

114 lines
3.3 KiB
Java

package org.dynmap.kzedmap;
import java.util.List;
import org.dynmap.DynmapChunk;
import org.dynmap.DynmapWorld;
import org.dynmap.MapTile;
import org.dynmap.MapType;
import org.dynmap.utils.MapChunkCache;
public class KzedZoomedMapTile extends MapTile {
private String fname;
private String fname_day;
@Override
public String getFilename() {
if(fname == null) {
if(world.bigworld)
fname = "z" + originalTile.renderer.getPrefix() + "/" + (getTileX()>>12) + '_' +
(getTileY() >> 12) + '/' + getTileX() + "_" + getTileY() + ".png";
else
fname = "z" + originalTile.renderer.getPrefix() + "_" + getTileX() + "_" + getTileY() + ".png";
}
return fname;
}
@Override
public String getDayFilename() {
if(fname_day == null) {
if(world.bigworld)
fname_day = "z" + originalTile.renderer.getPrefix() + "_day/" + (getTileX()>>12) + '_' +
(getTileY() >> 12) + '/' + getTileX() + "_" + getTileY() + ".png";
else
fname_day = "z" + originalTile.renderer.getPrefix() + "_day_" + getTileX() + "_" + getTileY() + ".png";
}
return fname_day;
}
public KzedMapTile originalTile;
public KzedZoomedMapTile(DynmapWorld world, KzedMapTile original) {
super(world);
this.originalTile = original;
}
@Override
protected String saveTileData() {
return originalTile.saveTileData();
}
public int getTileX() {
return ztilex(originalTile.px + KzedMap.tileWidth);
}
public int getTileY() {
return ztiley(originalTile.py);
}
private static int ztilex(int x) {
if (x < 0)
return x + (x % (KzedMap.tileWidth * 2));
else
return x - (x % (KzedMap.tileWidth * 2));
}
/* zoomed-out tile Y for tile position y */
private static int ztiley(int y) {
if (y < 0)
return y + (y % (KzedMap.tileHeight * 2));
else
return y - (y % (KzedMap.tileHeight * 2));
}
@Override
public int hashCode() {
return getFilename().hashCode() ^ world.hashCode();
}
@Override
public boolean equals(Object obj) {
if (obj instanceof KzedZoomedMapTile) {
return ((KzedZoomedMapTile) obj).originalTile.equals(originalTile);
}
return false;
}
public String getKey(String prefix) {
return world.getName() + ".z" + prefix;
}
@Override
public boolean render(MapChunkCache cache, String mapname) {
return false;
}
@Override
public List<DynmapChunk> getRequiredChunks() {
return null;
}
@Override
public MapTile[] getAdjecentTiles() {
return null;
}
public boolean isBiomeDataNeeded() { return originalTile.isBiomeDataNeeded(); }
public boolean isHightestBlockYDataNeeded() { return false; }
public boolean isRawBiomeDataNeeded() { return originalTile.isRawBiomeDataNeeded(); }
public boolean isBlockTypeDataNeeded() { return true; }
public int tileOrdinalX() { return originalTile.px >> 8; }
public int tileOrdinalY() { return originalTile.py >> 8; }
}