/**
* @author Aleksey Terzi
*
*/
package com.lishid.orebfuscator.obfuscation;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
import org.bukkit.World;
import com.lishid.orebfuscator.types.BlockCoord;
public class ProximityHiderPlayer {
private World world;
private Map<Long, ArrayList<BlockCoord>> chunks;
public ProximityHiderPlayer(World world) {
this.world = world;
this.chunks = new HashMap<Long, ArrayList<BlockCoord>>();
}
public World getWorld() {
return this.world;
}
public void setWorld(World world) {
this.world = world;
}
public void clearChunks() {
this.chunks.clear();
}
public void putBlocks(int chunkX, int chunkZ, ArrayList<BlockCoord> blocks) {
long key = getKey(chunkX, chunkZ);
this.chunks.put(key, blocks);
}
public ArrayList<BlockCoord> getBlocks(int chunkX, int chunkZ) {
long key = getKey(chunkX, chunkZ);
return this.chunks.get(key);
}
public void copyChunks(ProximityHiderPlayer playerInfo) {
this.chunks.putAll(playerInfo.chunks);
}
public void removeChunk(int chunkX, int chunkZ) {
long key = getKey(chunkX, chunkZ);
this.chunks.remove(key);
}
private static long getKey(int chunkX, int chunkZ) {
return ((chunkZ & 0xffffffffL) << 32) | (chunkX & 0xffffffffL);
}
}